desktop

Mstar Dump Extractor

Por otra parte a modo informativo les comento que los archivos eMMC, boot1 y boot2 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.
Entiendo lo que pretendes hacer, pero yo no uso el respaldo obtenido por RS-232 de la forma en que tú lo pretendes hacer.
Yo uso ese respaldo para posteriormente rescatar tarjetas con el firmware dañado pero, usando programación directa de la eMMC.

El hecho de poder recuperar BOOT1 y BOOT2 nos da la posibilidad de que la tarjeta ya se pueda comunicar por RS-232 y que aparte pueda cargar un firmware por USB, lo cual es una gran ventaja, porque si el BOOT1 está dañado se puede considerar que la tarjeta está muerta.

Ya teniendo el respaldo se puede proceder a obtener las particiones y posteriormente crear un firmware booteable por USB.
¿Cómo? Pues con bastante estudio y experiencia.
Ya que se requiere crear un script con todos los datos de la particiones para que el sistema pueda proceder con su instalación.
La aplicación que hace todo ese trabajo ya la empecé a escribir, pero por motivos laborales no le puedo dedicar mucho tiempo.
Y aunque prácticamente esto se puede hacer a mano, lleva su tiempo, ya que se debe tener conocimiento de las particiones, del proceso a ejecutar y de los comandos, teniendo en cuenta que usaremos un editor hexadecimal y otras herramientas para ir compilando el firmware.

Así que... Si quieres rescatar tarjetas te recomiendo que compres un programador para eMMC.
Lo cual también conlleva a tener varios Stencil BGA para cada tipo de eMMC, la base para el reballing, una estación de soldadura, que en este caso puede ser una simple pistola de aire caliente y varios insumos necesarios.
Cuando se tiene la información de los terminales DAT0, CLK, CMD, VCCQ y VCC, la cosa es mucho más fácil, pues ya no se requiere retirar la eMMC.
Obviamente este proceso es más lento, pero te puedes poner a hacer otras cosas mientras se lleva a cabo.
 
Hola te comentaba justamente que usé el RT809H y cargué lo extraído vía ISP. También uso el TNM5000 y dispongo de Máquina
bga. Tú sabes que sería de mucha ayuda si logras el programa que mencionas para hacer bootable luego por Usb. Yo no tengo conocimientos de programación. He logrado si con el programa proporcionado por mstar "MStarBinTool" luego de desempaquetar las particiones modificar en un disco virtual paneles y demás parámetros y luego ese pequeño archivo queda bootable por USB y funciona perfecto efectuando los cambios, pero la idea es poder hacerlo con el firmware completo. Espero lo logres y en lo que pueda ayudar acá estamos. Muchas gracias por compartir tu trabajo y excelentes programas.
 
Última edición:
Con el comando "help" te aparecerá la lista de comandos disponibles en la tarjeta.
Tal vez tenga el comando "bin2emmc": bin2emmc - read bin file and restore it to emmc

Muchas gracias por la ayuda.
L
ogré finalmente restaurar EMMC.BIN por UART.
El proceso de escritura se ve correcto en la consola y también cuando termina Ok, pero la placa luego queda como bloqueada al apagarla y energizar.
También probé en una segunda oportunidad antes de apagarla hacer un recovery, pero al darle el reset para que termine de ejecutarlo no me deja ya, enviándome el mismo mensaje "BIST0-OKBIST1-OK_AUTH_FAIL".
Parece como que después de la escritura debería efectuar algún comando para cerrar el proceso o dar autorización para el boot de arranque, pero no sé.
A la placa la vuelvo a revivir con el mismo archivo cargándolo con el RT809H vía ISP.
Cualquier sugerencia u opinión es bienvenida.
 

Adjuntos

  • logo. Placa no sale de stand by luego de restablecer EMMC.BIN.jpg
    logo. Placa no sale de stand by luego de restablecer EMMC.BIN.jpg
    146.5 KB · Visitas: 73
Última edición por un moderador:
No tengo idea de qué pueda estar fallando.
El volcado y el proceso lo has realizado tú, y solo tú tienes la TV y los archivos.
Así que, si te pones en mi lugar, trato de adivinar con la poca información que obtengo de tus mensajes.

Si lo vemos de otra forma, si puedes usar la programación por ISP y funciona, querer forzosamente usar UART, es flojera.
 
No tengo idea de qué pueda estar fallando.
El volcado y el proceso lo has realizado tú, y solo tú tienes la TV y los archivos.
Así que, si te pones en mi lugar, trato de adivinar con la poca información que obtengo de tus mensajes
No le entiendo sinceramente.
Si lo vemos de otra forma, si puedes usar la programación por ISP y funciona, querer forzosamente usar UART, es flojera.
 
Última edición:
Actualización v2.0 .Net

