← Tutti gli articoli

Confronto di due dump eMMC/SPI: hash e differenze

Un dump è utile solo se è una copia fedele. Due letture dello stesso chip dovrebbero coincidere bit per bit; se non è così, c’è qualcosa che non va nei contatti, nell’alimentazione o nel lettore. Gli hash e un confronto byte per byte ti dicono quale.

Fa parte della Guida a firmware e dump.

Quando serve confrontare

  • Subito dopo aver letto un chip: copia 1 contro copia 2.
  • Prima e dopo una riparazione: cosa ha cambiato il TV nella propria memoria?
  • Un apparecchio funzionante contro uno guasto con la stessa scheda.
  • Dopo la scrittura: rileggi e confronta con il file che hai scritto.

Passo dopo passo

  1. Leggi il chip due volte senza toccare nulla tra una lettura e l’altra. Per la procedura della prima volta vedi la lettura di un dump eMMC e la piedinatura SOIC8 della flash SPI.
  2. Controlla le dimensioni dei file. Devono essere identiche. Una dimensione diversa significa che una lettura si è interrotta o che è stata letta la regione sbagliata.
  3. Calcola un hash di ciascun file. CRC32 è rapido e va bene per rilevare errori accidentali; MD5, SHA-1 e SHA-256 sono migliori per registrare un riferimento. Hash uguali significano file identici.
  4. Se gli hash differiscono, esegui un confronto byte per byte per ottenere l’elenco degli intervalli diversi (offset e lunghezza).
  5. Interpreta lo schema, poi correggi la causa e leggi di nuovo.

Leggere le differenze

Schema Significato probabile
Pochi byte singoli sparsi o piccoli blocchi, diversi a ogni lettura Contatto instabile o alimentazione al limite; risistema i fili e accorciali
Ampia regione di 0x00 o 0xFF in una delle copie La lettura è fallita o si è fermata; controlla il lettore e l’alimentazione
Le stesse poche aree differiscono sempre tra due TV Dati specifici dell’apparecchio (seriali, MAC, calibrazione) o log; previsto
Differenze solo alla fine Le dimensioni differiscono; la parte comune coincide e la coda viene segnalata a parte

Se un TV è in funzione mentre leggi un’eMMC in-circuit, il suo firmware può scrivere sul chip durante la lettura, quindi due letture valide possono differire. Leggi con il sistema principale non in esecuzione e non dare mai per scontato che una differenza in un’area di log indichi una lettura errata.

Errori tipici

  • Confrontare un dump con un pacchetto firmware aspettandosi che coincidano. Sono cose diverse.
  • Fidarsi di una sola lettura. Una singola lettura può nascondere un cattivo contatto che emerge solo alla seconda.
  • Confrontare dopo aver “corretto” un dump a mano. Calcola prima l’hash dell’originale e conservalo.
  • Ignorare il controllo delle dimensioni.

Come si fa in FW Tool

  • “Riferimenti → Strumenti hex” calcola CRC32, MD5, SHA-1 e SHA-256 in un solo passaggio su un file, con avanzamento e annullamento per i dump grandi.
  • La funzione di confronto lavora byte per byte, in streaming, e restituisce il numero di byte diversi e un elenco di intervalli (offset, lunghezza); l’elenco ha un limite e il programma ti avvisa quando è stato troncato. Se le dimensioni differiscono, viene confrontata la parte comune e la coda viene conteggiata a parte.
  • La stessa scheda può cercare un pattern esadecimale o una stringa di testo (ASCII e UTF-16) e mostrare una classica vista esadecimale con offset e ASCII.
  • Nella scheda “Dump eMMC” la scrittura in un dump è disattivata per impostazione predefinita e si abilita con una casella; fai una copia e verifica il suo hash prima di abilitarla. Vedi tutte le funzionalità.

Una volta verificata la copia, puoi esaminarla come in come è fatto un pacchetto firmware USB.

FAQ

CRC32 basta?

Per accorgersi di una lettura errata, sì. Per una registrazione di riferimento a lungo termine, conserva anche un hash più robusto.

Due buone letture differiscono in pochi punti. Il dump è difettoso?

Non necessariamente. Guarda dove: log, contatori e marche temporali cambiano da soli. Ripeti la lettura e controlla se differiscono sempre gli stessi intervalli.

Posso confrontare una cartella eMMC di immagini delle partizioni?

Calcola l’hash e confronta file per file. Le partizioni che coincidono possono essere spuntate una per una.

Tenere un registro

Per ogni apparecchio annota la marcatura del chip, la dimensione del dump, l’hash e la data. Conserva il dump originale in sola lettura e lavora solo sulle copie. Quando in futuro riceverai lo stesso modello, un hash ti permette di verificare subito se un dump che ti hanno mandato è identico al tuo, senza aprirlo. Se ripari molti TV dello stesso modello, una raccolta di dump verificati diventa una libreria di riferimento per i guasti in cui è sospetto il contenuto della memoria anziché l’hardware.

Un secondo uso del confronto è dopo un tentativo di riparazione. Leggi il chip, cambia una cosa, leggilo di nuovo e confronta: l’elenco degli intervalli mostra esattamente quali aree il TV ha riscritto. È un modo semplice per capire quali partizioni contengono le impostazioni e quali il sistema, e per decidere cosa puoi ripristinare in sicurezza da un backup.

Infine, ricorda che un hash uguale dimostra solo che due file sono identici, non che il contenuto sia buono. Due letture identiche di un chip con una cella difettosa, o di un chip letto attraverso un contatto sempre difettoso, coincideranno e saranno comunque sbagliate. Quando possibile, conferma il dump controllando che la tabella delle partizioni sia leggibile e che i file system si aprano, come descritto in l’articolo sul dump eMMC.

Scarica la demo


Prova FW Tool (demo)