Banner publicitario de PCBWay

EFI-Xer Tool (Utilidad para la edición y reparación de volcados GPT)

D@rkbytes

Moderador general
EFI-Xer Tool es una pequeña pero potente utilidad para modificar y reparar volcados GPT en televisores Smart de nueva generación.
Este tipo de volcados se extraen de la memoria e-MMC, y el tipo de SoC en donde se usa es variado, pero es común de NovaTek y RealTek, o marcas como Hisense, Samsung, TCL, etc.

Esta aplicación muestra un ligero informe del MBR y más detallado de la GPT.
Puede verificar, restaurar y reparar los CRC de los encabezados GPT primario y secundario (respaldo).
Muestra las particiones en una lista con su información básica.
Permite extraer y reemplazar las particiones.
Cuenta con un explorador para el sistema de archivos EXT4.
Los archivos de las particiones EXT4 también pueden ser extraídos y reemplazados.

Inicialmente este programa fue escrito para trabajar con el volcado GPT grabado en memorias USB, pero Windows reconoce el encabezado y trata de repararlo conforme a la capacidad de la memoria, y sobre escribe los encabezados GPT.
Como finalmente no logra reconocer las particiones, envía un mensaje para formatear la unidad por no contener un sistema válido de archivos.
Este no es el inconveniente, porque el mensaje se puede cancelar, pero no el hecho de que sobre escriba los encabezados GPT.
Así que esto puede ser un problema si el volcado se llega a utilizar en un TV que no tenga la posibilidad de verificar y reparar los encabezados.

Esta primer versión la subo como prueba, y posteriormente le agregaré la posibilidad de grabar el volcado modificado y/o reparado a la e-MMC, usando el programador AU6438BS.
Obviamente también le agregaré un lector/extractor de datos.

EFI-Xer Tool.jpg

EFI-Xer Tool_2.jpg
Nota: El botón "Extract" sirve para extraer los archivos que no tienen extensión.


Como siempre, espero que esta aplicación les sea útil.
Trataré de responder en breve ante cualquier duda, comentario o bug.
 

Adjuntos

  • EFI-Xer Tool v1.0.7z
    488 KB · Visitas: 279
Cómo reparar un volcado con particiones desplazadas.

En ciertos casos nos podemos encontrar con particiones que se encuentran desplazadas, es decir, el punto de entrada suele estar desplazado dos bytes hacia adelante.

¿Qué sucede cuando las particiones se encuentran desplazadas?

Cuando se trata de archivos binarios de los cuales no conocemos ni su estructura ni su contenido, este desplazamiento podría pasar desapercibido, pero cuando conocemos el tipo de archivo y su estructura, será cuando notaremos que no podremos ver su contenido.
Un caso específico son las particiones con el sistema de archivos Ext4.

Este tipo de archivos cuenta con una estructura muy bien definida y con posiciones establecidas de las cuales se obtiene la información del sistema de archivos.
No me extenderé en la explicación sobre el superblock, los inodos, etc.
Vamos a centrarnos sobre la firma EXT, que es la misma para EXT2/3/4.
Esta firma se encuentra en la posición 0x38 del superblock, sin tomar en cuenta los primeros 1024 bytes (0x400) del sector de arranque, o en la posición 0x438 si lo tomamos en cuenta.

La firma EXT o Magic Number son dos bytes con el valor 0xEF53 (Little Endian), por lo tanto, con un editor hexadecimal, los veremos al revés: 0x53EF.
Cuando la partición está desplazada encontraremos que la firma se encuentra en la posición 0x3A o 0x43A contando los 1024 bytes (0x400) del sector de arranque, que no son utilizados y su valor es 0x00.

Como la firma suele buscarse en una posición específica, al estar desplazada se obtendrá otro valor y se dará la partición por inválida.
En estas condiciones, un programa como 7-zip no podrá abrir el archivo, indicando que no se puede abrir como un archivo comprimido.
Esta aplicación tampoco lo puede hacer, al menos no de manera sencilla, ya que se tendría que recurrir a lecturas asíncronas, lo cual lleva más trabajo por tener que usar punteros y alineación de offsets, tanto de posición como de tamaño de buffer.
Nada imposible ni cosa de otro mundo, pero el caso es reparar el volcado.

Esta aplicación nos indica cuando las particiones se encuentran desplazadas...
Displaced_partitions.jpg
En la imagen de arriba podemos ver que a partir de la partición p04_res, el resto están desplazadas.

¿Cómo reparar el volcado para corregir el desplazamiento?

Por suerte, no tenemos que reparar todas las particiones desplazadas, solo tenemos que hacer algo muy sencillo.
Antes de realizar la reparación del volcado, debemos asegurarnos de no haber ejecutado la exploración de alguna partición no desplazada.
Colocamos el cursor sobre la primer partición desplazada, presionamos el botón derecho del ratón y seleccionamos lo siguiente...
FirstLBA.jpg
Ya copiado el valor de First LBA, abrimos el volcado con un editor hexadecimal, en mi caso uso H x D.
Presionamos la combinación de teclas "Ctrl + G" y pegamos el valor del portapapeles en la ventana que aparecerá...
GoTo.jpg
En este caso First LBA = 0x19FFFBE00
Presionamos "Aceptar" y nos dirigirá a esa posición...
Offset_0x19FFFBE00.jpg

