Ga naar inhoud

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.


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.

  • 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.
  1. Bereid Binaries Voor: Plaats de gegenereerde .bin of .gz bestanden in firmware_testing/binaries/.
  2. Setup & Uitvoeren:
    Terminal window
    cd firmware_testing/scripts/dart/
    dart pub get
    dart run logic_validator.dart

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.

  1. Direct uitvoeren:
    Terminal window
    python3 firmware_testing/scripts/python/audit_tool.py [file1] [file2]

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.

1

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.

2

Genereer PC Grondwaarheid

Bouw exact dezelfde target en versie met identieke opties met behulp van de officiële ExpressLRS Configurator op uw pc.

3

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.