mirror of
https://github.com/dortania/OpenCore-Legacy-Patcher.git
synced 2026-04-23 11:30:15 +10:00
Resolve 12.3 Beta 3 Bluetooth Address Erroring
This commit is contained in:
@@ -24,6 +24,7 @@
|
|||||||
- CPUFriend 1.2.5 - release
|
- CPUFriend 1.2.5 - release
|
||||||
- WhateverGreen 1.5.8 - release
|
- WhateverGreen 1.5.8 - release
|
||||||
- AutoPkgInstaller 1.0.0 - release
|
- AutoPkgInstaller 1.0.0 - release
|
||||||
|
- BlueToolFixup 2.6.2 - adjusted
|
||||||
- Speed up loading available remote macOS Installers from Apple
|
- Speed up loading available remote macOS Installers from Apple
|
||||||
- Skips writing catalogs to disk, loads into memory directly
|
- Skips writing catalogs to disk, loads into memory directly
|
||||||
- Implement Automatic Patch Detection/Installation
|
- Implement Automatic Patch Detection/Installation
|
||||||
@@ -53,6 +54,9 @@
|
|||||||
- Simplify Binary options
|
- Simplify Binary options
|
||||||
- Removes Online Patcher Variants
|
- Removes Online Patcher Variants
|
||||||
- Offline variants are now new defaults, no longer retain `Offline` suffix
|
- Offline variants are now new defaults, no longer retain `Offline` suffix
|
||||||
|
- Resolve legacy Bluetooth Support on 12.3 beta 3
|
||||||
|
- Disables USB Address erroring on some pre-Bluetooth 4.0 chipsets
|
||||||
|
- ex. `ERROR -- Third Party Dongle has the same address as the internal module`
|
||||||
|
|
||||||
## 0.4.3
|
## 0.4.3
|
||||||
- Increment Binaries:
|
- Increment Binaries:
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/BlueToolFixup-v2.6.2-DEBUG.zip
Normal file
BIN
payloads/Kexts/Acidanthera/BlueToolFixup-v2.6.2-DEBUG.zip
Normal file
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/BlueToolFixup-v2.6.2-RELEASE.zip
Normal file
BIN
payloads/Kexts/Acidanthera/BlueToolFixup-v2.6.2-RELEASE.zip
Normal file
Binary file not shown.
48
payloads/Kexts/Acidanthera/BlueToolFixup.patch
Normal file
48
payloads/Kexts/Acidanthera/BlueToolFixup.patch
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
diff --git a/BrcmPatchRAM/BlueToolFixup.cpp b/BrcmPatchRAM/BlueToolFixup.cpp
|
||||||
|
index a6e3c69..701a9ad 100644
|
||||||
|
--- a/BrcmPatchRAM/BlueToolFixup.cpp
|
||||||
|
+++ b/BrcmPatchRAM/BlueToolFixup.cpp
|
||||||
|
@@ -48,6 +48,35 @@ bool BlueToolFixup::start(IOService *provider) {
|
||||||
|
static const uint8_t kSkipUpdateFilePathOriginal[] = "/etc/bluetool/SkipBluetoothAutomaticFirmwareUpdate";
|
||||||
|
static const uint8_t kSkipUpdateFilePathPatched[] = "/System/Library/CoreServices/boot.efi";
|
||||||
|
|
||||||
|
+
|
||||||
|
+// Workaround 12.3 Beta 3 bug where macOS will detect the Bluetooth chipset twice
|
||||||
|
+// Once and internal, and second as external dongle:
|
||||||
|
+// 'ERROR -- Third Party Dongle has the same address as the internal module'
|
||||||
|
+static const uint8_t kSkipAddressCheckOriginal[] =
|
||||||
|
+{
|
||||||
|
+ 0x48, 0x8D, 0x05, 0xC5, 0x97, 0x65, 0x00, // lea rax
|
||||||
|
+ 0x8B, 0x48, 0x53, // mov ecx
|
||||||
|
+ 0x33, 0x0B, // xor ecx
|
||||||
|
+ 0x0F, 0xB7, 0x50, 0x57, // movzx edx
|
||||||
|
+ 0x66, 0x33, 0x53, 0x04, // xor dx
|
||||||
|
+ 0x0F, 0xB7, 0xD2, // movzx edx, dx
|
||||||
|
+ 0x09, 0xCA, // or edx, ecx
|
||||||
|
+ 0x74, 0x0E, // je
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static const uint8_t kSkipAddressPatched[] =
|
||||||
|
+{
|
||||||
|
+ 0x48, 0x8D, 0x05, 0xC5, 0x97, 0x65, 0x00, // lea rax
|
||||||
|
+ 0x8B, 0x48, 0x53, // mov ecx
|
||||||
|
+ 0x33, 0x0B, // xor ecx
|
||||||
|
+ 0x0F, 0xB7, 0x50, 0x57, // movzx edx
|
||||||
|
+ 0x66, 0x33, 0x53, 0x04, // xor dx
|
||||||
|
+ 0x0F, 0xB7, 0xD2, // movzx edx, dx
|
||||||
|
+ 0x09, 0xCA, // or edx, ecx
|
||||||
|
+ 0x75, 0x0E, // jne
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+
|
||||||
|
static const uint8_t kVendorCheckOriginal[] =
|
||||||
|
{
|
||||||
|
0x81, 0xFA, // cmp edx
|
||||||
|
@@ -131,6 +160,7 @@ static void patched_cs_validate_page(vnode_t vp, memory_object_t pager, memory_o
|
||||||
|
}
|
||||||
|
else if (strcmp(path + dirLength, "bluetoothd") == 0) {
|
||||||
|
searchAndPatch(data, PAGE_SIZE, path, kVendorCheckOriginal, kVendorCheckPatched);
|
||||||
|
+ searchAndPatch(data, PAGE_SIZE, path, kSkipAddressCheckOriginal, kSkipAddressPatched);
|
||||||
|
searchAndPatch(data, PAGE_SIZE, path, kBadChipsetCheckOriginal, kBadChipsetCheckPatched);
|
||||||
|
if (shouldPatchBoardId)
|
||||||
|
searchAndPatch(data, PAGE_SIZE, path, boardIdsWithUSBBluetooth[0], kBoardIdSize, BaseDeviceInfo::get().boardIdentifier, kBoardIdSize);
|
||||||
@@ -44,7 +44,7 @@ class Constants:
|
|||||||
self.featureunlock_version = "1.0.8" # FeatureUnlock
|
self.featureunlock_version = "1.0.8" # FeatureUnlock
|
||||||
self.debugenhancer_version = "1.0.4" # DebugEnhancer
|
self.debugenhancer_version = "1.0.4" # DebugEnhancer
|
||||||
self.cpufriend_version = "1.2.5" # CPUFriend
|
self.cpufriend_version = "1.2.5" # CPUFriend
|
||||||
self.bluetool_version = "2.6.1" # BlueToolFixup (BrcmPatchRAM)
|
self.bluetool_version = "2.6.2" # BlueToolFixup (BrcmPatchRAM)
|
||||||
self.cslvfixup_version = "2.6.1" # CSLVFixup
|
self.cslvfixup_version = "2.6.1" # CSLVFixup
|
||||||
self.autopkg_version = "1.0.0" # AutoPkgInstaller
|
self.autopkg_version = "1.0.0" # AutoPkgInstaller
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user