如何让升级时AppleHDA不再折腾

---前提---

  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

如何让升级时AppleHDA不再折腾的相关文章

哦耶OYE-0001 OpenWrt路由器折腾记(by quqi99)

作者:张华  发表于:2015-10-02版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99) 买回哦耶路由器之后,自带的openwrt无法安装ipset没法科学上网(说内核不满足大于3.10的要求),折腾了一下后就闲置了好几个月,今天有空打算接着继续玩的时候发现了一些莫名其妙的问题,运行vi报ELF相关的错误,运行uhttpd报sock相关的错误,图形化界面无法登录,不知怎么弄了一下ssh也无法登录

Python学习日志9月15日

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "Helvetica Neue"; color: #000000 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "Helvetica Neue"; color: #000000; min-height: 12.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px;

使用ZeroMQ彻底重构OpenVPN的设想以及一些新想法

在一个迟到的雨夜,我怀着无比激动的心情写了不到20行代码...但是这不到20行代码却是一个新发现,它彻底解决了OpenVPN的三个重大问题,是的,彻底解决. ZeroMQ的到来 我接触ZeroMQ这玩意确实有点晚,那是上一个下雨的周日,我自己宅在家里看罗马史,畅想着这个辉煌的帝国,伟大的制度.       ZeroMQ彻底颠覆了以往的socket编程模型.它使得底层的BSD socket对程序员不再可见,程序员只需要处理自己业务即可,即收到某个消息,将其做一些处理,然后要么回复一个消息,要么转发

cmake

前言cmake 已经开发了 5,6 年的时间,如果没有 KDE4,也许不会有人或者 Linux 发行版本重视cmake,因为除了 Kitware 似乎没有人使用它.通过 KDE4 的选型和开发,cmake 逐渐进入了人们的视线,在实际的使用过程中,cmake 的优势也逐渐的被大家所认识,至少 KDE 的开发者们给予了 cmake极高的评价,同时庞大的 KDE 项目使用 cmake 来作为构建工具也证明了 cmake 的可用性和大项目管理能力.所以,cmake 应该感谢 KDE,也正因为如此,cm

基于FPGA的测频系统+上位机

[1]本设计的要求: 利用FPGA实现频率计,要求2秒内测出外部频率,并且2秒更新一次值: 实现100MHz频率的测量: 测量结果通过串口921600bps发送给PC: 发送格式为:FFCB0176543210,其中FFCB01为帧头,76543210(即0x76543210)为频率值,数据在上位机中转换成十进制并用合适的单位(MHz.KHz.Hz)表示: 完善上位机. [2]现在就来说说我是如何实现上述条件的.对于第一个条件"2秒内测出频率并2秒更新一次",很明显这是连续.实时的测量

ZIP压缩算法详细分析及解压实例解释

最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据压缩,两者本质上没啥区别,在数学家看来,都是映射.一方面在进行通信的时候,有必要将待传输的数据进行压缩,以减少带宽需求:另一方面,计算机存储数据的时候,为了减少磁盘容量需求,也会将文件进行压缩,尽管现在的网络带宽越来越高,压缩已经不像90年代初那个时候那么迫切,但在很多场合下仍然需要,其中一个原因是

选择手机的困惑

最近用了两年半的iPhone4也意外摔坏了.起因是一次晚上iPhone4在空中划过了一道不完美弧线,飘然落地,拿起来看时落地处屏幕已经脱落了边框,屏幕左1/4无法使用,但除了震动失灵边框磨损严重,剩余的部分倒也可以使用(弄坏过三个iPhone,两个都是屏幕摔坏,都是摔得过程惨不忍睹,摔后结局还可以接受).后来想想,iPhone4是大一买的,和iOS6一起陪我经历了许多事情,就干脆将它退休,于是就考虑干脆换个手机.题外话由于之前用过一阵子iPhone5,出给亲戚了,然后脑残的入了MX3,就在摔手机

Ubuntu Desktop安装及桌面美化(修复图片)

Ubuntu Desktop安装及桌面美化 1   开篇概述 本 系统的文章主要是讲互联网方向的开发主题.根据目前主流互联网公司的技术架构,Linux是必不可少的.对于一直习惯于在Windows下工作和开发的人 来说,习惯在Linux系统下工作是进入互联网领域的第一步.故本文主要面向的对象是已经有了熟悉的Windows下的操作基础,同时有志于了解 Linux系统的同学. 备注: 本文主要以Linux的Ubuntu 14.0 LTS发行版为例子进行讲解. 本文的操作都是基于系统连接了互联网的情况下

OSChina 周三乱弹 —— 领悟人生,一百块钱都不给?

周三了,小小编也终于回到了深圳,甚是开森啊,终于不再折腾了.不过还是好累啊,小小编是爬着起来的,估计现在也还不清醒,没睡醒的时候好像总会想很多事情,然后就忘了,忘了... @javayfs : 今天还没睡醒,如果我向妹子表白了,一定是我还没睡够,如果妹子答应了,证明偶也该醒了 表白这样的事情,在电视剧中,好像都是要喝酒壮胆之类不清醒的状态说出来,其实是最真情的流露吧,随心而动,噢耶,祝成功- 有表白的,当然也就有被表白的,在 OSC 被表白的对象不多也不少,OSC 的几大美女总是被表白的对象,看