Aquí lo que vamos a hacer es seleccionar los primeros dos bytes y eliminarlos, ya sea presionando la tecla "Supr" o con la tecla de retroceso.
Posteriormente nos desplazaremos hasta el final del volcado y obviamente encontraremos que faltan dos bytes.
Unaligned.jpg
Lo que nos resta hacer es escribir con ceros esos dos bytes faltantes para mantener el volcado alineado.

Una vez realizados los cambios, los guardamos y el volcado quedará reparado...
Partitions_corrected.jpg
Volvemos a cargar el volcado y ya podremos ver que todas las particiones que estaban desplazadas, ahora ya no lo están.
Con esto ya podremos extraerlas para analizarlas, editarlas o explorarlas con esta aplicación.

Como el desplazamiento no solo pueden ser dos bytes como en este caso, solo debemos contar los bytes que se ha movido la firma Ext4 y eliminarlos o aumentarlos al volcado.
Donde sea que se encuentre la partición Ext4 en el volcado, los últimos números del offset para la firma, siempre deben ser 0x38
Como en este caso, ya corregido el desplazamiento, la firma quedará en el offset 0x19FFFC238
 
Actualización v2.0 - Dual Mode x64

Novedades:

1 - Esta nueva versión ahora puede cargar volcados GPT y MStar.
2 - Los volcados se pueden cargar desde archivo, desde una memoria USB (RAW) y AU6438BS.
3 - Se agrega un editor para archivos de texto, útil para modificar directamente los archivos, por ejemplo, los de inicialización o los referentes al panel LCD.
Este editor únicamente es disponible para volcados GPT y en particiones con el sistema de archivos EXT4.
4 - Se agrega un lector y escritor para dispositivos de almacenamiento USB (útil para el AU6438BS).
5 - Posibilidad de redimensionar la ventana.

Cabe mencionar que el uso de esta aplicación es para personal capacitado.
Cualquier modificación realizada al volcado repercutirá directamente en el funcionamiento del TV.
Las particiones y archivos no deben ser alterados si no se tiene pleno conocimiento sobre edición de firmware.

Actualización v3.0

1.- Se mejora el método de escritura.
2.- Se agrega mostrar información sobre archivos APK (útil para validar la versión de Android).
Con la información obtenida podemos buscar aplicaciones más recientes y compatibles.
APK_File_Info.jpg
En este caso se informa que la mínima versión para la aplicación es la 28, que corresponde a Android 9.0 (Pie).
Reemplazando la aplicación por una más reciente, podemos actualizarla.
Replace_Apk_File.jpg
 

Adjuntos

  • EFI-Xer Tool v2.0 Dual Mode x64.7z
    489 KB · Visitas: 144
  • EFI-Xer Tool v3.0 Dual Mode x64.7z
    483.6 KB · Visitas: 175
Ese mensaje se debe a que la aplicación está protegida y algunos antivirus detectan al protector como una amenaza.
Esto sucede con varias aplicaciones protegidas, incluso el RT809H también es detectado como virus por estar protegido.
 
Un saludo a todos los colegas y éxitos en sus reparaciones.
Estimado D@rkbyte, cuando selecciono USB Disk en la aplicación, y con un pendrive en formato RAW sucede esto que muestra la imagen al tildar en la casilla Device Name.
Si marco en continuar en el cuadro de diálogo, cuando intento escribir en la memoria USB se muestra el otro cuadro de diálogo.
 

Adjuntos

  • 20250723_085216.jpg
    20250723_085216.jpg
    253.4 KB · Visitas: 26
  • Detalles.txt
    1.8 KB · Visitas: 17
  • 20250723_085537.jpg
    20250723_085537.jpg
    236.5 KB · Visitas: 23
Haciendo un dump de una emmc con easyjtag o desde el vmlinux , me da un cambio en un byte 0x03 o 0x02
Con el EFI-xer usando el dump vmlinux me da error o se cierra el programa al intentar seleccionar "explore selected partition" he probado en la v1.0 y v3.0 , adjunto el emmc dump y un txt explicativo. efi-xer_tool_error_explore_sel_par.rar
 
Última edición:
El volcado tiene una estructura incorrecta en el MBR.
Como el volcado tiene particiones GPT, el MBR protector resulta inconsistente, lo que impide la exploración de las particiones.
Es por eso se muestra el error: "Could not read disk MBR.".

Otro motivo por el que puede fallar la exploración EXT4 es por usar un archivo de solo lectura.

