查看: 48661|回复: 171

[教程] (通过10.9.1考验)如何让升级时AppleHDA不再折腾 - 让 Clover KextPatch 帮忙

  [复制链接]
detecti 发表于 2013-10-25 21:17 | 显示全部楼层 |阅读模式
快御云安全
本帖最后由 detecti 于 2013-12-19 19:42 编辑

---更新写在最前面,第一次看文的从更新后面开始看吧---

感谢 abus 的留言提醒, 我忘了写一个东西。他提醒我说 AppleHDAHardwareConfigDriver.kext的info.plist 需要替换,否则没有声音,我才突然想起,这个info.plist的问题,里面涉及到HDA Hardware Config Resource的配置信息。请看方法中的第五步进行修改。

---更新结束---

最近折腾了一下 Mavericks,摸索过程中看到国外强文一篇,简单翻译+重写一下做个小教程吧。

每次升级都需要重新折腾 AppleHDA , 开 Trim,直接导致我在10.8时代懒得升级,一直到装上 10.9 之前我还用着10.8.3版本。Clover 能救人民于水火了。

---前提---
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项目

  1.                         <dict>
  2.                                 <key>Comment</key>
  3.                                 <string>Patch_to_ALC887 (xml.zl to zml.zl)</string>
  4.                                 <key>Find</key>
  5.                                 <data>
  6.                                 eG1sLnps
  7.                                 </data>
  8.                                 <key>Name</key>
  9.                                 <string>AppleHDA</string>
  10.                                 <key>Replace</key>
  11.                                 <data>
  12.                                 em1sLnps
  13.                                 </data>
  14.                         </dict>
  15.                         <dict>
  16.                                 <key>Comment</key>
  17.                                 <string>Patch_to_ALC887 (patch vid pid)</string>
  18.                                 <key>Find</key>
  19.                                 <data>
  20.                                 ixnUEQ==
  21.                                 </data>
  22.                                 <key>Name</key>
  23.                                 <string>AppleHDA</string>
  24.                                 <key>Replace</key>
  25.                                 <data>
  26.                                 hwjsEA==
  27.                                 </data>
  28.                         </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加载等。 看注释应该能懂吧

  1.                 <key>KextsToPatch</key>
  2.                 <array>
  3.                         <dict>
  4.                                 <key>Comment</key>
  5.                                 <string>ECC Memory Check Hack</string>
  6.                                 <key>Find</key>
  7.                                 <data>
  8.                                 cgoATWFjUHJvNCwxAE1hY1BybzUsMQBY
  9.                                 </data>
  10.                                 <key>Name</key>
  11.                                 <string>AppleTyMCEDriver</string>
  12.                                 <key>Replace</key>
  13.                                 <data>
  14.                                 cgoAAAAAAAAAAAAAAAAAAAAAAAAAAABY
  15.                                 </data>
  16.                         </dict>
  17.                         <dict>
  18.                                 <key>Comment</key>
  19.                                 <string>Trim Enabler</string>
  20.                                 <key>Find</key>
  21.                                 <data>
  22.                                 QVBQTEUgU1NEAA==
  23.                                 </data>
  24.                                 <key>Name</key>
  25.                                 <string>IOAHCIBlockStorage</string>
  26.                                 <key>Replace</key>
  27.                                 <data>
  28.                                 AAAAAAAAAAAAAA==
  29.                                 </data>
  30.                         </dict>
  31.                         <dict>
  32.                                 <key>Comment</key>
  33.                                 <string>Patch_to_not_load_this_driver</string>
  34.                                 <key>Find</key>
  35.                                 <string>0x04020000</string>
  36.                                 <key>InfoPlistPatch</key>
  37.                                 <true/>
  38.                                 <key>Name</key>
  39.                                 <string>AppleUpstreamUserClientDisabler</string>
  40.                                 <key>Replace</key>
  41.                                 <string>0x44220000</string>
  42.                         </dict>
  43.                         <dict>
  44.                                 <key>Comment</key>
  45.                                 <string>Patch_to_not_load_this_driver</string>
  46.                                 <key>Find</key>
  47.                                 <string>0x04020000</string>
  48.                                 <key>InfoPlistPatch</key>
  49.                                 <true/>
  50.                                 <key>Name</key>
  51.                                 <string>ApplePolicyControlDisabler</string>
  52.                                 <key>Replace</key>
  53.                                 <string>0x44220000</string>
  54.                         </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 被覆盖导致声卡不能工作了。

