← Tutti gli articoli

Come è fatto un pacchetto firmware USB di un TV

Un file firmware per l’aggiornamento via USB sembra un unico blocco opaco, ma dentro è una pila di container: un involucro esterno, uno script o una tabella e le immagini delle partizioni, spesso compresse. Conoscere i livelli ti dice cosa puoi leggere, modificare e ricostruire.

Fa parte della Guida a firmware e dump.

Perché guardare dentro

  • Per trovare le stringhe di versione, modello e SoC prima di flashare un file sul TV sbagliato.
  • Per vedere quali partizioni il pacchetto aggiorna e quali lascia intatte.
  • Per adattare un pacchetto a un pannello o a un telecomando diverso, vedi la pagina delle funzionalità.

I livelli

  1. Container esterno. A seconda del produttore può essere un archivio semplice (tar, zip), un formato proprietario (il programma riconosce LG EPK, Philips UPG e Android OTA) o un binario grezzo con un’intestazione.
  2. Script o tabella. I pacchetti basati su MStar iniziano con uno script di testo (comandi come filepartload) che dice al bootloader quale parte del file va in quale regione della flash. Altre famiglie usano una tabella nell’intestazione.
  3. Immagini delle partizioni. I contenuti tipici sono un kernel, un DTB, un initramfs (cpio) e immagini di file system come squashfs, cramfs, ext4, UBI/UBIFS o JFFS2, oltre a immagini Android sparse e boot.img.
  4. Compressione. gzip, xz, lzma, bzip2, zstd e lz4 sono tutti involucri comuni attorno a quelle immagini e possono essere annidati.

Leggere un file sconosciuto passo dopo passo

  1. Annota la dimensione e un hash (MD5 o SHA-256) per poter capire in seguito se il file è cambiato.
  2. Guarda i byte dell’intestazione e le stringhe leggibili: versioni, nomi di modelli, nomi di SoC, righe di script.
  3. Cerca le firme. Un numero magico da solo prova poco, perciò un buon scanner convalida anche la struttura che trova (dimensioni, intestazioni) per evitare falsi positivi.
  4. Controlla l’entropia. Un’entropia alta e uniforme indica dati compressi o cifrati; un’entropia molto bassa indica riempimento vuoto; le regioni miste indicano di solito contenuto reale di un file system.
  5. Decomprimi livello per livello, con un limite alla profondità di annidamento, in una cartella pulita.

Se un’immagine ha entropia alta e nessuna firma riconoscibile, probabilmente è cifrata o usa una compressione proprietaria. Non considerarlo un danno e non provare a rimetterla sul dispositivo dopo una modifica con l’editor esadecimale: i controlli di firma o di checksum nel bootloader potrebbero rifiutarla o, peggio, accettare un file corrotto. NON VERIFICATO Quali famiglie controllano le firme varia da modello a modello; consulta la documentazione del produttore.

Errori tipici

  • Flashare un file scelto solo in base alla dimensione dello schermo. Confronta gli identificativi di scheda e pannello nelle stringhe.
  • Modificare un’immagine sul posto lasciando il vecchio checksum o il vecchio campo della dimensione.
  • Decomprimere due volte nella stessa cartella, così i vecchi file si mescolano ai nuovi.
  • Pensare che “decompresso senza errori” significhi “ricomponibile in modo identico”. I livelli di compressione e l’ordine dei file cambiano il risultato.

Come si fa in FW Tool

  • La scheda “Firmware” mostra un riepilogo: dimensione, MD5 e SHA-256, intestazione, stringhe interessanti.
  • Cerca le firme elencate sopra e le convalida; analizza anche gli script MStar e divide il file per partizione.
  • Una mappa dell’entropia segna le aree compresse o cifrate e il riempimento (una casella, attiva per impostazione predefinita).
  • La decompressione ricorsiva ha un’impostazione di profondità di annidamento (da 0 a 8, predefinita 3). Alcuni file system richiedono strumenti esterni come 7-Zip o unsquashfs, se installati.
  • Per i pacchetti basati su tar il programma può ricostruire il pacchetto dopo la sostituzione dei file.
  • La scheda “Adattamento” legge un pacchetto supportato, mostra le impostazioni di pannello e telecomando che trova e crea un pacchetto modificato. Vedi anche mappatura LVDS e profondità colore.

Prima di intervenire su un pacchetto, se puoi fai un dump del dispositivo funzionante: vedi confronto di dump e hash.

FAQ

Ogni file firmware può essere decompresso?

No. I container cifrati o firmati mostrano entropia alta e nessuna struttura utilizzabile. Il programma ti dice cosa è riuscito a identificare; non può decifrare ciò per cui non ha la chiave.

Quale profondità devo usare?

Parti dal valore predefinito e aumentalo solo se il risultato contiene ancora archivi. Una profondità maggiore comporta più spazio su disco e più tempo.

I dati decompressi si possono flashare in sicurezza?

I file decompressi servono per l’ispezione. Flasha solo un pacchetto completo che hai ricostruito o ottenuto integro, su un dispositivo di cui hai un dump a cui tornare.

Una lista di controllo pratica prima del flash

  • Gli identificativi di modello, scheda e pannello nel file corrispondono al TV che stai riparando.
  • La dimensione e l’hash del file corrispondono a quelli dichiarati dalla fonte, se li dichiara. Un download interrotto a metà è una causa frequente di aggiornamenti falliti.
  • La chiavetta USB è formattata come richiede il produttore (di solito FAT32) e contiene solo il file di aggiornamento nella cartella o con il nome previsti. NON VERIFICATO I nomi dei file e le regole sulle cartelle variano da piattaforma a piattaforma; consulta le istruzioni del produttore.
  • Hai un dump della memoria attuale, così un aggiornamento fallito può essere annullato.
  • L’alimentazione di rete è stabile e il TV non verrà spento durante l’aggiornamento.

Un pacchetto che sembra a posto su un PC può comunque fallire sul TV per motivi che il PC non vede, come un controllo di versione nel bootloader. Considera l’analisi un modo per ridurre il rischio, non per eliminarlo.

Scarica la demo


Prova FW Tool (demo)