Pular para o conteúdo

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.


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.

  • 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.
  1. Preparar Binários: Coloque os arquivos .bin ou .gz gerados em firmware_testing/binaries/.
  2. Configurar e Executar:
    Terminal window
    cd firmware_testing/scripts/dart/
    dart pub get
    dart run logic_validator.dart

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.

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.

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

1

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.

2

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.

3

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.