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.
1. ExpressLRS Logic Validator (Dart)
Sección titulada «1. ExpressLRS Logic Validator (Dart)»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.
Características Clave
Sección titulada «Características Clave»- 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.
Cómo Usar
Sección titulada «Cómo Usar»- Preparar Binarios: Coloca los archivos
.bino.gzgenerados enfirmware_testing/binaries/. - Configurar y Ejecutar:
Ventana de terminal cd firmware_testing/scripts/dart/dart pub getdart run logic_validator.dart
2. Ground Truth Auditor (Python)
Sección titulada «2. Ground Truth Auditor (Python)»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.
Propósito
Sección titulada «Propósito»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.
Cómo Usar
Sección titulada «Cómo Usar»- 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.
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.
Generar Ground Truth para PC
Compila el **mismo** objetivo y versión con opciones idénticas utilizando el ExpressLRS Configurator oficial en tu PC.
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.