Перейти до вмісту

Інструменти валідації прошивки

Цей посібник детально описує внутрішні інструменти, що використовуються для перевірки логіки збірки прошивки програми ELRS Mobile проти офіційних “Золотих” бінарних файлів.

Ground Truth vs. Configurator Binaries

Під час проведення перевірок ви можете помітити, що бінарні файли, згенеровані ELRS Mobile, ідеально збігаються з офіційним ExpressLRS Web Flasher, але дещо відрізняються від бінарних файлів, створених за допомогою локального ExpressLRS Configurator (Python).

Це очікувана поведінка. Внутрішній C++ JSON парсер ESP32 ігнорує пробіли, що означає, що обидва бінарні файли виконуються ідентично на апаратному рівні, незважаючи на те, що вони не проходять строге побайтове порівняння SHA256 через відмінності в мініфікації.


Розташування: firmware_testing/scripts/dart/logic_validator.dart

Logic Validator – це високопродуктивний інструмент для побітового порівняння. Він розроблений для перевірки того, що внутрішня логіка патчів та збірки ELRS Mobile відображає офіційну логіку ExpressLRS.

  • Побітовий аналіз: Точно визначає збої зі зміщенням бітів у відмінних байтах.
  • Інтерактивний вибір: Перераховує всі бінарні файли, знайдені в firmware_testing/binaries/.
  • Керування пам’яттю без копіювання (Zero-Copy): Оптимізовано для високошвидкісного аналізу великих файлів прошивки.
  1. Підготуйте бінарні файли: Розмістіть згенеровані фа��ли .bin або .gz у firmware_testing/binaries/.
  2. Налаштування та запуск:
    Terminal window
    cd firmware_testing/scripts/dart/
    dart pub get
    dart run logic_validator.dart

Розташування: firmware_testing/scripts/python/audit_tool.py

Auditor – це автономний скрипт без залежностей, призначений для перевірки “Ground Truth”. Він аналізує 2704-байтовий блок конфігурації, доданий до кінця кожного образу прошивки ExpressLRS.

Він перевіряє, що метадані, фактично завантажені на пристрій (Product Name, Lua Name, Hardware Layout та Options), є правильними, незалежно від будь-яких відмінностей у компонуванні базового коду прошивки.

  1. Запустіть безпосередньо:
    Terminal window
    python3 firmware_testing/scripts/python/audit_tool.py [file1] [file2]

3. Робочий процес двійкової перехресної перевірки

Section titled “3. Робочий процес двійкової перехресної перевірки”

Щоб переконатися, що ELRS Mobile правильно збирає прошивку, розробники повинні періодично проводити аудит перехресної перевірки проти “Ground Truth” бінарного файлу, скомпільованого на ПК.

1

Експорт бінарного файлу з ELRS Mobile

Увімкніть Expert Mode у Налаштуваннях, потім використовуйте кнопку DOWNLOAD BINARY на вкладці Flasher після налаштування вашої цілі та опцій.

2

Згенеруйте PC Ground Truth

Створіть точно таку ж ціль та версію з ідентичними опціями за допомогою офіційного ExpressLRS Configurator на вашому ПК.

3

Запустіть аудит

Розмістіть обидва бінарні файли в `firmware_testing/binaries/` і запустіть скрипт `audit_tool.py`, щоб перевірити ідеальну відповідність апаратного забезпечення та опцій.