.- Se reescribió en inglés y en C# (Visual C Sharp)
.- Se eliminó la opción de convertir archivos al formato de RT809H, por ser irrelevante, ya que solo es renombrar archivos y se puede hacer de forma manual.
.- Se agregó la posibilidad de cancelar el proceso.
.- La separación (Split) de archivos, tanto como la unión (Merge) ahora es más rápida. (Solo válido cuando existe el archivo .part1)
.- Se agregó una opción para poder cambiar las extensiones de archivos (.bin a .img y viceversa)
Esta opción cambia todos los archivos encontrados en una carpeta a la extensión seleccionada.

Igualmente que las versiones anteriores, también extrae las particiones de volcados obtenidos del respaldo por UART de eMMC a memoria USB.

MSDE.png
Nota: Esta aplicación es x64, por lo tanto, obviamente no funcionará en sistemas obsoletos x86 (32 bits)

Actualización v3.0

MSDE30.png
 

Adjuntos

  • MStar Dump Extractor v2.0.rar
    971.3 KB · Visitas: 169
  • MStar Dump Extractor v3.0.rar
    1.5 MB · Visitas: 169
  • MStar Dump Extractor v3.1.rar
    1.5 MB · Visitas: 279
Actualización v3.2

Se agrega la función de poder extraer una imagen RAW obtenida por RS-232 cuando el respaldo es superior a los 4 GB.
O sea, los datos que se guardan en la memoria USB tras obtener el respaldo y que esta queda sin formato.
Como he mencionado anteriormente, estos datos no se pueden leer de forma directa porque Windows encontrará la memoria USB sin formato y pedirá el formateo.
La manera de obtener los datos era usando el programa HexWork Shop, pero ahora esta aplicación es capaz de obtenerlos.

Extract RAW Image.png

Ya no se hará por sectores, sino por Gigabytes, y no eliminé la calculadora de sectores, simplemente añadí un botón extra para realizar esta nueva función.

Memory Extractor.png
El tamaño mínimo de extracción es de 1 GB si se especifica en bytes, de otra forma, el tamaño mínimo será de 2 GB por selección predeterminada.
Así que para tamaños superiores a 16 GB se tendrán que escribir, pero hasta ahora lo veo completamente innecesario.
La acción de extracción puede ser detenida en cualquier momento, obteniendo solo lo que se haya podido leer y escribir.

Nota importante:
Si se desean extraer 2 GB, obviamente la memoria con los datos deberá ser de una capacidad superior a 2 GB, etc.
¿Por qué? Porque el formato para el sistema de archivos ocupa un espacio y eso hace que no se disponga del tamaño total físico de memoria.
Así que si seleccionan extraer 4 GB de una memoria de 4 GB, solo se extraerá el espacio disponible, más no los 4 GB físicos.
Bueno, esto me parece un poco irrelevante de explicar porque creo suponer que esto de las capacidades y el formato ya todos lo sabemos, pero quiero que quede claro para que luego no vengan con comentarios de que... "seleccioné extraer 4 GB y solo obtuve 3.65 GB"
Ante esto se presentará un error E/S y el archivo obtenido será hasta donde se pudo leer y escribir por el motivo mencionado.

Espero seguir teniendo tiempo en estos meses para posteriormente agregar la función de grabado y así ya no depender de otros programas. :)
Este mes y los venideros son muy patrióticos para nosotros los mexicanos y andamos en mucha pachanga. (Para variar) 😄
 

Adjuntos

  • MStar Dump Extractor v3.2.rar
    1.5 MB · Visitas: 283
Avances de la versión 3.3

USB Stick Utilities.png
frmDiskExtract.png
Extract Raw Image.png

Ahora programaré usando procesos separados para reducir la sobre carga de la aplicación.
Me volví a meter en las API de Windows y el resultado me gustó. :)
Esto implica obtener derechos de administrador, pero es algo necesario para este tipo de acceso.
Voy lento pero tengo muchas aplicaciones en proceso y programo cuando tengo tiempo libre.
 
Actualización v3.3

1.- Se añadió la utilidad para grabar una memoria USB sin formato (RAW File System).
2.- Se añadió la utilidad para el formateo de unidades removibles (No importando el sistema de archivos).

Notas:
La función de extraer datos funciona en cualquier tipo de sistema de archivos, pero la función para grabar es exclusivamente para el formato RAW.
El formateo se puede realizar en modo exFAT, FAT, FAT32, NTFS y RAW (El que necesitamos en este caso).
Solo añadí tres opciones básicas: etiqueta del volumen, formato rápido y habilitar compresión.


Actualización v3.4

1.- Se corrige el error al cerrar las ventanas durante la lectura o escritura del dispositivo.
2.- Se corrige un bug al detectar el tamaño del dispositivo.

