Ir al contenido

Herramientas de Validación de Firmware

Esta guía detalla las herramientas internas utilizadas para validar la lógica de ensamblaje del firmware de la aplicación ELRS Mobile contra los binarios “Golden” oficiales.

Binarios de Ground Truth vs. Configurator

Al realizar auditorías de validación, es posible que observes que los binarios generados por ELRS Mobile coinciden perfectamente con el **ExpressLRS Web Flasher** oficial, pero difieren ligeramente de los binarios construidos utilizando el **ExpressLRS Configurator (Python)** local.

Este es un comportamiento esperado. El analizador JSON de C++ interno del ESP32 ignora los espacios en blanco, lo que significa que ambos binarios se ejecutan de forma idéntica en el hardware a pesar de fallar una comparación estricta byte a byte de SHA256 debido a diferencias de minificación.


Ubicación: firmware_testing/scripts/dart/logic_validator.dart

El Logic Validator es una herramienta de comparación de alto rendimiento a nivel de bit. Está diseñada para verificar que la lógica interna de parcheo y ensamblaje de ELRS Mobile refleje la lógica oficial de ExpressLRS.

  • Análisis a Nivel de Bit: Localiza fallas exactas en el desplazamiento de bits dentro de bytes discrepantes.
  • Selección Interactiva: Lista todos los binarios encontrados en firmware_testing/binaries/.
  • Gestión de Memoria de Copia Cero: Optimizada para un análisis de alta velocidad de archivos de firmware grandes.
  1. Preparar Binarios: Coloca los archivos .bin o .gz generados en firmware_testing/binaries/.
  2. Configurar y Ejecutar:
    Ventana de terminal
    cd firmware_testing/scripts/dart/
    dart pub get
    dart run logic_validator.dart

Ubicación: firmware_testing/scripts/python/audit_tool.py

El Auditor es un script independiente, sin dependencias, destinado a la verificación de “Ground Truth”. Analiza el bloque de configuración de 2704 bytes adjunto al final de cada imagen de firmware de ExpressLRS.

Verifica que los metadatos realmente flasheados al dispositivo (Product Name, Lua Name, Hardware Layout y Options) sean correctos, independientemente de cualquier diferencia de diseño en el código base del firmware.

  1. Ejecutar directamente:
    Ventana de terminal
    python3 firmware_testing/scripts/python/audit_tool.py [file1] [file2]

3. Flujo de Trabajo de Validación Cruzada de Binarios

Sección titulada «3. Flujo de Trabajo de Validación Cruzada de Binarios»

Para asegurar que ELRS Mobile esté ensamblando el firmware correctamente, los desarrolladores deben realizar periódicamente una auditoría de validación cruzada contra un binario “Ground Truth” compilado en un PC.

1

Exportar Binario desde ELRS Mobile

Habilita el **Modo Experto** en Ajustes, luego usa el botón **DESCARGAR BINARIO** en la pestaña Flasher después de configurar tu objetivo y opciones.

2

Generar Ground Truth para PC

Compila el **mismo** objetivo y versión con opciones idénticas utilizando el ExpressLRS Configurator oficial en tu PC.

3

Ejecutar la Auditoría

Coloca ambos binarios en firmware_testing/binaries/ y ejecuta el script audit_tool.py para verificar una paridad perfecta de hardware y opciones.