黑苹果安装引导工具OpenCore 具体详解
黑苹果安装引导工具OpenCore
(演示版本:OpenCore 0.6.5 Release)
里面含有 OpenCore 的更新日志,以及示例的配置文件(也是我们需要用到的),以及示例的 SSDT 补丁等
OpenCore 引导的主结构,也是重中之重
一些附加的脚本
下面讲解以下各自作用以及功能
OpenCore 存放 ACPI 补丁的目录,将 ACPI 补丁放置在里面,并在配置文件中选择加载(如 SSDT-EC.aml、SSDT-USBX.aml)
OpenCore BootStrap 启动方式的目录(如在配置文件中设置 BootStrap 启动则需要)
OpenCore 启动时加载的驱动文件,将驱动放置在里面,并在配置文件中选择加载(如 HFSPlus.efi、OpenRuntime.efi)
Kexts
放置必需驱动:Lilu、VirtualSMC 或 FakeSMC
OpenCore 资源目录,可放置主题/音频等资源,并选择加载(需要 AudioDxe.efi、OpenCanopy.efi)
OpenCore 引导的可选小工具,如 ResetNVRAM.efi、CFGLock.efi
OpenCore引导程序
OpenCore配置文件
可使用的配置工具:
Propertree(Github 开源的编辑工具,有一定经验者推荐)
Xcode(不做赘述)
我们用 OCC 打开 config.plist
我们可以看到,ACPI 配置加载 SSDT 补丁的地方,已经为我们预留好了一些补丁的加载位置,我们只需要选择对应补丁的启用框打勾,并把文件放在 ACPI 目录下即可
SSDT-PLUG:CPU 加载 X86 原生电源管理所需的 SSDT 补丁,除英特尔二三代不需要外,基本都需要。
SSDT-EC0:AMD 部分需要
SSDT-EC-USBX:上面两个的集合
SSDT-PNLF:背光修补
SSDT-RTC0:和上面一起
SSDT-SBUS:修复 400 系 SBUS 总线管理用,B360 用了会无法睡眠
SSDT-ULAC:USB Port 定制
补丁栏自行选用需要的
GPRW 改名:修复唤醒问题(阻断 USB 唤醒)
电池改名:匹配 BAT0 内容
……
NormalizeHeaders:清理 ACPI 头字段以修复导致的引导崩溃
ResetHwSig:将 FACS 表内的 HardwareSignature 的值重置为 0
以上 5 个选项基本不用管
MmioWhitelist 处如果 Haswell 机型遇到 PCI 问题,可尝试开启(不讲解进阶方法,如定位 MMIO 区域等)
AvoidRuntimeDefag:修复主板环境和服务(必须开启)
DisableSingleUser:关闭单用户模式
DiscardHibernateMap:睡眠相关,修复老旧机型的内存映射 BUG
EnableWriteUnprotector:开放对 UEFI 服务的写入权限(一般开启)
ProtectMemoryRegions:防止老旧机型的内存区域不被错误访问
SetupVirtualMap:构建虚拟内存并映射(一般开启,10 代台式机型(Comet Lake)及 AMD 部分主板因 OVMF 兼容问题需关闭该选项)
ProtectUefiServices:防止UEFI服务(UEFI Sevices)被覆盖(一般和 DevirtualiseMmio 一起开启,Z390 需要开启,10 代(CometLake)可单独开启)
RebuildAppleMemoryMap:重构 macOS 兼容的内存映射,和 EnableWriteUnprotector 二选一,遇到问题尝试开启
ProvideMaxSlide:默认即可
配置 PCI 设备的参数,例如注入 IGPU 的 Framebuffer 数据、注入音频的设备 ID 和 Layout ID
PciRoot(0x0)/Pci(0x2,0x0) 一般为内置显卡(核显-IGPU),可在这里注入 Framebuffer
这里可以对内核作一些修改,包括注入驱动,对内核进行修补替换等
Cpuid1Data:EB060800 00000000 00000000 00000000
(来自Bugprogrammer)
强制加载
补丁
Ryzen 可在这里打对应的 Ryzen 专用内核补丁
AppleCpuPmCfgLock:如果 CFG Lock 状态为开启,则必须开启(Skylake 之前需和 AppleXcpmCfgLock 一起启用)
AppleXcpmExtraMsrs:无原生电源管理的英特尔 CPU 需开启(Pentium、Haswell-E、Broadwell-E 等)
CustomSMBIOSGuid:执行 SMBIOS 自定义模式下的 GUID 补丁(Dell 笔记本遇到序列号显示问题则开启)
ExtendBTFeatureFlags:替代 BT4LEContinuityFixup 驱动
ExternalDiskIcons:强制 AHCI 所有磁盘为内置磁盘(如果遇到硬盘反转(内置—>外置,外置—>内置)尝试开启)
IncreasePciBarSize:将 PCI 带宽大小扩充至 4GB
LegacyCommpage:老旧主板使用SSSE3需开启
PowerTimeoutKernelPanic:禁用电源状态超时导致的内核崩溃(遇到睡眠崩溃或重启的问题可尝试开启)
XhciPortLimit:修补 USB 驱动,解除 USB 端口超过 15 个的限制,定制 USB 后如果超过 15 个 USB 端口则保持开启
Misc
ConsoleAttributes:启动菜单的文字颜色
HideAuxiliary:隐藏启动菜单辅助项(恢复模式、重置NVRAM等,开启后可通过启动菜单内按空格键显示辅助项)
PickerAttributes:启动界面属性(默认即可)
PollAppleHotKeys:模拟苹果快捷键(如 Command+V 进入调试模式)
TakeoffDelay:快捷键延迟
Built In 为默认的显示模式
Apple 为白果用
到倒计时结束时进入默认指定到系统
1-Max 为开启
DisplayDelay:屏幕调试输出延迟
Target:屏幕调试输出目标
AppleDebug:调试日志
SysReport:在引导分区内生成系统报告
Security
ExposeSensitiveData:暴露操作系统的敏感数据(UEFI 变量)
调整系统扫描规则
ApECID:苹果安全引导标识符
如果不使用文件加密选 Optional
None 为使用默认的引导启动方式
BootstarpShort:短引导选项,无法处理完整启动路径的固件可用(例如 Insyde)
PasswordHash:密码哈希值
AllowNVRAMReset:引导界面开启内置的 NVRAM 重置工具
AllowSetDefault:允许使用 Ctrl+Enter 选择默认的启动项
SecureBootModel:选择 Disabled 即可(使用 Nvidia Web Driver、itlwm 需设为 Default,或强制加载)
BlessOverride
\EFI\Microsoft\Boot\bootmgfw.efi 即为引导单 EFI 下的 Windows
自定义引导项
修改 NVRAM 内的数据
SystemAudioVolume:修改系统声音大小(0-100)
csr-active-config:
00000000 开启 SIP
77000000 关闭 SIP(Big Sur 11.0)
设置默认语言
72753a3139343536 俄语
7A682D48616E733A323532 中文(zh-Hans:252)
开启 10.13.x Web Driver
LegacyEnable:非原生 NVRAM(模拟 NVRAM)需开启
WriteFlash:允许把变量写入闪存
这里不细讲,选自己适合的就行了
SpoofVendor:仿冒主板品牌商为 Acidanthera
SystemMemoryStatus:默认即可
APFS
HideVerbose:隐藏 APFS 驱动的调试日志
GlobalConnect:在 APFS 加载期间执行完整的设备连接(针对 HP 机型)
将我们想加载的驱动的名字写在里面如
并勾选连接驱动程序(Connect Driver)
IgnoreInvalidFlexRatio:如果 MSR 0x194 区域被锁定则开启(Skylake 之前的机型如果未解锁 CFG 开启此项)
RequestBootVarRouting:macOS 下启动磁盘内切换默认系统引导需开启
DeduplicateBootOrder:如果启动方式选择 BootStrap,需开启(在 OpenCore BootLoader 0.6.5 中被移除)
至此,config.plist 配置结束
开启-Enabled
XHCI Hand Off:开启
CSM:关闭
启动方式:Windows 8/10 UEFI
Fast Boot:关闭
CFG Lock:关闭
(以上为演示机 BIOS 设置,其他主板可能有相关调整)