创建防篡改固件

使用签名引导加载器和签名固件,可以为载具创建高度防篡改的固件。加载后,只有使用公私钥对之一签名的固件才能在(飞行)控制器上运行,防止加载和运行未签名的固件。只有使用您的私钥创建的固件才能运行(ArduPilot 也有自己的私钥,只有经过挑选的高级 ArduPilot 开发人员才能在紧急情况下为我们的合作伙伴提供 "救援 "服务)。

警告

如果不严格遵守以下程序,有可能导致(飞行)控制器无法工作!

有关引导加载程序和固件签名的信息载于 README 文件,地址为 https://github.com/ArduPilot/ardupilot/tree/master/Tools/scripts/signing

还提供了一段视频:

步骤概述

学习上述视频和 README!

  1. 确保有 构建环境 正常固件的设置和运行。

  2. 确保您有 最新的 MAVProxy 已安装。

  3. 创建一个分支,在本地开发固件。

  4. 创建公私密钥对(通常最多允许使用两个)。

  5. 为(飞行)控制器构建安全签名的引导加载程序。

  6. 构建安全签名的固件并加载到(飞行)控制器上。

  7. 使用 MAVProxy 将刚才加载的固件中包含的安全签名引导加载程序闪存为新引导加载程序。

  8. 验证新的安全启动加载程序是否已安装。

此时,只有使用其中一个密钥对构建的安全签名固件才能在(飞行)控制器上启动和运行。

恢复到未签名启动加载程序

上述 README.md 文件提供了使用私钥恢复正常引导加载程序的说明,相应的公钥已包含在引导加载程序中。