From 08731521adbc43598e43d280acbe4f1a473de71a Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk <48863253+khronokernel@users.noreply.github.com> Date: Tue, 2 Mar 2021 07:30:59 -0700 Subject: [PATCH] Add Backlight patches for modded Nvidia GPUs --- CHANGELOG.md | 2 ++ OpenCore-Patcher.command | 2 -- Resources/Constants.py | 5 +++++ Resources/build.py | 20 ++++++++++++------ payloads/Config/v0.6.7/config.plist | 18 ++++++++++++++++ .../Kexts/Misc/AppleBacklightFixup-v1.0.0.zip | Bin 0 -> 9206 bytes 6 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 payloads/Kexts/Misc/AppleBacklightFixup-v1.0.0.zip diff --git a/CHANGELOG.md b/CHANGELOG.md index c9c56758b..749421f82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # OpenCore Legacy Patcher changelog ## 0.0.12 +- Convert OpenCore-Patcher binary to OpenCore-Patcher.app +- Add Backlight patches for modded Nvidia GPUs in iMac10,x-12,x ## 0.0.11 - Re-add OpenCore GUI diff --git a/OpenCore-Patcher.command b/OpenCore-Patcher.command index 0de49110d..f7c6e6392 100755 --- a/OpenCore-Patcher.command +++ b/OpenCore-Patcher.command @@ -6,8 +6,6 @@ import subprocess, sys, time from Resources import build, ModelArray, Constants, utilities -PATCHER_VERSION = "0.0.11" - class OpenCoreLegacyPatcher(): def __init__(self): diff --git a/Resources/Constants.py b/Resources/Constants.py index 1b8657cbd..970a61042 100644 --- a/Resources/Constants.py +++ b/Resources/Constants.py @@ -25,6 +25,7 @@ class Constants: self.voodoohda_version = "296" self.restrictevents_version = "1.0.0" self.piixata_version = "1.0.0" + self.backlight_version = "1.0.0" # Get resource path self.current_path = Path(__file__).parent.parent.resolve() @@ -32,6 +33,8 @@ class Constants: self.custom_model: str = None self.custom_mxm_gpu: str = None + self.current_gpuv: str = None + self.current_gpud: str = None # Payload Location # OpenCore @property @@ -78,6 +81,8 @@ class Constants: def voodoohda_path(self): return self.payload_kexts_path / Path(f"Audio/VoodooHDA-v{self.voodoohda_version}.zip") @property def piixata_path(self): return self.payload_kexts_path / Path(f"Misc/AppleIntelPIIXATA-v{self.piixata_version}.zip") + @property + def backlight_path(self): return self.payload_kexts_path / Path(f"Misc/AppleBacklightFixup-v{self.backlight_version}.zip") # Build Location @property diff --git a/Resources/build.py b/Resources/build.py index 005b3afec..b4a3a0c0f 100644 --- a/Resources/build.py +++ b/Resources/build.py @@ -153,19 +153,21 @@ class BuildOpenCore: # Check GPU Vendor if self.constants.custom_model == "None": current_gpu: str = subprocess.run("system_profiler SPDisplaysDataType".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode() - current_gpuv = [line.strip().split(": ", 1)[1] for line in current_gpu.split("\n") if line.strip().startswith(("Vendor"))][0] - current_gpud = [line.strip().split(": ", 1)[1] for line in current_gpu.split("\n") if line.strip().startswith(("Device ID"))][0] - print(f"- Detected GPU: {current_gpuv} {current_gpud}") - if (current_gpuv == "AMD (0x1002)") & (current_gpud in ModelArray.AMDMXMGPUs): + self.constants.current_gpuv = [line.strip().split(": ", 1)[1] for line in current_gpu.split("\n") if line.strip().startswith(("Vendor"))][0] + self.constants.current_gpud = [line.strip().split(": ", 1)[1] for line in current_gpu.split("\n") if line.strip().startswith(("Device ID"))][0] + print(f"- Detected GPU: {self.constants.current_gpuv} {self.constants.current_gpud}") + if (self.constants.current_gpuv == "AMD (0x1002)") & (self.constants.current_gpud in ModelArray.AMDMXMGPUs): self.constants.custom_mxm_gpu = True print("- Adding AMD DRM patches") self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " shikigva=80 unfairgva=1" - elif (current_gpuv == "NVIDIA (0x10de)") & (current_gpud in ModelArray.NVIDIAMXMGPUs): + elif (self.constants.current_gpuv == "NVIDIA (0x10de)") & (self.constants.current_gpud in ModelArray.NVIDIAMXMGPUs): self.constants.custom_mxm_gpu = True print("- Adding Brightness Control patches") if self.model in ["iMac11,1", "iMac11,2", "iMac11,3"]: backlight_path = "PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)" self.config["DeviceProperties"]["Add"][backlight_path] = {"@0,backlight-control": binascii.unhexlify("01000000"), "@0,built-in": binascii.unhexlify("01000000")} + shutil.copy(self.constants.backlight_path, self.constants.kexts_path) + self.get_kext_by_bundle_path("AppleBacklightFixup.kext")["Enabled"] = True elif self.model in ["iMac12,1", "iMac12,2"]: backlight_path = "PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)" self.config["DeviceProperties"]["Add"][backlight_path] = {"@0,backlight-control": binascii.unhexlify("01000000"), "@0,built-in": binascii.unhexlify("01000000")} @@ -200,7 +202,12 @@ class BuildOpenCore: spoofed_model = "Macmini7,1" spoofed_board = "Mac-35C5E08120C7EEAF" elif self.model in ModelArray.iMac151: - if self.constants.custom_mxm_gpu == True: + # Check for upgraded GPUs on iMacs + if (self.constants.current_gpuv == "AMD (0x1002)") & (self.constants.current_gpud in ModelArray.AMDMXMGPUs) & (self.constants.custom_model == "None"): + print("- Spoofing to iMacPro1,1") + spoofed_model = "iMacPro1,1" + spoofed_board = "Mac-7BA5B2D9E42DDD94" + elif (self.constants.current_gpuv == "NVIDIA (0x10de)") & (self.constants.current_gpud in ModelArray.NVIDIAMXMGPUs) & (self.constants.custom_model == "None"): print("- Spoofing to iMacPro1,1") spoofed_model = "iMacPro1,1" spoofed_board = "Mac-7BA5B2D9E42DDD94" @@ -244,7 +251,6 @@ class BuildOpenCore: smbios_mod = True # USB Map - usb_map_path = Path(self.constants.current_path) / Path(f"payloads/Kexts/Maps/Universal/Info.plist") self.new_map_ls = Path(self.constants.map_contents_folder) / Path(f"Info.plist") self.map_config = plistlib.load(Path(self.new_map_ls).open("rb")) diff --git a/payloads/Config/v0.6.7/config.plist b/payloads/Config/v0.6.7/config.plist index a3a0b8f17..c258642fc 100644 --- a/payloads/Config/v0.6.7/config.plist +++ b/payloads/Config/v0.6.7/config.plist @@ -494,6 +494,24 @@ PlistPath Contents/Info.plist + + Arch + x86_64 + Comment + AppleBacklightFixup - Modded Nvidia GPUs + Enabled + + MaxKernel + + MinKernel + + BundlePath + AppleBacklightFixup.kext + ExecutablePath + Contents/MacOS/AppleBacklightFixup + PlistPath + Contents/Info.plist + Arch x86_64 diff --git a/payloads/Kexts/Misc/AppleBacklightFixup-v1.0.0.zip b/payloads/Kexts/Misc/AppleBacklightFixup-v1.0.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..f72624bd4b12cb1853b4191bdafcc41134bb2d33 GIT binary patch literal 9206 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 literal 0 HcmV?d00001