Como siempre, espero que las nuevas funciones sean de utilidad.
 

Adjuntos

  • Mstar Dump Extractor v3.3.rar
    1.6 MB · Visitas: 234
  • Mstar Dump Extractor v3.4.rar
    1.1 MB · Visitas: 117
Saludos, llevo varios días leyendo este foro, y me ha parecido excelente la información y las herramientas que se encuentran aquí, pero aun así no he podido resolver un problema, he querido activar el mirror, es decir voltear la imagen de un TV JVC con soc Mstar, ingresé al UART y copié los archivos BOOT 1 BOO2 Y EMMC bin, luego desempaqué el EMMC bin con Mstar Dump Extractor y luego modifiqué el Customer_1.ini donde coloqué "True" en vez del "False" que tenía en las opciones de mirror, luego de eso lo guardé, pero cuando fui a empaquetar no enconté un programa que lo lograra, porque con el Msta Bin Tool no me dejaba desempacar y el Mstar Dump Extractor si me dejó, así que por lo que investigué solo puedo empaquetar cuando se extrae la información del EMMC por Reballing o directamente copiar de la memoria. Me gustaría que me aclaren esta duda, no puedo modificar el mirror de esta manera con el volcado obtenido por USB? Yo solo tengo como programador el CH341A, donde hice la conexión por HDMI por el puerto UART.
 
Última edición por un moderador:
cuando fui a empaquetar no encontré un programa que lo lograra
De hecho no existe ningún programa que haga eso porque las particiones se extraen del volcado de la e-MMC.
Así que un reempacado con archivos modificados dañaría la integridad de la imagen RAW.
Lo que se hace con las particiones extraídas y modificadas, es crear un script que las instale mediante una memoria USB.
Para eso se requiere tener varios datos que solo se encuentran en un firmware original.
Cuando se tienen esos datos, y se han extraído y modificado los archivos, estos sí se pueden reempacar.
El script de instalación de una sola partición sería algo así:
Código:
# MSTAR FIRMWARE
# Generated by: Mstar Unpacking Tool v1.7.2
# Build Time: 08/05/2024 09:07:07 p. m.

# File Partition: tvconfig
filepartload 0x20200000 $(UpgradeImage) 0x4000 0x3C00000
mmc erase.p tvconfig
mmc write.p 0x20200000 tvconfig 0x3C00000 1

# File Partition: set_config
setenv CtvUpgrade_complete 1
setenv sync_mmap 1
setenv db_table 0
saveenv
printenv

El motivo de extraer las particiones de un volcado RAW de la e-MMC, es tan solo para su estudio y para extraer datos como el logotipo y los archivos referentes al control remoto para poder usarlos en otro TV del cual tenemos un firmware.
Teniendo un firmware original podemos obtener los datos que se necesitan para crear un script válido y ejecutable.
 
Actualización v3.5

.- Se agregó un inyector con el cual podemos insertar en el volcado de la e-MMC la partición que hemos modificado.
Esto es algo muy útil, ya que no necesitaremos ningún firmware original para crear un script de instalación.
Simplemente, extraemos las particiones del volcado, modificamos la necesaria y la inyectamos nuevamente al volcado.
El proceso que se realiza, ingresa la partición en el mismo offset en donde esta se extrajo, conservando el mismo tamaño.
¿Por qué quedará del mismo tamaño si estoy modificando la partición?
Porque al ser particiones Ext4, se cuenta con un espacio extra o libre.
Así que mientras este espacio no se supere, la partición podrá ser regenerada e inyectada nuevamente, exactamente con el mismo tamaño.
Si la partición no cuenta con el espacio libre suficiente, e ingresamos archivos que lo superen, la partición no será inyectada y se notificará con un mensaje.

Paso a explicar su uso...
MSDEv350.jpg

Para acceder a esta nueva utilidad, debemos presionar el botón: ImageInjectorButton.jpg
Nos aparecerá la ventana del Inyector...
Image Injector.jpg

1.- Seleccionar el volcado de la e-MMC "Extracted RAW e-MMC Image".
2.- Seleccionar la partición original extraída "Original Ext4 Image (Only for get information)".
3.- Seleccionar el directorio con los archivos modificados "Directory with Extracted Files".
Nota: por defecto este directorio se establece automáticamente y será necesario verificar que la ruta sea correcta.
Si no es correcta, se notificará con un mensaje.
4.- Establecer el offset de inyección "Injection Offset (Hex)".
El offset lo debemos obtener del archivo "part_info.txt" que se genera tras la extracción de las particiones del volcado de la e-MMC.
Se encuentra en la sección: "First block"
Ejemplo:
part_info.jpg
Lo seleccionado es el offset que debemos establecer y que corresponde a la partición a inyectar.
El programa se encargará de convertir este offset al del bloque en el volcado.

