Aller au contenu

Outils de validation de Firmware

Ce guide détaille les outils internes utilisés pour valider la logique d’assemblage du firmware de l’application ELRS Mobile par rapport aux binaires “Golden” officiels.

Vérité Terrain vs. Binaires du Configurateur

Lors de l'exécution d'audits de validation, vous remarquerez peut-être que les binaires générés par ELRS Mobile correspondent parfaitement à l'**ExpressLRS Web Flasher** officiel, mais divergent légèrement des binaires construits à l'aide de l'**ExpressLRS Configurator (Python)** local.

Ceci est un comportement attendu. L'analyseur JSON C++ interne de l'ESP32 ignore les espaces blancs, ce qui signifie que les deux binaires s'exécutent de manière identique sur le matériel bien qu'ils échouent à une comparaison SHA256 stricte octet par octet en raison de différences de minification.


Emplacement : firmware_testing/scripts/dart/logic_validator.dart

Le Validateur de logique est un outil de comparaison de haut niveau de performance au niveau du bit. Il est conçu pour vérifier que la logique interne de patching et d’assemblage d’ELRS Mobile reflète la logique ExpressLRS officielle.

  • Analyse au niveau du bit : Identifie les échecs exacts d’offset de bit au sein des octets divergents.
  • Sélection interactive : Liste tous les binaires trouvés dans firmware_testing/binaries/.
  • Gestion de la mémoire sans copie : Optimisée pour l’analyse à haute vitesse des fichiers firmware volumineux.
  1. Préparer les binaires : Placez les fichiers .bin ou .gz générés dans firmware_testing/binaries/.
  2. Configuration et exécution :
    Fenêtre de terminal
    cd firmware_testing/scripts/dart/
    dart pub get
    dart run logic_validator.dart

Emplacement : firmware_testing/scripts/python/audit_tool.py

L’Auditeur est un script autonome, sans dépendance, destiné à la vérification de la “Vérité Terrain”. Il analyse le bloc de configuration de 2704 octets ajouté à la fin de chaque image de firmware ExpressLRS.

Il vérifie que les métadonnées réellement flashées sur l’appareil (Nom du produit, Nom Lua, Disposition matérielle et Options) sont correctes, quelles que soient les différences de disposition dans le code du firmware de base.

  1. Exécuter directement :
    Fenêtre de terminal
    python3 firmware_testing/scripts/python/audit_tool.py [file1] [file2]

Pour s’assurer qu’ELRS Mobile assemble correctement le firmware, les développeurs doivent effectuer périodiquement un audit de validation croisée par rapport à un binaire de “Vérité Terrain” compilé sur un PC.

1

Exporter le binaire depuis ELRS Mobile

Activez le **Mode Expert** dans les Paramètres, puis utilisez le bouton **TÉLÉCHARGER BINAIRE** dans l'onglet Flasher après avoir configuré votre cible et vos options.

2

Générer la vérité terrain PC

Construisez la **cible et la version exactement identiques** avec des options identiques en utilisant l'ExpressLRS Configurator officiel sur votre PC.

3

Exécuter l'audit

Placez les deux binaires dans firmware_testing/binaries/ et exécutez le script audit_tool.py pour vérifier la parité parfaite du matériel et des options.