opencore介绍
OpenCore(简称 OC) 是一个着眼于未来开源的引导工具, 最初诞生于 HermitCrabs 实验室, 现在接手于 Acidanthera, 其目的是创造一个更加严谨的模组化的轻量引导系统。尽管 OpenCore 的主要用途是黑苹果(现在已经开始逐渐取代clover,包括驱动的兼容测试也开始不会在clover进行测试), 它也支持其它操作系统的引导。
opencore GitHub地址:https://github.com/acidanthera/OpenCorePkg/releases 此处通常为最新的稳定版本,建议使用,解压出来结构为这样
张登友,张登友的博客,张登友的网站——

其他opencore导航
2020.9.26更新
一键生成opencore引导
https://www.zdynb.cn/2020/yi-jian-sheng-cheng-opencore-yin-dao.html
2022.02.08更新
OpenCore最简单的升级方式
https://www.zdynb.cn/2021/opencore-zui-jian-dan-sheng-ji-jiao-cheng.html
必备驱动下载合集
https://www.zdynb.cn/2020/hei-ping-guo-qu-dong.html
基本结构介绍

BOOT
为OC启动文件(添加启动项使用这个文件夹下的BOOTx64.efi)
Config.plist为第一步解压出来的OpenCore-0.5.7-RELEASE/Docs/文件夹下的sample.plist改名而来
使用OpenCore Configurator进行编辑,下载地址https://mackie100projects.altervista.org/download-opencore-configurator/
具体编辑教程我就不重复写了,请参考:
黑果小兵的教程https://blog.daliansky.net/OpenCore-BootLoader.html
宪兵大大的教程https://blog.xjn819.com/?p=543
OC为必须文件夹,包含:
ACPI(补丁文件DSDT和SSDT)
Drivers(efi驱动文件):
ApfsDriverLoader.efi ———- APFS格式支持/下载地址https://github.com/athlonreg/AppleSupportPkg-Factory/releases
MemoryAllocation.efi ———- 帮助主板空出第一个512MB内存,为后面的内存注入做铺垫,若要使用hibernation功能请不要使用它/下载地址https://blog.xjn819.com/wp-content/uploads/2019/10/MemoryAllocation.efi_.zip
OpenRuntime.efi ———- 内存寻址补丁/ 在Opencore的程序包的drivers文件夹下。
HFSPlus.efi ———- HFS格式支持,在安装MAC或者更新时必须使用此补丁,并且此补丁的效率显然高于官方的vboxhfs.efi/下载地址http://blog.xjn819.com/wp-content/uploads/2019/10/HFSPlus.efi_-1.zip
OpenUsbKbDxe.efi ———- 键盘组合键的使用,在Opencore的程序包的drivers文件夹下。
OpenCanopy.efi ———— 如果你想使用第三方主题,请加载此项, 在Opencore的程序包的drivers文件夹下。
Kexsts(内核驱动):
一般情况下你需要放如下Kexts:
Lilu.kext ———- Acidanthera驱动全家桶的底层依赖/下载地址https://github.com/acidanthera/Lilu/releases
Applealc.kext ———- 声卡驱动/下载地址https://github.com/acidanthera/AppleALC/releases
VirtualSMC.kext ——— 传感器驱动依赖 /下载地址https://github.com/acidanthera/VirtualSMC/releases
SMCProcessor.kext ———- CPU核传感器/同上
SMCSuperIO.kext ———- IO传感器/同上
WhateverGreen.kext ———- 核显&显卡驱动/下载地址https://github.com/acidanthera/WhateverGreen/releases
IntelMausi.kext ———- Intel类千兆网卡驱动/下载地址https://github.com/acidanthera/IntelMausi/releases
Usbinjectall.kext ———- USB驱动 (你也可以定制自己的USB补丁)/下载地址https://bitbucket.org/RehabMan/os-x-usb-inject-all/downloads/
NVMeFix.kext ———- 为NVME硬盘增加ASPT属性来保证节电,虽然对台式机没啥用,但是官方推荐所有NVME用户都使用此补丁/下载地址https://github.com/acidanthera/NVMeFix/releases
Tools
工具efi驱动,比如一键清除NVRAM功能等驱动
常用驱动更新地址https://github.com/acidanthera/AppleSupportPkg/releases 在此处下载
Microsoft
为添加的Windows启动项,如果需要双系统启动则需要添加此启动项,
resource
为自带主题文件夹
官方主题(2022.02.12更新)
这是OpenCore官方提供的主题: https://github.com/acidanthera/OcBinaryData/ 你也可以自己制作图标同名替换即可,或者下载别人制作好的主题包替换,前面国光也贴出了一些主题下载网站,详见”Drivers说明”部分
设置
- PickerMode -> External
- PickerAttributes -> 129(0x81)
驱动
- OpenCanopy.efi
必须的图标
如果缺少这些图标主题将不会生效
- BtnFocus – 显示其他(关机和重启)按钮的焦点 (
BtnFocus.icns
) - Cursor – 鼠标光标 (
Cursor.icns
, 下同.) - Dot – 密码输入隐藏字符点
- Enter – 密码输入输入符号
- Left – 左侧的附加选择器条目
- Lock – 密码锁
- Password – 密码输入文本区
- Restart – 附加按钮:重启
- Right – 右侧的附加选择器条目
- Selected – 选定的启动项背景
- Selector – 显示所选条目
- SetDefault – 在“设置默认值”模式下显示所选条目
- ShutDown – 附加按钮:关机
- ExtHardDrive – 可引导操作系统(外部驱动器上的系统,例如U盘)
- HardDrive – 可引导操作系统(本地硬盘)
自动检测到的启动项
OpenCore会自动检测该系统是Windows还是macOS来匹配启动项图标,macOS会自动检测系统版本,而Windows不会检测系统版本,至于是Windows11还是Windows10……OpenCore只能检测到这个系统是Windows。
图标
Windows
HardDrive.icns是基础启动项图标,如果你没有为启动项自定义图标,所有系统都会显示这个图标。
- 如果你想给Windows自定义一个图标,你先自己设计好Windows图标之后命名为Windows.icns,当OpenCore启动时会自动为其匹配该图标。
- macOS同理,你需要一个Apple.icns图标,否则将退回HardDrive.icns
那么问题来了,当你同一个机器上有多个Windows系统和多个mac系统(硬盘大就是任性)时该怎么让不同的Windows或者mac系统显示不同的图标呢。
- 这时就需要一个文件
.contentFlavour
,这个文件你可以在Windows系统下用记事本创建一个txt文本文件,当你想给Windows11单独做一个启动项图标时,这个文本文件的内容你要这样填写Windows11:Windows这说明你还需要设计一个图标文件,名为Windows11.icns
。该文本文件内容填好后保存退出,然后重命名该文本文件为.contentFlavour
,该txt文件后缀.txt
也要删除,文本文件的完整的名字就是重命名为.contentFlavour
,然后把这个文件复制到Windows启动文件所在的目录一般都是\EFI1\Microsoft\Boot\
- 同理如果你还有一个Windows10系统,上面说到的文本文件的内容就改为Windows10:Windows,同时你还需要准备一个
Windows10.icns
图标文件 - 上面提到的图标文件如果缺少将会一步步回退,如果缺少
Windows10.icns
将回退到Windows.icns
,如果又缺少Windows.icns
,最终会回退到HardDrive.icns
macOS
macOS启动项就没这么麻烦了不需要.contentFlavour
这个文件,因为OpenCore会自动检测mac系统版本,只需要对图标文件做一下手脚就可以了
Apple12.icns
自动匹配为Monterey的图标Apple11.icns
自动匹配为Big Sur的图标Apple10_15.icns
自动匹配为Catalina的图标Apple10_14:Apple
自动匹配为Mojave的图标Apple10_13:Apple
自动匹配为High Sierra的图标
其他等等都一样
启动项标题
Windows
自定义启动项标题和自定义图标的方式差不多,只不过txt文件要重命名为.contentDetails
,该文本文件的内容就为你想自定义的标题内容,比如你想命名为Windows11那么该文本文件的内容就为Windows11,该文件也是放在启动文件所在的目录\EFI1\Microsoft\Boot\
macOS
- 你想把mac的启动项标题命名为Monterey,则文本文件的内容就为
Monterey
,文件复制到/System/Volumes/Preboot/UUID-number/System/Library/CoreServices
至于UUID每个人都不同,你只需要访达前往输入/System/Volumes/Preboot/
接下来的目录用鼠标点击即可。 - 这一步要在mac环境下进行
.contentDetails
在Windows下是隐藏文件,终端输入以下命令即可显示隐藏文件
defaults write com.apple.finder AppleShowAllFiles -boolean true;killall Finder
终端输入以下命令隐藏隐藏文件
defaults write com.apple.finder AppleShowAllFiles -boolean false;killall Finder
- 此项工作需要关闭SIP,如何关闭请看OC配置的Misc章节最后部分
手动添加的启动项
这个就比较简单了,不需要上述的两个文件,直接在config.plist
文件中修改配置就好 Misc -> Boot -> Entries
启动项条目中有一项Flavour
该项内容填法和上述自动过检测到的Windows自定义启动项图标填法一样,例如你想为Windows11自定义图标,应这样填写Windows11:Windows
加载自带主题(2020.9.26更新)
测试版本: opencore 0.60
加载驱动
首先在OpenCore Configurator里加载OpenCanopy.efi驱动

