diff --git a/Resources/Build.py b/Resources/Build.py index e262a9fb3..5f8d2242a 100644 --- a/Resources/Build.py +++ b/Resources/Build.py @@ -594,10 +594,14 @@ class BuildOpenCore: print("- Fixing Legacy Bluetooth for macOS Monterey") self.enable_kext("BlueToolFixup.kext", self.constants.bluetool_version, self.constants.bluetool_path) self.enable_kext("Bluetooth-Spoof.kext", self.constants.btspoof_version, self.constants.btspoof_path) - elif self.model in ModelArray.Bluetooth_BRCM2070 or self.model in ModelArray.Bluetooth_BRCM2046: + elif self.computer.bluetooth_chipset == "BRCM20702 Hub" and self.model in ModelArray.Bluetooth_BRCM20702_v1: + print("- Fixing Legacy Bluetooth for macOS Monterey") + self.enable_kext("BlueToolFixup.kext", self.constants.bluetool_version, self.constants.bluetool_path) + elif self.model in ModelArray.Bluetooth_BRCM2070 or self.model in ModelArray.Bluetooth_BRCM2046 or self.model in ModelArray.Bluetooth_BRCM20702_v1: print("- Fixing Legacy Bluetooth for macOS Monterey") self.enable_kext("BlueToolFixup.kext", self.constants.bluetool_version, self.constants.bluetool_path) - self.enable_kext("Bluetooth-Spoof.kext", self.constants.btspoof_version, self.constants.btspoof_path) + if self.model in ModelArray.Bluetooth_BRCM2070 or self.model in ModelArray.Bluetooth_BRCM2046: + self.enable_kext("Bluetooth-Spoof.kext", self.constants.btspoof_version, self.constants.btspoof_path) # Add XhciDxe if firmware doesn't have XHCI controller support and XCHI controller detected # TODO: Fix XhciDxe to work on pre UEFI 2.0 Macs diff --git a/Resources/Constants.py b/Resources/Constants.py index 1ad560ef6..e3f4dfae7 100644 --- a/Resources/Constants.py +++ b/Resources/Constants.py @@ -34,7 +34,7 @@ class Constants: self.featureunlock_version = "1.0.3" # FeatureUnlock self.debugenhancer_version = "1.0.4" # DebugEnhancer self.cpufriend_version = "1.2.4" # CPUFriend - self.bluetool_version = "2.6.0" # BlueToolFixup + self.bluetool_version = "2.6.1" # BlueToolFixup ## Apple ## https://www.apple.com diff --git a/Resources/ModelArray.py b/Resources/ModelArray.py index 157f51b13..7d2537a58 100644 --- a/Resources/ModelArray.py +++ b/Resources/ModelArray.py @@ -1033,3 +1033,17 @@ Bluetooth_BRCM2070 = [ "Macmini5,2", "Macmini5,3", ] + +Bluetooth_BRCM20702_v1 = [ + "MacBookAir5,1", + "MacBookAir5,2", + "MacBookPro9,1", + "MacBookPro9,2", + "MacBookPro10,1", + "MacBookPro10,2", + "Macmini6,1", + "Macmini6,2", + "iMac13,1", + "iMac13,2", + "iMac13,3", +] diff --git a/Resources/device_probe.py b/Resources/device_probe.py index aff61baa8..a8416b932 100644 --- a/Resources/device_probe.py +++ b/Resources/device_probe.py @@ -446,5 +446,7 @@ class Computer: self.bluetooth_chipset = "BRCM2070 Hub" elif "BRCM2046 Hub" in usb_data: self.bluetooth_chipset = "BRCM2046 Hub" + elif "BRCM20702 Hub" in usb_data: + self.bluetooth_chipset = "BRCM20702 Hub" elif "Bluetooth": self.bluetooth_chipset = "Generic" diff --git a/payloads/Kexts/Acidanthera/BlueToolFixup-v2.6.1.zip b/payloads/Kexts/Acidanthera/BlueToolFixup-v2.6.1.zip new file mode 100644 index 000000000..718c32283 Binary files /dev/null and b/payloads/Kexts/Acidanthera/BlueToolFixup-v2.6.1.zip differ diff --git a/payloads/Kexts/Acidanthera/BlueToolFixup.patch b/payloads/Kexts/Acidanthera/BlueToolFixup.patch new file mode 100644 index 000000000..1f1fa890a --- /dev/null +++ b/payloads/Kexts/Acidanthera/BlueToolFixup.patch @@ -0,0 +1,15 @@ +diff --git a/BrcmPatchRAM/BlueToolFixup.cpp b/BrcmPatchRAM/BlueToolFixup.cpp +index 0fa891a..b64b780 100644 +--- a/BrcmPatchRAM/BlueToolFixup.cpp ++++ b/BrcmPatchRAM/BlueToolFixup.cpp +@@ -37,8 +37,10 @@ bool BlueToolFixup::start(IOService *provider) { + } + setProperty("VersionInfo", kextVersion); + setName("bluetooth"); ++ /* + uint8_t bytes[] {0x00, 0x00, 0x00, 0x00}; + setProperty("transport-encoding", bytes, sizeof(bytes)); ++ */ + registerService(); + + return true;