diff --git a/CHANGELOG.md b/CHANGELOG.md index 179c0303a..d8b63b1e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ - Resolve Content Caching Patch Regression - Resolve KDK Versioning Fallback crashing when primary KDK site is down - Resolve AirPlay to Mac support on Ventura with VMM +- Resolve WindowServer crashing on KDK-less with macOS 13.2 and Rapid Security Response updates - Increment Binaries: - OpenCorePkg 0.8.7 - release - FeatureUnlock 1.1.2 - rolling (94e29ce) diff --git a/payloads/Config/config.plist b/payloads/Config/config.plist index 1fc65579d..9108a4059 100644 --- a/payloads/Config/config.plist +++ b/payloads/Config/config.plist @@ -1527,6 +1527,24 @@ PlistPath Contents/Info.plist + + Arch + x86_64 + BundlePath + KDKlessWorkaround.kext + Comment + KDKlessWorkaround + Enabled + + ExecutablePath + Contents/MacOS/KDKlessWorkaround + MaxKernel + + MinKernel + 22.0.0 + PlistPath + Contents/Info.plist + Block diff --git a/payloads/Kexts/Misc/KDKlessWorkaround-v1.0.0-DEBUG.zip b/payloads/Kexts/Misc/KDKlessWorkaround-v1.0.0-DEBUG.zip new file mode 100644 index 000000000..1d8264ae0 Binary files /dev/null and b/payloads/Kexts/Misc/KDKlessWorkaround-v1.0.0-DEBUG.zip differ diff --git a/payloads/Kexts/Misc/KDKlessWorkaround-v1.0.0-RELEASE.zip b/payloads/Kexts/Misc/KDKlessWorkaround-v1.0.0-RELEASE.zip new file mode 100644 index 000000000..f50213258 Binary files /dev/null and b/payloads/Kexts/Misc/KDKlessWorkaround-v1.0.0-RELEASE.zip differ diff --git a/resources/build/misc.py b/resources/build/misc.py index a4c78c038..4cb91e797 100644 --- a/resources/build/misc.py +++ b/resources/build/misc.py @@ -33,6 +33,7 @@ class build_misc: self.debug_handling() self.cpu_friend_handling() self.general_oc_handling() + self.aux_kc_workaround() def feature_unlock_handling(self): if self.constants.fu_status is True: @@ -227,4 +228,24 @@ class build_misc: if self.constants.vault is True and utilities.check_command_line_tools() is True: print("- Setting Vault configuration") self.config["Misc"]["Security"]["Vault"] = "Secure" - support.build_support(self.model, self.constants, self.config).get_efi_binary_by_path("OpenShell.efi", "Misc", "Tools")["Enabled"] = False \ No newline at end of file + support.build_support(self.model, self.constants, self.config).get_efi_binary_by_path("OpenShell.efi", "Misc", "Tools")["Enabled"] = False + + def aux_kc_workaround(self): + gpu_dict = [] + if not self.constants.custom_model: + gpu_dict = self.constants.computer.gpus + else: + if self.model in smbios_data.smbios_dictionary: + gpu_dict = smbios_data.smbios_dictionary[self.model]["Stock GPUs"] + for gpu in gpu_dict: + if not self.constants.custom_model: + gpu = gpu.arch + if gpu in [ + device_probe.Intel.Archs.Ivy_Bridge, + device_probe.Intel.Archs.Haswell, + device_probe.Intel.Archs.Broadwell, + device_probe.Intel.Archs.Skylake, + device_probe.NVIDIA.Archs.Kepler, + ]: + support.build_support(self.model, self.constants, self.config).enable_kext("KDKlessWorkaround.kext", self.constants.kdkless_version, self.constants.kdkless_path) + break \ No newline at end of file diff --git a/resources/constants.py b/resources/constants.py index 0e717e2d5..bdc56c2cb 100644 --- a/resources/constants.py +++ b/resources/constants.py @@ -98,6 +98,10 @@ class Constants: ## https://github.com/blackgate/AMDGPUWakeHandler self.gpu_wake_version = "1.0.0" + ## flagersgit + ## https://github.com/flagersgit/KDKlessWorkaround + self.kdkless_version = "1.0.0" + # Get resource path self.current_path = Path(__file__).parent.parent.resolve() self.payload_path = self.current_path / Path("payloads") @@ -462,6 +466,10 @@ class Constants: def apple_raid_path(self): return self.payload_kexts_path / Path(f"Misc/AppleRAIDCard-v{self.apple_raid_version}.zip") + @property + def kdkless_path(self): + return self.payload_kexts_path / Path(f"Misc/KDKlessWorkaround-v{self.kdkless_version}-{self.kext_variant}.zip") + @property def plist_folder_path(self): return self.payload_kexts_path / Path("Plists")