diff --git a/CHANGELOG.md b/CHANGELOG.md index 3618c6d38..51b1204ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,8 @@ - AppleALC 1.6.2 release - WhateverGreen 1.6.2 release - PatcherSupportPkg 0.0.13 release +- Fix Intel HD4000 DRM Support in macOS Monterey (thanks EduCovas!) +- Support optionally re-enabling iGPU in iMac14,x with dGPUs ## 0.2.2 diff --git a/OpenCore-Patcher.command b/OpenCore-Patcher.command index c2b9e277e..4e4bf5dd7 100755 --- a/OpenCore-Patcher.command +++ b/OpenCore-Patcher.command @@ -116,6 +116,7 @@ system_profiler SPHardwareDataType | grep 'Model Identifier' [f"Allow FireWire Boot:\t\tCurrently {self.constants.firewire_boot}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).allow_firewire], [f"Allow NVMe Boot:\t\t\tCurrently {self.constants.nvme_boot}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).allow_nvme], [f"Allow Wake on WLAN:\t\t\tCurrently {self.constants.enable_wake_on_wlan}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).allow_wowl], + [f"Allow Ivy iMac iGPU:\t\t\tCurrently {self.constants.allow_ivy_igpu}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).allow_ivy], [f"Disable AMFI:\t\t\tCurrently {self.constants.disable_amfi}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).set_amfi], [ f"Set SIP and SecureBootModel:\tSIP: {self.constants.sip_status} SBM: {self.constants.secure_status}", diff --git a/Resources/Build.py b/Resources/Build.py index 8202fd39b..8a0ee6877 100644 --- a/Resources/Build.py +++ b/Resources/Build.py @@ -411,13 +411,16 @@ class BuildOpenCore: self.config["DeviceProperties"]["Add"][self.gfx0_path] = {"agdpmod": "vit9696"} if self.model in ["iMac13,1", "iMac13,2", "iMac13,3"]: - if self.computer.dgpu: - print("- Fixing sleep support in macOS 12") + if self.computer.dgpu and self.constants.allow_ivy_igpu is False: + print("- Disabling iGPU to fix sleep support in macOS 12") + self.config["DeviceProperties"]["Add"][self.gfx0_path] = {"agdpmod": "vit9696", "shikigva": 256} self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x2,0x0)"] = { "name": binascii.unhexlify("23646973706C6179"), "IOName": "#display", "class-code": binascii.unhexlify("FFFFFFFF"), } + elif self.constants.allow_ivy_igpu is True: + print("- Enabling iGPU upon request") # Audio Patch if self.model in ModelArray.LegacyAudio: diff --git a/Resources/CliMenu.py b/Resources/CliMenu.py index 37465f17d..c1759baab 100644 --- a/Resources/CliMenu.py +++ b/Resources/CliMenu.py @@ -499,3 +499,28 @@ be prepared if enabling. self.constants.enable_wake_on_wlan = False else: print("Invalid option") + + def allow_ivy(self): + Utilities.cls() + Utilities.header(["Allow Ivy iMac iGPU"]) + print( + """ +For iMac13,x systems with a Nvidia dGPU, the iGPU is disabled by default to +allow Delta Updates, FileVault, SIP and such on macOS Monterey. However due to this, +DRM and QuickSync support may be broken. + +Users can choose to override this option but be aware SIP and FileVault must be disabled +to run root patches to fix DRM and QuickSync. + +Note: This does not apply for Big Sur, the iGPU can be renabled without consequence +Note 2: This setting only affects iMac13,x with dGPUs + """ + ) + + change_menu = input("Allow Ivy iMac iGPU?(y/n): ") + if change_menu == "y": + self.constants.allow_ivy_igpu = True + elif change_menu == "n": + self.constants.allow_ivy_igpu = False + else: + print("Invalid option") \ No newline at end of file diff --git a/Resources/Constants.py b/Resources/Constants.py index f89c42d66..b8fc9f5cf 100644 --- a/Resources/Constants.py +++ b/Resources/Constants.py @@ -88,6 +88,7 @@ class Constants: self.disable_amfi = False self.terascale_2_patch = False self.enable_wake_on_wlan = False + self.allow_ivy_igpu = False # OS Versions self.tiger = 8