From f7f890d37e01b79d0926824ac424da897762431b Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk Date: Mon, 31 Jan 2022 10:24:09 -0700 Subject: [PATCH] Fix Power Management Support in macOS 12.3 Beta 1 Closes https://github.com/dortania/OpenCore-Legacy-Patcher/issues/930 --- CHANGELOG.md | 3 +++ payloads/Config/config.plist | 18 ++++++++++++++++++ payloads/Kexts/Misc/ASPP-Override-v1.0.0.zip | Bin 0 -> 2225 bytes resources/build.py | 9 +++++++++ resources/constants.py | 5 +++++ 5 files changed, 35 insertions(+) create mode 100644 payloads/Kexts/Misc/ASPP-Override-v1.0.0.zip diff --git a/CHANGELOG.md b/CHANGELOG.md index 198554b3e..3499d45f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,9 @@ - Add Universal Control support for Monterey native Macs - Applicable for Haswell/Broadwell - Requires macOS 12.3 or newer +- Fix Power Management Support in macOS 12.3 Beta 1 + - Applicable for Sandy Bridge and older + - Enforces ACPI_SMC_PlatformPlugin matching ## 0.4.1 - Add XHCI Boot Support to pre-UEFI 2.0 Macs diff --git a/payloads/Config/config.plist b/payloads/Config/config.plist index 21df4bc56..8b74eeff5 100644 --- a/payloads/Config/config.plist +++ b/payloads/Config/config.plist @@ -1149,6 +1149,24 @@ PlistPath Contents/Info.plist + + Arch + x86_64 + Comment + ACPI_SMC_PlatformPlugin Override + Enabled + + MaxKernel + + MinKernel + 21.4.0 + BundlePath + ASPP-Override.kext + ExecutablePath + + PlistPath + Contents/Info.plist + Block diff --git a/payloads/Kexts/Misc/ASPP-Override-v1.0.0.zip b/payloads/Kexts/Misc/ASPP-Override-v1.0.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..0e0bb40f5d2af9b836ab938c22a4349143f171b0 GIT binary patch literal 2225 zcmWIWW@Zs#0D&J{>_Wf{C?U+Cz~C4h5TNT{mReMlnUboPomx?%9~#2Tz^+pEJyA~N z2N;)Da5FHnd}U-{02>qlHjsmX1I55QKtpAL2FAzxIy(CYN9gOtW15X(v?9=WG^3Lf zM3d7Kk`g}n`h2l-|bIKUgkFJE<}iMzxAFFa&tBbKH62 z6_NmSEXctSuK*bgt9|TI!bS#r*f{6sm89mC6hi{ZNdOW+pnyX22_ld_A(@=P!N8zK zz+}(7w0ymSoXp}9aA=(X+7T**H6rGQ-Y%MLAW-YKujx|y;w72Jne7&n8zvhS<{X>g z^Lxs~L|!TGgB%m5_`k~ka(dSft{Y2Me&lwmKKD*ecI}zf@toJ=9G>ZjPXD#Ca8b5G zlSzuwt}F6?Z{KUJyJ~M{et1dQx@qnd7az|XPzQ0W;;O}GQ zV!qV>k8kYObUBfDV%a1www<1<-tXAM6@4smRp=$x#_~yNhTKKcaS;q*T2p*}N>!#j z^GZ5gdnSF-)!%x78j@jY7Rl3tO}$eeeNsw#G)=8%`tKe0Qj%ZJ(Nu{Jzvfx|i*M3I z+saQ}I^IjICLG*4=bhWV1Luv?d_EVjmnP2HJ9GOX-6HvxCplK^ntX@UOgi|P(suk0 zIk?VYespy1q+Q8tZ!b-}SasmC4&y>Kfrb0ckHs>wD>?l>Ub@KYAKw(^w3XWpAg~x z!|+5)(H_aP9_QXoSsf+>pP=jEcrvOo~!p=@9X{U z@d}S+rAxPc$<4borF!Bs*1OufTUM5=yK+$H_mvqA^TdoA%BGseN(W~dXG$rjzpynp zI7#W_sTjvg4-a4VKNfkrP5FKG!~jD^sY{y2yN$F}yOXXS%M;sTzu&al)N)(O>mr{` zJ1+h{Ue5^1aHdAbA1!8LU;rh4?Ad}3C~JsZc3_qq`tY2m7mp){kW!u)8W`MTyyRdf zEYBPWE=~?Hy-c{mU^H)`W@2L(w}F9&>htHXRK-M|EP3@*MQr*MvE|E_s7za;#m?e9 z#VCq_lb?;Pu4UJqBTr;HVwfj%q$C))Px99FWO?Pk<iR{mYW5!evZ>+h=MyvbTifro{O~<}SIgVq zoSB}R?$`X8`~6JD`9&5yk`*R9mu%4pHCHv&HP+v( zVr=iPZ>+ByFRsH6E>-7m7G9FZ$iM)K$^dUhCJ|=bbq=V!1%dyLAQDSlqf`@E3s;B* zusR62NC(wHFz~-I5XhvcMnd)rwmJfCm7@&M_gMS_Pq$!C;jJ+co&wbw$k_%|XTZS! x#xepn;m98Z0up2=ax8)}Bn}5d;NPONTC3^;Vv$BD#Ub0k literal 0 HcmV?d00001 diff --git a/resources/build.py b/resources/build.py index 33d24637c..2e7579d81 100644 --- a/resources/build.py +++ b/resources/build.py @@ -177,6 +177,15 @@ class BuildOpenCore: print(f"- Adding additional FeatureUnlock args: {self.constants.fu_arguments}") self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += self.constants.fu_arguments + if smbios_data.smbios_dictionary[self.model]["CPU Generation"] <= cpu_data.cpu_data.sandy_bridge.value: + # With macOS 12.3 Beta 1, Apple dropped the 'plugin-type' check within X86PlatformPlugin + # Because of this, X86PP will match onto the CPU instead of ACPI_SMC_PlatformPlugin + # This causes power management to break on pre-Ivy Bridge CPUs as they don't have correct + # power management tables provided. + # This patch will simply increase ASPP's 'IOProbeScore' to outmatch X86PP + print("- Fixing ACPI SMC Power Management support") + self.enable_kext("ASPP-Override.kext", self.constants.aspp_override_version, self.constants.aspp_override_path) + if self.model in ["MacBookPro6,1", "MacBookPro6,2", "MacBookPro9,1", "MacBookPro10,1"]: # Modded RestrictEvents with displaypolicyd blocked to fix dGPU switching self.enable_kext("RestrictEvents.kext", self.constants.restrictevents_mbp_version, self.constants.restrictevents_mbp_path) diff --git a/resources/constants.py b/resources/constants.py index fc6248c41..aa7fc24fb 100644 --- a/resources/constants.py +++ b/resources/constants.py @@ -68,6 +68,7 @@ class Constants: self.smcspoof_version = "1.0.0" # SMC-Spoof self.mce_version = "1.0.0" # AppleMCEReporterDisabler self.btspoof_version = "1.0.0" # Bluetooth-Spoof + self.aspp_override_version = "1.0.0" # ACPI_SMC_PlatformPlugin Override ## Syncretic ## https://forums.macrumors.com/members/syncretic.1173816/ @@ -340,6 +341,10 @@ class Constants: @property def btspoof_path(self): return self.payload_kexts_path / Path(f"Misc/Bluetooth-Spoof-v{self.btspoof_version}.zip") + + @property + def aspp_override_path(self): + return self.payload_kexts_path / Path(f"Misc/ASPP-Override-v{self.aspp_override_version}.zip") @property def nvmefix_path(self):