---前提--- 1. 你得用 Clover 引导 (......) 2. 开启 kernelcache (开了也能 inject kext,还能patch kext,速度又快,为啥不开) 3. 你的 AppleHDA 现在工作正常 ---方法--- 先说 AppleHDA 的,估计就这个关注的人多,其他都是小意思。 1. 把你修改过的xml 文件改名后添加到 AppleHDA 里。把文件名.xml.zlib 改成 .zml.zlib 例如 layout3.xml.zlib -> layout3.zml.zlib。 如果是下载的现成驱动不确定用到了哪个,索性把全部 .xml.zlib都改掉,不影响使用。 2. 建立 patch 项目,如果你之前就用了kext patch那就不用我说了,如果没用过,需要建立如图1项目。后面的0-5就不用管了,是Array下面的小项,你建几个就有几个=。= 3. 在 Clover 的配置文件添加下列kext patch项目 <dict> <key>Comment</key> <string>Patch_to_ALC887 (xml.zl to zml.zl)</string> <key>Find</key> <data> eG1sLnps </data> <key>Name</key> <string>AppleHDA</string> <key>Replace</key> <data> em1sLnps </data> </dict> <dict> <key>Comment</key> <string>Patch_to_ALC887 (patch vid pid)</string> <key>Find</key> <data> ixnUEQ== </data> <key>Name</key> <string>AppleHDA</string> <key>Replace</key> <data> hwjsEA== </data> </dict> 添加的项目上已经有了基本的说明,我再简单解释一下吧。 第一项是重点,让AppleHDA读取资源时不再读取xml.zlib, 而是读取 zml.zlib (机智的小伙伴你好。。。),这样系统升级 AppleHDA升级时就不会把我们改好的定义覆盖掉。 后一项就是binary patch,让 AppleHDA 能接受我们硬件的vid 和 pid了。 我这里用来示范的数据时 ALC887 声卡的数据 (技嘉 B75M-D3V Rev 1.1),声卡不同的用PlistEdit Pro修改 Patch_to_ALC887 (patch vid pid) 下面那个 Replace 对应的 data 就好。 4. 应该已经能正常工作了。:) 顺便附上一些常用 patch,系统升级时能省去很多麻烦。包括了 开启Trim , 屏蔽AppleTyMCEDriver对 ECC 内存的检测,禁止某kext加载等。 看注释应该能懂吧 <key>KextsToPatch</key> <array> <dict> <key>Comment</key> <string>ECC Memory Check Hack</string> <key>Find</key> <data> cgoATWFjUHJvNCwxAE1hY1BybzUsMQBY </data> <key>Name</key> <string>AppleTyMCEDriver</string> <key>Replace</key> <data> cgoAAAAAAAAAAAAAAAAAAAAAAAAAAABY </data> </dict> <dict> <key>Comment</key> <string>Trim Enabler</string> <key>Find</key> <data> QVBQTEUgU1NEAA== </data> <key>Name</key> <string>IOAHCIBlockStorage</string> <key>Replace</key> <data> AAAAAAAAAAAAAA== </data> </dict> <dict> <key>Comment</key> <string>Patch_to_not_load_this_driver</string> <key>Find</key> <string>0x04020000</string> <key>InfoPlistPatch</key> <true/> <key>Name</key> <string>AppleUpstreamUserClientDisabler</string> <key>Replace</key> <string>0x44220000</string> </dict> <dict> <key>Comment</key> <string>Patch_to_not_load_this_driver</string> <key>Find</key> <string>0x04020000</string> <key>InfoPlistPatch</key> <true/> <key>Name</key> <string>ApplePolicyControlDisabler</string> <key>Replace</key> <string>0x44220000</string> </dict> 5.把HDA Hardware Config Resource的信息保存到 FakeSMC 里面,不再修改 AppleHDAHardwareConfigDriver.kext ,从而避免升级时被覆盖。 这个很简单, 就是把改好的AppleHDAHardwareConfigDriver.kext的info.plist 里面 IOKitPersonalities/HDA Hardware Config Resource 的内容复制出来,贴到FakeSMC.kext的 info.plist里面,依然是贴到 IOKitPersonalities 下。 这样FakeSMC里面的配置会替代 AppleHDAHardwareConfigDriver.kext , 也不用担心系统升级时 AppleHDAHardwareConfigDriver.kext 被覆盖导致声卡不能工作了。
时间: 2024-12-20 16:05:29