Te recomiendo que uses una memoria USB nueva o que sepas que se encuentra en buen estado, ya que seguramente la imagen no se está extrayendo correctamente.

Por si quieres probar, adjunto un MBR válido que puedes usar temporalmente.
El reemplazo del MBR lo puedes realizar con la misma aplicación.
 

Adjuntos

  • Linux_MBR.rar
    130 bytes · Visitas: 45
Hola, hermano, me encanta tu aplicación.
Me ha servido mucho para modificar e inspeccionar algunas roms y dumps que uso para TV Box de Android, pero con algunos dumps tengo el error de "header data coult not be obtained".
Tampoco en la aplicación Efixertool que uso para flashear las ROM puedo ver la tabla de particiones.
¿T
endrías alguna sugerencia o recomendación para orientarme? Un saludo.
 

Adjuntos

  • Captura de pantalla 2025-11-08 152102.png
    Captura de pantalla 2025-11-08 152102.png
    30.5 KB · Visitas: 7
Última edición por un moderador:
Ese error puede suceder cuando el archivo seleccionado está en uso por otra aplicación.
Podría ser que estés usando el archivo con un editor hexadecimal y eso lo mantiene bloqueado si no se han guardado cambios o cerrado.
 
Ese error puede suceder cuando el archivo seleccionado está en uso por otra aplicación.
Podría ser que estés usando el archivo con un editor hexadecimal y eso lo mantiene bloqueado si no se han guardado cambios o cerrado.
la verdad desconozco que este siendo abierto o usado por algún otro editor o programa, creo que pueda ser algo de la recompilacion que trae el bin. Todavía no logro encontrar la forma de abrir ni poder inspeccionar este dump. Incluso sacando el dump crudo con programadora. Estoy trancado, pero agradezco mucho tu respuesta. Los soft que compartes son un espectaculo!1762627978441.png1762628007507.png
 
Ahí dice que el archivo no tiene MBR y tampoco GPT, así que la aplicación lo toma por inválido.
Usa esta nueva versión que muestra el tipo de error que se produjo.

Actualización v3.1 Dual Mode x64
 

Adjuntos

  • EFI-Xer Tool v3.1 Dual Mode (x64).rar
    544.6 KB · Visitas: 32
Gracias por la atencion maestro, se agrade mucho el tiempo! aún que no logro poder seguir abriendo ese dump de android 12, que es una rom funcional porque ya la he probado. Pero el dump sigue sin reconocermelo, de paso otros dumps tambien de android 12 los reconoce sin problema
 

Adjuntos

  • Captura de pantalla 2025-11-08 174335.png
    Captura de pantalla 2025-11-08 174335.png
    25.2 KB · Visitas: 7
  • Captura de pantalla 2025-11-08 174513.png
    Captura de pantalla 2025-11-08 174513.png
    34.4 KB · Visitas: 7
  • Captura de pantalla 2025-11-08 174756.png
    Captura de pantalla 2025-11-08 174756.png
    16.1 KB · Visitas: 7
El problema se debe a lo que comenté en el post #15
El archivo no tiene cabecera GPT y la aplicación lo determina como un volcado inválido.
No sé qué sistema de archivos tenga ese volcado, porque tampoco tiene una tabla de particiones que yo conozca.

La cabecera GPT empieza en la posición 512 (0x200) del volcado, o sea, enseguida del MBR.
Se identifica fácilmente porque inicia con "EFI PART" y el volcado que quieres analizar empieza con datos binarios en la posición 0x200
Como desde esa posición se empiezan a tomar los datos, la aplicación no encuentra valores correctos y muestra el error.
La aplicación verifica el valor de la posición 0x20C, que es donde está definido el tamaño de la cabecera GPT, si es diferente a 92 (0x5C), toma por inválido el volcado, ya que una cabecera GPT típica siempre es de 92 bytes.

Descarga nuevamente la aplicación del post #15, ya que actualicé el error mostrado con más detalles.
 
El problema se debe a lo que comenté en el post #15
El archivo no tiene cabecera GPT y la aplicación lo determina como un volcado inválido.
No sé qué sistema de archivos tenga ese volcado, porque tampoco tiene una tabla de particiones que yo conozca.

La cabecera GPT empieza en la posición 512 (0x200) del volcado, o sea, enseguida del MBR.
Se identifica fácilmente porque inicia con "EFI PART" y el volcado que quieres analizar empieza con datos binarios en la posición 0x200
Como desde esa posición se empiezan a tomar los datos, la aplicación no encuentra valores correctos y muestra el error.
La aplicación verifica el valor de la posición 0x20C, que es donde está definido el tamaño de la cabecera GPT, si es diferente a 92 (0x5C), toma por inválido el volcado, ya que una cabecera GPT típica siempre es de 92 bytes.

Descarga nuevamente la aplicación del post #15, ya que actualicé el error mostrado con más detalles.
gracias por el tiempo y la explicacion maestro! se agradece, voy a seguir buscando la forma
 
Atrás
Arriba