diff --git a/payloads/Config/config.plist b/payloads/Config/config.plist index 18daca1c3..a421f0cf9 100644 --- a/payloads/Config/config.plist +++ b/payloads/Config/config.plist @@ -178,7 +178,32 @@ MmioWhitelist Patch - + + + Arch + x86_64 + Comment + Skip Board ID check + Count + 0 + Enabled + + Find + AFAAbABhAHQAZgBvAHIAbQBTAHUAcABwAG8AcgB0AC4AcABsAGkAcwB0 + Identifier + Apple + Limit + 0 + Mask + + Replace + AC4ALgAuAC4ALgAuAC4ALgAuAC4ALgAuAC4ALgAuAC4ALgAuAC4ALgAu + ReplaceMask + + Skip + 0 + + Quirks AllowRelocationBlock @@ -1122,27 +1147,21 @@ Enabled Find - - AHQjSIs= - + AHQjSIs= Identifier kernel Limit 800 Mask - - + MaxKernel 21.1.0 MinKernel 20.4.0 Replace - - AOsjSIs= - + AOsjSIs= ReplaceMask - - + Skip 0 @@ -1158,27 +1177,111 @@ Enabled Find - - ukgBAAAx9g== - + ukgBAAAx9g== Identifier kernel Limit 256 Mask - - + MaxKernel 21.1.0 MinKernel 20.4.0 Replace - - ukgBAADrBQ== - + ukgBAADrBQ== ReplaceMask - - + + Skip + 0 + + + Arch + x86_64 + Base + + Comment + Reroute kern.hv_vmm_present patch (1) + Count + 1 + Enabled + + Find + AGRpcmVjdF9oYW5kb2ZmAEVuYWJsZSBkaXJlY3QgaGFuZG9mZiBmb3IgcmVhbHRpbWUgdGhyZWFkcwA= + Identifier + kernel + Limit + 0 + Mask + + MaxKernel + + MinKernel + 20.4.0 + Replace + AGh2X3ZtbV9wcmVzZW50AEVuYWJsZSBkaXJlY3QgaGFuZG9mZiBmb3IgcmVhbHRpbWUgdGhyZWFkcwA= + ReplaceMask + + Skip + 0 + + + Arch + x86_64 + Base + + Comment + Reroute kern.hv_vmm_present patch (2) + Count + 1 + Enabled + + Find + AGh2X2Rpc2FibGUAaHZfdm1tX3ByZXNlbnQA + Identifier + kernel + Limit + 0 + Mask + + MaxKernel + + MinKernel + 20.4.0 + Replace + AGh2X2Rpc2FibGUAZGlyZWN0X2hhbmRvZmYA + ReplaceMask + + Skip + 0 + + + Arch + x86_64 + Base + _IOGetVMMPresent + Comment + Force IOGetVMMPresent + Count + 0 + Enabled + + Find + + Identifier + kernel + Limit + 0 + Mask + + MaxKernel + + MinKernel + 20.4.0 + Replace + uAEAAADD + ReplaceMask + Skip 0 @@ -1198,7 +1301,7 @@ DisableIoMapper DisableLinkeditJettison - + DisableRtcChecksum ExtendBTFeatureFlags diff --git a/resources/build.py b/resources/build.py index 6c0f8cf93..f57e3abde 100644 --- a/resources/build.py +++ b/resources/build.py @@ -98,20 +98,20 @@ class BuildOpenCore: for name, version, path, check in [ # Essential kexts ("Lilu.kext", self.constants.lilu_version, self.constants.lilu_path, lambda: True), - ("WhateverGreen.kext", self.constants.whatevergreen_version, self.constants.whatevergreen_path, lambda: self.constants.allow_oc_everywhere is False), + ("WhateverGreen.kext", self.constants.whatevergreen_version, self.constants.whatevergreen_path, lambda: self.constants.allow_oc_everywhere is False and self.constants.serial_settings != "None"), ("RestrictEvents.kext", self.constants.restrictevents_version, self.constants.restrictevents_path, lambda: self.model in model_array.MacPro), # Modded RestrictEvents with displaypolicyd blocked to fix dGPU switching ("RestrictEvents.kext", self.constants.restrictevents_mbp_version, self.constants.restrictevents_mbp_path, lambda: self.model in ["MacBookPro6,1", "MacBookPro6,2", "MacBookPro9,1"]), - ("SMC-Spoof.kext", self.constants.smcspoof_version, self.constants.smcspoof_path, lambda: self.constants.allow_oc_everywhere is False), + ("SMC-Spoof.kext", self.constants.smcspoof_version, self.constants.smcspoof_path, lambda: self.constants.allow_oc_everywhere is False and self.constants.serial_settings != "None"), # CPU patches - ("AppleMCEReporterDisabler.kext", self.constants.mce_version, self.constants.mce_path, lambda: self.model.startswith("MacPro") or self.model.startswith("Xserve")), + ("AppleMCEReporterDisabler.kext", self.constants.mce_version, self.constants.mce_path, lambda: (self.model.startswith("MacPro") or self.model.startswith("Xserve")) and self.constants.serial_settings != "None"), ("AAAMouSSE.kext", self.constants.mousse_version, self.constants.mousse_path, lambda: smbios_data.smbios_dictionary[self.model]["CPU Generation"] <= cpu_data.cpu_data.penryn.value), ("telemetrap.kext", self.constants.telemetrap_version, self.constants.telemetrap_path, lambda: smbios_data.smbios_dictionary[self.model]["CPU Generation"] <= cpu_data.cpu_data.penryn.value), ( "CPUFriend.kext", self.constants.cpufriend_version, self.constants.cpufriend_path, - lambda: self.model not in ["iMac7,1", "Xserve2,1", "Dortania1,1"] and self.constants.allow_oc_everywhere is False and self.constants.disallow_cpufriend is False, + lambda: self.model not in ["iMac7,1", "Xserve2,1", "Dortania1,1"] and self.constants.allow_oc_everywhere is False and self.constants.disallow_cpufriend is False and self.constants.serial_settings != "None", ), # Ethernet patches ("nForceEthernet.kext", self.constants.nforce_version, self.constants.nforce_path, lambda: smbios_data.smbios_dictionary[self.model]["Ethernet Chipset"] == "Nvidia"), @@ -128,7 +128,20 @@ class BuildOpenCore: self.enable_kext(name, version, path, check) if self.constants.allow_oc_everywhere is False: - self.get_item_by_kv(self.config["Kernel"]["Patch"], "Identifier", "com.apple.driver.AppleSMC")["Enabled"] = True + if self.constants.serial_settings == "None": + # Credit to Parrotgeek1 for boot.efi and hv_vmm_present patch sets + print("- Enabling Board ID exemption patch") + self.get_item_by_kv(self.config["Booter"]["Patch"], "Comment", "Skip Board ID check")["Enabled"] = True + print("- Enabling VMM exemption patch") + self.get_item_by_kv(self.config["Kernel"]["Patch"], "Comment", "Reroute kern.hv_vmm_present patch (1)")["Enabled"] = True + self.get_item_by_kv(self.config["Kernel"]["Patch"], "Comment", "Reroute kern.hv_vmm_present patch (2)")["Enabled"] = True + else: + print("- Enabling SMC exemption patch") + self.get_item_by_kv(self.config["Kernel"]["Patch"], "Identifier", "com.apple.driver.AppleSMC")["Enabled"] = True + + if self.get_kext_by_bundle_path("Lilu.kext")["Enabled"] is False: + # Required for Lilu in 11.0+ + self.config["Kernel"]["Quirks"]["DisableLinkeditJettison"] = True # Ethernet Patch Sets if smbios_data.smbios_dictionary[self.model]["Ethernet Chipset"] == "Broadcom": @@ -137,7 +150,7 @@ class BuildOpenCore: # Applicable for pre-Ivy Bridge models self.enable_kext("CatalinaBCM5701Ethernet.kext", self.constants.bcm570_version, self.constants.bcm570_path) - if self.constants.allow_oc_everywhere is False: + if self.constants.allow_oc_everywhere is False or self.constants.serial_settings != "None": if (smbios_data.smbios_dictionary[generate_smbios.set_smbios_model_spoof(self.model) or self.constants.override_smbios]["SecureBootModel"]) != None: # Monterey T2 SMBIOS don't get OS updates without a T2 SBM # Forces VMM patch instead @@ -293,8 +306,8 @@ class BuildOpenCore: self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += f" -brcmfxwowl" # CPUFriend - pp_map_path = Path(self.constants.platform_plugin_plist_path) / Path(f"{self.model}/Info.plist") - if self.model not in ["iMac7,1", "Xserve2,1", "Dortania1,1"] and self.constants.allow_oc_everywhere is False: + if self.model not in ["iMac7,1", "Xserve2,1", "Dortania1,1"] and self.constants.allow_oc_everywhere is False and self.constants.serial_settings != "None": + pp_map_path = Path(self.constants.platform_plugin_plist_path) / Path(f"{self.model}/Info.plist") Path(self.constants.pp_kext_folder).mkdir() Path(self.constants.pp_contents_folder).mkdir() shutil.copy(pp_map_path, self.constants.pp_contents_folder) @@ -336,54 +349,57 @@ class BuildOpenCore: self.get_kext_by_bundle_path("USB-Map.kext")["Enabled"] = True if self.constants.allow_oc_everywhere is False: - if self.model == "MacBookPro9,1": - print("- Adding AppleMuxControl Override") - amc_map_path = Path(self.constants.plist_folder_path) / Path("AppleMuxControl/Info.plist") - self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"] = {"agdpmod": "vit9696"} - Path(self.constants.amc_kext_folder).mkdir() - Path(self.constants.amc_contents_folder).mkdir() - shutil.copy(amc_map_path, self.constants.amc_contents_folder) - self.get_kext_by_bundle_path("AMC-Override.kext")["Enabled"] = True - elif self.model == "MacBookPro10,1": - self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"] = {"agdpmod": "vit9696"} + if self.constants.serial_settings != "None": + if self.model == "MacBookPro9,1": + print("- Adding AppleMuxControl Override") + amc_map_path = Path(self.constants.plist_folder_path) / Path("AppleMuxControl/Info.plist") + self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"] = {"agdpmod": "vit9696"} + Path(self.constants.amc_kext_folder).mkdir() + Path(self.constants.amc_contents_folder).mkdir() + shutil.copy(amc_map_path, self.constants.amc_contents_folder) + self.get_kext_by_bundle_path("AMC-Override.kext")["Enabled"] = True + elif self.model == "MacBookPro10,1": + self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"] = {"agdpmod": "vit9696"} - if self.model not in model_array.NoAGPMSupport: - print("- Adding AppleGraphicsPowerManagement Override") - agpm_map_path = Path(self.constants.plist_folder_path) / Path("AppleGraphicsPowerManagement/Info.plist") - Path(self.constants.agpm_kext_folder).mkdir() - Path(self.constants.agpm_contents_folder).mkdir() - shutil.copy(agpm_map_path, self.constants.agpm_contents_folder) - self.get_kext_by_bundle_path("AGPM-Override.kext")["Enabled"] = True + if self.model not in model_array.NoAGPMSupport: + print("- Adding AppleGraphicsPowerManagement Override") + agpm_map_path = Path(self.constants.plist_folder_path) / Path("AppleGraphicsPowerManagement/Info.plist") + Path(self.constants.agpm_kext_folder).mkdir() + Path(self.constants.agpm_contents_folder).mkdir() + shutil.copy(agpm_map_path, self.constants.agpm_contents_folder) + self.get_kext_by_bundle_path("AGPM-Override.kext")["Enabled"] = True - if self.model in model_array.AGDPSupport: - print("- Adding AppleGraphicsDevicePolicy Override") - agdp_map_path = Path(self.constants.plist_folder_path) / Path("AppleGraphicsDevicePolicy/Info.plist") - Path(self.constants.agdp_kext_folder).mkdir() - Path(self.constants.agdp_contents_folder).mkdir() - shutil.copy(agdp_map_path, self.constants.agdp_contents_folder) - self.get_kext_by_bundle_path("AGDP-Override.kext")["Enabled"] = True + if self.model in model_array.AGDPSupport: + print("- Adding AppleGraphicsDevicePolicy Override") + agdp_map_path = Path(self.constants.plist_folder_path) / Path("AppleGraphicsDevicePolicy/Info.plist") + Path(self.constants.agdp_kext_folder).mkdir() + Path(self.constants.agdp_contents_folder).mkdir() + shutil.copy(agdp_map_path, self.constants.agdp_contents_folder) + self.get_kext_by_bundle_path("AGDP-Override.kext")["Enabled"] = True - # AGPM Patch - if self.model in model_array.DualGPUPatch: - print("- Adding dual GPU patch") - if not self.constants.custom_model and self.computer.dgpu and self.computer.dgpu.pci_path: - self.gfx0_path = self.computer.dgpu.pci_path - print(f"- Found GFX0 Device Path: {self.gfx0_path}") - else: - if not self.constants.custom_model: - print("- Failed to find GFX0 Device path, falling back on known logic") - self.gfx0_path = "PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)" + + if self.constants.serial_settings != "None": + # AGPM Patch + if self.model in model_array.DualGPUPatch: + print("- Adding dual GPU patch") + if not self.constants.custom_model and self.computer.dgpu and self.computer.dgpu.pci_path: + self.gfx0_path = self.computer.dgpu.pci_path + print(f"- Found GFX0 Device Path: {self.gfx0_path}") + else: + if not self.constants.custom_model: + print("- Failed to find GFX0 Device path, falling back on known logic") + self.gfx0_path = "PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)" - if self.model in model_array.IntelNvidiaDRM and self.constants.drm_support is True: - print("- Prioritizing DRM support over Intel QuickSync") - 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"), - } - else: - self.config["DeviceProperties"]["Add"][self.gfx0_path] = {"agdpmod": "vit9696"} + if self.model in model_array.IntelNvidiaDRM and self.constants.drm_support is True: + print("- Prioritizing DRM support over Intel QuickSync") + 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"), + } + else: + self.config["DeviceProperties"]["Add"][self.gfx0_path] = {"agdpmod": "vit9696"} # Audio Patch if self.constants.set_alc_usage is True: @@ -458,8 +474,13 @@ class BuildOpenCore: "@0,backlight-control": binascii.unhexlify("01000000"), "@0,built-in": binascii.unhexlify("01000000"), "shikigva": 256, - "agdpmod": "vit9696", + # "agdpmod": "vit9696", } + if self.constants.serial_settings != "None": + self.config["DeviceProperties"]["Add"][backlight_path] += { + "agdpmod": "vit9696", + } + if self.constants.custom_model and self.model == "iMac11,2": # iMac11,2 can have either PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0) or PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0) # Set both properties when we cannot run hardware detection @@ -468,8 +489,12 @@ class BuildOpenCore: "@0,backlight-control": binascii.unhexlify("01000000"), "@0,built-in": binascii.unhexlify("01000000"), "shikigva": 256, - "agdpmod": "vit9696", + #"agdpmod": "vit9696", } + if self.constants.serial_settings != "None": + self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)"] += { + "agdpmod": "vit9696", + } elif self.model in ["iMac12,1", "iMac12,2"]: print("- Adding Nvidia Brightness Control and DRM patches") self.config["DeviceProperties"]["Add"][backlight_path] = { @@ -477,8 +502,12 @@ class BuildOpenCore: "@0,backlight-control": binascii.unhexlify("01000000"), "@0,built-in": binascii.unhexlify("01000000"), "shikigva": 256, - "agdpmod": "vit9696", + #"agdpmod": "vit9696", } + if self.constants.serial_settings != "None": + self.config["DeviceProperties"]["Add"][backlight_path] += { + "agdpmod": "vit9696", + } print("- Disabling unsupported iGPU") self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x2,0x0)"] = { "name": binascii.unhexlify("23646973706C6179"), @@ -712,8 +741,9 @@ class BuildOpenCore: def set_smbios(self): spoofed_model = self.model if self.constants.override_smbios == "Default": - print("- Setting macOS Monterey Supported SMBIOS") - spoofed_model = generate_smbios.set_smbios_model_spoof(self.model) + if self.constants.serial_settings != "None": + print("- Setting macOS Monterey Supported SMBIOS") + spoofed_model = generate_smbios.set_smbios_model_spoof(self.model) else: spoofed_model = self.constants.override_smbios print(f"- Using Model ID: {spoofed_model}") @@ -795,6 +825,23 @@ class BuildOpenCore: self.config["PlatformInfo"]["Generic"]["SystemSerialNumber"] = macserial_output[0] self.config["PlatformInfo"]["Generic"]["MLB"] = macserial_output[1] self.config["PlatformInfo"]["Generic"]["SystemUUID"] = str(uuid.uuid4()).upper() + + def no_smbios_patch(self): + # Still ensure Firmware Features are updated correctly + fw_feature = generate_smbios.generate_fw_features(self.model, self.constants.custom_model) + fw_feature = hex(fw_feature).lstrip("0x").rstrip("L").strip() + print(f"- Setting Firmware Feature: {fw_feature}") + fw_feature = utilities.string_to_hex(fw_feature) + + # FirmwareFeatures + self.config["PlatformInfo"]["PlatformNVRAM"]["FirmwareFeatures"] = fw_feature + self.config["PlatformInfo"]["PlatformNVRAM"]["FirmwareFeaturesMask"] = fw_feature + self.config["PlatformInfo"]["SMBIOS"]["FirmwareFeatures"] = fw_feature + self.config["PlatformInfo"]["SMBIOS"]["FirmwareFeaturesMask"] = fw_feature + + # Update tables + self.config["PlatformInfo"]["UpdateNVRAM"] = True + self.config["PlatformInfo"]["UpdateSMBIOS"] = True if self.constants.serial_settings == "Moderate": print("- Using Moderate SMBIOS patching") @@ -806,6 +853,10 @@ class BuildOpenCore: print("- Using Minimal SMBIOS patching") self.spoofed_model = self.model minimal_serial_patch(self) + elif self.constants.serial_settings == "None": + if self.constants.allow_oc_everywhere is False: + print("- Using Basic FirmwareFeatures patching") + no_smbios_patch(self) # USB Map and CPUFriend Patching if ( @@ -832,7 +883,7 @@ class BuildOpenCore: except KeyError: continue plistlib.dump(map_config, Path(new_map_ls).open("wb"), sort_keys=True) - if self.constants.allow_oc_everywhere is False and self.model not in ["iMac7,1", "Xserve2,1", "Dortania1,1"] and self.constants.disallow_cpufriend is False: + if self.constants.allow_oc_everywhere is False and self.model not in ["iMac7,1", "Xserve2,1", "Dortania1,1"] and self.constants.disallow_cpufriend is False and self.constants.serial_settings != "None": # 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")) @@ -842,7 +893,7 @@ class BuildOpenCore: cpu_config["IOKitPersonalities"]["CPUFriendDataProvider"]["cf-frequency-data"] = string_stuff plistlib.dump(cpu_config, Path(new_cpu_ls).open("wb"), sort_keys=True) - if self.constants.allow_oc_everywhere is False: + if self.constants.allow_oc_everywhere is False and self.constants.serial_settings != "None": if self.model == "MacBookPro9,1": new_amc_ls = Path(self.constants.amc_contents_folder) / Path("Info.plist") amc_config = plistlib.load(Path(new_amc_ls).open("rb")) @@ -923,6 +974,9 @@ class BuildOpenCore: for entry in list(self.config["ACPI"]["Patch"]): if not entry["Enabled"]: self.config["ACPI"]["Patch"].remove(entry) + for entry in list(self.config["Booter"]["Patch"]): + if not entry["Enabled"]: + self.config["Booter"]["Patch"].remove(entry) for entry in list(self.config["Kernel"]["Add"]): if not entry["Enabled"]: self.config["Kernel"]["Add"].remove(entry) diff --git a/resources/cli_menu.py b/resources/cli_menu.py index 1bad0433c..01899a8cd 100644 --- a/resources/cli_menu.py +++ b/resources/cli_menu.py @@ -95,6 +95,7 @@ Recommended for adanced users who want control how serials are handled Valid options: +0. None:\tOnly update FirmwareFeatures 1. Minimal:\tUse original serials and minimally update SMBIOS 2. Moderate:\tReplace entire SMBIOS but keep original serials 3. Advanced:\tReplace entire SMBIOS and generate new serials @@ -104,7 +105,9 @@ Note: For new users we recommend leaving as default(1. Minimal) """ ) change_menu = input("Set SMBIOS Spoof Level(ie. 1): ") - if change_menu == "1": + if change_menu == "0": + self.constants.serial_settings = "None" + elif change_menu == "1": self.constants.serial_settings = "Minimal" elif change_menu == "2": self.constants.serial_settings = "Moderate" diff --git a/resources/constants.py b/resources/constants.py index fc4d05461..dd052769b 100644 --- a/resources/constants.py +++ b/resources/constants.py @@ -101,7 +101,7 @@ class Constants: ## SMBIOS Settings self.custom_cpu_model = 2 # Patch type value self.custom_cpu_model_value = "" # New CPU name within About This Mac - self.serial_settings = "Minimal" # Set SMBIOS level used + self.serial_settings = "None" # Set SMBIOS level used self.override_smbios = "Default" # Set SMBIOS model used ## Latebloom Settings @@ -144,6 +144,7 @@ class Constants: self.set_alc_usage = True # Set AppleALC usage self.dGPU_switch = True # Set Display GPU Switching for Windows self.force_surplus = False # Force SurPlus patch in newer OSes + self.set_kext_usage = True # Set Kext usage # OS Versions ## Based off Major Kernel Version diff --git a/resources/defaults.py b/resources/defaults.py index 0cc7d7f8f..213ac4d49 100644 --- a/resources/defaults.py +++ b/resources/defaults.py @@ -14,6 +14,7 @@ class generate_defaults(): if utilities.check_metal_support(device_probe, settings.computer) is False: settings.disable_cs_lv = True if settings.computer.dgpu and settings.computer.dgpu.arch == device_probe.NVIDIA.Archs.Kepler: + # 12.0 (B7+): Kepler are now unsupported settings.sip_status = False settings.amfi_status = True settings.allow_fv_root = True # Allow FileVault on broken seal @@ -21,8 +22,18 @@ class generate_defaults(): isinstance(settings.computer.wifi, device_probe.Broadcom) and settings.computer.wifi.chipset in [device_probe.Broadcom.Chipsets.AirPortBrcm4331, device_probe.Broadcom.Chipsets.AirPortBrcm43224] ) or (isinstance(settings.computer.wifi, device_probe.Atheros) and settings.computer.wifi.chipset == device_probe.Atheros.Chipsets.AirPortAtheros40): + # 12.0: Legacy Wireless chipsets require root patching settings.sip_status = False settings.allow_fv_root = True # Allow FileVault on broken seal + + if settings.computer.dgpu and settings.computer.dgpu.arch in [device_probe.AMD.Archs.Polaris, device_probe.AMD.Archs.Vega, device_probe.AMD.Archs.Navi]: + # Allow H.265 on AMD + settings.serial_settings = "Minimal" + elif model in ["MacPro4,1", "MacPro5,1"]: + # Allow H.265 on AMD + # Assume 2009+ machines have Polaris on pre-builts (internal testing) + # Hardware Detection will never hit this + settings.serial_settings = "Minimal" elif model in model_array.LegacyGPU: settings.disable_cs_lv = True