使用OcQuirks解决黑苹果安装卡+++++++加号问题的小技巧

OcQuirks 是啥

OcQuirks是用于Clover的替代EFI驱动程序,可替代AptioMemoryFix和所有OsxAptioFix的变体。它是针对OpenCore源代码树构建的,并支持OpenCore的 OcQuirks 模型。

什么时候需要用到它?

假如你在安装 Hackintosh的时候出现了卡 +++的问题时,而其它的内存修复都无法发挥作用的时候,那么你有必要试一下 OcQuirks。

先决条件

OcQuirks EFI驱动程序依赖于OpenRuntime.efi,并且必须将它们一起安装在CLOVER EFI驱动程序目录中。可以在发行版zip中找到OpenRuntime.efi,它与OcQuirks一起构建。

安装

要安装OcQuirks,请下载最新版本或按照以下说明进行构建,然后将其安装到EFI中,以替换任何现有的内存修复驱动程序。

挂载您的EFI分区。

将您的EFI卷备份到可启动的USB驱动器中,并验证它是否可以工作。

从EFI卷上的 Clover 驱动程序文件夹中删除 AptioMemoryFix 和所有OsxAptioFix开头的驱动。

将OcQuirks.efi,OpenRuntime.efi和OcQuirks.plist添加到EFI卷上的Clover/drivers/UEFI文件夹中。

EFI
└── CLOVER
    └── drivers
        └──UEFI
           ├──ApfsDriverLoader.efi
           ├──HfsPlus.efi
           ├──......
           ├──OpenRuntime.efi
           ├──OcQuirks.efi
           ├──OcQuirks.plist
           ├──......
           └──VirtualSmc.efi

重启。

如果您的系统无法启动,请使用U盘重新启动到macOS并通过相反的过程进行还原。检查以下参数,并使用与您的系统更匹配的参数配置OcQuirks.plist。

默认设置基于AptioMemoryFix,并且在设计时考虑了新的Intel系统。您的系统可能需要自定义设置(例如Z390可能需要DevirtualiseMmio + ProtectUefiServices,较旧的100-200系列可能需要EnableWriteUnprotector)。还假定所有slide值都是有效的(不需要注入slide=xxx )。

配置参数

通过将OcQuirks.plist放到Clover/drivers/UEFI文件夹中,可以更改下面列出的参数。可以在发行zip或OcQuirks存储库的根目录中找到。如果未找到plist,则使用以下默认值。

OcQuirks默认值描    述
AvoidRuntimeDefragTrue开启后会修复 UEFI 的运行服务, 例如日期, 时间, NVRAM, 电源控制等
DevirtualiseMmioFalse开启后会减少 Stolen 内存占用空间,扩大 Slide = N 值的范围, 适用于大多数主板
DisableSingleUserFalse开启后会禁止 Cmd + S 和 -s 的使用,使设备更加接近于 T2 白苹果
DisableVariableWriteFalse开启后会禁止 NVRAM 写入, 在 Z390/HM370 等没有原生 macOS 支持 NVRAM 的主板上需要开启
DiscardHibernateMapFalse开启后会重用原始休眠内存映射,仅某些旧硬件需要
EnableSafeModeSlideTrue开启后会允许在安全模式下使用 Slide 值
EnableWriteUnprotectorFalse开启后会在执行期间删除 CR0 寄存器中的写入保护
ForceExitBootServicesTrue开启后会确保 ExitBootServices 即使在 MemoryMap 发生更改时也能调用成功, 除非有必要, 否则请勿使用
MmioWhitelistArray设计为用plist dict值填充,描述使用DevirtualiseMmio quirk时对特定固件功能至关重要的地址。
ProtectMemoryRegionsFalse开启后会用于修复人为制造和睡眠唤醒的问题, AvoidRuntimeDefrag 已经修复了这个问题所以请尽可能避免使用这个 Quirk
ProtectSecureBootFalse避免操作系统对 UEFI 安全启动变量 (db, dbx, PX, KEK) 进行写入, 这个选项主要用于避免 Insyde 主板和 MacPro5,1 的 NVRAM 问题
ProtectUefiServicesFalse保护UEFI服务不被固件覆盖。
ProvideConsoleGopEnableTrue如果控制台句柄中缺少图形输出协议,请安装。
ProvideCustomSlideTrue如果 Slide 值存在冲突, 此选项将强制 macOS 执行以下操作:使用一个伪随机值。只有在遇到 Only N/256 slide values are usable! 时需要
RebuildAppleMemoryMapTrue生成与macOS兼容的内存映射。
SetupVirtualMapTrue开启后会将 SetVirtualAddresses 调用修复为虚拟地址
SignalAppleOSFalse通过 OS Info 将 macOS 加载的信息报告给其它操作系统, 用于在 Windows 中为 MacBook 启用 iGPU
SyncRuntimePermissionsTrue同步运行时环境的内存权限。

有关 OcQuirks 的更详细说明,请查阅《OpenCore配置手册》。

OpenCore配置手册:https://oc.skk.moe/

OcQuirks下载链接:https://github.com/ReddestDream/OcQuirks/releases

© 版权声明
THE END
喜欢就支持一下吧
点赞11赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容