diff --git a/CHANGELOG.md b/CHANGELOG.md index 6957a5051..c095b5d39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ - Resolve failing to find binaries with `--patch_sys_vol` argument - Downgrade AppleFSCompressionTypeZlib to 12.3.1 on pre-Sandy Bridge Macs - Resolves ZLib decompression kernel panics on 12.4 and newer +- Resolve AppleGVACore crashing on MacBookPro11,3 in Monterey 12.4+ ## 0.4.5 - Fix AutoPatcher.pkg download on releases diff --git a/data/sys_patch_dict.py b/data/sys_patch_dict.py index f9a257136..0fab965ee 100644 --- a/data/sys_patch_dict.py +++ b/data/sys_patch_dict.py @@ -164,6 +164,47 @@ def SystemPatchDictionary(os_major, os_minor, non_metal_os_support): "OpenCL.framework": "11.6", "WebKit.framework": "11.6", }, + }, + }, + + # Resolve AppleGVACore crashing on MacBookPro11,3 due to mixed GPU combo + # ie. native Haswell iGPU + non-native Kepler dGPU + # This can be remove after 0.4.6 release, as 0.4.5 downgrades to 10.15.7 + "GVA Work-Around": { + "Display Name": "", + "OS Support": { + "Minimum OS Support": { + "OS Major": os_data.os_data.monterey, + "OS Minor": 0 + }, + "Maximum OS Support": { + "OS Major": os_data.os_data.max_os, + "OS Minor": 99 + }, + }, + "Remove": { + "/System/Library/PrivateFrameworks/AppleGVA.framework/Versions/A": [ + "AppleGVA", + ], + "/System/Library/PrivateFrameworks/AppleGVACore.framework/Versions/A": [ + "AppleGVACore", + ], + }, + }, + + "Modern GVA": { + "Display Name": "", + "OS Support": { + "Minimum OS Support": { + "OS Major": os_data.os_data.monterey, + "OS Minor": 0 + }, + "Maximum OS Support": { + "OS Major": os_data.os_data.max_os, + "OS Minor": 99 + }, + }, + "Install": { "/System/Library/PrivateFrameworks": { "AppleGVA.framework": "10.15.7", "AppleGVACore.framework": "10.15.7", diff --git a/resources/sys_patch_detect.py b/resources/sys_patch_detect.py index 62e5c13f3..68a6b97a5 100644 --- a/resources/sys_patch_detect.py +++ b/resources/sys_patch_detect.py @@ -249,6 +249,11 @@ class detect_root_patch: if hardware_details["Graphics: Nvidia Kepler"] is True: required_patches.update({"Metal Common": all_hardware_patchset["Graphics"]["Metal Common"]}) required_patches.update({"Nvidia Kepler": all_hardware_patchset["Graphics"]["Nvidia Kepler"]}) + for gpu in self.constants.computer.gpus: + if gpu.arch == device_probe.Intel.Archs.Haswell: + required_patches.update({"GVA Work-Around": all_hardware_patchset["Graphics"]["GVA Work-Around"]}) + if "GVA Work-Around" not in required_patches: + required_patches.update({"Modern GVA": all_hardware_patchset["Graphics"]["Modern GVA"]}) if hardware_details["Graphics: AMD TeraScale 1"] is True: required_patches.update({"Non-Metal Common": all_hardware_patchset["Graphics"]["Non-Metal Common"]}) required_patches.update({"AMD TeraScale Common": all_hardware_patchset["Graphics"]["AMD TeraScale Common"]})