修改info匹配硬件驱动蓝牙BCM2070
这块 Broadcom BCM2070 Bluetooth 3.0 USB Device的蓝牙驱动在 10.8.4正式版以前一直都是免驱的,可是到了10.8.5以后,尽然不能驱动,一直以替换10.8.4的驱动来驱动,可是最近发现原来是假驱动,出现的问题,尽然是所有蓝牙设备无法配对连接我的这台电脑,这块BCM2070是接在笔记本内置的6芯接口的内置蓝牙。
昨天晚上对这BCM2070蓝牙的驱动动了点手术,让其为我的10.8.5 12F33下正常工作。首先提取12F33的原版蓝牙驱动,这可以使用工具 Pacifist3.10 提取PKG更新包中的原版IOBluetoothFamily.kext蓝牙驱动,放到Mac系统的桌面,右键显示包内容,进入目录路径为:IOBluetoothFamily.kext/Contents/PlugIns/BroadcomBluetoothHostControllerUSBTransport.kext/Contents,把其中的info.plist文件复制一份到桌面,我们开这个BCM蓝牙的关键硬件匹配文件。如下:
<key>BroadcomUSBBluetoothHCIController - MediaLink BT3.0 Adapter</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport</string>
<key>IOClass</key>
<string>BroadcomBluetoothHostControllerUSBTransport</string>
<key>IOProviderClass</key>
<string>IOUSBDevice</string>
<key>idProduct</key>
<integer>8603</integer>
<key>idVendor</key>
<integer>2652</integer>
</dict>
其中这里我把原硬件idProduct值:8600改成8603即可,因为我发现如果我连idVendor值也修改的话,反而不能驱动了,然后把这个info.plist复制覆盖原文件,最后把这个IOBluetoothFamily.kext蓝牙驱动使用工具Kext Wizard安装到系统,重启就OK了。
注意:硬件ID与16制度转换:上图第一幅图我的硬件VID:0A5C PID :219B由16进制转换成10进制分别为:1452和8603,因为10.8.5的驱动中已经没有我的PID值8603所以不能驱动我的BCM2070蓝牙,因为1452是产品值,在驱动中有很多匹配,而PID值8603没有了所以要对原生驱动修改注入最后驱动这个蓝牙,以上修改同样支持 10.9 DP5修改。
驱动后蓝牙和连接的设备: