[Aporte] Desempacador para Dumps(Volcados) Mstar

D@rkbytes

Moderador general
Esta aplicación puede desempacar los archivos que genera el programa RT809H al leer la eMMC en tarjetas con SoC MStar.
Resulta qué, tras haber leído la memoria eMMC, obtendremos varios archivos.
Tales cómo:
EMMC_AUTO_ISP_XXXX.BIN
EMMC_AUTO_ISP_XXX.BIN.BOOT1
EMMC_AUTO_ISP_XXXX.BIN.BOOT2
EMMC_AUTO_ISP_XXXX.BIN.EXT_CSD
EMMC_AUTO_ISP_XXXX.BIN.part1
EMMC_AUTO_ISP_XXXX.BIN.RPMB

Estos archivos son los que genera el programa del RT809H cuando se seleccionan todas las casillas.
Como podrán ver, existe un archivo con la extensión "part1", tal vez se puedan generar otros archivos cómo "part2, part3, etc.
Nunca he visto que se generen archivos part2, part3, etc.
Esto lo hace el programa RT809H como una forma de separar archivos de gran tamaño, y los nombra cómo .partX
No siempre lo hace, supongo que lo hace cuando la eMMC es superior a 4Gb.

Aquí es dónde debo aclarar algo muy importante.
Si nuestro volcado de eMMC llega a tener este tipo de archivos .partX, debemos proceder de la siguiente forma:
1.- Abrir el archivo EMMC_AUTO_ISP_XXXX.BIN donde XXX es un nombre que le da el programador a el archivo principal, con el editor hexadecimal HXD.
Será el de mayor peso en bytes.
Nota: El nombre de archivo lo puede cambiar uno mismo, así que esto solo es un ejemplo representativo de lo más común.
2.- Presionar las teclas "Ctrl + O" para indicar que queremos abrir otro archivo.
Aquí debemos seleccionar el archivo ".part1" y será abierto en otro proceso.
Ya abierto el archivo .part1, presionamos "Ctrl + A" o click derecho para seleccionar la opción "Seleccionar todo"
Este proceso hará una copia de todo el contenido del archivo y se mostrará una ventana de progreso.
Cuando la copia finalice, vamos al proceso del archivo .bin que abrimos primero y nos posicionamos hasta el final del archivo, de esta forma:
Latest Offset.jpg
O sea, hasta el final del último offset del archivo.
Ahora debemos insertar los datos del archivo .part1.
Para eso, ya estando hasta el final del archivo del proceso 1, seleccionamos con click derecho "Pegar insertando" o tecleando Ctrl + V
Esta acción unirá el contenido del archivo .part1 con el archivo .bin del volcado de RT809H.
Tras esto, que debe demorar algún tiempo, podemos guardar el archivo como queramos.
Ya sea, sobrescribiendo el archivo .bin o crear uno nuevo con otro nombre.
Como a mí me sobra espacio, creo uno nuevo, pero si dispones de poco espacio, solo dale a guardar y ya tendrás un archivo . bin completo.
O sea, el . bin con los datos que faltaban del archivo .part1
Obviamente, tras el proceso se obtendrá un archivo con la suma de los dos, y por lógica pesará la suma de ambos.
Este es el archivo que nos interesa y el que debemos seleccionar en el programa "RT809H Dump Extractor"

Repito, no siempre es así, esto que mencioné es solo para cuando el dump tiene este archivo ".part1, .part2, etc"

¿Qué pasa si tengo un dump con archivos .partX y ejecuto la aplicación sin hacer lo mencionado anteriormente?
El programa mostrará un error de que no se pudo extraer cierta parte del volcado.
Por eso se debe tener en cuenta ver si el volcado tiene o no tiene este tipo de archivos.

Una utilidad importante del programa es que también puede desempacar las particiones.
Podemos seleccionar, por ejemplo, la partición tvconfig.bin y ver su contenido ya como una carpeta en el explorador.

El Programa también cuenta con un calculador de Gigabytes a sectores.
Esto lo agregué porque los dumps o volcados de una eMMC también pueden ser extraídos a una memoria USB por método directo mediante un adaptador de microSD as USB o por medio de la consola TV Debugging Tool.

Cuando la extracción se realiza por el método directo, suele suceder que después de obtenido el volcado, la memoria no puede ser leída por Windows.
Así que, usamos el programa Hex WorkShop para extraer los datos de una unidad, sabiendo el tamaño que debemos extraer.
Es un agregado muy irrelevante, pero al menos a mí me sirve de maravilla y no lo quise omitir.
Recuerden que este tipo de aplicaciones las venden, y yo se las entrego de forma gratuita. :)

Actualización v1.1 - 04/01/23
.- Se agregó soporte para nombres largos de ruta.
.- Se agregó poder guardar el log del proceso.

Como siempre, espero que esta aplicación sea de utilidad.
 

Adjuntos

  • RT809H Dump Extractor.rar
    1.1 MB · Visitas: 277
  • RT809H Dump Extractor v1.1.rar
    971.5 KB · Visitas: 376
Inciso ☝️para aquellos no acostumbrados a copiar/cortar/pegar archivos binarios con editores hexadecimales:

Siguiendo el ejemplo de arriba, se debe tener en cuenta que el primer byte del archivo .part1 que vayamos a pegar debe quedar en la dirección de memoria DA800000, no en la DA7FFFFF.
Esto se consigue si se coloca el cursor exactamente donde se indica arriba.

Esto mismo se aplica para el resto de archivos .partX que hubiera.
 
El problema con ese tipo de firmware es que no tienen una estructura ordenada.
Al menos la cabecera y la zona de datos de usuario sí son identificables.
Todo lo demás está revuelto, debe haber una zona que le indique al procesador en qué parte quedó cada cosa.
Pero yo no los he estudiado a fondo porque no lo he requerido.

Dicen que esta utilidad es muy buena para analizar firmware: binwalk
Corre bajo Linux, por eso no la he usado.
 
Ya no es muy común en los TV LED de nueva generación usar memorias 24XXX, pero se llegaron a usar ambas en su tiempo.
Las memorias I2C solían contener datos de los puertos, o sea, los últimos accesos del usuario a los archivos vistos.
Era una forma de tener una caché para posteriormente situar el archivo más pronto en pantalla.
 
Actualización v1.2

En las versiones anteriores, cuando existía el archivo *.part1, este se tenía que unir al volcado principal .bin de forma manual para finalmente obtener un archivo único que contendría las dos partes.
El proceso fue explicado de la mejor manera posible, pero aún así resulta algo tedioso realizar esta labor manualmente.

En esta nueva versión este proceso se realiza de forma automática, detectando si es que existe el archivo .part1
Si existe, se notificará y se procederá a unirlo con el archivo principal para obtener un archivo único a procesar.
Así que ahora debemos colocar los dos archivos en la misma carpeta para que el programa se encargue de procesarlos.

Recuerden que este proceso es lento debido a que estamos trabajando con archivos del orden de los Gigabytes.
Pero todo depende de la velocidad de procesamiento de su PC.
También deben tener en cuenta que, para realizar este tipo de desempacados se debe contar con buen espacio de disco duro.

Por ejemplo:
Si realizamos la extracción de una eMMC de 8 GB, tendremos dos archivos, uno .bin y otro .part1
El RT809H nos puede generar otros si es que se seleccionan, pero en este caso no son necesarios.
Así que finalmente tendremos 8 GB de archivos de volcado más otros 8 GB de archivos de imagen. (16 GB aprox.)
Ya que el programa se encargará de eliminar el archivo .part1 cuando este sea unido al archivo .bin
Por este motivo siempre es recomendable tener un respaldo, ya que los archivos serán modificados.

También se añadió poder cambiar de Sectores a Gigabytes y viceversa en la Calculadora de Sectores.

Recuerden que este programa también puede procesar los archivos de respaldo generados con TV Debugging Tool
O sea, el archivo de respaldo de la eMMC que se puede obtener por comunicación RS-232 con el SoC Mstar.

Como siempre, espero que este programa y sus actualizaciones sean de utilidad.
 

Adjuntos

  • RT809H-DE v1.2.rar
    1,000.2 KB · Visitas: 261
Recuerden que este programa también puede procesar los archivos de respaldo generados con TV Debugging Tool
O sea, el archivo de respaldo de la eMMC que se puede obtener por comunicación RS-232 con el SoC Mstar.

Hola . Al extraer emmc al pendrive via UART no puedo después guardar el archivo en Pc . Me da solo la opción de formatear el pendrive . Si utilizo el programa al tratar de elegir volcado o imagen tampoco puedo selecionar lo que extraje al pendrive . no aparece el o los archivos de la emmc extraida . Que estoy haciendo mal ? Ayuda . Gracias >
 
