本节允许对操作系统引导加载程序应用不同类型的UEFI修改,主要是Apple引导加载程序(boot.efi)。
这些修改目前为不同的固件类型提供了各种修补程序和环境更改。其中一些功能最初是作为 AptioeMoryFix.efi (不再维护)的一部分实现的。
完整的 Quiks 怪癖 #
因为各个平台的版本不太一样,在详细说明之前写来一个 OC 0.7.3 完整的 Quiks 怪癖 说明,这样心里大家设置的时候心里一般就有个底了。
- AllowRelocationBlock
- 允许通过重新定位块引导 macOS
- 此怪癖需要启用 ProvideCustomSlide,通常还需要启用 AvoidRuntimeDefrag 才能正常工作
- 虽然在使用较低内存的平台上运行旧 macOS 版本需要这种怪癖
- 但它与某些硬件和 Mac OS 11 不兼容,在这种情况下,应考虑使用 EnableSafeModeSlide
- AvoidRuntimeDefrag
- 防止 boot.efi 运行时内存碎片整理
- 开启后会修复 UEFI 的运行服务, 例如日期、时间、NVRAM、电源控制
- 除了苹果和 VMware 之外,大多数类型的固件都需要这种怪癖
- DevirtualiseMmio
- 从某些 MMIO 区域删除运行时属性
- 删除已知内存区域的运行时位来减少内存映射中被盗的内存占用
- 一般情况下,采用 slide=1 的方式进行连续性内存注入,故一般不勾选,除非你的机器用了 KASLR 方式。
- DisableSingleUser
- 禁用单用户模式
- 开启后会禁止
Cmd + S
和-s
的使用,使设备更加接近于 T2 白苹果
- DisableVariableWrite
- 防止 macOS NVRAM 写入访问
- 开启后会禁止 NVRAM 写入, 在 Z390/HM370 等没有原生 macOS 支持 NVRAM 的主板上需要开启
- DiscardHibernateMap
- 开启后会重用原始休眠内存映射,仅某些旧硬件需要
- EnableSafeModeSlide
- 开启后会允许在安全模式下使用 Slide 值
- 安全模式下(-x)是否用连续性的内存注入方式
- EnableWriteUnprotector
- 允许对 UEFI 运行时服务代码进行写访问
- 开启后会在执行期间删除 CR0 寄存器中的写入保护
- ForceExitBootServices
- 失败时使用新内存映射重试 ExitBootServices
- 开启后会确保 ExitBootServices 即使在 MemoryMap 发生更改时也能调用成功
- 一般很老很旧的主板可能需要使用,新主板一般不需要使用
- ProtectMemoryRegions
- 保护内存区域不被错误访问
- 确保 CSM 内存区域标记为 ACPI NVS,以防止 boot.efi 或 XNU 重新定位或使用它们
- AvoidRuntimeDefrag 解决了类似的问题。默认不勾选
- 一些老旧的主板可能需要勾选
- ProtectSecureBoot
- 保护 UEFI 安全引导变量不被写入
- 避免操作系统对 UEFI 安全启动变量 (
db
,dbx
,PX
,KEK
) 进行写入 - 这个选项主要用于避免 Insyde 主板和 MacPro5,1 的 NVRAM 问题
- ProtectUefiServices
- 保护 UEFI 服务不被固件覆盖
- 用于修复 Z390 在 DevirtualiseMmio、ProtectCsmRegion 或 ShrinkMemoryMap 上的问题
- 非 Z390 主板一般默认不勾选
- ProvideCustomSlide
- 在内存不足时提供自定义 KASLR 幻灯片
- 此选项时强制 macOS 在可用的 slide 值中使用一个随机的、不产生冲突的 slide 值
- 如果 Slide 值存在冲突, 此选项将强制 macOS 执行以下操作,使用一个伪随机值
- 只有在遇到
Only N/256 slide values are usable!
时需要
- RebuildAppleMemoryMap
- 重建 macOS 兼容的内存映射
- 一般在启动 macOS 10.6 及更早版本时可能需要这个选项
- SetupVirtualMap
- 在 SetVirtualAddresses 上设置虚拟内存
- 开启后会将 SetVirtualAddresses 调用修复为虚拟地址
- 通过虚拟内存建立连续性内存供 OC 使用,并映射到分散的物理内存中
- SignalAppleOS
- 通过任何操作系统的操作系统信息报告正在加载的 macOS
- 将其他操作系统的信息报告给正在加载的 macOS
- 用于在 Windows 中为 MacBook 启用 iGPU
- SyncRuntimePermissions
- 更新运行时环境的内存权限
- 主要用于早期的 macOS 或 Linux/Windows
Intel 桌面平台 #
Yonah、Conroe、Penryn #
- 传统引导设置
Quirk | Enabled | Comment |
---|---|---|
AvoidRuntimeDefrag | No | Big Sur 可能需要启用此怪癖 |
EnableSafeModeSlide | No | |
EnableWriteUnprotector | No | |
ProvideCustomSlide | No | |
RebuildAppleMemoryMap | Yes | 这是引导 OS X 10.4 到 10.6 所必需的 |
SetupVirtualMap | No |
- UEFI 引导设置
Quirk | Enabled | Comment |
---|---|---|
RebuildAppleMemoryMap | Yes | 这是引导 OS X 10.4 到 10.6 所必需的 |
Lynnfield、Clarkdale #
- 传统引导设置
Quirk | Enabled | Comment |
---|---|---|
AvoidRuntimeDefrag | No | Big Sur 可能需要启用此怪癖 |
EnableSafeModeSlide | No | |
EnableWriteUnprotector | No | |
ProvideCustomSlide | No | |
RebuildAppleMemoryMap | Yes | 这是引导 OS X 10.4 到 10.6 所必需的 |
SetupVirtualMap | No |
- UEFI 引导设置
Quirk | Enabled | Comment |
---|---|---|
RebuildAppleMemoryMap | Yes | 这是引导 OS X 10.4 到 10.6 所必需的 |
Sandy Bridge、Ivy Bridge、Haswell、Broadwell、Skylake、Kaby Lake #
ProperTree #
OpenCore Configurator #
OCAuxiliaryTools #
Coffee Lake、Comet Lake #
ProperTree #
OpenCore Configurator #
OCAuxiliaryTools #
Intel 高端桌面平台 #
Nehalem、Westmere #
- 传统引导设置
Quirk | Enabled | Comment |
---|---|---|
AvoidRuntimeDefrag | No | Big Sur 可能需要启用此怪癖 |
EnableSafeModeSlide | No | |
EnableWriteUnprotector | No | |
ProvideCustomSlide | No | |
RebuildAppleMemoryMap | Yes | 这是引导 OS X 10.4 到 10.6 所必需的 |
SetupVirtualMap | No |
- UEFI 引导设置
Quirk | Enabled | Comment |
---|---|---|
RebuildAppleMemoryMap | Yes | 这是引导 OS X 10.4 到 10.6 所必需的 |
Sandy、Ivy Bridge-E、 Haswell-E、Broadwell-E #
ProperTree #
OpenCore Configurator #
OCAuxiliaryTools #
Skylake-X/W、Cascade Lake-X/W #
ProperTree #
OpenCore Configurator #
OCAuxiliaryTools #
Intel 笔记本平台 #
Clarksfield、Arrandale #
Arrandale 的 iGPU 核显仅在 macOS 10.13 之前得到官方支持,大多数 Clarksfield 和 Arrandale 主板不支持 UEFI
- 传统引导设置
Quirk | Enabled | Comment |
---|---|---|
AvoidRuntimeDefrag | No | Big Sur 可能需要启用此怪癖 |
EnableSafeModeSlide | No | |
EnableWriteUnprotector | No | |
ProvideCustomSlide | No | |
RebuildAppleMemoryMap | Yes | 这是引导 OS X 10.4 到 10.6 所必需的 |
SetupVirtualMap | No |
- UEFI 引导设置
Quirk | Enabled | Comment |
---|---|---|
RebuildAppleMemoryMap | Yes | 这是引导 OS X 10.4 到 10.6 所必需的 |
Sandy Bridge、Ivy Bridge、Haswell、Broadwell、Skylake、Kaby Lake #
Sandy Bridge 的 iGPU 仅在 macOS 10.13 之前得到官方支持、大多数 Sandy 主板不支持 UEFI
ProperTree #
OpenCore Configurator #
OCAuxiliaryTools #
Coffee Lake、Whiskey Lake #
ProperTree #
OpenCore Configurator #
OCAuxiliaryTools #
Coffee Lake Plus、Comet Lake #
ProperTree #
OpenCore Configurator #
OCAuxiliaryTools #
Icelake #
ProperTree #
OpenCore Configurator #
OCAuxiliaryTools #
AMD 桌面平台 #
Bulldozer(15h)、Jaguar(16h) #
ProperTree #
OpenCore Configurator #
OCAuxiliaryTools #
Ryzen、Threadripper(17h and 19h) #
ProperTree #
- DevirtualiseMmio
- 注意 TRx40 需要这个标志
- SetupVirtualMap
- 注意 B550、A520 和 TRx40 板应禁用此功能。
- 较新的 X570 BIOS 版本也需要禁用此功能
- 2020 年末 BIOS 更新的 X470 和 B450 也需要禁用此功能
OpenCore Configurator #
OCAuxiliaryTools #