Intel bluetooth firmware kext

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Kexts enabling native support for Intel Bluetooth chipsets in macOS.

License

AppleBluetooth/IntelBluetoothFamily

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Supporting Bluetooth chipsets on macOS has never been hard: notable projects like BrcmPatchRAM and 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.

Читайте также:  Драйвер для bluetooth windows 10 pro

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 🙂

  • 0x8087, 0x0025
  • 0x8087, 0x0026s if
  • 0x8087, 0x0029
  • 0x8087, 0x0032
  • 0x8087, 0x0033
  • 0x8087, 0x07DA (CSR)
  • 0x8087, 0x07DA
  • 0x8087, 0x0A2A
  • 0x8087, 0x0A2B
  • 0x8087, 0x0AA7
  • 0x8087, 0x0AAA
  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!
dict> key>Archkey> string>Anystring> key>BundlePathkey> string>OpenFirmwareManager.kextstring> key>Commentkey> string>string> key>Enabledkey> true/> key>ExecutablePathkey> string>Contents/MacOS/OpenFirmwareManagerstring> key>MaxKernelkey> string>string> key>MinKernelkey> string>string> key>PlistPathkey> string>Contents/Info.pliststring> dict> dict> key>Archkey> string>Anystring> key>BundlePathkey> string>IOBluetoothFixup.kextstring> key>Commentkey> string>string> key>Enabledkey> true/> key>ExecutablePathkey> string>Contents/MacOS/IOBluetoothFixupstring> key>MaxKernelkey> string>20.99.9string> key>MinKernelkey> string>string> key>PlistPathkey> string>Contents/Info.pliststring> dict> dict> key>Archkey> string>Anystring> key>BundlePathkey> string>IntelBluetoothFamily.kextstring> key>Commentkey> string>string> key>Enabledkey> true/> key>ExecutablePathkey> string>Contents/MacOS/IntelBluetoothFamilystring> key>MaxKernelkey> string>20.99.9string> key>MinKernelkey> string>string> key>PlistPathkey> string>Contents/Info.pliststring> dict> dict> key>Archkey> string>Anystring> key>BundlePathkey> string>IntelBluetoothHostControllerUSBTransport.kextstring> key>Commentkey> string>string> key>Enabledkey> true/> key>ExecutablePathkey> string>Contents/MacOS/IntelBluetoothHostControllerUSBTransportstring> key>MaxKernelkey> string>20.99.9string> key>MinKernelkey> string>string> key>PlistPathkey> string>Contents/Info.pliststring> dict> dict> key>Archkey> string>Anystring> key>BundlePathkey> string>IntelGenXBluetoothHostControllerUSBTransport.kextstring> key>Commentkey> string>Please change to the generation of your device.string> key>Enabledkey> true/> key>ExecutablePathkey> string>Contents/MacOS/IntelGenXBluetoothHostControllerUSBTransportstring> key>MaxKernelkey> string>20.99.9string> key>MinKernelkey> string>string> key>PlistPathkey> string>Contents/Info.pliststring> dict>
  • Apple for macOS
  • Intel engineers for the Linux Bluetooth driver
  • IntelBluetoothFirmware for inspirations
  • @zxystd and @williambj1 for crucial help and support
  • cjiang for reversing IOBluetoothFamily and writing this software

Источник

Intel bluetooth firmware kext

Non of the Kexts from this project implement any part of the Bluetooth Stack, hence they are not considered as drivers. They do not handle HCI commands, device pairing, and any feature other than uploading the firmware and preparing the device. The core part of Bluetooth is handled by Apple’s drivers which only provides limited compatibility.

# IntelBluetoothFirmware

  • Uploads Firmware to the device
  • Sets the device’s USB Host Controller name to Bluetooth USB Host Controller on Monterey and newer to bypass board-id check in bluetoothd and bluetool
Читайте также:  Как на ноутбук добавить блютуз

# IntelBTPatcher