Al extraer eMMC al pendrive vía UART no puedo después guardar el archivo en PC. Me da solo la opción de formatear el pendrive.
Sí, eso es normal y por aquí lo comenté.
Cuando la extracción se realiza por el método directo, suele suceder que después de obtenido el volcado, la memoria no puede ser leída por Windows.
Así que, usamos el programa Hex WorkShop para extraer los datos de una unidad, sabiendo el tamaño que debemos extraer.
Entonces, para eso se requiere usar el programa Hex WorkShop.
Ir al menú Disk/Open Drive y seleccionar la unidad USB.
Después ir de nuevo al menú Disk y seleccionar Save Sectors.
Calcular los sectores a extraer con esta aplicación y listo.
Posteriormente ya se podrá usar esta aplicación para extraer las particiones.
 
Sí, eso es normal y por aquí lo comenté.

Entonces, para eso se requiere usar el programa Hex WorkShop.
Ir al menú Disk/Open Drive, seleccionar la unidad USB, calcular los sectores a extraer y listo.
Posteriormente ya se podrá usar esta aplicación para extraer las particiones.
Muchas Gracias . Instalé el programa y pude extraer archivo.
Lo guardé con extensión .bin, no sé si es correcto.
El archivo tiene un tamaño de 4.0 KB, es pequeño.
No sé bien qué es lo que extraje ni en qué circunstancia va a servirme.
Lo subo con nombre 1.rar para quien pueda ayudarme a qué corresponde.
Por otro lado, con otro comando sí pude extraer la eMMC completa, Boot1, Boot2 y el de casi 4 gigabytes que salió como EMMC.
Intento como prueba reinstalar esta copia de eMMC con el comando emmcbootbin pero solo me acepta los nombres boot1 y boot2 etc.
No me permite el emmc. ¿Qué comando puedo usar para cargar el archivo mayor??
 

Adjuntos

  • 1.rar
    448 bytes · Visitas: 75
Última edición por un moderador:
Instalé el programa y pude extraer archivo.
Lo guardé con extensión .bin, no sé si es correcto.
Sí, es correcto y es la extensión por defecto para este tipo de archivos.
El archivo tiene un tamaño de 4.0 KB, es pequeño.
El archivo que subiste tiene un tamaño de 512 bytes, por lo que es completamente inservible.
No sé bien qué es lo que extraje ni en qué circunstancia va a servirme.
Tan solo un pequeñísimo fragmento que no sirve para nada.
Por eso comenté que esta aplicación tiene una calculadora de sectores.
Por ejemplo:
Si la eMMC es de 4GB, aplicas esto...
Sectores.png
Ese valor de 8388608 son los sectores que corresponden a 4 GB.
Abres la unidad USB que tiene el volcado con Disk/Open Drive...
Open Drive.png
Regresas al menú Disk y seleccionas Save Sectors.
Copia y pega el resultado de sectores obtenido en donde dice Ending Sector.
Cuando lo hagas verás que el tamaño a guardar corresponderá a 4 GB, en este caso. (Enmarcado rojo)
HWS Sectores.png
Al presionar en Aceptar (OK) se debe iniciar la copia de los datos de la memoria USB al disco.
Saving Sectors.png
Ese archivo .bin de 4GB es el que debes usar en esta aplicación para obtener las particiones. (Opcional)
¿Qué comando puedo usar para cargar el archivo mayor?
En el programa TV Debugging Tool se encuentra esa opción.
 
Sí, es correcto y es la extensión por defecto para este tipo de archivos.

El archivo que subiste tiene un tamaño de 512 bytes, por lo que es completamente inservible.

Tan solo un pequeñísimo fragmento que no sirve para nada.
Por eso comenté que esta aplicación tiene una calculadora de sectores.
Por ejemplo:
Si la eMMC es de 4GB, aplicas esto...
Ver el archivo adjunto 297376
Ese valor de 8388608 son los sectores que corresponden a 4 GB.
Abres la unidad USB que tiene el volcado con Disk/Open Drive...
Ver el archivo adjunto 297379
Regresas al menú Disk y seleccionas Save Sectors.
Copia y pega el resultado de sectores obtenido en donde dice Ending Sector.
Cuando lo hagas verás que el tamaño a guardar corresponderá a 4 GB, en este caso. (Enmarcado rojo)
Ver el archivo adjunto 297378
Al presionar en Aceptar (OK) se debe iniciar la copia de los datos de la memoria USB al disco.
Ver el archivo adjunto 297380
Ese archivo .bin de 4GB es el que debes usar en esta aplicación para obtener las particiones. (Opcional)

