Skip to content

Latest commit

 

History

History
325 lines (213 loc) · 11.8 KB

4-2.md

File metadata and controls

325 lines (213 loc) · 11.8 KB

2. Booter

本节允许对操作系统引导加载程序应用不同类型的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

QtOpenCoreConfig

Coffee Lake、Comet Lake

ProperTree

OpenCore Configurator

QtOpenCoreConfig

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

QtOpenCoreConfig

Skylake-X/W、Cascade Lake-X/W

ProperTree

OpenCore Configurator

QtOpenCoreConfig

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

QtOpenCoreConfig

Coffee Lake、Whiskey Lake

ProperTree

OpenCore Configurator

QtOpenCoreConfig

Coffee Lake Plus、Comet Lake

ProperTree

OpenCore Configurator

QtOpenCoreConfig

Icelake

ProperTree

OpenCore Configurator

QtOpenCoreConfig

AMD 桌面平台

Bulldozer(15h)、Jaguar(16h)

ProperTree

OpenCore Configurator

QtOpenCoreConfig

Ryzen、Threadripper(17h and 19h)

ProperTree

  • DevirtualiseMmio
    • 注意 TRx40 需要这个标志
  • SetupVirtualMap
    • 注意 B550、A520 和 TRx40 板应禁用此功能。
    • 较新的 X570 BIOS 版本也需要禁用此功能
    • 2020 年末 BIOS 更新的 X470 和 B450 也需要禁用此功能

OpenCore Configurator

QtOpenCoreConfig