Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/AppleBluetooth/IntelBluetoothFamily

Kexts enabling native support for Intel Bluetooth chipsets in macOS.
https://github.com/AppleBluetooth/IntelBluetoothFamily

Last synced: 14 days ago
JSON representation

Kexts enabling native support for Intel Bluetooth chipsets in macOS.

Awesome Lists containing this project

README

        

# IntelBluetoothFamily

Supporting Bluetooth chipsets on macOS has never been hard: notable projects like [BrcmPatchRAM](https://github.com/acidanthera/BrcmPatchRAM) and [IntelBluetoothFirmware](https://github.com/OpenIntelWireless/IntelBluetoothFirmware) have embarked on this journey and are my major inspirations. But what makes this driver different? Instead of partially implementing the Bluetooth stack, this project directly utilizes Apple's native Bluetooth stack, IOBluetoothFamily, which is made possible by my reverse-engineering efforts. Apart from its integration with the system, the "injector" trick is no longer necessary - we don't need to "spoof" the Bluetooth controller as Broadcom. Inheriting directly from the IOBluetoothFamily base classes instead, vendor-specific transports and host controllers can be created, which solves certain compatibility problems and makes it easier to extend the macOS Bluetooth stack in addition.

### DON'T USE ON MONTEREY!!!

## Unfortunately I am very busy recently due to heavy academic work... I will maintain this repo when I have time. Btw, I am also working on porting the Linux 80211 stack to C++ as an IOKit-based developer friendly library that can dramatically facilitate wireless driver development :)

## Supported Devices
- 0x8087, 0x0025
- 0x8087, 0x0026s if
- 0x8087, 0x0029
- 0x8087, 0x0032
- 0x8087, 0x0033
- 0x8087, 0x07DA (CSR)
- 0x8087, 0x07DA
- 0x8087, 0x0A2A
- 0x8087, 0x0A2B
- 0x8087, 0x0AA7
- 0x8087, 0x0AAA

## Usage
1. Download OpenFirmwareManager, IOBluetoothFixup, and IntelBluetoothFamily from the AppleBluetooth organization.
2. Drag the transports out of the PlugIns folder in IntelBluetoothFamily. This has to be done for now as the name is too long.
3. Place the kexts in the EFI folder and add them to the config.plist. Make sure the order is as follows.
4. Remove all other Bluetooth kexts such as IntelBluetoothFirmware.
5. Reboot and enjoy!

Load Order

```xml

Arch
Any
BundlePath
OpenFirmwareManager.kext
Comment

Enabled

ExecutablePath
Contents/MacOS/OpenFirmwareManager
MaxKernel

MinKernel

PlistPath
Contents/Info.plist


Arch
Any
BundlePath
IOBluetoothFixup.kext
Comment

Enabled

ExecutablePath
Contents/MacOS/IOBluetoothFixup
MaxKernel
20.99.9
MinKernel

PlistPath
Contents/Info.plist


Arch
Any
BundlePath
IntelBluetoothFamily.kext
Comment

Enabled

ExecutablePath
Contents/MacOS/IntelBluetoothFamily
MaxKernel
20.99.9
MinKernel

PlistPath
Contents/Info.plist


Arch
Any
BundlePath
IntelBluetoothHostControllerUSBTransport.kext
Comment

Enabled

ExecutablePath
Contents/MacOS/IntelBluetoothHostControllerUSBTransport
MaxKernel
20.99.9
MinKernel

PlistPath
Contents/Info.plist


Arch
Any
BundlePath
IntelGenXBluetoothHostControllerUSBTransport.kext
Comment
Please change to the generation of your device.
Enabled

ExecutablePath
Contents/MacOS/IntelGenXBluetoothHostControllerUSBTransport
MaxKernel
20.99.9
MinKernel

PlistPath
Contents/Info.plist

```

## Acknowledgements
- Apple for macOS
- Intel engineers for the [Linux](https://github.com/torvalds/linux/tree/master/drivers/bluetooth) Bluetooth driver
- [IntelBluetoothFirmware](https://github.com/OpenIntelWireless/IntelBluetoothFirmware) for inspirations
- @zxystd and @williambj1 for crucial help and support
- cjiang for reversing [IOBluetoothFamily](https://github.com/CharlieJiangXXX/MacKernelSDK) and writing this software