← Alle Artikel

Zwei eMMC/SPI-Dumps vergleichen: Hashes und Unterschiede

Ein Dump ist nur nützlich, wenn er eine getreue Kopie ist. Zwei Lesevorgänge desselben Chips sollten Bit für Bit übereinstimmen; ist das nicht der Fall, stimmt etwas mit den Kontakten, der Stromversorgung oder dem Lesegerät nicht. Hashes und ein Byte-Vergleich zeigen, was.

Teil des Leitfadens Firmware und Dumps.

Wann Sie vergleichen müssen

  • Direkt nach dem Auslesen eines Chips: Kopie 1 gegen Kopie 2.
  • Vor und nach einer Reparatur: Was hat der Fernseher in seinem eigenen Speicher geändert?
  • Ein funktionierendes Gerät gegen ein defektes mit derselben Platine.
  • Nach dem Schreiben: zurücklesen und mit der geschriebenen Datei vergleichen.

Schritt für Schritt

  1. Lesen Sie den Chip zweimal, ohne zwischen den Lesevorgängen etwas anzufassen. Den Ablauf für das erste Mal finden Sie unter eMMC-Dump auslesen und SPI-Flash-SOIC8-Pinbelegung.
  2. Prüfen Sie die Dateigrößen. Sie müssen identisch sein. Eine abweichende Größe bedeutet, dass ein Lesevorgang abgebrochen wurde oder die falsche Region gelesen wurde.
  3. Berechnen Sie einen Hash jeder Datei. CRC32 ist schnell und genügt, um zufällige Fehler zu erkennen; MD5, SHA-1 und SHA-256 eignen sich besser zur Dokumentation einer Referenz. Gleiche Hashes bedeuten identische Dateien.
  4. Unterscheiden sich die Hashes, führen Sie einen Byte-Vergleich durch, um die Liste der abweichenden Bereiche (Offset und Länge) zu erhalten.
  5. Deuten Sie das Muster, beheben Sie die Ursache und lesen Sie erneut.

Die Unterschiede deuten

Muster Wahrscheinliche Bedeutung
Einige verstreute einzelne Bytes oder kleine Blöcke, bei jedem Lesen anders Instabiler Kontakt oder knappe Stromversorgung; Drähte neu ansetzen und kürzer machen
Großer Bereich aus 0x00 oder 0xFF in einer Kopie Lesevorgang fehlgeschlagen oder abgebrochen; Lesegerät und Versorgung prüfen
Immer dieselben wenigen Bereiche unterscheiden sich zwischen zwei Fernsehern Gerätespezifische Daten (Seriennummern, MAC, Kalibrierung) oder Logs; erwartbar
Unterschiede nur am Ende Die Größen unterscheiden sich; der gemeinsame Teil stimmt überein, der Rest wird gesondert gemeldet

Läuft ein Fernseher, während Sie ein eMMC in der Schaltung lesen, kann seine eigene Firmware während des Lesens auf den Chip schreiben, sodass zwei gültige Lesevorgänge voneinander abweichen können. Lesen Sie bei nicht laufendem Hauptsystem und gehen Sie nie davon aus, dass ein Unterschied in einem Log-Bereich ein fehlerhaftes Lesen bedeutet.

Typische Fehler

  • Einen Dump mit einem Firmware-Paket vergleichen und Übereinstimmung erwarten. Das sind verschiedene Dinge.
  • Einem einzelnen Lesevorgang vertrauen. Ein einzelner Lesevorgang kann einen schlechten Kontakt verbergen, der erst beim zweiten auffällt.
  • Vergleichen, nachdem ein Dump von Hand „repariert“ wurde. Bilden Sie zuerst den Hash des Originals und bewahren Sie es auf.
  • Die Größenprüfung ignorieren.

So geht das in FW Tool

  • „Referenz, Hex-Werkzeuge“ berechnet CRC32, MD5, SHA-1 und SHA-256 in einem Durchlauf über eine Datei, mit Fortschrittsanzeige und Abbruch bei großen Dumps.
  • Die Vergleichsfunktion arbeitet Byte für Byte im Streaming und liefert die Anzahl der abweichenden Bytes und eine Liste von Bereichen (Offset, Länge); die Liste ist begrenzt, und das Programm meldet, wenn sie gekürzt wurde. Unterscheiden sich die Größen, wird der gemeinsame Teil verglichen und der Rest gesondert gezählt.
  • Dieselbe Registerkarte kann nach einem Hex-Muster oder einer Zeichenkette suchen (ASCII und UTF-16) und eine klassische Hex-Ansicht mit Offsets und ASCII anzeigen.
  • In der Registerkarte „eMMC-Dump“ ist das Schreiben in einen Dump standardmäßig ausgeschaltet und wird über ein Kontrollkästchen aktiviert; erstellen Sie eine Kopie und prüfen Sie deren Hash, bevor Sie es aktivieren. Siehe alle Funktionen.

Sobald Ihre Kopie geprüft ist, können Sie sie untersuchen wie in Aufbau eines USB-Firmware-Pakets.

FAQ

Reicht CRC32?

Um ein fehlerhaftes Lesen zu erkennen, ja. Für eine langfristige Referenz speichern Sie zusätzlich einen stärkeren Hash.

Zwei gute Lesevorgänge unterscheiden sich an einigen Stellen. Ist der Dump schlecht?

Nicht unbedingt. Schauen Sie, wo: Logs, Zähler und Zeitstempel ändern sich von selbst. Wiederholen Sie das Lesen und sehen Sie nach, ob dieselben Bereiche abweichen.

Kann ich einen eMMC-Ordner mit Partition-Images vergleichen?

Bilden Sie Hashes und vergleichen Sie Datei für Datei. Übereinstimmende Partitionen können einzeln abgehakt werden.

Aufzeichnungen führen

Notieren Sie für jedes Gerät die Chip-Kennzeichnung, die Größe des Dumps, den Hash und das Datum. Bewahren Sie den Original-Dump schreibgeschützt auf und arbeiten Sie nur mit Kopien. Wenn Sie später dasselbe Modell erhalten, können Sie anhand des Hashes sofort prüfen, ob ein Ihnen zugesandter Dump mit Ihrem identisch ist, ohne ihn zu öffnen. Wenn Sie viele Fernseher eines Modells warten, wird eine Sammlung geprüfter Dumps zu einer Referenzbibliothek für Fehler, bei denen der Speicherinhalt und nicht die Hardware im Verdacht steht.

Eine zweite Verwendung des Vergleichs ist nach einem Reparaturversuch. Lesen Sie den Chip, ändern Sie eine Sache, lesen Sie ihn erneut und vergleichen Sie: Die Liste der Bereiche zeigt genau, welche Bereiche der Fernseher neu geschrieben hat. So lernen Sie einfach, welche Partitionen Einstellungen und welche das System enthalten, und entscheiden, was Sie gefahrlos aus einem Backup wiederherstellen können.

Denken Sie schließlich daran, dass ein übereinstimmender Hash nur beweist, dass zwei Dateien gleich sind, nicht dass der Inhalt gut ist. Zwei identische Lesevorgänge eines Chips mit einer defekten Zelle oder eines über einen durchgehend fehlerhaften Kontakt gelesenen Chips stimmen überein und sind trotzdem falsch. Bestätigen Sie den Dump nach Möglichkeit, indem Sie prüfen, ob die Partitionstabelle lesbar ist und sich Dateisysteme öffnen lassen, wie in dem Artikel zum eMMC-Dump beschrieben.

Demo herunterladen


FW Tool testen (Demo)