【全网首发中文教程】如何签名OpenCore来使用SecureBoot(安全启动)功能
前言
Windows11首发的时候,SecureBoot(安全启动)就被强制要求启用,但是使用OpenCore的用户大多数情况下必须关闭安全启动才能正常的进入OpenCore,该问题也可以解决,只需通过签名
原理
众所周知,安全启动的原理简单概括就是UEFI固件会验证要加载的EFI可执行文件,我们只需要给OpenCore的所有EFI文件签名,然后让UEFI固件信任我们的签名,就能实现安全启动
教程
需求
一个Linux操作系统,建议使用Debian(补佳乐)或者Ubuntu
开始
安装依赖
由于我们要签名EFI文件,我们需要相应的依赖
1 | sudo apt update && sudo apt upgrade |
获取文件
1 | git clone https://github.com/mis1042/OpenCoreSecureBoot |
自动生成签名用的文件
1 | cd OpenCoreSecureBoot |
开始签名OpenCore
1 | cp ISK.pem ../oc/ |
等待片刻,这个目录将会出现一个新的压缩包(以Signed开头)这就是已经签名的OpenCore
直接将这个压缩包导入OCAT,然后和平常一样同步即可
导入方法
菜单栏➡️编辑➡️OpenCore开发版 ☑️
菜单栏➡️编辑➡️升级OpenCore和Kexts➡️导入 选择刚刚的zip文件即可
将Auth文件导入UEFI
我们说过,安全启动的原理是验证EFI文件签名,那么我们还需要让系统信任我们的签名
在efikeys文件夹里,会生成一个auth文件夹,将这个文件夹复制到EFI分区(和EFI文件夹同级),然后将其导入UEFI
台式机导入方法
部分台式机可以直接在BIOS内导入,如果能在BIOS的Security选项卡内找到类似Key Management的选项,那可以直接导入(找不着看方法二),以技嘉主板为例:
如果有更改过密钥,建议进行重置,如图
然后导入,auth文件夹里的文件导入的位置如下
- db.auth >> Authorized Signatures 或者db
- kek.auth >> KEK (Key Exchange Keys)
- pk.auth >> PK (Platform key).
直接选择对应的位置,然后选择Replace(替换),然后选择EFI分区内的对应文件即可,列出的文件都要进行替换
笔记本的方法
在签名后生成的OpenCore压缩包中,Tools文件夹内包括了一个KeyTool.efi工具,将它复制到现用引导里的Tools文件夹内,然后在Misc➡️Tools内将它加载,重启电脑,再次进入OpenCore引导菜单时,会看到一个KeyTool的选项,选择进入
选择Edit Keys并进入,我们又会看到熟悉的词
同样,按照方法一中提到的对应关系,选择然后进行Replace即可
最后,打开SecureBoot,正常使用
鸣谢名单
https://github.com/perez987/OpenCore-UEFI-Secure-Boot
(图片引用)
https://github.com/profzei/Matebook-X-Pro-2018/wiki/Enable-BIOS-Secure-Boot-with-OpenCore
(提供代码[有修改并已按照原GPLV3协议开源])