---

以上,用着方便就回个帖吧。 lz 这打半天字也怪折腾的。 我还得去折腾变频呢~

评分

16

查看全部评分

detecti  楼主| 发表于 2013-10-25 21:44 | 显示全部楼层
之前碰到有人找我要改好的驱动, 顺便做为附件上传一下,同主板的可以直接用,其他人自行尝试吧。

技嘉 B75M-D3V Rev 1.1 的主板用户请使用 Clover 设置 Audio - Inject = 3。可以得到一个基本完美的配置(光纤输出之类的没试过,不确定,所以说基本完美)

机箱后的输出定义为内置扬声器与前置输出自动切换,机箱后的 Mic 输入定义内置麦克风,与前置Mic 自动切换。可通过多媒体键盘调音量(如果你的键盘能被识别的话。。。),可静音。

上传的附件仅包含必要的定义文件,而且已经改名好 .zml.zlib,直接添加到AppleHDA,重建kextcache,配合上面的办法即可使用。

ALC887_otf_patch.zip

11.43 KB, 下载次数: 331, 下载积分: PB币 -1

回复

使用道具 举报

媛懒如此 发表于 2013-10-25 21:47 | 显示全部楼层
声卡没那么简单。升级不是照样覆盖掉啦

点评

就是这么简单。直接pacth 用clover 引导时候自动加载。= =  发表于 2013-11-29 12:06
真的就这么简单,升级只会替换原系统有的文件,顺道感谢楼主,这思路太棒啦。  发表于 2013-10-27 07:53
回复

使用道具 举报

detecti  楼主| 发表于 2013-10-25 21:51 | 显示全部楼层
媛懒如此 发表于 2013-10-25 21:47
声卡没那么简单。升级不是照样覆盖掉啦

请仔细爬文。
回复

使用道具 举报

p.H 发表于 2013-10-25 22:18 来自手机 | 显示全部楼层
有木有原贴链接
回复

使用道具 举报

zmmwan 发表于 2013-10-25 22:27 | 显示全部楼层
clover在 patch 的时候会出现不定时的加载不了 patch 的驱动,所以,我还是选择改原来的驱动!
回复

使用道具 举报

futureisno 发表于 2013-10-25 22:32 | 显示全部楼层
谢谢楼主,想请问下,如何解决声音延迟的问题。

如果有段时间没有开启声音,再开就会出现延迟。

smbios设置macpro没有这个现象,设置成imac声音就会延迟。
回复

使用道具 举报

detecti  楼主| 发表于 2013-10-25 22:34 | 显示全部楼层
futureisno 发表于 2013-10-25 22:32
谢谢楼主,想请问下,如何解决声音延迟的问题。

如果有段时间没有开启声音,再开就会出现延迟。

貌似没什么办法解决,所以我都是设置成 MacPro5,1 然后用上面提到的 patch 屏蔽掉对 ECC 内存的检测
回复

使用道具 举报

neycwby09 发表于 2013-10-25 22:35 来自手机 | 显示全部楼层
这个不错啊 居然不会覆盖掉改好的zlib信息 支持下 回去试试~
回复

使用道具 举报

detecti  楼主| 发表于 2013-10-25 22:35 | 显示全部楼层
p.H 发表于 2013-10-25 22:18
有木有原贴链接

发帖时加链接有时会蛋疼。。。想回帖补但是忘了 =。= 现在补上

