Administrators Hervé Posted March 11, 2016 Administrators Share Posted March 11, 2016 The BT4.0 module of the Intel Advanced-N 6235 (ven:dev id = 8087:07da) is supported OOB under OS X. However, it cannot be turned on or off by default. As usual, this requires patching of the appropriate Bluetooth controller transport kext. Here's what to do (illustrations under El Capitan 10.11.3): Patch attempts of the generic IOBluetoothHostControllerUSBTransport kext lead nowhere. However, on looking for the hardware specs of the BT device, it turns out to be a CSR-based module (Google is our friend!). The CSR controller transport kext can then be patched. PlugIns of OS X El Capitan 10.11.3's IOBluetoothFamily kext are as follows: E6440:~ admin$ cd /System/Library/Extensions/IOBluetoothFamily.kext/Contents/PlugIns/ E6440:PlugIns admin$ ls -la total 0 drwxr-xr-x 9 root wheel 306 Mar 11 21:49 . drwxr-xr-x 8 root wheel 272 Jan 20 15:25 .. drwxr-xr-x 3 root wheel 102 Nov 14 05:31 BroadcomBluetoothHostControllerUSBTransport.kext drwxr-xr-x 3 root wheel 102 Nov 14 05:31 CSRBluetoothHostControllerUSBTransport.kext drwxr-xr-x 3 root wheel 102 Nov 14 05:31 CSRHIDTransitionDriver.kext drwxr-xr-x 3 root wheel 102 Nov 14 05:31 IOBluetoothHostControllerUARTTransport.kext drwxr-xr-x 3 root wheel 102 Nov 14 05:31 IOBluetoothHostControllerUSBTransport.kext drwxr-xr-x 3 root wheel 102 Nov 14 05:31 IOBluetoothSerialManager.kext drwxr-xr-x 3 root wheel 102 Nov 14 05:31 IOBluetoothUSBDFU.kext E6440:PlugIns admin$ Here, the kext to patch is CSRBluetoothHostControllerUSBTransport. It's a simple matter of editing the Info.plist file of the kext and add a new entry based on an existing profile. In this case, a copy of the ApplePortableModule entry can be pasted and edited as follows: <key>Intel-N6235</key> <dict> <key>CFBundleIdentifier</key> <string>com.apple.iokit.CSRBluetoothHostControllerUSBTransport</string> <key>IOClass</key> <string>CSRBluetoothHostControllerUSBTransport</string> <key>IOProviderClass</key> <string>IOUSBHostDevice</string> <key>idProduct</key> <integer>2010</integer> <key>idVendor</key> <integer>32903</integer> </dict> NB: 0x07da (hex) = 2010 (dec). 0x8087 (hex) = 32903 (dec) The modded kext can then be placed back in the PlugIns folder of the IOBluetoothFamily kext, permissions repaired and the cache rebuilt. On reboot, the CSR USB Transport kext is loaded and the BT module can be turned on or off through the Finder's bar icon (and it switches the BT led on or off too, well at least on my E6440): An alternative to patching the vanilla kext is to add the entry to FakeSMC's Info.plist. It's also sustainable to updates within a given OS X/macOS version. NB: Only the Bluetooth module of this card is supported, the wireless module remains of course unsupported in OS X/macOS as per all Intel cards. Link to comment Share on other sites More sharing options...
Recommended Posts