Strumenti di validazione Firmware
Questa guida descrive in dettaglio gli strumenti interni utilizzati per convalidare la logica di assemblaggio del firmware dell’applicazione ELRS Mobile rispetto ai binari “Golden” ufficiali.
Verità Fondamentale vs. Binari del Configurator
Quando si eseguono audit di convalida, si potrebbe notare che i binari generati da ELRS Mobile corrispondono perfettamente all'ufficiale ExpressLRS Web Flasher, ma divergono leggermente dai binari costruiti utilizzando il ExpressLRS Configurator (Python) locale.
Questo è un comportamento atteso. Il parser JSON C++ interno dell'ESP32 ignora gli spazi bianchi, il che significa che entrambi i binari vengono eseguiti in modo identico sull'hardware nonostante falliscano un confronto SHA256 rigoroso byte per byte a causa di differenze di minificazione.
1. ExpressLRS Logic Validator (Dart)
Sezione intitolata “1. ExpressLRS Logic Validator (Dart)”Posizione: firmware_testing/scripts/dart/logic_validator.dart
Il Logic Validator è uno strumento di confronto ad alte prestazioni a livello di bit. È progettato per verificare che la logica di patching e assemblaggio interna di ELRS Mobile rispecchi la logica ufficiale di ExpressLRS.
Caratteristiche Principali
Sezione intitolata “Caratteristiche Principali”- Analisi a Livello di Bit: Individua i guasti esatti dell’offset di bit all’interno di byte discrepanti.
- Selezione Interattiva: Elenca tutti i binari trovati in
firmware_testing/binaries/. - Gestione della Memoria Zero-Copy: Ottimizzata per l’analisi ad alta velocità di file firmware di grandi dimensioni.
Come Usare
Sezione intitolata “Come Usare”- Prepara i Binari: Posiziona i file
.bino.gzgenerati infirmware_testing/binaries/. - Configurazione ed Esecuzione:
Terminal window cd firmware_testing/scripts/dart/dart pub getdart run logic_validator.dart
2. Ground Truth Auditor (Python)
Sezione intitolata “2. Ground Truth Auditor (Python)”Posizione: firmware_testing/scripts/python/audit_tool.py
L’Auditor è uno script autonomo, senza dipendenze, inteso per la verifica della “Verità Fondamentale”. Analizza il blocco di configurazione di 2704 byte aggiunto alla fine di ogni immagine firmware di ExpressLRS.
Verifica che i metadati effettivamente flashati sul dispositivo (Product Name, Lua Name, Hardware Layout e Options) siano corretti, indipendentemente da eventuali differenze di layout nel codice firmware di base.
Come Usare
Sezione intitolata “Come Usare”- Esegui direttamente:
Terminal window python3 firmware_testing/scripts/python/audit_tool.py [file1] [file2]
3. Flusso di Lavoro di Convalida Incrociata dei Binari
Sezione intitolata “3. Flusso di Lavoro di Convalida Incrociata dei Binari”Per assicurarsi che ELRS Mobile stia assemblando correttamente il firmware, gli sviluppatori dovrebbero eseguire periodicamente un audit di convalida incrociata rispetto a un binario “Ground Truth” compilato su un PC.
Esporta Binario da ELRS Mobile
Abilita la Modalità Esperto nelle Impostazioni, quindi usa il pulsante DOWNLOAD BINARY nella scheda Flasher dopo aver configurato il tuo target e le opzioni.
Genera la Verità Fondamentale per PC
Compila lo stesso identico target e versione con opzioni identiche usando l'ExpressLRS Configurator ufficiale sul tuo PC.
Esegui l'Audit
Posiziona entrambi i binari in firmware_testing/binaries/ ed esegui lo script audit_tool.py per verificare la perfetta parità di hardware e opzioni.