http://www.insanelymac.com/forum ... help-of-bootloader/
回复

使用道具 举报

detecti  楼主| 发表于 2013-10-25 22:38 | 显示全部楼层
zmmwan 发表于 2013-10-25 22:27
clover在 patch 的时候会出现不定时的加载不了 patch 的驱动,所以,我还是选择改原来的驱动!

用 Clover 时间不长,还没碰到不定时的抽风情况。 怀疑是否 kernelcache 丢失所以才 patch 失败的。

碰到的都是肯定不能patch的时候,比如安装系统时,第一次进入系统时 =。=
回复

使用道具 举报

whitegerry 发表于 2013-10-25 22:42 | 显示全部楼层
要帖就把insanelymac的原地址贴出来吧,国外搞这个的也就那么几个论坛,kextpatch是变色龙外几种引导的基本功能。
回复

使用道具 举报

futureisno 发表于 2013-10-25 22:44 | 显示全部楼层
detecti 发表于 2013-10-25 22:34
貌似没什么办法解决,所以我都是设置成 MacPro5,1 然后用上面提到的 patch 屏蔽掉对 ECC 内存的检测

找到了原来用的一个小软件,现在解决了问题,你可以试试! 消除声卡延迟爆音.zip (12.13 KB, 下载次数: 80)
回复

使用道具 举报

detecti  楼主| 发表于 2013-10-25 22:49 | 显示全部楼层
whitegerry 发表于 2013-10-25 22:42
要帖就把insanelymac的原地址贴出来吧,国外搞这个的也就那么几个论坛,kextpatch是变色龙外几种引导的基本 ...

忘了放原帖地址确实是我的问题。
不过这个论坛的编辑器确实有点。。情况。。 本来想回复时贴上后来忘了。 不过刚才已经补在楼上了。
回复

使用道具 举报

detecti  楼主| 发表于 2013-10-25 22:50 | 显示全部楼层
futureisno 发表于 2013-10-25 22:44
找到了原来用的一个小软件,现在解决了问题,你可以试试!

感谢分享。 不过能用配置解决我就不开软件了。。。本来显卡就蛋疼的得开个VLC
回复

使用道具 举报

futureisno 发表于 2013-10-25 22:54 | 显示全部楼层
detecti 发表于 2013-10-25 22:50
感谢分享。 不过能用配置解决我就不开软件了。。。本来显卡就蛋疼的得开个VLC

额,那好吧。
回复

使用道具 举报

RuntimeError 发表于 2013-10-25 23:03 | 显示全部楼层
detecti 发表于 2013-10-25 22:50
感谢分享。 不过能用配置解决我就不开软件了。。。本来显卡就蛋疼的得开个VLC

一样显卡悲剧,需要 VLC 解救,不知道 10.9 解决显卡随机卡死没,还没升级呢。
回复

使用道具 举报

sofair 发表于 2013-10-26 00:17 来自手机 | 显示全部楼层
mark 收藏
回复

使用道具 举报

tmacyunn 发表于 2013-10-26 00:41 | 显示全部楼层
这个功能确实是chameleon差的,可以用这个屏蔽掉一些声卡的日志,填0替换即可。
回复

使用道具 举报

detecti  楼主| 发表于 2013-10-26 06:51 | 显示全部楼层
RuntimeError 发表于 2013-10-25 23:03
一样显卡悲剧,需要 VLC 解救,不知道 10.9 解决显卡随机卡死没,还没升级呢。

没有解决,依然需要VLC。
屏幕快照 2013-10-26 上午6.51.10.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋手机版联系我们

Copyright © 2005-2024 PCBeta. All rights reserved.

Powered by Discuz!  CDN加速及安全服务由「快御」提供

请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。

远景在线 ( 苏ICP备17027154号 )|远景论坛 |Win11论坛 |Win10论坛 |Win8论坛 |Win7论坛 |WP论坛 |Office论坛

GMT+8, 2024-12-27 02:13

快速回复 返回顶部 返回列表