Life Journal

随笔,及其他

我是 Xiao Xiao,在日本的产品经理,偶尔也写代码,iOS/Mac/Web,偶尔也做设计,爱用 Sketch,偶尔写文字,存在这里。


Hackintosh系列教程#2.5-修改mac驱动程序中的设备ID

这是一篇帮天堂鸟写的教程。

当然实际上我一拖再拖,拖到自己都不好意思了。o(∩_∩)o…天堂鸟同学不要生气就好~到写这篇教程为止,帮他改好了设备ID的驱动还没给他,因为还落在Leopard下不记得拷出来了。。。偶电脑又常年不重启。。。真是对不住了~

言归正传,现在进入正题,我就以天堂鸟给我的那个需要更改的声卡驱动为例了。需要说明的的是,改驱动增加设备ID这种事情并非总能凑效。如果不行的话,建议使用HDA patcher方案。

准备工具,推荐使用BBEdit来编辑待会儿的plist文件,当然你有更顺手的我也没意见。我用惯了BBEdit而已。

1、我们首先要确认设备ID在哪个文件里——声卡的驱动通常都是两到三个kext,其他的还好些,很多都是一个。判断的方法很简单,就是一个一个找。。。(别拿香蕉皮扔我。。)声卡的话,加入是含有ALCinject.kext和AppleHDA.kext的话,那么就在ALCinject.kext的info.plist里或者AppleHDA.kext的PlugIns文件夹里的AppleHDAController.kext的info.plist文件里。如果是包含AppleAzalia.kext的话——忘了,找去。

2、下面再以典型的AppleHDA.kext为例。首先我们在AppleHDA.kext上点右键选择显示包内容教程用图片 1

然后双击教程用图片 2,然后你看到的就是这个kext的内容啦。事实上,如果并不确定设备ID在哪里的话,通常就从这一层的info.plist找起[1. 一般而言,设备ID都写在info.plist这个文件里,另一个version.plist是文件的版本信息]。而在这里,我确定地说,它不在这里。所以继续,双击教程用图片 3——这个文件夹里通常存放更细化的kext文件。我们这次的目标文件就是它——教程用图片 4。同样的方式,我们找到AppleHDAController.kext这个文件内部的info.plist,用BBEdit之类的高级点的文本编辑器打开来。

3、我们可以看到这里面是XML结构的(key-value对应)。实际上在天堂鸟给我的这个驱动里,已经非常全,包括了对应各个芯片组的ALC883的部分。怎么看出来?自己认认真真研究下嘛。。给个截图做例子教程用图片 8 这个就是nforce对应的部分啦。看不懂没关系。你只需要找到IOPCIPrimaryMatch或者是IOPCIMatch键,并且把对应的自己的设备ID加进键值里就好[2. 是指key下面的那个。]

4、关于我们自己的设备ID的取得,一般是使用everest查看,下面先贴出天堂鸟的截图,我们看看如何添加设备ID教程用设备ID 看到了吧,10de-07fc,但是我们不能直接把这个写进去,你看看原plist中,人家的格式都是0x大头,仔细看看,10de是写在最后面。那就清楚了,我们的设备ID还也该写成0x07fc10de,然后把这段和那些设备ID放在一起就好啦,别忘了空格哈~