跳过正文
  1. Blogs/

3.2 配置Booter

·1941 字·4 分钟· loading · loading · ·
折腾 黑苹果
柴西
作者
柴西
记住也好,记不住也好,反正名头不重要。
目录

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

3.2配置Booter01

  • UEFI 引导设置
Quirk Enabled Comment
RebuildAppleMemoryMap Yes 这是引导 OS X 10.4 到 10.6 所必需的

3.2配置Booter02

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

3.2配置Booter03

  • UEFI 引导设置
Quirk Enabled Comment
RebuildAppleMemoryMap Yes 这是引导 OS X 10.4 到 10.6 所必需的

3.2配置Booter04

Sandy Bridge、Ivy Bridge、Haswell、Broadwell、Skylake、Kaby Lake
#

ProperTree
#

3.2配置Booter05

OpenCore Configurator
#

3.2配置Booter06

OCAuxiliaryTools
#

3.2配置Booter07

Coffee Lake、Comet Lake
#

ProperTree
#

3.2配置Booter08

OpenCore Configurator
#

3.2配置Booter09

OCAuxiliaryTools
#

3.2配置Booter10

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

3.2配置Booter11

  • UEFI 引导设置
Quirk Enabled Comment
RebuildAppleMemoryMap Yes 这是引导 OS X 10.4 到 10.6 所必需的

3.2配置Booter12

Sandy、Ivy Bridge-E、 Haswell-E、Broadwell-E
#

ProperTree
#

3.2配置Booter13

OpenCore Configurator
#

3.2配置Booter14

OCAuxiliaryTools
#

3.2配置Booter15

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

ProperTree
#

3.2配置Booter16

OpenCore Configurator
#

3.2配置Booter17

OCAuxiliaryTools
#

3.2配置Booter18

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

3.2配置Booter19

  • UEFI 引导设置
Quirk Enabled Comment
RebuildAppleMemoryMap Yes 这是引导 OS X 10.4 到 10.6 所必需的

3.2配置Booter20

Sandy Bridge、Ivy Bridge、Haswell、Broadwell、Skylake、Kaby Lake
#

Sandy Bridge 的 iGPU 仅在 macOS 10.13 之前得到官方支持、大多数 Sandy 主板不支持 UEFI

ProperTree
#

3.2配置Booter21

OpenCore Configurator
#

3.2配置Booter22

OCAuxiliaryTools
#

3.2配置Booter23

Coffee Lake、Whiskey Lake
#

ProperTree
#

3.2配置Booter24

OpenCore Configurator
#

3.2配置Booter25

OCAuxiliaryTools
#

3.2配置Booter26

Coffee Lake Plus、Comet Lake
#

ProperTree
#

3.2配置Booter27

OpenCore Configurator
#

3.2配置Booter28

OCAuxiliaryTools
#

3.2配置Booter29

Icelake
#

ProperTree
#

3.2配置Booter30

OpenCore Configurator
#

3.2配置Booter31

OCAuxiliaryTools
#

3.2配置Booter32

AMD 桌面平台
#

Bulldozer(15h)、Jaguar(16h)
#

ProperTree
#

3.2配置Booter33

OpenCore Configurator
#

3.2配置Booter34

OCAuxiliaryTools
#

3.2配置Booter35

Ryzen、Threadripper(17h and 19h)
#

ProperTree
#

3.2配置Booter36

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

OpenCore Configurator
#

3.2配置Booter37

OCAuxiliaryTools
#

3.2配置Booter38

相关文章

3.1 配置ACPI
·1421 字·3 分钟· loading · loading
折腾 黑苹果
2.7 初步配置
·1034 字·3 分钟· loading · loading
折腾 黑苹果
2.6 OC编辑器
·915 字·2 分钟· loading · loading
折腾 黑苹果