config.plist 详解

你实际要编辑的文件

整个项目只有一个配置文件需要你关注:EFI/config.plist。它的结构兼容 OCAT(OpenCore Auxiliary Tools),基于标准的 OpenCore 0.9+ 示例配置模板。以下是仓库中提供的默认值,以及它们在 Dell Precision 7740 上的具体含义。

ACPI → Add(SSDT 补丁表)

EFI/ACPI/ 目录中共有 32 个 .aml 文件(ACPI 机器语言,编译后的 SSDT),其中 12 个在 config.plist 中被默认加载。其余文件作为被禁用的备选项保留在文件夹中——如果你的具体硬件改版需要它们,只需要把对应条目的 Enabled 改为 true 即可启用。

状态文件名用途解释
YESSSDT-00-XOSI.aml向 macOS 提供 XOSI 方法。macOS 在启动时会调用 ACPI 表中的 _OSI 方法来询问"我运行在什么操作系统上?"——Dell 的 DSDT 会回答"Windows",从而解锁一整套 Coffee Lake-H 平台的电源管理路径和硬件功能。这个 SSDT 配合 ACPI Patch 中的 _OSI→XOSI 重命名补丁一起工作
YESSSDT-01-HPET_RTC_TIMR-fix.aml修复高精度事件定时器(HPET)、实时时钟(RTC)和定时器(TIMR)三个设备之间的 IRQ 中断路由冲突。这些冲突在 Dell 的固件中非常常见,不修复会导致启动时随机卡死或内核崩溃
YESSSDT-03-EC.aml创建一个虚拟的嵌入式控制器(Embedded Controller)设备。macOS 在启动早期会探测 EC 设备——如果找不到 EC,整个启动流程会无限卡住。Dell 7740 的 EC 在 ACPI 表中的路径和 macOS 期望的不同,所以需要一个假的 EC 来"骗过"macOS 的探测
YESSSDT-04-USBX_ALS0_MCHC.aml三合一补丁:USB 电源属性(让 macOS 知道每个 USB 口能提供多少电)+ 环境光传感器占位设备(没有这个的话系统设置里亮度调节滑块可能出 bug)+ 内存控制器集线器设备声明
YESSSDT-05-PLUG-_SB.PR00.aml在每个 CPU 线程上注入 _PR0(完全上电)和 _PR3(完全断电)两种电源状态。这是 XCPM(XNU CPU Power Management,macOS 的 CPU 电源管理框架)正常工作的前提。没有这个 SSDT,你的 CPU 会一直跑在最高频率上,既不省电,风扇也狂转
YESSSDT-06-PNLF-CFL.amlCoffee Lake-H 平台集成显卡(Intel UHD 630)的屏幕背光亮度控制。没有它,你只能使用最高亮度,无法用 Fn 键调节,也无法在系统设置中拖动亮度滑块
YESSSDT-07-SBUS.aml声明 SMBus 系统管理总线设备。I2C 触摸板需要通过 SMBus 来被系统枚举识别——没有 SBUS 设备声明,VoodooI2C 驱动无法找到触摸板硬件
YESSSDT-12-PMCR.aml电源管理控制器(Power Management Controller Register)资源声明。macOS 的电源管理框架依赖这个设备来执行一些底层的电源状态切换
YESSSDT-17-GPRW.aml修补 GPE(General Purpose Event,通用事件)的唤醒方法路径。Dell 固件中的 GPRW 方法在合盖/开盖事件的处理上和 macOS 的预期不兼容——不修补的话,合上盖子再打开时系统不会正常唤醒,屏幕保持黑屏
YESSSDT-DNVMe.aml为 NVMe 固态硬盘注入 APFS(Apple File System)兼容的设备属性,包括 class-code 和 built-in 属性。没有它,系统信息中 NVMe 硬盘会显示为外置设备而非内置硬盘
YESSSDT-dGPU-iGPU-WX7130.amlDell Precision 7740 上最关键的一个 SSDT。它处理 AMD Radeon Pro WX 7130 独立显卡和 Intel UHD 630 集成显卡之间的电源路由和上电序列。WX 7130 是一款移动工作站级别的专业显卡,苹果从来没有在任何 MacBook Pro 上使用过它——它需要一个定制化的上电序列才能被 macOS 正确识别。这个 SSDT 设置了 PEGP→GFX0 的设备路径映射、电源状态注入、以及 PCI 配置空间的初始值

