← Todos los artículos

Cómo está construido un paquete de firmware USB de TV

Un archivo de firmware para actualizar por USB parece un bloque opaco, pero por dentro es una pila de contenedores: una envoltura exterior, un script o una tabla, e imágenes de particiones, a menudo comprimidas. Conocer las capas te dice qué puedes leer, cambiar y reconstruir.

Forma parte de la Guía de firmware y volcados.

Por qué mirar dentro

  • Para encontrar las cadenas de versión, modelo y SoC antes de flashear un archivo en un TV equivocado.
  • Para ver qué particiones actualiza el paquete y cuáles deja intactas.
  • Para adaptar un paquete a otro panel o mando a distancia, consulta la página de funciones.

Las capas

  1. Contenedor exterior. Según el fabricante puede ser un archivo simple (tar, zip), un formato propio (el programa reconoce LG EPK, Philips UPG y Android OTA) o un binario sin formato con cabecera.
  2. Script o tabla. Los paquetes basados en MStar empiezan con un script de texto (comandos como filepartload) que indica al bootloader qué parte del archivo va a cada región de la flash. Otras familias usan una tabla de cabecera.
  3. Imágenes de particiones. Las cargas típicas son un kernel, un DTB, un initramfs (cpio) e imágenes de sistemas de archivos como squashfs, cramfs, ext4, UBI/UBIFS o JFFS2, además de imágenes sparse de Android y boot.img.
  4. Compresión. gzip, xz, lzma, bzip2, zstd y lz4 son envolturas habituales de esas imágenes, y pueden estar anidadas.

Leer un archivo desconocido paso a paso

  1. Anota el tamaño y un hash (MD5 o SHA-256) para poder saber más tarde si el archivo ha cambiado.
  2. Mira los bytes de la cabecera y las cadenas legibles: versiones, nombres de modelo, nombres de SoC, líneas de script.
  3. Busca firmas. Un número mágico por sí solo prueba poco, así que un buen escáner también valida la estructura que encuentra (tamaños, cabeceras) para evitar falsos positivos.
  4. Comprueba la entropía. Una entropía alta y plana indica datos comprimidos o cifrados; una entropía muy baja, relleno vacío; las regiones mixtas suelen indicar contenido real de un sistema de archivos.
  5. Desempaqueta capa por capa, con un límite de profundidad de anidamiento, en una carpeta limpia.

Si una imagen tiene entropía alta y ninguna firma reconocible, probablemente está cifrada o usa una compresión propietaria. No lo tomes por un daño y no intentes volver a flashearla después de editarla con un editor hexadecimal: las comprobaciones de firma o de suma de verificación del bootloader pueden rechazarla o, peor aún, aceptar un archivo roto. UNVERIFIED Qué familias comprueban firmas varía según el modelo; consulta la documentación del fabricante.

Errores típicos

  • Flashear un archivo elegido solo por el tamaño de pantalla. Compara los identificadores de placa y de panel en las cadenas.
  • Editar una imagen en el sitio y dejar la suma de verificación o el campo de tamaño antiguos.
  • Desempaquetar dos veces en la misma carpeta, de modo que los archivos viejos se mezclan con los nuevos.
  • Suponer que “se desempaquetó sin errores” significa “se puede volver a empaquetar de forma idéntica”. Los niveles de compresión y el orden de los archivos cambian el resultado.

Cómo se hace en FW Tool

  • La pestaña “Firmware” muestra un resumen: tamaño, MD5 y SHA-256, cabecera, cadenas de interés.
  • Busca las firmas indicadas arriba y las valida; también analiza los scripts de MStar y corta el archivo por particiones.
  • Un mapa de entropía marca las zonas comprimidas o cifradas y el relleno (una casilla, activada por defecto).
  • El desempaquetado recursivo tiene un ajuste de profundidad de anidamiento (de 0 a 8, por defecto 3). Algunos sistemas de archivos necesitan herramientas externas como 7-Zip o unsquashfs, si están instaladas.
  • Para los paquetes basados en tar, el programa puede reconstruir el paquete después de que sustituyas archivos.
  • La pestaña “Adaptación” lee un paquete compatible, muestra los ajustes de panel y de mando a distancia que encuentra y construye un paquete modificado. Consulta también mapeo LVDS y profundidad de bits.

Antes de tocar un paquete, haz un volcado del equipo que funciona si puedes: consulta comparar volcados y hashes.

Preguntas frecuentes

¿Se puede desempaquetar cualquier archivo de firmware?

No. Los contenedores cifrados o firmados mostrarán una entropía alta y ninguna estructura utilizable. El programa te dice lo que ha podido identificar; no puede descifrar lo que no tiene clave para descifrar.

¿Qué profundidad debo usar?

Empieza con el valor por defecto y súbelo solo si el resultado aún contiene archivos comprimidos. Más profundidad implica más espacio en disco y más tiempo.

¿Es seguro flashear los datos desempaquetados?

Los archivos desempaquetados sirven para inspeccionar. Flashea solo un paquete completo que hayas reconstruido u obtenido intacto, en un equipo del que tengas un volcado para volver atrás.

Una lista de comprobación práctica antes de flashear

  • Los identificadores de modelo, placa y panel del archivo coinciden con el TV que estás reparando.
  • El tamaño y el hash del archivo coinciden con lo que indica la fuente, si los indica. Una descarga interrumpida a medias es un motivo frecuente de actualizaciones fallidas.
  • La memoria USB está formateada como exige el fabricante (lo habitual es FAT32) y contiene solo el archivo de actualización en la carpeta o con el nombre esperados. UNVERIFIED Los nombres de archivo y las reglas de carpeta varían según la plataforma; consulta las instrucciones del fabricante.
  • Tienes un volcado de la memoria actual, de modo que una actualización fallida se pueda revertir.
  • La red eléctrica es estable y el TV no se apagará durante la actualización.

Un paquete que se ve bien en un PC aún puede fallar en el TV por motivos que el PC no ve, como una comprobación de versión en el bootloader. Considera el análisis como una forma de reducir el riesgo, no de eliminarlo.

Descargar la demo


Probar FW Tool (demo)