这是一个用于 edk2 固件镜像的小型工具集合。它们支持解码和打印固件卷的内容。变量存储(OVMF_VARS.fd)可以被修改,例如用于注册安全启动证书。
解码并打印固件卷的内容。
用法:virt-fw-dump -i <文件>。
更多信息请尝试 virt-fw-dump --help,包含一些用于过滤输出的选项。
打印和编辑变量存储卷。 目前专注于注册证书和启用安全启动。
打印变量:virt-fw-vars -i <文件> --print。
注册证书:
virt-fw-vars \
--input <模板> \
--output <变量> \
--enroll-redhat \
--secure-boot
更多用法信息请尝试 virt-fw-vars --help。
virt-fw-vars 可以处理 edk2 变量存储(即闪存固件卷)和 AWS uefi 变量存储。输入格式会自动检测,输出也会使用相同的格式。
使用 edk2 变量存储时,需要固件卷作为输入。通常使用构建 OVMF 时创建的 OVMF_VARS.fd 文件(它是一个空的变量存储)。
aws 变量存储也可以从头创建并通过 --output-aws 选项写入文件。
打印和编辑 efi 签名数据库文件,示例:
virt-fw-sigdb -i /etc/pki/ca-trust/extracted/edk2/cacerts.bin --print
更多用法信息请尝试 virt-fw-sigdb --help。
从 linux efivarfs 读取 efi 变量并解码/打印它们。
在使用直接引导(没有引导加载程序如 grub 或 systemd-boot)时,管理 UKI(统一内核镜像)的 efi 启动配置。
用于 pe(efi 使用的格式)二进制文件的信息转储。
列出 pe 二进制文件的签名和证书链。 也可以提取证书和签名。
目前文档不多,抱歉。开始学习的最佳代码阅读路径可能是测试用例(参见 tests/tests.py)和 virt-fw-vars 工具的代码(参见 virt/firmware/vars.py)。
发布版:pip3 install virt-firmware
快照版:pip3 install git+https://gitlab.com/kraxel/virt-firmware.git
我接受 MR 请求。
仓库上有一个 AI 审查机器人,会对 MR 进行评论。它擅长拼写检查。有时它会提供有用的建议或捕捉补丁中的不一致之处。有时它会要求一些愚蠢的事情,比如测试用例中的细致错误检查。有时它会建议检查不可能发生的错误条件,但机器人显然不够聪明无法看出这一点。有时它会建议代码重组,这更多是品味或个人偏好的问题,取决于你选择哪种方式。
所以,不要太把机器人当回事。