diff --git a/CHANGELOG.md b/CHANGELOG.md index d00a3fa88..edad5da21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,8 @@ - Lilu c77722d (1.5.3 rolling - 05-01-2021) - AppleALC 84850d0 (1.6.0 rolling - 04-30-2021) - RestrictEvents 9e2bb0f (1.0.1 rolling - 05-01-2021) +- Allow CPUFriend on all El-Capitan Era Macs +- Fix UEFI 2.0 Application support on upgraded Nvidia GPUs ## 0.1.1 - Fix iMac11,3 GFX0 pathing diff --git a/Resources/Build.py b/Resources/Build.py index e398ff7ea..38c371199 100644 --- a/Resources/Build.py +++ b/Resources/Build.py @@ -11,6 +11,7 @@ import zipfile import os import sys import platform +import ast from pathlib import Path from datetime import date @@ -112,13 +113,13 @@ class BuildOpenCore: ("WhateverGreen.kext", self.constants.whatevergreen_version, self.constants.whatevergreen_path, lambda: self.constants.allow_oc_everywhere is False), ("RestrictEvents.kext", self.constants.restrictevents_version, self.constants.restrictevents_path, lambda: self.model in ModelArray.MacPro71), ("RestrictEvents.kext", self.constants.restrictevents_mbp_version, self.constants.restrictevents_mbp_path, lambda: self.model == "MacBookPro9,1"), - ("NightShiftEnabler.kext", self.constants.nightshift_version, self.constants.nightshift_path, lambda: self.model not in ModelArray.NightShiftExclude and self.constants.allow_oc_everywhere is False), + ("NightShiftEnabler.kext", self.constants.nightshift_version, self.constants.nightshift_path, lambda: self.model not in ModelArray.NightShiftExclude and self.constants.allow_oc_everywhere is False and self.constants.serial_settings == "Moderate"), ("SMC-Spoof.kext", self.constants.smcspoof_version, self.constants.smcspoof_path, lambda: self.constants.allow_oc_everywhere is False), # CPU patches ("AppleMCEReporterDisabler.kext", self.constants.mce_version, self.constants.mce_path, lambda: self.model in ModelArray.DualSocket), ("AAAMouSSE.kext", self.constants.mousse_version, self.constants.mousse_path, lambda: self.model in ModelArray.SSEEmulator), ("telemetrap.kext", self.constants.telemetrap_version, self.constants.telemetrap_path, lambda: self.model in ModelArray.MissingSSE42), - ("CPUFriend.kext", self.constants.cpufriend_version, self.constants.cpufriend_path, lambda: self.model not in ModelArray.NoAPFSsupport and self.constants.allow_oc_everywhere is False), + ("CPUFriend.kext", self.constants.cpufriend_version, self.constants.cpufriend_path, lambda: self.model != "iMac7,1" and self.constants.allow_oc_everywhere is False), # Ethernet patches ("nForceEthernet.kext", self.constants.nforce_version, self.constants.nforce_path, lambda: self.model in ModelArray.EthernetNvidia), ("MarvelYukonEthernet.kext", self.constants.marvel_version, self.constants.marvel_path, lambda: self.model in ModelArray.EthernetMarvell), @@ -273,7 +274,7 @@ class BuildOpenCore: # CPUFriend pp_map_path = Path(self.constants.platform_plugin_plist_path) / Path(f"{self.model}/Info.plist") - if self.model not in ModelArray.NoAPFSsupport and self.constants.allow_oc_everywhere is False: + if self.model != "iMac7,1" and self.constants.allow_oc_everywhere is False: Path(self.constants.pp_kext_folder).mkdir() Path(self.constants.pp_contents_folder).mkdir() shutil.copy(pp_map_path, self.constants.pp_contents_folder) @@ -300,7 +301,7 @@ class BuildOpenCore: # USB Map usb_map_path = Path(self.constants.plist_folder_path) / Path("AppleUSBMaps/Info.plist") # iMac7,1 kernel panics with USB map installed, remove for time being until properly debugged - if usb_map_path.exists() and self.constants.allow_oc_everywhere is False: + if usb_map_path.exists() and self.constants.allow_oc_everywhere is False and self.model != "iMac7,1": print(f"- Adding USB-Map.kext") Path(self.constants.map_kext_folder).mkdir() Path(self.constants.map_contents_folder).mkdir() @@ -391,6 +392,8 @@ class BuildOpenCore: self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x2,0x0)"] = {"name": binascii.unhexlify("23646973706C6179"), "IOName": "#display", "class-code": binascii.unhexlify("FFFFFFFF")} shutil.copy(self.constants.backlight_path, self.constants.kexts_path) self.get_kext_by_bundle_path("AppleBacklightFixup.kext")["Enabled"] = True + self.config["UEFI"]["Quirks"]["ForgeUefiSupport"] = True + self.config["UEFI"]["Quirks"]["ReloadOptionRoms"] = True def amd_patch(self, backlight_path): self.constants.custom_mxm_gpu = True @@ -446,6 +449,7 @@ class BuildOpenCore: self.config["DeviceProperties"]["Add"][mp_dgpu_path] = {"shikigva": 128, "unfairgva": 1, "wegtree": 1} elif mp_dgpu_vendor == self.constants.pci_nvidia: print("- Enabling Nvidia Output Patch") + self.config["DeviceProperties"]["Add"][mp_dgpu_path] = {"wegtree": 1} self.config["UEFI"]["Quirks"]["ForgeUefiSupport"] = True self.config["UEFI"]["Quirks"]["ReloadOptionRoms"] = True @@ -458,6 +462,9 @@ class BuildOpenCore: self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " shikigva=128 unfairgva=1 -wegtree" elif mp_dgpu_vendor == self.constants.pci_nvidia: print("- Enabling Nvidia Output Patch") + if "-wegtree" not in self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"]: + print("- Falling back to boot-args") + self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " -wegtree" self.config["UEFI"]["Quirks"]["ForgeUefiSupport"] = True self.config["UEFI"]["Quirks"]["ReloadOptionRoms"] = True x = x + 1 @@ -583,12 +590,15 @@ class BuildOpenCore: # Setup menu def minimal_serial_patch(self): + self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["run-efi-updater"] = "No" self.config["PlatformInfo"]["PlatformNVRAM"]["BID"] = self.spoofed_board self.config["PlatformInfo"]["SMBIOS"]["BoardProduct"] = self.spoofed_board + self.config["PlatformInfo"]["SMBIOS"]["BIOSVersion"] = "9999.999.999.999.999" self.config["PlatformInfo"]["UpdateNVRAM"] = True self.config["PlatformInfo"]["UpdateSMBIOS"] = True def moderate_serial_patch(self): + self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["run-efi-updater"] = "No" self.config["PlatformInfo"]["Automatic"] = True self.config["PlatformInfo"]["UpdateDataHub"] = True self.config["PlatformInfo"]["UpdateNVRAM"] = True @@ -599,6 +609,7 @@ class BuildOpenCore: def advanced_serial_patch(self): macserial_output = subprocess.run([self.constants.macserial_path] + f"-g -m {self.spoofed_model} -n 1".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT) macserial_output = macserial_output.stdout.decode().strip().split(" | ") + self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["run-efi-updater"] = "No" self.config["PlatformInfo"]["Automatic"] = True self.config["PlatformInfo"]["UpdateDataHub"] = True self.config["PlatformInfo"]["UpdateNVRAM"] = True @@ -622,7 +633,7 @@ class BuildOpenCore: minimal_serial_patch(self) # USB Map and CPUFriend Patching - if self.constants.allow_oc_everywhere is False: + if self.constants.allow_oc_everywhere is False and self.model != "iMac7,1": new_map_ls = Path(self.constants.map_contents_folder) / Path("Info.plist") map_config = plistlib.load(Path(new_map_ls).open("rb")) @@ -646,6 +657,17 @@ class BuildOpenCore: plistlib.dump(map_config, Path(new_map_ls).open("wb"), sort_keys=True) + # Adjust CPU Friend Data to correct SMBIOS + new_cpu_ls = Path(self.constants.pp_contents_folder) / Path("Info.plist") + cpu_config = plistlib.load(Path(new_cpu_ls).open("rb")) + string_stuff = str(cpu_config["IOKitPersonalities"]["CPUFriendDataProvider"]["cf-frequency-data"]) + string_stuff = string_stuff.replace(self.model, self.spoofed_model) + string_stuff = ast.literal_eval(string_stuff) + cpu_config["IOKitPersonalities"]["CPUFriendDataProvider"]["cf-frequency-data"] = string_stuff + #cpu_data_config = plistlib.loads(cpu_config["IOKitPersonalities"]["CPUFriendDataProvider"]["cf-frequency-data"]) + #print(f'Patching CPUFriend Data to: {cpu_data_config["IOPlatformThermalProfile"]["ConfigArray"][0]["model"]}') + plistlib.dump(cpu_config, Path(new_cpu_ls).open("wb"), sort_keys=True) + diff --git a/payloads/Config/config.plist b/payloads/Config/config.plist index 45cbe5b82..c44e3898f 100644 --- a/payloads/Config/config.plist +++ b/payloads/Config/config.plist @@ -572,24 +572,6 @@ PlistPath Contents/Info.plist - - Arch - x86_64 - Comment - VoodooHDA - Enabled - - MaxKernel - - MinKernel - 18.0.0 - BundlePath - VoodooHDA.kext - ExecutablePath - Contents/MacOS/VoodooHDA - PlistPath - Contents/Info.plist - Arch x86_64 @@ -1107,8 +1089,6 @@ Rg== boot-args keepsyms=1 debug=0x100 - run-efi-updater - No csr-active-config AAAAAA== @@ -1140,31 +1120,7 @@ LegacyOverwrite LegacySchema - - 7C436110-AB2A-4BBB-A880-FE41995C9F82 - - EFILoginHiDPI - EFIBluetoothDelay - LocationServicesEnabled - SystemAudioVolume - SystemAudioVolumeDB - SystemAudioVolumeSaved - bluetoothActiveControllerInfo - bluetoothInternalControllerInfo - flagstate - fmm-computer-name - nvda_drv - prev-lang:kbd - - 8BE4DF61-93CA-11D2-AA0D-00E098032B8C - - Boot0080 - Boot0081 - Boot0082 - BootNext - BootOrder - - + WriteFlash @@ -1252,7 +1208,7 @@ BIOSVendor BIOSVersion - 9999.999.999.999.999 + BoardAssetTag BoardLocationInChassis @@ -1350,7 +1306,7 @@ AudioCodec 0 AudioDevice - PciRoot(0x0)/Pci(0x1b,0x0) + AudioOut 0 AudioSupport @@ -1385,7 +1341,7 @@ PointerSupport PointerSupportMode - ASUS + TimerResolution 50000 @@ -1460,7 +1416,7 @@ ActivateHpetSupport EnableVectorAcceleration - + DisableSecurityPolicy ExitBootServicesDelay