Firmware Validierungstools
Dieser Leitfaden beschreibt die internen Tools, die verwendet werden, um die Firmware-Assemblierungslogik der ELRS Mobile-Anwendung anhand offizieller „Golden“-Binärdateien zu validieren.
Ground Truth vs. Konfigurator-Binärdateien
Bei der Durchführung von Validierungsprüfungen werden Sie möglicherweise feststellen, dass von ELRS Mobile generierte Binärdateien perfekt mit dem offiziellen ExpressLRS Web Flasher übereinstimmen, sich jedoch geringfügig von Binärdateien unterscheiden, die mit dem lokalen ExpressLRS Configurator (Python) erstellt wurden.
Dies ist ein erwartetes Verhalten. Der interne C++ JSON-Parser des ESP32 ignoriert Leerzeichen, was bedeutet, dass beide Binärdateien auf der Hardware identisch ausgeführt werden, obwohl sie einen strengen Byte-für-Byte-SHA256-Vergleich aufgrund von Minifizierungsunterschieden nicht bestehen.
1. ExpressLRS Logic Validator (Dart)
Abschnitt betitelt „1. ExpressLRS Logic Validator (Dart)“Speicherort: firmware_testing/scripts/dart/logic_validator.dart
Der Logic Validator ist ein leistungsstarkes Bit-Ebenen-Vergleichstool. Es wurde entwickelt, um zu überprüfen, ob die interne Patching- und Assemblierungslogik von ELRS Mobile die offizielle ExpressLRS-Logik widerspiegelt.
Hauptfunktionen
Abschnitt betitelt „Hauptfunktionen“- Bit-Ebenen-Analyse: Identifiziert exakte Bit-Offset-Fehler innerhalb abweichender Bytes.
- Interaktive Auswahl: Listet alle in
firmware_testing/binaries/gefundenen Binärdateien auf. - Zero-Copy Speicherverwaltung: Optimiert für die Hochgeschwindigkeitsanalyse großer Firmware-Dateien.
Anwendung
Abschnitt betitelt „Anwendung“- Binärdateien vorbereiten: Legen Sie die generierten
.bin- oder.gz-Dateien infirmware_testing/binaries/ab. - Einrichten & Ausführen:
Terminal-Fenster cd firmware_testing/scripts/dart/dart pub getdart run logic_validator.dart
2. Ground Truth Auditor (Python)
Abschnitt betitelt „2. Ground Truth Auditor (Python)“Speicherort: firmware_testing/scripts/python/audit_tool.py
Der Auditor ist ein eigenständiges, abhängigkeitsfreies Skript zur „Ground Truth“-Verifizierung. Es analysiert den 2704 Byte großen Konfigurationsblock, der an jedes ExpressLRS-Firmware-Image angehängt ist.
Es überprüft, ob die tatsächlich auf das Gerät geflashten Metadaten (Product Name, Lua Name, Hardware Layout und Options) korrekt sind, unabhängig von etwaigen Layout-Unterschieden im Basis-Firmware-Code.
Anwendung
Abschnitt betitelt „Anwendung“- Direkt ausführen:
Terminal-Fenster python3 firmware_testing/scripts/python/audit_tool.py [file1] [file2]
3. Binärer Kreuzvalidierungs-Workflow
Abschnitt betitelt „3. Binärer Kreuzvalidierungs-Workflow“Um sicherzustellen, dass ELRS Mobile Firmware korrekt zusammenstellt, sollten Entwickler regelmäßig eine Kreuzvalidierungsprüfung anhand einer „Ground Truth“-Binärdatei durchführen, die auf einem PC kompiliert wurde.
Binärdatei aus ELRS Mobile exportieren
Aktivieren Sie den Expert Mode in den Einstellungen und verwenden Sie dann die Schaltfläche DOWNLOAD BINARY im Flasher-Tab, nachdem Sie Ihr Ziel und Ihre Optionen konfiguriert haben.
PC Ground Truth generieren
Erstellen Sie das genau gleiche Ziel und die gleiche Version mit identischen Optionen mit dem offiziellen ExpressLRS Configurator auf Ihrem PC.
Die Prüfung durchführen
Legen Sie beide Binärdateien in firmware_testing/binaries/ ab und führen Sie das Skript audit_tool.py aus, um eine perfekte Hardware- und Optionsparität zu überprüfen.