Інструменти валідації прошивки
Цей посібник детально описує внутрішні інструменти, що використовуються для перевірки логіки збірки прошивки програми ELRS Mobile проти офіційних “Золотих” бінарних файлів.
Ground Truth vs. Configurator Binaries
Під час проведення перевірок ви можете помітити, що бінарні файли, згенеровані ELRS Mobile, ідеально збігаються з офіційним ExpressLRS Web Flasher, але дещо відрізняються від бінарних файлів, створених за допомогою локального ExpressLRS Configurator (Python).
Це очікувана поведінка. Внутрішній C++ JSON парсер ESP32 ігнорує пробіли, що означає, що обидва бінарні файли виконуються ідентично на апаратному рівні, незважаючи на те, що вони не проходять строге побайтове порівняння SHA256 через відмінності в мініфікації.
1. ExpressLRS Logic Validator (Dart)
Section titled “1. ExpressLRS Logic Validator (Dart)”Розташування: firmware_testing/scripts/dart/logic_validator.dart
Logic Validator – це високопродуктивний інструмент для побітового порівняння. Він розроблений для перевірки того, що внутрішня логіка патчів та збірки ELRS Mobile відображає офіційну логіку ExpressLRS.
Основні функції
Section titled “Основні функції”- Побітовий аналіз: Точно визначає збої зі зміщенням бітів у відмінних байтах.
- Інтерактивний вибір: Перераховує всі бінарні файли, знайдені в
firmware_testing/binaries/. - Керування пам’яттю без копіювання (Zero-Copy): Оптимізовано для високошвидкісного аналізу великих файлів прошивки.
Як використовувати
Section titled “Як використовувати”- Підготуйте бінарні файли: Розмістіть згенеровані фа��ли
.binабо.gzуfirmware_testing/binaries/. - Налаштування та запуск:
Terminal window cd firmware_testing/scripts/dart/dart pub getdart run logic_validator.dart
2. Ground Truth Auditor (Python)
Section titled “2. Ground Truth Auditor (Python)”Розташування: firmware_testing/scripts/python/audit_tool.py
Auditor – це автономний скрипт без залежностей, призначений для перевірки “Ground Truth”. Він аналізує 2704-байтовий блок конфігурації, доданий до кінця кожного образу прошивки ExpressLRS.
Призначення
Section titled “Призначення”Він перевіряє, що метадані, фактично завантажені на пристрій (Product Name, Lua Name, Hardware Layout та Options), є правильними, незалежно від будь-яких відмінностей у компонуванні базового коду прошивки.
Як використовувати
Section titled “Як використовувати”- Запустіть безпосередньо:
Terminal window python3 firmware_testing/scripts/python/audit_tool.py [file1] [file2]
3. Робочий процес двійкової перехресної перевірки
Section titled “3. Робочий процес двійкової перехресної перевірки”Щоб переконатися, що ELRS Mobile правильно збирає прошивку, розробники повинні періодично проводити аудит перехресної перевірки проти “Ground Truth” бінарного файлу, скомпільованого на ПК.
Експорт бінарного файлу з ELRS Mobile
Увімкніть Expert Mode у Налаштуваннях, потім використовуйте кнопку DOWNLOAD BINARY на вкладці Flasher після налаштування вашої цілі та опцій.
Згенеруйте PC Ground Truth
Створіть точно таку ж ціль та версію з ідентичними опціями за допомогою офіційного ExpressLRS Configurator на вашому ПК.
Запустіть аудит
Розмістіть обидва бінарні файли в `firmware_testing/binaries/` і запустіть скрипт `audit_tool.py`, щоб перевірити ідеальну відповідність апаратного забезпечення та опцій.