OpenCore 在SecureBoot 开启情况下引导教程
教程背景
众所周知,OpenCore是一个第三方引导,并且UEFI下开启Secure Boot的情况下必须要要数字签名
然而根据微软的策略,OpenCore不具备UEFI 签名要求 下的如下要求,因此无法获得官方认证签名:
4、提交用于 UEFI 签名的代码不得受 GPLv3 或任何旨在授予某人要求授权密钥的权利的许可证的约束,以便能够在设备上安装修改后的代码形式。受此类已签名许可约束的代码可能会被撤销该签名。例如,GRUB 2 是根据 GPLv3 授权的,不会被签名。
12、如果您的提交是 SHIM(将执行移交给另一个引导加载程序),则必须首先提交给 SHIM 审查委员会并获得批准,然后才能签署提交。该审查委员会将检查以确保以下内容:
- 提交者必须为填充码直接加载的所有内容(直接和后续)设计和实施强大的撤销机制。
然而部分系统无法关闭SecureBoot(BIOS不支持,例如部分技嘉/OEM主板,或者部分二合一平板)
或者有些情况下需要开启SecureBoot使用(例如Bitlocker配合TPM自动解锁需要依赖SecureBoot)
因此,本教程是为了解决在启用SecureBoot的情况下启动OpenCore引导而编写,实测可以引导OC
注意:如果你没有开启需求,请正常参考和使用OpenCore教程,无需执行本教程的任何教程/步骤
教程步骤
本文章所需要的文件:OpenCore-SecureBoot.rar
1、替换OpenCore引导
打开:OpenCore-1.0.0-RELEASE-Signed
文件夹,按照你的系统选择(通常都是X64-SIGN
)
把里面的EFI覆盖你现在的EFI就行(实际上只需要替换后缀为*.efi
的文件,但是这样简单)
必须替换的文件:
EFI\BOOT\BOOTx64.efi
EFI\OC\OpenCore.efi
\EFI\OC\Drivers
被替换之后,右键–>属性–>数字签名,可以查看到文件已经被签名:
2、导入签名的key文件
1、复制证书
把OpenCore-EFI-Sign-Certificate
文件夹内的的证书文件拷贝到FAT32
格式U盘根目录
包含:PK.der
、KEK.der
、DB.der
,注意:拷贝的U盘格式必须是FAT32
格式U盘根目录
2、导入证书
- 进入您主板
BIOS Setup
–>Secure Boot Configuration
–>Secure Boot Mode
(不同主板可能名称不同) 将
Secure Boot Mode
修改为Custom Mode
,然后先保存,再次进入设置Secure Boot Configuration
然后选择
Custom Secure Boot Options
,进入密钥设置菜单依次选择
PK Options
、KEK Options
、DB Options
(注意不是DBX
或者DBT
)进行导入:每一个导入的时候,都选择
Eroll XXX using File
,选择对应名称的文件,然后立即保存(注意:每导入一个证书文件,都需要立即保存,否则证书文件并不会被保存到密钥存储)
所有证书导入之后,还需要再次保存并退出(通常是按下
F10
,再按下Y
保存退出):
3、启动EFI SecureBoot
这里和正常添加引导项是一样的,如果不会,请看视频:
- 使用
Add Boot Option
添加启动项,选择你的启动盘\EFI\BOOT\BOOTX64.EFI
文件 设置启动项名称,选择
Commit Changes and Exit
,保存BIOS设置然后退出重启可以看到UEFI+Secure Boot启动的情况下,可以正常引导
- 可选操作:Windows下导入UEFI证书
可以在开启Secure Boot+UEFI情况下,从Windows Boot Manager启动OpenCore
(不过都有OpenCore了,正常情况也不需要Windows Boot Manager启动了吧)
导入工具下载:PikaCASetup-Root.zip
参考文献
1、《Secure Boot Key 的生成及签名》,UEFI开发学习27,爱影博客,ay123.net
2、《The Meaning of all the UEFI Keys》,James Bottomley's random Pages
3、《UPDATED: UEFI Signing Requirements》,Microsoft Community Hub, Kevin Tremblay
4、《OpenCore-and-UEFI-Secure-Boot》,perez987,github.com
使用许可
BSD-3-Clause license
Copyright (c) 2016-2017, The HermitCrabs Lab
Copyright (c) 2016-2020, Download-Fritz
Copyright (c) 2017-2020, savvas
Copyright (c) 2016-2020, vit9696All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.