desktop

Mstar Firmware Unpacker & Repacker

Aunque probé muchas combinaciones, sigo recibiendo el mismo error. No pude descubrir la fuente del error.
Eso se puede saber viendo los mensajes de depuración por consola RS-232
Esto ya lo había comentado en el post #113
Me gustaría probarlo si simplemente descomprimes y vuelves a empaquetar el software que te envié y lo envías. No se me ocurre ninguna otra solución.
En enlace ya está caducado.
 
Buenos días. ¿Es posible implementar la modificación de los flags "Comprimido" y "Dividido"?
Si editas archivos y son más grandes y la configuración inicial no incluye compresión ni división, la carga desde USB se detiene.

Gracias.
 
Última edición por un moderador:
Las características "Compressed", "Splitted" y "Sparse" están definidas en el script original del firmware.
Dentro del embalaje del firmware no debe haber archivos que superen los 160 MB.
Estos archivos son del tipo LZO, Sparse y sin compresión pero dividido, y cada trozo será de 150 MB.
Por lo tanto, cualquier partición extraída que supere los 160 MB será comprimida o dividida según su tipo durante el embalaje.
Esto solo se ejecuta si está definido en el script y guardado en el archivo del proyecto.
Entonces, es lógico que la instalación se detenga si encuentra un archivo superior a 160 MB.
Por eso se debe respetar su tamaño, editando la partición original o creando una nueva pero del mismo tamaño.

Voy a ver si puedo encontrar una manera verificar esto, o de implementar la edición de las características.
Esto es algo que compromete superar la capacidad de la e-MMC, pero quedará bajo riesgo propio.
 
MSUT Project Editor v1.0

Editor del archivo de proyecto para Mstar Unpacking Tool.
Solo se permite modificar "Splitted", "Sparse" y "Footer Type".
Con esto es suficiente para que una partición superior a 150 MB pueda ser dividida.


Mstar Unpacking Tool v2.0.0

Varias mejoras.
 

Adjuntos

  • MSUT Project Editor v1.0.rar
    87.7 KB · Visitas: 66
  • MSUT v2.0.0.rar
    1.6 MB · Visitas: 87
MSUT Project Editor v1.0

Editor del archivo de proyecto para Mstar Unpacking Tool.
Solo se permite modificar "Splitted", "Sparse" y "Footer Type".
Con esto es suficiente para que una partición superior a 150 MB pueda ser dividida.


Mstar Unpacking Tool v2.0.0

Varias mejoras.
Hermano, mucho tiempo sin verte. Tengo el firmware de MediaTek aquí. Después de editarlo, la máquina flash no reconoce el firmware.
Parece casi idéntico a Morning Star.
Image_1724400100929.pngImage_1724400099259.png

Lo he intentado todo, pero el flash no funciona y no sé por qué.
 
Última edición:
Lo que muestras son imágenes del firmware original, no del modificado, así que no se puede saber qué estás haciendo.
Tampoco mencionas qué es lo que modificas ni cómo lo haces.
Y de cualquier forma, mostrar imágenes del editor hexadecimal, en este caso no sirve de nada.
Mejor explica qué es lo que quieres modificar y el paso por paso de cómo lo estás realizando.
 
Lo que muestras son imágenes del firmware original, no del modificado, así que no se puede saber qué estás haciendo.
Tampoco mencionas qué es lo que modificas ni cómo lo haces.
Y de cualquier forma, mostrar imágenes del editor hexadecimal, en este caso no sirve de nada.
Mejor explica qué es lo que quieres modificar y el paso por paso de cómo lo estás realizando.
Después de la descompresión, no se realizaron operaciones en la partición y luego la partición se empaquetó y actualizó, lo que resultó en irreconocible.
Intenté muchas veces usar su herramienta y mstarbintool pero finalmente fallé. No sé por qué no se reconoce la máquina flash.
En un editor hexadecimal parece idéntico al firmware Morningstar.
 
