Firmware Validatie Tools
Deze gids beschrijft de interne tools die worden gebruikt om de firmware-assemblagelogica van de ELRS Mobile-applicatie te valideren tegen officiële “Golden” binaries.
Grondwaarheid vs. Configurator Binaries
Bij het uitvoeren van validatieaudits, zult u misschien merken dat binaries die zijn gegenereerd door ELRS Mobile perfect overeenkomen met de officiële ExpressLRS Web Flasher, maar enigszins afwijken van binaries die zijn gebouwd met de lokale ExpressLRS Configurator (Python).
Dit is verwacht gedrag. De interne C++ JSON-parser van de ESP32 negeert witruimte, wat betekent dat beide binaries identiek worden uitgevoerd op hardware, ondanks dat ze een strikte byte-voor-byte SHA256-vergelijking niet doorstaan als gevolg van verschillen in minificatie.
1. ExpressLRS Logic Validator (Dart)
Section titled “1. ExpressLRS Logic Validator (Dart)”Locatie: firmware_testing/scripts/dart/logic_validator.dart
De Logic Validator is een krachtige vergelijkingstool op bit-niveau. Het is ontworpen om te verifiëren dat de interne patch- en assemblagelogica van ELRS Mobile de officiële ExpressLRS-logica weerspiegelt.
Belangrijkste Kenmerken
Section titled “Belangrijkste Kenmerken”- Bit-Niveau Analyse: Lokaliseert exacte bit-offset fouten binnen afwijkende bytes.
- Interactieve Selectie: Toont alle binaries gevonden in
firmware_testing/binaries/. - Zero-Copy Geheugenbeheer: Geoptimaliseerd voor snelle analyse van grote firmwarebestanden.
Hoe te Gebruiken
Section titled “Hoe te Gebruiken”- Bereid Binaries Voor: Plaats de gegenereerde
.binof.gzbestanden infirmware_testing/binaries/. - Setup & Uitvoeren:
Terminal window cd firmware_testing/scripts/dart/dart pub getdart run logic_validator.dart
2. Ground Truth Auditor (Python)
Section titled “2. Ground Truth Auditor (Python)”Locatie: firmware_testing/scripts/python/audit_tool.py
De Auditor is een op zichzelf staand, zero-dependency script bedoeld voor “Ground Truth” verificatie. Het parset het 2704-byte configuratieblok dat aan het einde van elke ExpressLRS firmware-image is toegevoegd.
Het verifieert dat de metadata die daadwerkelijk naar het apparaat is geflashed (Product Name, Lua Name, Hardware Layout, en Opties) correct is, ongeacht eventuele layoutverschillen in de basis firmwarecode.
Hoe te Gebruiken
Section titled “Hoe te Gebruiken”- Direct uitvoeren:
Terminal window python3 firmware_testing/scripts/python/audit_tool.py [file1] [file2]
3. Workflow voor Binaire Cross-Validatie
Section titled “3. Workflow voor Binaire Cross-Validatie”Om ervoor te zorgen dat ELRS Mobile firmware correct assembleert, moeten ontwikkelaars periodiek een cross-validatieaudit uitvoeren tegen een “Ground Truth” binary die is gecompileerd op een pc.
Exporteer Binary vanuit ELRS Mobile
Schakel Expertmodus in bij Instellingen en gebruik vervolgens de knop DOWNLOAD BINARY in het tabblad Flasher na het configureren van uw target en opties.
Genereer PC Grondwaarheid
Bouw exact dezelfde target en versie met identieke opties met behulp van de officiële ExpressLRS Configurator op uw pc.
Voer de Audit uit
Plaats beide binaries in firmware_testing/binaries/ en voer het audit_tool.py-script uit om perfecte hardware- en optiepariteit te verifiëren.