Ya establecidos los datos correctos, se puede proceder con la inyección de la partición.

Resultado:
Result.jpg

Importante:
El programa no crea copia de seguridad del volcado, así que deben tener un respaldo por si se llegan a equivocar con los datos ingresados.
El inyector solo trabaja con particiones Ext4.

Recuerden que esta aplicación ya cuenta con todo lo necesario para este proceso.
.- El extractor del volcado en una memoria USB sin formato.
.- El extractor de particiones del volcado.
.- El extractor de archivos de particiones.
.- La utilidad de formateo de memorias USB.
.- El grabador del volcado a una memoria USB.

Espero que sea de utilidad.
 

Adjuntos

  • Mstar Dump Extractor v3.5.rar
    1.2 MB · Visitas: 97
Actualización v3.5

.- Se agregó un inyector con el cual podemos insertar en el volcado de la e-MMC la partición que hemos modificado.
Esto es algo muy útil, ya que no necesitaremos ningún firmware original para crear un script de instalación.
Simplemente, extraemos las particiones del volcado, modificamos la necesaria y la inyectamos nuevamente al volcado.
El proceso que se realiza, ingresa la partición en el mismo offset en donde esta se extrajo, conservando el mismo tamaño.
¿Por qué quedará del mismo tamaño si estoy modificando la partición?
Porque al ser particiones Ext4, se cuenta con un espacio extra o libre.
Así que mientras este espacio no se supere, la partición podrá ser regenerada e inyectada nuevamente, exactamente con el mismo tamaño.
Si la partición no cuenta con el espacio libre suficiente, e ingresamos archivos que lo superen, la partición no será inyectada y se notificará con un mensaje.

Paso a explicar su uso...
Ver el archivo adjunto 317521

Para acceder a esta nueva utilidad, debemos presionar el botón: Ver el archivo adjunto 317522
Nos aparecerá la ventana del Inyector...
Ver el archivo adjunto 317524

1.- Seleccionar el volcado de la e-MMC "Extracted RAW e-MMC Image".
2.- Seleccionar la partición original extraída "Original Ext4 Image (Only for get information)".
3.- Seleccionar el directorio con los archivos modificados "Directory with Extracted Files".
Nota: por defecto este directorio se establece automáticamente y será necesario verificar que la ruta sea correcta.
Si no es correcta, se notificará con un mensaje.
4.- Establecer el offset de inyección "Injection Offset (Hex)".
El offset lo debemos obtener del archivo "part_info.txt" que se genera tras la extracción de las particiones del volcado de la e-MMC.
Se encuentra en la sección: "First block"
Ejemplo:
Ver el archivo adjunto 317525
Lo seleccionado es el offset que debemos establecer y que corresponde a la partición a inyectar.
El programa se encargará de convertir este offset al del bloque en el volcado.

Ya establecidos los datos correctos, se puede proceder con la inyección de la partición.

Resultado:
Ver el archivo adjunto 317541

Importante:
El programa no crea copia de seguridad del volcado, así que deben tener un respaldo por si se llegan a equivocar con los datos ingresados.
El inyector solo trabaja con particiones Ext4.

Recuerden que esta aplicación ya cuenta con todo lo necesario para este proceso.
.- El extractor del volcado en una memoria USB sin formato.
.- El extractor de particiones del volcado.
.- El extractor de archivos de particiones.
.- La utilidad de formateo de memorias USB.
.- El grabador del volcado a una memoria USB.

Espero que sea de utilidad.
Buenas aquí lo que debo obtener con esta aplicación por medio del inject file sería un dump modificado que puedo volver a cargar con el Rt809h, y si es así que estaría yo haciendo mal pues no obtengo el resultado esperado, adjunto fotos del proceso cuando me da error y cuando muestra que es satisfactorio sin embargo no obtengo el dump modificado, atentamente espero respuesta.

Estas son otras pruebas realizadas, en una de las pruebas que se muestra error el directorio se seleccionó de manera automática, en la que se muestra satisfactorio es cuando se seleccionó una carpeta nueva en escritorio.
 

Adjuntos

  • 20240531_115836.jpg
    20240531_115836.jpg
    268.8 KB · Visitas: 22
  • 20240531_115809.jpg
    20240531_115809.jpg
    256.7 KB · Visitas: 21
  • 20240531_115235.jpg
    20240531_115235.jpg
    238.5 KB · Visitas: 17
  • 20240531_143118.jpg
    20240531_143118.jpg
    273 KB · Visitas: 17
  • 20240531_143029.jpg
    20240531_143029.jpg
    274.5 KB · Visitas: 17
  • 20240531_142943.jpg
    20240531_142943.jpg
    225.8 KB · Visitas: 20
Atrás
Arriba