OpenCore结构介绍及主题安装


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

基本结构介绍

oc结构

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配置里的删除即可。

External
uefi
禁用自带驱动

最后是启动效果


文章作者: 张登友
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 张登友 !
  目录