[自己小总结]无痛升级AppleHDA
[自己小总结]无痛升级AppleHDA参考:[教程] 简单无脑 用Clover给AppleHDA打补丁 妈妈再也不用担心系统升级啦
https://bbs.pcbeta.com/viewthread-1520261-1-1.html
原理,新建一个kext,让其加载以上我们修改的文件,覆盖系统读取到AppleHDA.kext 的内容,从而实现仿冒驱动。
参考:https://bbs.pcbeta.com/viewthread-366603-1-1.html
实施:
1、把已经仿冒成功的AppleHDA.kext 复制一份到桌面上,改名为AppleHDAFake.kext。
2、将AppleHDAFake.kext/Contents/PlugIns/AppleHDAHardwareConfigDriver.kext/Contents/Info.plist 中
整个IOKitPersonalities/HDA Hardware Config Resource 复制粘贴到AppleHDAFake.kext/Contents/Info.plist 中IOKitPersonalities/ 下,
删除多余的项,例如:IOKitPersonalities/HDA Hardware Config Resource/PostConstructionInitialization,
修改配置类:IOKitPersonalities/HDA Hardware Config Resource/CFBundleIdentifier 值com.apple.driver.AppleHDA
添加驱动的优先级以覆盖原生驱动的配置,IOKitPersonalities/HDA Hardware Config Resource/IOProbeScore,类型Number,值2000
最终plist 的xml 结构如下:
IOKitPersonalities/
HDA Driver
HDA Generic Codec Driver
HDA Hardware Config Resource/
CFBundleIdentifier 类型String 值com.apple.driver.AppleHDA
HDAConfigDefault 类型Array 内含从AppleHDAHardwareConfigDriver.kext 迁移过来的Codec
IOClass 类型String 值AppleHDAHardwareConfigDriver
IOMatchCategory 类型String 值AppleHDAHardwareConfigDriver
IOProbeScore 类型Number 即integer,值2000,驱动加载优先级!
IOProviderClass 类型String 值AppleHDAHardwareConfigDriverLoader
3、将AppleHDAFake.kext/Contents/ 删除以下内容:
_CodeSignature 文件夹,Plugins 文件夹,version.plist 文件以及Resources 文件夹下只保留layout1.xml.zlib 和Platforms.xml.zlib。
最终文档结构如下:
AppleHDAFake.kext
Contents/
Info.plist
MacOS/
AppleHDA之前破解的二进制文件
Resources/
layout1.xml.zlib 对应DSDT 中HDEF 设备的layout-id
Platforms.xml.zlib
4、将AppleHDAFake.kext 拖进Kext Utility 里安装,重启之后,
About this Mac —>More Info —>System Report —>Audio,查看设备是否正确。
之后系统升级就只会影响AppleHDA.kext,由于AppleHDAFake 的IOProbeScore 高,所以它会被使用,但不受影响。
注意:
App Store 更新升级后记得在Win7 里把/mach_kernel 换成破解版的,否则Chameleon 引导进不去,Clover 就忽略吧。
凡是App Store 更新之后都用Kext Utility 重建一下缓存,否则不加-f 参数进不了系统。
-f 不是重建缓存而是忽略缓存,如果缓存不清理重建那不加-f 的时候就会读取到旧缓存导致进不了系统。
页:
[1]