Ferramentas de Validação de Firmware
Este guia detalha as ferramentas internas usadas para validar a lógica de montagem de firmware do aplicativo ELRS Mobile contra os binários “Golden” oficiais.
Binários de Ground Truth vs. Configurator
Ao executar auditorias de validação, você pode notar que os binários gerados pelo ELRS Mobile correspondem perfeitamente ao ExpressLRS Web Flasher oficial, mas divergem ligeiramente dos binários construídos usando o ExpressLRS Configurator (Python) local.
Este é um comportamento esperado. O parser C++ JSON interno do ESP32 ignora espaços em branco, o que significa que ambos os binários são executados de forma idêntica no hardware, apesar de falharem em uma comparação SHA256 byte a byte estrita devido a diferenças de minificação.
1. ExpressLRS Logic Validator (Dart)
Seção intitulada “1. ExpressLRS Logic Validator (Dart)”Localização: firmware_testing/scripts/dart/logic_validator.dart
O Logic Validator é uma ferramenta de comparação de alto desempenho em nível de bit. Ele foi projetado para verificar se a lógica interna de aplicação de patches e montagem do ELRS Mobile espelha a lógica oficial do ExpressLRS.
Principais Recursos
Seção intitulada “Principais Recursos”- Análise Nível de Bit: Aponta falhas exatas de deslocamento de bit dentro de bytes discrepantes.
- Seleção Interativa: Lista todos os binários encontrados em
firmware_testing/binaries/. - Gerenciamento de Memória Zero-Copy: Otimizado para análise de alta velocidade de grandes arquivos de firmware.
Como Usar
Seção intitulada “Como Usar”- Preparar Binários: Coloque os arquivos
.binou.gzgerados emfirmware_testing/binaries/. - Configurar e Executar:
Terminal window cd firmware_testing/scripts/dart/dart pub getdart run logic_validator.dart
2. Ground Truth Auditor (Python)
Seção intitulada “2. Ground Truth Auditor (Python)”Localização: firmware_testing/scripts/python/audit_tool.py
O Auditor é um script autônomo, com zero dependências, destinado à verificação de “Ground Truth”. Ele analisa o bloco de configuração de 2704 bytes anexado ao final de cada imagem de firmware ExpressLRS.
Propósito
Seção intitulada “Propósito”Ele verifica se os metadados realmente gravados no dispositivo (Product Name, Lua Name, Hardware Layout e Options) estão corretos, independentemente de quaisquer diferenças de layout no código base do firmware.
Como Usar
Seção intitulada “Como Usar”- Executar diretamente:
Terminal window python3 firmware_testing/scripts/python/audit_tool.py [file1] [file2]
3. Fluxo de Trabalho de Validação Cruzada de Binários
Seção intitulada “3. Fluxo de Trabalho de Validação Cruzada de Binários”Para garantir que o ELRS Mobile está montando o firmware corretamente, os desenvolvedores devem realizar periodicamente uma auditoria de validação cruzada contra um binário “Ground Truth” compilado em um PC.
Exportar Binário do ELRS Mobile
Ative o Modo Expert em Configurações, então use o botão DOWNLOAD BINARY na aba Flasher após configurar seu alvo e opções.
Gerar Ground Truth no PC
Construa o mesmo alvo e versão com opções idênticas usando o ExpressLRS Configurator oficial no seu PC.
Executar a Auditoria
Coloque ambos os binários em firmware_testing/binaries/ e execute o script audit_tool.py para verificar a paridade perfeita de hardware e opções.