Skip to content

Work Around with Bluetooth

Steve Zheng edited this page Apr 5, 2023 · 55 revisions

Introduction

Thanks to zxystd for providing IntelBluetoothFirmware, which let the native Intel Bluetooth work. However, the current Intel BT driver does not support some Bluetooth devices. Here are some suggestions for better BT experience:


Insert a USB Bluetooth / Disable the original one

  • Buy and insert a supported BT dongle model from BrcmPatchRAM README
  • For Clover users:
    • Replace /CLOVER/ACPI/patched/SSDT-USB.aml with SSDT-USB-USBBT.aml
    • Delete BlueToolFixup.kext,IntelBTPatcher.kext, IntelBluetoothFirmware.kext, and IntelBluetoothInjector.kext in /CLOVER/kexts/
      • These steps are for disabling the internal Bluetooth
    • Download and add BlueToolFixup.kext (macOS12), BrcmBluetoothInjector.kext (< macOS12), BrcmFirmwareData.kext, and BrcmPatchRAM3.kext to /CLOVER/kexts/Other/ (Don't need to do this step if you just want to disable the embedded Intel Bluetooth)
    • Rebuild kextcache and restart
  • For OC users:
    • Add SSDT-USB-USBBT.aml to /OC/ACPI/
    • Download and add BrcmBluetoothInjector.kext (< macOS12), BrcmFirmwareData.kext, and BrcmPatchRAM3.kext to /OC/Kexts/ (Don't need to do this step if you just want to disable the embedded Intel Bluetooth)
    • Open /OC/config.plist, change the following code:
<dict>
	<key>Comment</key>
	<string>USB ports customization(Native Bluetooth)</string>
	<key>Enabled</key>
-	<true/>
+	<false/>
	<key>Path</key>
	<string>SSDT-USB.aml</string>
</dict>
  • And then change the following code:
<dict>
	<key>Comment</key>
	<string>USB ports customization(Disable native Bluetooth)</string>
	<key>Enabled</key>
-	<false/>
+	<true/>
	<key>Path</key>
	<string>SSDT-USB-USBBT.aml</string>
</dict>
  • Don't forget to disable Intel Bluetooth kexts, change the following code:
<dict>
	<key>Arch</key>
	<string>x86_64</string>
	<key>BundlePath</key>
	<string>BlueToolFixup.kext</string>
	<key>Comment</key>
	<string>Force BlueTool to skip firmware update on Monterey</string>
	<key>Enabled</key>
-	<true/>
+	<false/>
	<key>ExecutablePath</key>
	<string>Contents/MacOS/BlueToolFixup</string>
	<key>MaxKernel</key>
	<string></string>
	<key>MinKernel</key>
	<string>21.0.0</string>
	<key>PlistPath</key>
	<string>Contents/Info.plist</string>
</dict>
<dict>
	<key>Arch</key>
	<string>x86_64</string>
	<key>BundlePath</key>
	<string>IntelBTPatcher.kext</string>
	<key>Comment</key>
	<string>A Lilu base patcher that fix Intel Bluetooth</string>
	<key>Enabled</key>
-	<true/>
+	<false/>
	<key>ExecutablePath</key>
	<string>Contents/MacOS/IntelBTPatcher</string>
	<key>MaxKernel</key>
	<string></string>
	<key>MinKernel</key>
	<string>16.0.0</string>
	<key>PlistPath</key>
	<string>Contents/Info.plist</string>
</dict>
<dict>
	<key>Arch</key>
	<string>x86_64</string>
	<key>BundlePath</key>
	<string>IntelBluetoothFirmware.kext</string>
	<key>Comment</key>
	<string>Bluetooth</string>
	<key>Enabled</key>
-	<true/>
+	<false/>
	<key>ExecutablePath</key>
	<string>Contents/MacOS/IntelBluetoothFirmware</string>
	<key>MaxKernel</key>
	<string></string>
	<key>MinKernel</key>
	<string>16.0.0</string>
	<key>PlistPath</key>
	<string>Contents/Info.plist</string>
</dict>
<dict>
	<key>Arch</key>
	<string>x86_64</string>
	<key>BundlePath</key>
	<string>IntelBluetoothInjector.kext</string>
	<key>Comment</key>
	<string>Bluetooth</string>
	<key>Enabled</key>
-	<true/>
+	<false/>
	<key>ExecutablePath</key>
	<string></string>
	<key>MaxKernel</key>
	<string>20.99.99</string>
	<key>MinKernel</key>
	<string>16.0.0</string>
	<key>PlistPath</key>
	<string>Contents/Info.plist</string>
</dict>
  • Also, add these code into Kernel - Add section: (Don't need to do this step if you just want to disable the embedded Intel Bluetooth)
<dict>
	<key>Arch</key>
	<string>x86_64</string>
	<key>BundlePath</key>
	<string>BrcmBluetoothInjector.kext</string>
	<key>Comment</key>
	<string></string>
	<key>Enabled</key>
	<true/>
	<key>ExecutablePath</key>
	<string></string>
	<key>MaxKernel</key>
	<string>20.99.99</string>
	<key>MinKernel</key>
	<string>14.0.0</string>
	<key>PlistPath</key>
	<string>Contents/Info.plist</string>
</dict>
<dict>
	<key>Arch</key>
	<string>x86_64</string>
	<key>BundlePath</key>
	<string>BrcmFirmwareData.kext</string>
	<key>Comment</key>
	<string></string>
	<key>Enabled</key>
	<true/>
	<key>ExecutablePath</key>
	<string>Contents/MacOS/BrcmFirmwareData</string>
	<key>MaxKernel</key>
	<string></string>
	<key>MinKernel</key>
	<string>14.0.0</string>
	<key>PlistPath</key>
	<string>Contents/Info.plist</string>
</dict>
<dict>
	<key>Arch</key>
	<string>x86_64</string>
	<key>BundlePath</key>
	<string>BrcmPatchRAM3.kext</string>
	<key>Comment</key>
	<string></string>
	<key>Enabled</key>
	<true/>
	<key>ExecutablePath</key>
	<string>Contents/MacOS/BrcmPatchRAM3</string>
	<key>MaxKernel</key>
	<string></string>
	<key>MinKernel</key>
	<string>19.0.0</string>
	<key>PlistPath</key>
	<string>Contents/Info.plist</string>
</dict>
  • For macOS12, re-enable BlueToolFixup is necessary: (Don't need to do this step if you just want to disable the embedded Intel Bluetooth)
<dict>
	<key>Arch</key>
	<string>x86_64</string>
	<key>BundlePath</key>
	<string>BlueToolFixup.kext</string>
	<key>Comment</key>
	<string>Force BlueTool to skip firmware update on Monterey</string>
	<key>Enabled</key>
-	<false/>
+	<true/>
	<key>ExecutablePath</key>
	<string>Contents/MacOS/BlueToolFixup</string>
	<key>MaxKernel</key>
	<string></string>
	<key>MinKernel</key>
	<string>21.0.0</string>
	<key>PlistPath</key>
	<string>Contents/Info.plist</string>
</dict>

Solder D+ and D- wires to the WLAN_LTE slot (TM1701 Only)

  • Buy and insert a supported internal wireless card(e.g. BCM943602CS) in M.2 slot
  • Carefully solder D+ and D- wires to the WLAN_LTE slot as #7
  • Go to Windows, run Device Manager to check whether the soldering is success or not
  • For Clover users:
    • If success, replace /CLOVER/ACPI/patched/SSDT-USB.aml with SSDT-USB-WLAN_LTEBT.aml
    • Delete BlueToolFixup.kext,IntelBTPatcher.kext, IntelBluetoothFirmware.kext, and IntelBluetoothInjector.kext in /CLOVER/kexts/
  • For OC users:
<dict>
	<key>Comment</key>
	<string>USB ports customization(Native Bluetooth)</string>
	<key>Enabled</key>
-	<true/>
+	<false/>
	<key>Path</key>
	<string>SSDT-USB.aml</string>
</dict>
  • And then change the following code:
<dict>
	<key>Comment</key>
	<string>USB ports customization(WLAN_LTE Bluetooth)</string>
	<key>Enabled</key>
-	<false/>
+	<true/>
	<key>Path</key>
	<string>SSDT-USB-WLAN_LTEBT.aml</string>
</dict>
  • Don't forget to disable Intel Bluetooth kexts, change the following code:
<dict>
	<key>Arch</key>
	<string>x86_64</string>
	<key>BundlePath</key>
	<string>BlueToolFixup.kext</string>
	<key>Comment</key>
	<string>Force BlueTool to skip firmware update on Monterey</string>
	<key>Enabled</key>
-	<true/>
+	<false/>
	<key>ExecutablePath</key>
	<string>Contents/MacOS/BlueToolFixup</string>
	<key>MaxKernel</key>
	<string></string>
	<key>MinKernel</key>
	<string>21.0.0</string>
	<key>PlistPath</key>
	<string>Contents/Info.plist</string>
</dict>
<dict>
	<key>Arch</key>
	<string>x86_64</string>
	<key>BundlePath</key>
	<string>IntelBTPatcher.kext</string>
	<key>Comment</key>
	<string>A Lilu base patcher that fix Intel Bluetooth</string>
	<key>Enabled</key>
-	<true/>
+	<false/>
	<key>ExecutablePath</key>
	<string>Contents/MacOS/IntelBTPatcher</string>
	<key>MaxKernel</key>
	<string></string>
	<key>MinKernel</key>
	<string>16.0.0</string>
	<key>PlistPath</key>
	<string>Contents/Info.plist</string>
</dict>
<dict>
	<key>Arch</key>
	<string>x86_64</string>
	<key>BundlePath</key>
	<string>IntelBluetoothFirmware.kext</string>
	<key>Comment</key>
	<string>Bluetooth</string>
	<key>Enabled</key>
-	<true/>
+	<false/>
	<key>ExecutablePath</key>
	<string>Contents/MacOS/IntelBluetoothFirmware</string>
	<key>MaxKernel</key>
	<string></string>
	<key>MinKernel</key>
	<string>16.0.0</string>
	<key>PlistPath</key>
	<string>Contents/Info.plist</string>
</dict>
<dict>
	<key>Arch</key>
	<string>x86_64</string>
	<key>BundlePath</key>
	<string>IntelBluetoothInjector.kext</string>
	<key>Comment</key>
	<string>Bluetooth</string>
	<key>Enabled</key>
-	<true/>
+	<false/>
	<key>ExecutablePath</key>
	<string></string>
	<key>MaxKernel</key>
	<string>20.99.99</string>
	<key>MinKernel</key>
	<string>16.0.0</string>
	<key>PlistPath</key>
	<string>Contents/Info.plist</string>
</dict>

Solder D+ and D- wires to the fingerprint slot

  • Buy and insert a supported internal wireless card(e.g. BCM943602CS) in M.2 slot
  • Carefully solder D+ and D- wires to the fingerprint slot as #246
  • Go to Windows, run Device Manager to check whether the soldering is success or not
  • For Clover users:
    • If success, replace /CLOVER/ACPI/patched/SSDT-USB.aml with SSDT-USB-FingerBT.aml
    • Delete BlueToolFixup.kext,IntelBTPatcher.kext, IntelBluetoothFirmware.kext, and IntelBluetoothInjector.kext in /CLOVER/kexts/
  • For OC users:
    • Add SSDT-USB-FingerBT.aml to /OC/ACPI/
    • Open /OC/config.plist, change the following code:
<dict>
	<key>Comment</key>
	<string>USB ports customization(Native Bluetooth)</string>
	<key>Enabled</key>
-	<true/>
+	<false/>
	<key>Path</key>
	<string>SSDT-USB.aml</string>
</dict>
  • And then change the following code (If you can't find it, please add manually):
<dict>
	<key>Comment</key>
	<string>USB ports customization(Fingerprint Bluetooth)</string>
	<key>Enabled</key>
-	<false/>
+	<true/>
	<key>Path</key>
	<string>SSDT-USB-FingerBT.aml</string>
</dict>
  • Don't forget to disable Intel Bluetooth kexts, change the following code:
<dict>
	<key>Arch</key>
	<string>x86_64</string>
	<key>BundlePath</key>
	<string>BlueToolFixup.kext</string>
	<key>Comment</key>
	<string>Force BlueTool to skip firmware update on Monterey</string>
	<key>Enabled</key>
-	<true/>
+	<false/>
	<key>ExecutablePath</key>
	<string>Contents/MacOS/BlueToolFixup</string>
	<key>MaxKernel</key>
	<string></string>
	<key>MinKernel</key>
	<string>21.0.0</string>
	<key>PlistPath</key>
	<string>Contents/Info.plist</string>
</dict>
<dict>
	<key>Arch</key>
	<string>x86_64</string>
	<key>BundlePath</key>
	<string>IntelBTPatcher.kext</string>
	<key>Comment</key>
	<string>A Lilu base patcher that fix Intel Bluetooth</string>
	<key>Enabled</key>
-	<true/>
+	<false/>
	<key>ExecutablePath</key>
	<string>Contents/MacOS/IntelBTPatcher</string>
	<key>MaxKernel</key>
	<string></string>
	<key>MinKernel</key>
	<string>16.0.0</string>
	<key>PlistPath</key>
	<string>Contents/Info.plist</string>
</dict>
<dict>
	<key>Arch</key>
	<string>x86_64</string>
	<key>BundlePath</key>
	<string>IntelBluetoothFirmware.kext</string>
	<key>Comment</key>
	<string>Bluetooth</string>
	<key>Enabled</key>
-	<true/>
+	<false/>
	<key>ExecutablePath</key>
	<string>Contents/MacOS/IntelBluetoothFirmware</string>
	<key>MaxKernel</key>
	<string></string>
	<key>MinKernel</key>
	<string>16.0.0</string>
	<key>PlistPath</key>
	<string>Contents/Info.plist</string>
</dict>
<dict>
	<key>Arch</key>
	<string>x86_64</string>
	<key>BundlePath</key>
	<string>IntelBluetoothInjector.kext</string>
	<key>Comment</key>
	<string>Bluetooth</string>
	<key>Enabled</key>
-	<true/>
+	<false/>
	<key>ExecutablePath</key>
	<string></string>
	<key>MaxKernel</key>
	<string>20.99.99</string>
	<key>MinKernel</key>
	<string>16.0.0</string>
	<key>PlistPath</key>
	<string>Contents/Info.plist</string>
</dict>