Przejdź do głównej zawartości

固件验证工具

Ta treść nie jest jeszcze dostępna w Twoim języku.

本指南详细介绍了用于根据官方“黄金”二进制文件验证 ELRS Mobile 应用程序固件组装逻辑的内部工具。

Ground Truth 与 Configurator 二进制文件

在运行验证审计时,您可能会注意到 ELRS Mobile 生成的二进制文件与官方 ExpressLRS Web Flasher 完美匹配,但与使用本地 ExpressLRS Configurator (Python) 构建的二进制文件略有不同。

这是预期行为。ESP32 的内部 C++ JSON parser 会忽略空格,这意味着尽管由于缩小差异导致严格的逐字节 SHA256 比较失败,但这两个二进制文件在硬件上执行时是相同的。


位置: firmware_testing/scripts/dart/logic_validator.dart

Logic Validator 是一个高性能的位级比较工具。它旨在验证 ELRS Mobile 的内部修补和组装逻辑与官方 ExpressLRS 逻辑一致。

  • 位级分析:精确定位不一致字节内的确切位偏移失败。
  • 交互式选择:��出在 firmware_testing/binaries/ 中找到的所有二进制文件。
  • 零拷贝内存管理:针对大型固件文件的高速分析进行了优化。
  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”验证。它解析附加到每个 ExpressLRS 固件镜像末尾的 2704 字节配置块。

它验证实际烧录到设备的元数据(Product Name、Lua Name、Hardware Layout 和 Options)是否正确,无论基础固件代码中存在任何布局差异。

  1. 直接运行
    Terminal window
    python3 firmware_testing/scripts/python/audit_tool.py [file1] [file2]

为确保 ELRS Mobile 正确组装固件,开发人员应定期对在 PC 上编译的“Ground Truth”二进制文件进行交叉验证审计。

1

从 ELRS Mobile 导出二进制文件

在“设置”中启用 专家模式,然后在“刷写器”选项卡中配置目标和选项后使用 下载二进制文件 按钮。

2

生成 PC Ground Truth

在您的 PC 上使用官方 ExpressLRS Configurator 构建 完全相同 的目标和版本,并使用相同的选项。

3

运行审计

将两个二进制文件放入 `firmware_testing/binaries/` 中,并运行 `audit_tool.py` 脚本以验证硬件和选项的完美一致性。