En el programa TV Debugging Tool se encuentra esa opción.
Hola, gracias por las repuestas. Voy a tratar de convertir ese archivo como me indicas. Por lo pronto en el Hex WorkShop no encuentro la calculadora de sectores voy a bajar otra versión. Con respecto a la restauración de él archivo que si salió correcto y completo donde está boot1 boot2 y EMMC de 3,68 GB intenté si con la consola tv TV Debugging Tool y me manda mismo comando “emmcbootbin” y como mencionaba es el que me deja restaurar solo boot1 y boot2 no me acepta restaurar el archivo principal EMMC. Por eso busco otro comando o tal vez algo incorrecto estoy haciendo la cuestión que no puedo al momento cargar este archivo mayor. Toda ayuda o sugerencia es bienvenida. Gracias nuevamente.
 
Por lo pronto en el Hex WorkShop no encuentro la calculadora de sectores, voy a bajar otra versión.
La calculadora de sectores la tiene el programa de este tema. (RT809H-DE.exe)
El Programa también cuenta con un calculador de Gigabytes a sectores.
Esto lo agregué porque los dumps o volcados de una eMMC también pueden ser extraídos a una memoria USB por método directo mediante un adaptador de microSD as USB o por medio de la consola TV Debugging Tool.
En la actualización dije...
También se añadió poder cambiar de Sectores a Gigabytes y viceversa en la Calculadora de Sectores.
TV Debugging Tool y me manda mismo comando “emmcbootbin” y como mencionaba es el que me deja restaurar solo boot1 y boot2 no me acepta restaurar el archivo principal EMMC
Prueba con este otro:
Actualizar Firmware.png
En el log podrás saber si busca un nombre específico para el archivo.
 
El Programa también cuenta con un calculador de Gigabytes a sectores.
Esto lo agregué porque los dumps o volcados de una eMMC también pueden ser extraídos a una memoria USB por método directo mediante un adaptador de microSD as USB o por medio de la consola TV Debugging Tool.

Hola de nuevo. Con las indicaciones extraje correctamente el archivo del pendrive.
Muy agradecido, excelentes los programas. Felicitaciones.
Con respecto al tema de poder cargar lo extraído por UART de la misma forma por consola no sale al momento.
Como mencioné, el comando “emmcbootbin” no funciona. No hallo otro comando que funcione.
Lo del firmware para identificar nombre ya lo había probado con pendrive vacío.
Solicita “messi.bin” que es para carga por puerto USB, por supuesto.
El tema es que por más que renombre el archivo extraído EMMC es igual, no logro al momento cargar nada por UART, ya qué el comando mencionado solo admite Boot1 y Boot2, etc.
Cualquier sugerencia es bienvenida.
Estoy experimentando con varias placas MSTAR.
Nuevamente felicitaciones, los programas andan de maravilla y totalmente prácticos. Gracias.
 
Última edición por un moderador:
Sucede que cuando cargas el archivo correcto en la memoria USB, el TV empieza a cargarlo automáticamente.
Obviamente insertando la memoria con el TV apagado y posteriormente encenderlo.
En el Log de la consola puedes ir viendo el proceso, porque hay casos que el TV no muestra nada en pantalla.
Como mencioné, el comando “emmcbootbin” no funciona. No hallo otro comando que funcione.
En el post #15 indiqué otra forma.
 
Sí, a ese botón me refiero.

Entendido, ya probado entonces, como comentaba también probé con ese comando. Si el archivo tiene el nombre EMMC como sale vía uart, no reconoce y pide messi.bin. Si cambias el nombre del archivo a messi.bin intenta, pero da error de firmware el cual se muestra también en pantalla tv160. Este comando de actualizar firmware funciona perfecto para firmware original usb y cómo tú dices conectado a la consola TV Debugging Tool se puede ver todo y controlar el avance del mismo.

P
or otra parte a modo informativo les comento que los archivos EMMC, boot1 y boot 2 extraídos por uart con la consola los cargué sin cambio alguno vía ISP con el RT809H a misma placa y la prueba salió perfecta, ya que la placa sigue funcionando OK!!!! Mi idea es poder lograr que estos archivos uart puedan salvar las placas también por misma vía. Seguiré experimentando. Cualquier ayuda, sugerencia o comentario será bienvenido.
 
Última edición por un moderador:
Atrás
Arriba