更改启动菜单选项

资源文件夹
下载主题包,解压至oc根目录下,结构如图所示
https://wwa.lanzous.com/iqpw1gyaawh
密码:7gj7

启动效果
因为时间原因,就不研究怎么在opencore下截屏,直接手机拍了一张

加载第三方主题(已弃用)
第三方主题由于坐着已经没有更新,所以只能支持低版本的opencore
测试版本是0.57 , 评论区反应说高版本已经失效,第三方主题作者也很久没更新了,造成无法适配高版本的问题
开源主题项目地址:https://github.com/Fairy-Plus/OpenCoretheme 从此处下载之后解压可得到主题文件及教程,虽然有点多此一举,但是还是写写用法吧
首先把驱动文件FairyPlus.efi复制到Drivers文件夹并在UEFI-UEFI驱动里添加,
Icons文件夹需要复制到EFI/OC/目录根。
Config.plist设置其他Misc->引导Boot-> PickerMode = External。
Config.plist设置UEFI-UEFI->显示输出相关->控制台分辨率->输入Max最后保存。
禁用自带的主题驱动(暂未找到用法),在UEFI-UEFI驱动里找到OpenCanopy.efi并在前面添加#号(注释掉)
another gui is already present如果遇到此类问题->需要将Drivers文件里的OpenCanopy.efi还有Config.plist配置里的删除即可。



最后是启动效果
