Nástroje pro validaci firmwaru
Tato příručka podrobně popisuje interní nástroje používané k ověření logiky sestavení firmwaru aplikace ELRS Mobile proti oficiálním “zlatým” binárním souborům.
Pravdivá data vs. binární soubory konfigurátoru
Při provádění validačních auditů si můžete všimnout, že binární soubory generované ELRS Mobile se dokonale shodují s oficiálním ExpressLRS Web Flasherem, ale mírně se liší od binárních souborů vytvořených pomocí lokálního ExpressLRS Configuratoru (Python).
Toto je očekávané chování. Interní C++ JSON parser v ESP32 ignoruje mezery, což znamená, že oba binární soubory se na hardwaru spouštějí identicky, přestože selžou při přísném porovnání SHA256 bajt po bajtu kvůli rozdílům v minifikaci.
1. Validátor logiky ExpressLRS (Dart)
Section titled “1. Validátor logiky ExpressLRS (Dart)”Location: firmware_testing/scripts/dart/logic_validator.dart
Validátor logiky je vysoce výkonný nástroj pro bitové porovnávání. Je navržen tak, aby ověřil, že interní logika patchování a sestavování ELRS Mobile odráží oficiální logiku ExpressLRS.
Klíčové vlastnosti
Section titled “Klíčové vlastnosti”- Analýza na bitové úrovni: Určuje přesné bitové chyby v nesouhlasících bajtech.
- Interaktivní výběr: Zobrazuje seznam všech binárních souborů nalezených v
firmware_testing/binaries/. - Správa paměti s nulovou kopií: Optimalizováno pro vysokorychlostní analýzu velkých souborů firmwaru.
Jak používat
Section titled “Jak používat”- Připravte binární soubory: Umístěte vygenerované soubory
.binnebo.gzdofirmware_testing/binaries/. - Nastavení a spuštění:
Terminál cd firmware_testing/scripts/dart/dart pub getdart run logic_validator.dart
2. Auditor pravdivých dat (Python)
Section titled “2. Auditor pravdivých dat (Python)”Location: firmware_testing/scripts/python/audit_tool.py
Auditor je samostatný skript bez závislostí, určený pro ověření “pravdivých dat”. Analyzuje 2704bajtový konfigurační blok připojený na konec každého obrazu firmwaru ExpressLRS.
Ověřuje, že metadata skutečně flashnutá do zařízení (Product Name, Lua Name, Hardware Layout a Options) jsou správná, bez ohledu na rozdíly v rozvržení v základním kódu firmwaru.
Jak používat
Section titled “Jak používat”- Spusťte přímo:
Terminál python3 firmware_testing/scripts/python/audit_tool.py [file1] [file2]
3. Pracovní postup binární křížové validace
Section titled “3. Pracovní postup binární křížové validace”Aby bylo zajištěno, že ELRS Mobile správně sestavuje firmware, měli by vývojáři pravidelně provádět audit křížové validace proti binárnímu souboru “pravdivých dat” zkompilovanému na PC.
Export binárního souboru z ELRS Mobile
Povolte Expert Mode v Nastavení a poté použijte tlačítko DOWNLOAD BINARY v záložce Flasher po konfiguraci vašeho cíle a Options.
Vygenerujte PC pravdivá data
Sestavte úplně stejný cíl a verzi s identickými Options pomocí oficiálního ExpressLRS Configuratoru na vašem PC.
Spusťte audit
Umístěte oba binární soubory do firmware_testing/binaries/ a spusťte skript audit_tool.py pro ověření dokonalé hardwarové a Options parity.