Última edición:
no se realizaron operaciones en la partición
¿Qué partición?
luego la partición se empaquetó y actualizó
¿Qué Pre directivas, Pre-Environment y Post Environment se usó?
lo que resultó en irreconocible.
¿Con qué tipo de Footer CRC se compiló?
En un editor hexadecimal parece idéntico al firmware Morningstar.
La mayoría de los firmware basados en el Script de Mstar son similares entre sí.
 
¿Qué partición?

¿Qué Pre directivas, Pre-Environment y Post Environment se usó?

¿Con qué tipo de Footer CRC se compiló?

La mayoría de los firmware basados en el Script de Mstar son similares entre sí.
Utilice sus herramientas para descomprimirlo, no haga nada con la partición img y luego empaquete todo (excepto mboot y sboot).
 
Entorno anterior:
mmc slc 0 1
mmc rmgpt
mmc create chfactory 0x00200000
mmc create chfactory_bak 0x00200000
mmc create tvcertificate 0x00800000
mmc create eeprom_a 0x00100000
mmc create tvconfig 0x02000000
mmc create misc 0x00080000
mmc create recovery 0x02000000
mmc create boot 0x02000000
mmc create optee 0x00600000
mmc create armfw 0x00010000
mmc create RTPM 0x00040000
mmc create dtb 0x00100000
mmc create frc 0x00100000
mmc create vbmeta_a 0x00100000
mmc create system 0x51400000
mmc create cache 0x56000000
mmc create vendor 0x0FA00000
mmc create tvservice 0x08C00000
mmc create factory_a 0x00500000
mmc create chperm 0x05000000
mmc create hwcfg 0x04600000
mmc create firmhwcfg 0x00800000
mmc create chbt 0x00800000
mmc create demura 0x00600000
mmc create tv 0x00800000
mmc create userdata 0x5DC00000

Post-ambiente:
setenv recoverycmd mmc read.p 0x23000000 dtb 0x00100000\; mmc read.p 0x25000000 recovery 0x02000000\; bootm 0x25000000
saveenv
setenv bootcmd mmc read.p 0x23000000 dtb 0x00100000\; mmc read.p 0x25000000 boot 0x02000000\; bootm 0x25000000
saveenv
setenv MODEL_ONEBIN_SUPPORT 0
setenv bootargs console
saveenv
setenv bootargs console=ttyS0,115200 androidboot.console=ttyS0 init=/init CORE_DUMP_PATH=/data/core_dump.%%p.gz KDebug=1 delaylogo=true security=selinux platform=sn SD_CONFIG=2 tee_mode=optee pm_path=/tvconfig/config/PM.bin loop.max_part=7
setenv bootlogo_gopidx 2
setenv GOP_SET_MUX 1:0:2:3
setenv bootlogo_buffer E_MMAP_ID_BOOTLOGO_BUFFER
setenv str_crc 2
setenv db_table 0
setenv verify n
setenv WDT_ENABLE 1
setenv sync_mmap 1
setenv CONFIG_PATH /vendor/tvconfig/config
setenv mboot_default_env 0
setenv MAP_TYPE MI
setenv MI_MAP_PARTITION tvconfig
setenv MI_MAP_PATH config/MMAP_MI.h
setenv customer_ini_path /tvconfig/config/model/Customer_1.ini
setenv bootlogo_buffer
setenv _BootlogoFile /tvconfig/bootlogo.jpg
setenv devicestate lock
setenv close_log yes
setenv adb_enable_ini_path /tvconfig/config/adb/adb_enable.ini
setenv first_setup 0
saveenv
setenv MstarUpgrade_complete 1
setenv sync_mmap 1
setenv db_table 0
saveenv
printenv
Footer CRC :12345678
Agregué todas las variables de entorno. La primera vez que encontré el entorno optee setenv MODEL_ONEBIN_SUPPORT 0, no tenía idea de lo que significaba.
 
Última edición:
Footer CRC :12345678
Eso no es el Footer CRC, es el Magic Footer.
Para determinar el tipo de Footer es necesario que lo obtengas con --> Footer Type.jpg
El tipo de Footer obtenido será guardado en el archivo del proyecto y con ese Footer será compilado el firmware.
Se puede cambiar al compilar, pero es importante que se determine.