被禁用的 SSDT 参考库(如果你的具体硬件子型号需要它们,只需把对应条目的 Enabled 改为 true):SSDT-02-I2C.amlSSDT-02-OCGPI0-GPHD.amlSSDT-08-DMAC.amlSSDT-10-MEM2.amlSSDT-11-PPMC.amlSSDT-13-PTSWAK.amlSSDT-14-LIDpatch.amlSSDT-15-OCWork-dell.amlSSDT-16-RMCF-OnOff-Trackpad.amlSSDT-16-RMCF-PS2Map.amlSSDT-IPIC.amlSSDT-PMC.amlSSDT-RHUB.amlSSDT-TB3-JHL7540.amlSSDT-TB3.amlSSDT-XSPI.amlSSDT-GPRW.amlSSDT-PTSWAK.aml。共 18 个备用 SSDT,覆盖了不同批次 7740 可能需要的各种额外补丁——包括 Thunderbolt 3 转接器(JHL7540 控制器)、I2C 触摸板备选路径、XSPI 闪存控制器、以及各种 Dell 专有的睡眠/唤醒路径修补。

ACPI → Patch(ACPI 二进制补丁)

发布的配置中只启用了一个二进制补丁:

# _OSI 重命名为 XOSI —— 需要 SSDT-XOSI.aml 配合使用
Comment: "_OSI to XOSI rename - requires SSDT-XOSI.aml"
Enabled: true
Find:    X09TSQ==        ("_OSI" 的 base64 编码)
Replace: WE9TSQ==        ("XOSI" 的 base64 编码)

这个补丁在 DSDT 的二进制码中搜索字符串 _OSI(base64: X09TSQ==),将其替换为 XOSI(base64: WE9TSQ==)。配合已启用的 SSDT-00-XOSI.aml(其中定义了 XOSI 方法的实现),Dell DSDT 中对 _OSI 的所有调用都会被重定向到 XOSI 方法。XOSI 方法会向 macOS 返回"这是一台 Windows 机器"的结果,从而解锁 Coffee Lake-H 在 Windows 下才有的完整硬件功能。

另有五个二进制补丁存在于配置中但被禁用,它们分别是:OSID→XSID(操作系统 ID 重命名)、TPD1 _CRS→XCRS(触摸板当前资源设置重命名)、GPRW→XPRW(通用唤醒事件重命名)、ECDV→EC(嵌入式控制器设备名重命名)、PNLF→XNLF(背光设备名重命名)。只在你有明确证据表明你的 DSDT 需要这些补丁时才逐一启用——盲目开启不需要的 ACPI 补丁可能导致系统不稳定。

DeviceProperties(设备属性注入)

# iGPU —— Intel UHD 630(Coffee Lake-H 平台集成显卡)
PciRoot(0x0)/Pci(0x2,0x0):
  AAPL,ig-platform-id         = 0x9B3E0000   # 必需!CFL 平台的帧缓冲 ID
  device-id                   = 0x9B3E0000   # 伪装设备 ID:WhateverGreen 会将其
                                              # 内部转换为 0x3E9B(macOS 原生支持的值)
  framebuffer-patch-enable    = 0x01000000   # 启用帧缓冲补丁
  framebuffer-stolenmem       = 0x00013001   # 19 MB 被盗内存(BIOS 从系统内存中
                                              # 划给 iGPU 用的那一块,19MB 是 UHD 630 的最小值)
  enable-backlight-registers-fix = 0x01000000 # 修复背光寄存器读写路径
  model = "Intel CoffeeLake-H GT2 [UHD Graphics 630]"

# dGPU —— AMD Radeon Pro WX 7130(Ellesmere 核心)
PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0):
  model  = "Ellesmere [Radeon Pro WX 7130 Mobile]"
  force-online = 0x00000000                   # 不强制在线(由 WhateverGreen 自动管理)
  hda-gfx = "onboard-2"                      # HDMI/DP 音频输出绑定到独立显卡

# HDA 音频 —— Realtek ALC289
PciRoot(0x0)/Pci(0x1F,0x3):
  layout-id = 87              # 首选 layout-id,备选值:7, 11, 15, 23, 87, 93, 99
  model = "Realtek ALC289 Audio Codec"

# HDMI 音频 —— 从 dGPU 输出的数字音频
PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x1):
  model = "Ellesmere HDMI Audio"

# 读卡器 —— Realtek RTS5260
PciRoot(0x0)/Pci(0x1C,0x5)/Pci(0x0,0x0):
  model = "RTS5260 PCI Express Card Reader"

Kernel → Quirks(内核怪异行为补丁)

