diff --git a/Changelog.md b/Changelog.md index 1bf1a9b9..b5e1db25 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,5 +1,8 @@ OpenCore Changelog ================== +#### v0.8.1 +- Fixed `ExtendBTFeatureFlags` quirk on newer macOS versions, thx @lvs1974 + #### v0.8.0 - Added support for early log preservation - Switched to Python 3 in scripts (use `python /path/to/script` to force Python 2) diff --git a/Library/OcAppleKernelLib/CommonPatches.c b/Library/OcAppleKernelLib/CommonPatches.c index 0846d79b..b48a117b 100644 --- a/Library/OcAppleKernelLib/CommonPatches.c +++ b/Library/OcAppleKernelLib/CommonPatches.c @@ -1818,6 +1818,20 @@ mBTFeatureFlagsPatchV2 = { .Skip = 0 }; +STATIC +PATCHER_GENERIC_PATCH +mBTFeatureFlagsPatchV3 = { + .Comment = DEBUG_POINTER ("BTFeatureFlagsV3"), + .Base = "__ZN17IOBluetoothDevice25setDeviceSupportedFeatureEj", + .Find = NULL, + .Mask = NULL, + .Replace = mBTFeatureFlagsReplace, + .ReplaceMask = NULL, + .Size = sizeof (mBTFeatureFlagsReplace), + .Count = 1, + .Skip = 0 +}; + STATIC EFI_STATUS PatchBTFeatureFlags ( @@ -1837,9 +1851,13 @@ PatchBTFeatureFlags ( Status = PatcherApplyGenericPatch (Patcher, &mBTFeatureFlagsPatchV1); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_INFO, "OCAK: Failed to find BT FeatureFlags symbol v1 - %r, trying v2\n", Status)); - Status = PatcherApplyGenericPatch (Patcher,&mBTFeatureFlagsPatchV2); + Status = PatcherApplyGenericPatch (Patcher, &mBTFeatureFlagsPatchV2); if (EFI_ERROR (Status)) { - DEBUG ((DEBUG_INFO, "OCAK: Failed to find BT FeatureFlags symbol v2 - %r\n", Status)); + DEBUG ((DEBUG_INFO, "OCAK: Failed to find BT FeatureFlags symbol v2 - %r, trying v3\n", Status)); + Status = PatcherApplyGenericPatch (Patcher, &mBTFeatureFlagsPatchV3); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_INFO, "OCAK: Failed to find BT FeatureFlags symbol v3 - %r\n", Status)); + } } }