Cuando únicamente empacas para actualizar, tan solo esto es necesario en Post Environment:
Código:
setenv MstarUpgrade_complete 1
setenv sync_mmap 1
setenv db_table 0
saveenv

Adjunto un ejemplo empacando únicamente la partición tvconfig.img.
Incluye el firmware compilado.
 

Adjuntos

  • 000upgrade_ZLM104Gi_V1.00006_50ff7453.rar
    6 MB · Visitas: 18
Eso no es el Footer CRC, es el Magic Footer.
Para determinar el tipo de Footer es necesario que lo obtengas con --> Ver el archivo adjunto 320267
El tipo de Footer obtenido será guardado en el archivo del proyecto y con ese Footer será compilado el firmware.
Se puede cambiar al compilar, pero es importante que se determine.

Cuando únicamente empacas para actualizar, tan solo esto es necesario en Post Environment:
Código:
setenv MstarUpgrade_complete 1
setenv sync_mmap 1
setenv db_table 0
saveenv

Adjunto un ejemplo empacando únicamente la partición tvconfig.img.
Incluye el firmware compilado.
¿Es el CRC de XGIMI? Pero él viene de Changhong TV.
 
Lo referente a la obtención de los CRC32 que se muestran en el Footer ya lo expliqué anteriormente.

En el caso del firmware que mencionas en el post #124 (000upgrade_ZLM104Gi_V1.00006_50ff7453.bin) se obtiene así:
XGIMI_STANDARDT.jpg
Zona en rojo: Magic Footer
Zona azul: CRC32 del Header (0x0 a 0x3FFF) Tamaño: 0x4000
Zona amarilla: Header + Datos + Magic Footer + CRC32 del Header (0x00 a 0x702FC00B) Tamaño: 0x702FC00C
Zona violeta: Primeros 16 bytes del Header.

Resultando en un Footer XGIMI_STANDARDT

Obtención manual con el editor hexadecimal HXD:

CRC32 del Header...
Presionar las teclas Ctrl + E e ingresar los siguientes datos:
Header CRC32.jpg
Ir al menú -> Análisis/Sumas de verificación y seleccionar CRC-32
Generar sumas de verificación.jpg
Como tenemos datos seleccionados, el resultado será el siguiente:
Resultado Header.jpg
Este resultado corresponde a la zona azul...
Azul.jpg
CRC32 de la zona de datos:
Posicionar el cursor justamente en el primer byte del CRC32 del Header...
Primer CRC32.jpg
Presionar las teclas Ctrl + E e ingresar los siguientes datos:
Generar sumas de verificación 2.jpg
Repetir el paso para generar sumas de verificación y se obtendrá el siguiente resultado:
Resultado Datos.jpg
Este resultado corresponde a la zona amarilla...
Amarillo.jpg

Si esta vez no lo logras entender, lo siento, porque ya lo expliqué con peras y manzanas.
 
Si esta vez no lo logras entender, lo siento, porque ya lo expliqué con peras y manzanas.
Muchas gracias por tu esmerada enseñanza. Ya sé sobre CRC32.Pero, ¿qué tiene esto que ver con "Lo referente a la obtencion de los CRC32 que se muestran en el Footer"?
Pero esto no resolvió el problema que encontré. Actualicé el archivo tvconfig que empaquetaste y todavía no fue reconocido.
Este televisor probablemente se fabricó este año. ¿No entiendo por qué no se reconoce?
 
Última edición:
¿qué tiene esto que ver con "Lo referente a la obtención de los CRC32 que se muestran en el Footer"?
A que no importa que el firmware sea Changhong o de otra empresa, porque usan el mismo sistema para establecer el Footer.
Actualicé el archivo tvconfig que empaquetaste y todavía no fue reconocido.
Si tiene un nombre incorrecto, no será reconocido.
Este televisor probablemente se fabricó este año.
El firmware indica la fecha de creación: "Build TIME : 2022-08-29 15:27:37"
Su estructura y script no tienen nada diferente a firmware anteriores.
No entiendo por qué no se reconoce.
¿Qué muestra el log de depuración?
 
Atrás
Arriba