---前提---

  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 被覆盖导致声卡不能工作了。

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

  1. 不再折腾-----hadoop-1.2.1完全分布式安装

    准备工作 三台虚拟机,强烈推荐vmware + centos6.5 三台虚拟机均设有hadoop用户 IP地址设置 IP地址 hostname 192.168.11.100 master 192.16 ...

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

    最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...

  3. 《CMake实践》笔记三:构建静态库(.a) 与 动态库(.so) 及 如何使用外部共享库和头文件

    <CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...

  4. 升级到VS2013.Update.4的问题

    升级到VS2013.Update.4后,编译VS2010的解决方案出错,提示AxImp.exe找不到,到网上搜索后,没有找到能用的法子: 修复VS2013后也无法解决: 折腾2个小时后终于找到问题了: ...

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

    Ubuntu Desktop安装及桌面美化 1   开篇概述 本 系统的文章主要是讲互联网方向的开发主题.根据目前主流互联网公司的技术架构,Linux是必不可少的.对于一直习惯于在Windows下工作 ...

  6. JavaService应用中的注意事项

    最近有个技术需求,要把已写好的Java程序注册成Windows服务,网上搜了两个快捷办法,一个是Java Service Wrapper,这是个收费的第三方组件,免费的版本还没有适合64位Win7系统 ...

  7. 我写了个教程《一步步教你把ubuntu安装到U盘》

    一步步教你把ubuntu安装到U盘 作者 Val 2452013147@qq.com 原因: 由于某些原因(学生党),需要把ubuntu安装到U盘到处走,百度了一下,教程都不是很好,要么很复杂,要么不 ...

  8. 写给新手看的Flask+uwsgi+Nginx+Ubuntu部署教程

    学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器.根据搜索的教程照做,对于原理一知半解,磕磕碰碰,只要运行起来了,谢天谢地然后不再折腾了,到下一次还需要部署时,这样的 ...

  9. CSS选择符详解之关系选择符篇

    原文:http://www.chinaz.com/web/2012/1017/278553.shtml 相信大家都对CSS选择符都不陌生,选择符包含:元素选择符.关系选择符.属性选择符.伪类选择符.伪 ...

随机推荐

  1. 洛谷 P4704 太极剑【贪心】

    首先考虑分割线能分割一条线当且仅当分割线一个端点在这条线的ab中间,另一端点在外面,也就是分割线对应的一条弧不能同时有这条线的两个端点 每条线的两端点都染同色,然后分段,一段里面颜色互不相同,分割线就 ...

  2. 编译keepalived 方法

    作者的环境: redhat 6.5 64 位版 在编译keepalived 前,需要提前给环境安装两个依赖包--zlib和openssl 编译 zlib 库 参考作者之前的博客 http://www. ...

  3. DB2 - 编目的解释

    编目(Catalog),是在本地或远程建立客户端到服务器的数据库连接的过程.其目的在于获取编目信息,即生成用来访问数据库的目录.系统数据库目录包含一个列表和指针,通过目录可以使 DB2 能够找到已知的 ...

  4. css实现发光的input输入框

    效果图截图: 案例代码示下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  5. netty与MQ使用心得

    最近在做分布式的系统,使用netty与mq进行远程RPC调用,现将心得经验总结一下. 我们公司的服务器在云端机房,在每一个店面有一个服务器,店面服务器外网无法访问. 我们的做法是店面服务器在启动时与云 ...

  6. GIT GUI克隆github代码

    新建一个文件夹,右击gitgui  git clone 去掉不要

  7. nodejs express session用法(含保存到redis)

    普通用法: var express = require('express'); var session = require('express-session'); var app = express( ...

  8. js 学习网站

    1.  Mozilla Developer Network(MDN) 这里你可以找到官方的完整的javascript参考,还有许多有用的指导,教程以及文章,从基本javascript使用到最佳实践以及 ...

  9. 代码review

    对于代码review个人也有些小小的看法: 1.首先我觉得我们所有开发人员要弄明白 现在Code Review 的目的 ,凡事不弄明白目的,无法做好完成一件事情,个人觉得有以下一些目的: a)可以在项 ...

  10. 关于Pre-bound JDBC Connection found! HibernateTransactionManager does not 异常小结

    昨天帮女朋友配置ssh框架的多数据源, 本以为对此已经很熟悉,配置完其他的错倒是还能接受,调了一下就好了.  唯独 Pre-bound JDBC Connection found! Hibernate ...