Skip to main content
Capsule 生成工具创建用于更新设备固件的 capsule 文件。它们将固件更新打包成可直接安装到硬件上的格式。这些工具可在 Linux 和 Windows 上运行,为不同的开发环境提供了灵活性。为了保持更新的安全性和可验证性,它们使用 OpenSSL 生成和签署证书。 运行 capsule 的前提条件 在开始之前,请执行以下操作: Linux 和 Windows 需要以下工具。

签署 capsule

要按照 Tianocore GitHub 中的说明签署基于 capsule 的系统固件更新,请执行以下步骤:
  1. 生成签名密钥
    • 使用 OpenSSL 命令行实用程序创建新的自签名 X.509 证书链。这包括生成私钥和相应的公共证书。
    • 系统使用私钥签署固件更新 capsule,UEFI 固件使用公共证书验证签名。
  2. 签署固件更新 capsule
    • 使用签名密钥签署固件更新 capsule。此过程对 capsule 进行身份验证,并确保其未被篡改。
    • 签名过程包括创建固件更新负载的哈希值,然后使用私钥加密该哈希值以创建数字签名。
    • 将这些证书放在名为 `Certificates’ 的文件夹中。该文件夹中的示例文件可能包括 QcFMPCert.pemQcFMPRoot.pub.pemQcFMPSub.pub.pem
  3. 验证 capsule
    • UEFI 固件使用公共证书验证 capsule 上的数字签名。如果签名有效且与受信任的证书匹配,固件更新过程将继续进行。
    • 启动 devicetree(DT)在以下节点提供根证书——QcFMPRoot.cerNewRoot.cer/sw/uefi/uefiplat/QcCapsuleRootCert
    • 该启动 DT 是 xbl_config.elf 二进制文件的一部分,可以使用 QDTE 工具进行更新。
    • 只有当根证书已存在于设备上(具体而言,位于 xbl_config.elf 中的启动 DT 节点内)时,才能执行 capsule 更新。
    • 在启动任何 capsule 更新过程之前,请确保证书已正确嵌入二进制文件(xbl_config.elf)中并在设备上可用。
此验证步骤可确保系统仅应用经过授权的固件更新。