AppleXcpmCfgLock           = true   # Coffee Lake-H 需要解锁 MSR 配置寄存器
DisableIoMapper            = true   # 禁用 IOMMU/VT-d 映射(大多数 CFL 笔记本无硬件 IOMMU)
DisableIoMapperMapping     = true   # 同上,更强力的禁用方式
DisableLinkeditJettison    = true   # macOS 11+ 需要此补丁(防止 kext 链接编辑器内存泄漏)
DisableRtcChecksum         = true   # 避免每次启动后 BIOS CMOS 设置被重置
PanicNoKextDump            = true   # 发生内核崩溃时不打印 kext 列表(缩短崩溃日志)
PowerTimeoutKernelPanic    = true   # 防止电源管理看门狗导致的无限重启循环
CustomSMBIOSGuid           = true   # 使用 SMBIOS 的 UUID 替代硬件 UUID(iMessage 必需)

UEFI → Quirks(UEFI 固件怪异行为补丁)

ReleaseUsbOwnership        = true   # 修复部分 Dell 固件版本上的 USB 控制器所有权问题
RequestBootVarRouting      = true   # OpenRuntime 需要写入 Boot#### NVRAM 变量
EnableVectorAcceleration   = true   # 在支持的 CPU 上启用 AVX2 向量指令加速

Misc(杂项配置)

Boot:
  ShowPicker      = true               # 显示图形化启动选择界面
  Timeout         = 5                  # 5 秒后自动选择默认启动项
  PickerMode      = External           # 使用外部主题(不从 OpenCore 内置资源生成界面)
  PickerVariant   = Acidanthera/GoldenGate  # 使用 GoldenGate 主题(深蓝色)
  HideAuxiliary   = true               # 默认隐藏辅助条目(按空格键显示全部)

Debug:
  Target          = 67                 # 0x43 = 同时输出到屏幕控制台和日志文件
  AppleDebug      = true               # 启用 Apple 调试协议
  ApplePanic      = true               # 崩溃时将 macOS 的 panic 日志存入 NVRAM
  DisplayLevel    = 2147483650         # 日志显示级别

Security:
  Vault           = Optional           # 可选的安全存储(对日常使用无影响)
  SecureBootModel = Default            # 默认安全启动模型
  BlacklistAppleUpdate = true          # 屏蔽 macOS 固件更新(黑苹果用不上)
  ExposeSensitiveData  = 6             # 暴露敏感数据级别
  ScanPolicy      = 0                  # 扫描所有可用启动设备,不做任何过滤

NVRAM → boot-args(你最常调整的启动参数)

boot-args = "-igfxblr igfxonln=1 swd_panic=1 debug=0x100 keepsyms=1 hbfx-patch-pci=all igfxagdc=0"
参数作用
-igfxblr禁用 Intel 核显的背光寄存器恢复功能——防止睡眠唤醒后屏幕黑屏(这是 7740 上最常见的问题之一)
igfxonln=1强制 iGPU 帧缓冲保持在线状态
swd_panic=1发生内核崩溃时将 panic 日志写入 NVRAM——下次启动时可以通过 SysReport 读取崩溃记录
debug=0x100生成内核崩溃日志时禁用 kext 签名校验(否则已签名的 kext 在崩溃时不会被正确记录)
keepsyms=1保留内核符号表——崩溃时你能看到完整的函数名调用栈,而不是一串无意义的内存地址
hbfx-patch-pci=allAppleHDA 的 HDMI 音频补丁——让 AMD Ellesmere 核心显卡的 HDMI/DP 数字音频输出正常工作
igfxagdc=0禁用 iGPU 的 AGDC(Auto Gfx Dynamic Change)功能——这是 Intel 显卡的屏幕自刷新省电功能。Dell eDP 接口的某些固件版本和 AGDC 不兼容,开启后会导致间歇性黑屏或画面撕裂

csr-active-config = e7 03 00 00 → SIP 值 0x3e7(部分禁用:禁用了 kext 签名校验 + 文件系统保护 + 调试限制,但保留了 NVRAM 和密封系统卷的保护)。SIP 总共 32 位标志:0x3e7 = 0000 0000 0000 0000 0000 0011 1110 0111。如果你不需要加载未签名的 kext,可以改为 00 00 00 00(完全启用 SIP)来获得更安全的系统环境。

UI 主题

仓库中附带了三个 Acidanthera 主题,位于 EFI/Resources/Image/Acidanthera/ 目录下:Chardonnay(浅金色)、GoldenGate(深蓝色,当前默认启用)、Syrah(紫红色)。要切换主题,修改 Misc → Boot → PickerVariant 的值:

Misc → Boot → PickerVariant = Acidanthera/Syrah