Salta ai contenuti

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.


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.

  • 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.
  1. Prepara i Binari: Posiziona i file .bin o .gz generati in firmware_testing/binaries/.
  2. Configurazione ed Esecuzione:
    Terminal window
    cd firmware_testing/scripts/dart/
    dart pub get
    dart run logic_validator.dart

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.

  1. 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.

1

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.

2

Genera la Verità Fondamentale per PC

Compila lo stesso identico target e versione con opzioni identiche usando l'ExpressLRS Configurator ufficiale sul tuo PC.

3

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.