This Kext serves two different purposes on different versions of macOS.

  • Monterey and newer
    • Workaround for a bug in bluetoothd by initializing the bluetooth module properly before attempting a LE Scan.
    • Workaround for a bug in IOBluetoothHostController that prevents certain Bluetooth 4.X devices from connecting.

    Read this section for more details.

    Note that it does not and will not provides fixes for Continuity features and other issues in the near future.

    # IntelBluetoothInjector

    Do NOT use this Kext on macOS Monterey and newer

    Codeless Kext that enables the on-off switch on older versions of macOS.

    # What additional steps should I do to make Bluetooth work on macOS Monterey and newer

    1. Install IntelBTPatcher.kext (Depends on Lilu v1.6.2 or newer)
    2. Make sure IntelBluetoothFirmware.kext v2.2.0 or newer is used.
    3. Remove/Exclude IntelBluetoothInjector.kext for macOS Monterey and newer from the Bootloader’s config
    4. Install BlueToolFixup.kext from acidanthera/BrcmPatchRAM

    # Will there be any fixes for Bluetooth 4.X compatibility

    # Monterey and Newer

    Apple rewrote the entire Bluetooth Driver for macOS Monterey which now delivers better compatibility with Bluetooth 4.X devices for all Intel Bluetooth modules.

    # Prior to Monterey

    With IntelBTPatcher.kext installed, Bluetooth modules that support Bluetooth 5.X should now be able to connect to Bluetooth 4.X devices.

    Bluetooth modules that only support up to Bluetooth 4.X are still unable to connect to other Bluetooth 4.X devices.

    # Why can’t macOS Bluetooth connect to iPhone or iPad

    Ask Apple, the same behavior occurs on real Macs as well.

    Try something else if you are testing your device.

    # Is the solution meant to replace native supported USB Bluetooth Dongles

    Not at all, Intel Bluetooth is only partly compatible with Apple’s Drivers and has limited functionality.

    Please consider an alternative solution like USB Dongles with BCM or CSR chips if Bluetooth is crucial for you.

    # I can’t connect to device XXX but it’s successfully discovered

    Unfortunately, this is currently out of our control.

    # Can Intel Bluetooth co-exist with other Bluetooth Devices

    # Will there be any fixes for XXX audio format

    No, it’s out of our control.

    # What is IntelBTPatcher trying to fix

    • Monterey and newer
      • Apple forgot to set a random address before starting a LE scan with address type Random which results in the firmware returning Invalid HCI Command Parameters (0x12) (equivalent to OI_STATUS 718 shown in bluetoothd log output). Then bluetoothd crashes immediately.
      • Around the time when Intel Bluetooth 5.2 modules released, a check in the firmware was implemented accroding to Bluetooth Core Specs 5.0 and newer to return this error. This check has been backported to newer versions of Bluetooth 5.1 firmware. Before that, firmware for Bluetooth 5.1 and earlier will return success even if the conditions are not satisfied.

      If the scanning parameters’ Own_Address_Type parameter is set to 0x01 or 0x03 and the random address for the device has not been initialized, the Controller shall return the error code Invalid HCI Command Parameters (0x12). BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E | 7.8.11 LE Set Scan Enable Command

      • A bug in IOBluetoothHostController mishandles LE Start Encryption which prevents Bluetooth 4.X devices that require encryption from connecting.
      • When a device requires encryption, the connection handle does not get stored in the async callback queue properly; the default handle 0xffff gets stored instead. When the event returns, the completion handle could not be found and the request fails because of timeout.
      • Bluetooth modules produced by neither Broadcom nor CSR all use IOBluetoothHostController .
      • BroadcomBluetoothHostController inherits IOBluetoothHostController and sends the HCI commands with IOBluetoothHostController::SendRawHCICommand instead of IOBluetoothHostController::SendHCICommand .
      • Inside the SendRawHCICommand method, there is a separate branch used to handle the LE Encryption event.
      • IntelBTPatcher’s workaround forces the FindQueueRequest method to find the 0xffff handle when appropriate.
      • This is the only bug that prevents Bluetooth 5.X modules from connecting to Bluetooth 4.X devices that require encryption.
      • There are possibly more bugs in the stack that prevents Bluetooth 4.X modules from connecting to Bluetooth 4.X devices, requires further investigation.

      Источник

      Saved searches

      Use saved searches to filter your results more quickly

      You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

      Intel Bluetooth Kernel Extensions for macOS

      License

      OpenIntelWireless/IntelBluetoothFirmware

      This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

      Name already in use

      A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

      Sign In Required

      Please sign in to use Codespaces.

      Launching GitHub Desktop

      If nothing happens, download GitHub Desktop and try again.

      Launching GitHub Desktop

      If nothing happens, download GitHub Desktop and try again.

      Launching Xcode

      If nothing happens, download Xcode and try again.

      Launching Visual Studio Code

      Your codespace will open once ready.

      There was a problem preparing your codespace, please try again.

      Latest commit

      Git stats

      Files

      Failed to load latest commit information.

      README.md

      IntelBluetoothFirmware is a Kernel Extension that uploads Intel Wireless Bluetooth Firmware to provide native Bluetooth in macOS. The firmware binary files are from the Linux Open Source Project.

      After several months of public testing, it appears that the Kext is working well and stable.

      Please read the docs carefully before using the Kernel Extensions or submitting an Issue Report!

      Источник

Оцените статью
Adblock
detector