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的文件,但是这样简单)

必须替换的文件:

  1. EFI\BOOT\BOOTx64.efi
  2. EFI\OC\OpenCore.efi
  3. \EFI\OC\Drivers

被替换之后,右键–>属性–>数字签名,可以查看到文件已经被签名:

20240612130659.jpg

2、导入签名的key文件

1、复制证书

OpenCore-EFI-Sign-Certificate文件夹内的的证书文件拷贝到FAT32格式U盘根目录

包含:PK.derKEK.derDB.der,注意:拷贝的U盘格式必须是FAT32格式U盘根目录

2、导入证书

  1. 进入您主板BIOS Setup–>Secure Boot Configuration–>Secure Boot Mode(不同主板可能名称不同)
  2. Secure Boot Mode修改为Custom Mode,然后先保存,再次进入设置Secure Boot Configuration

    20240612131043.jpg

  3. 然后选择Custom Secure Boot Options,进入密钥设置菜单

    20240612131549.jpg

  4. 依次选择PK OptionsKEK OptionsDB Options(注意不是DBX或者DBT)进行导入:

    20240612131953.jpg

  5. 每一个导入的时候,都选择Eroll XXX using File,选择对应名称的文件,然后立即保存

    (注意:每导入一个证书文件,都需要立即保存,否则证书文件并不会被保存到密钥存储)

    20240612132130.jpg

  6. 所有证书导入之后,还需要再次保存并退出(通常是按下F10,再按下Y保存退出):

    20240612132345.jpg

3、启动EFI SecureBoot

这里和正常添加引导项是一样的,如果不会,请看视频:

  1. 使用Add Boot Option添加启动项,选择你的启动盘\EFI\BOOT\BOOTX64.EFI文件
  2. 设置启动项名称,选择Commit Changes and Exit,保存BIOS设置然后退出重启

    9a953210438e48.gif

  3. 可以看到UEFI+Secure Boot启动的情况下,可以正常引导

    4c57a9e8e9f145.gif

  4. 可选操作: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, vit9696

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. 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.
  3. 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.

Last modification:June 12, 2024
If you think my article is useful to you, please feel free to appreciate