mirror of
https://github.com/dortania/OpenCore-Legacy-Patcher.git
synced 2026-04-23 03:20:16 +10:00
Add Kepler Acceleration for Monterey Beta 7
This commit is contained in:
@@ -42,6 +42,7 @@
|
|||||||
- Applicable for BRCM2046 and BRCM2070 chipsets
|
- Applicable for BRCM2046 and BRCM2070 chipsets
|
||||||
- Disable Library Validation allowing for AMFI usage
|
- Disable Library Validation allowing for AMFI usage
|
||||||
- Remove reliance on amfi_get_out_of_my_way=1
|
- Remove reliance on amfi_get_out_of_my_way=1
|
||||||
|
- Add Kepler Accleration Patches for Monterey Beta 7 and newer
|
||||||
|
|
||||||
## 0.2.4
|
## 0.2.4
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,9 @@ class OpenCoreLegacyPatcher:
|
|||||||
self.constants.computer = device_probe.Computer.probe()
|
self.constants.computer = device_probe.Computer.probe()
|
||||||
self.computer = self.constants.computer
|
self.computer = self.constants.computer
|
||||||
self.constants.detected_os = int(platform.uname().release.partition(".")[0])
|
self.constants.detected_os = int(platform.uname().release.partition(".")[0])
|
||||||
|
self.constants.detected_os_minor = int(platform.uname().release.partition(".")[2].partition(".")[0])
|
||||||
|
detected_os_build: str = subprocess.run("sw_vers -buildVersion".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
||||||
|
self.constants.detected_os_build = detected_os_build
|
||||||
|
|
||||||
custom_cpu_model_value = Utilities.get_nvram("revcpuname", "4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102", decode=True)
|
custom_cpu_model_value = Utilities.get_nvram("revcpuname", "4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102", decode=True)
|
||||||
if custom_cpu_model_value is not None:
|
if custom_cpu_model_value is not None:
|
||||||
@@ -200,22 +203,23 @@ If you plan to create the USB for another machine, please select the "Change Mod
|
|||||||
elif model in ModelArray.LegacyGPU:
|
elif model in ModelArray.LegacyGPU:
|
||||||
self.constants.disable_cs_lv = True
|
self.constants.disable_cs_lv = True
|
||||||
if model in ModelArray.LegacyGPU:
|
if model in ModelArray.LegacyGPU:
|
||||||
if Utilities.check_metal_support(device_probe, self.computer) is True:
|
if host_is_target and Utilities.check_metal_support(device_probe, self.computer) is True:
|
||||||
print("- Detected Metal GPU, overriding default configuration")
|
|
||||||
# Building on device and we have a native, supported GPU
|
# Building on device and we have a native, supported GPU
|
||||||
|
if self.computer.dgpu and self.computer.dgpu.arch == device_probe.NVIDIA.Archs.Kepler:
|
||||||
|
self.constants.sip_status = False
|
||||||
|
# self.constants.secure_status = True # Monterey
|
||||||
|
self.constants.amfi_status = True
|
||||||
|
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
||||||
|
else:
|
||||||
self.constants.sip_status = True
|
self.constants.sip_status = True
|
||||||
# self.constants.secure_status = True # Monterey
|
# self.constants.secure_status = True # Monterey
|
||||||
self.constants.amfi_status = True
|
self.constants.amfi_status = True
|
||||||
elif host_is_target:
|
else:
|
||||||
self.constants.sip_status = False # Unsigned kexts
|
self.constants.sip_status = False # Unsigned kexts
|
||||||
self.constants.secure_status = False # Root volume modified
|
self.constants.secure_status = False # Root volume modified
|
||||||
self.constants.amfi_status = False # Unsigned binaries
|
self.constants.amfi_status = False # Unsigned binaries
|
||||||
|
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
||||||
if model in ModelArray.ModernGPU:
|
if model in ModelArray.ModernGPU:
|
||||||
if host_is_target and model in ["iMac13,1", "iMac13,3"] and self.computer.dgpu:
|
|
||||||
# Some models have a supported dGPU, others don't
|
|
||||||
print("- Detected Metal dGPU, overriding default configuration")
|
|
||||||
self.constants.sip_status = True
|
|
||||||
elif host_is_target:
|
|
||||||
self.constants.sip_status = False # Unsigned kexts
|
self.constants.sip_status = False # Unsigned kexts
|
||||||
self.constants.secure_status = False # Modified root volume
|
self.constants.secure_status = False # Modified root volume
|
||||||
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ class OpenCoreLegacyPatcher:
|
|||||||
self.computer = self.constants.computer
|
self.computer = self.constants.computer
|
||||||
self.constants.detected_os = int(platform.uname().release.partition(".")[0])
|
self.constants.detected_os = int(platform.uname().release.partition(".")[0])
|
||||||
self.constants.detected_os_minor = int(platform.uname().release.partition(".")[2].partition(".")[0])
|
self.constants.detected_os_minor = int(platform.uname().release.partition(".")[2].partition(".")[0])
|
||||||
|
detected_os_build: str = subprocess.run("sw_vers -buildVersion".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
||||||
|
self.constants.detected_os_build = detected_os_build
|
||||||
self.set_defaults(self.computer.real_model, True)
|
self.set_defaults(self.computer.real_model, True)
|
||||||
|
|
||||||
def set_defaults(self, model, host_is_target):
|
def set_defaults(self, model, host_is_target):
|
||||||
@@ -35,6 +37,12 @@ class OpenCoreLegacyPatcher:
|
|||||||
if model in ModelArray.LegacyGPU:
|
if model in ModelArray.LegacyGPU:
|
||||||
if host_is_target and Utilities.check_metal_support(device_probe, self.computer) is True:
|
if host_is_target and Utilities.check_metal_support(device_probe, self.computer) is True:
|
||||||
# Building on device and we have a native, supported GPU
|
# Building on device and we have a native, supported GPU
|
||||||
|
if self.computer.dgpu and self.computer.dgpu.arch == device_probe.NVIDIA.Archs.Kepler:
|
||||||
|
self.constants.sip_status = False
|
||||||
|
# self.constants.secure_status = True # Monterey
|
||||||
|
self.constants.amfi_status = True
|
||||||
|
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
||||||
|
else:
|
||||||
self.constants.sip_status = True
|
self.constants.sip_status = True
|
||||||
# self.constants.secure_status = True # Monterey
|
# self.constants.secure_status = True # Monterey
|
||||||
self.constants.amfi_status = True
|
self.constants.amfi_status = True
|
||||||
@@ -44,12 +52,6 @@ class OpenCoreLegacyPatcher:
|
|||||||
self.constants.amfi_status = False # Unsigned binaries
|
self.constants.amfi_status = False # Unsigned binaries
|
||||||
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
||||||
if model in ModelArray.ModernGPU:
|
if model in ModelArray.ModernGPU:
|
||||||
if host_is_target and model in ["iMac13,1", "iMac13,3"] and self.computer.dgpu:
|
|
||||||
# Some models have a supported dGPU, others don't
|
|
||||||
self.constants.sip_status = True
|
|
||||||
# self.constants.secure_status = True # Monterey
|
|
||||||
# self.constants.amfi_status = True # Signed bundles, Don't need to explicitly set currently
|
|
||||||
else:
|
|
||||||
self.constants.sip_status = False # Unsigned kexts
|
self.constants.sip_status = False # Unsigned kexts
|
||||||
self.constants.secure_status = False # Modified root volume
|
self.constants.secure_status = False # Modified root volume
|
||||||
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
||||||
@@ -305,6 +307,7 @@ B. Exit
|
|||||||
|
|
||||||
- Metal Graphics Acceleration
|
- Metal Graphics Acceleration
|
||||||
- Intel: Ivy Bridge (4000 series iGPUs)
|
- Intel: Ivy Bridge (4000 series iGPUs)
|
||||||
|
- Nvidia: Kepler (600-700)
|
||||||
- Non-Metal Graphics Accelertation
|
- Non-Metal Graphics Accelertation
|
||||||
- Intel: Ironlake - Sandy Bridge
|
- Intel: Ironlake - Sandy Bridge
|
||||||
- Nvidia: Tesla - Fermi (8000-500 series)
|
- Nvidia: Tesla - Fermi (8000-500 series)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class Constants:
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
# Patcher Versioning
|
# Patcher Versioning
|
||||||
self.patcher_version = "0.2.5" # OpenCore-Legacy-Patcher
|
self.patcher_version = "0.2.5" # OpenCore-Legacy-Patcher
|
||||||
self.patcher_support_pkg_version = "0.1.2" # PatcherSupportPkg
|
self.patcher_support_pkg_version = "0.1.3" # PatcherSupportPkg
|
||||||
|
|
||||||
# OpenCore Versioning
|
# OpenCore Versioning
|
||||||
# https://github.com/acidanthera/OpenCorePkg
|
# https://github.com/acidanthera/OpenCorePkg
|
||||||
@@ -121,6 +121,7 @@ class Constants:
|
|||||||
self.os_support = 12.0
|
self.os_support = 12.0
|
||||||
self.detected_os = 0 # Major Kernel Version
|
self.detected_os = 0 # Major Kernel Version
|
||||||
self.detected_os_minor = 0 # Minor Kernel Version
|
self.detected_os_minor = 0 # Minor Kernel Version
|
||||||
|
self.detected_os_build = "" # OS Build
|
||||||
self.allow_fv_root = False # Allow FileVault on broken sealed snapshots
|
self.allow_fv_root = False # Allow FileVault on broken sealed snapshots
|
||||||
|
|
||||||
## Boot Volume Settings
|
## Boot Volume Settings
|
||||||
|
|||||||
@@ -271,10 +271,15 @@ ModernGPU = [
|
|||||||
"MacBookPro9,2", # Intel 4000
|
"MacBookPro9,2", # Intel 4000
|
||||||
"MacBookPro10,1", # Intel 4000 + Nvidia 650M
|
"MacBookPro10,1", # Intel 4000 + Nvidia 650M
|
||||||
"MacBookPro10,2", # Intel 4000
|
"MacBookPro10,2", # Intel 4000
|
||||||
|
"MacBookPro11,3", # Intel 5000 + Nvidia Kepler
|
||||||
"Macmini6,1", # Intel 4000
|
"Macmini6,1", # Intel 4000
|
||||||
"Macmini6,2", # Intel 4000
|
"Macmini6,2", # Intel 4000
|
||||||
"iMac13,1", # Intel 4000
|
"iMac13,1", # Intel 4000
|
||||||
|
"iMac13,2", # Intel 4000 + Nvidia Kepler
|
||||||
"iMac13,3", # Intel 4000
|
"iMac13,3", # Intel 4000
|
||||||
|
"iMac14,1", # Intel 5000 + Nvidia Kepler
|
||||||
|
"iMac14,2", # Intel 5000 + Nvidia Kepler
|
||||||
|
"iMac14,3", # Intel 5000 + Nvidia Kepler
|
||||||
]
|
]
|
||||||
|
|
||||||
LegacyGPU = [
|
LegacyGPU = [
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ class PatchSysVolume:
|
|||||||
self.fv_enabled = True
|
self.fv_enabled = True
|
||||||
self.dosdude_patched = True
|
self.dosdude_patched = True
|
||||||
self.nvidia_legacy = False
|
self.nvidia_legacy = False
|
||||||
|
self.kepler_gpu = False
|
||||||
self.amd_ts1 = False
|
self.amd_ts1 = False
|
||||||
self.amd_ts2 = False
|
self.amd_ts2 = False
|
||||||
self.iron_gpu = False
|
self.iron_gpu = False
|
||||||
@@ -406,6 +407,14 @@ set million colour before rebooting"""
|
|||||||
print("- Installing basic Ivy Bridge Kext patches for generic OS")
|
print("- Installing basic Ivy Bridge Kext patches for generic OS")
|
||||||
self.add_new_binaries(SysPatchArray.AddIntelGen3Accel, self.constants.legacy_intel_gen3_path)
|
self.add_new_binaries(SysPatchArray.AddIntelGen3Accel, self.constants.legacy_intel_gen3_path)
|
||||||
|
|
||||||
|
def gpu_franevuffer_kepler_master(self):
|
||||||
|
if self.constants.detected_os == self.constants.monterey:
|
||||||
|
print("- Installing Kepler Acceleration Kext patches for Monterey")
|
||||||
|
self.add_new_binaries(SysPatchArray.AddNvidiaKeplerAccel11, self.constants.legacy_nvidia_kepler_path)
|
||||||
|
else:
|
||||||
|
print("- Installing Kepler Kext patches for generic OS")
|
||||||
|
self.add_new_binaries(SysPatchArray.AddNvidiaKeplerAccel11, self.constants.legacy_nvidia_kepler_path)
|
||||||
|
|
||||||
def gpu_accel_legacy_extended(self):
|
def gpu_accel_legacy_extended(self):
|
||||||
print("- Merging general legacy Frameworks")
|
print("- Merging general legacy Frameworks")
|
||||||
self.elevated(["rsync", "-r", "-i", "-a", f"{self.constants.payload_apple_frameworks_path_accel}/", self.mount_frameworks], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
self.elevated(["rsync", "-r", "-i", "-a", f"{self.constants.payload_apple_frameworks_path_accel}/", self.mount_frameworks], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||||
@@ -426,7 +435,11 @@ set million colour before rebooting"""
|
|||||||
# Assume non-OCLP Macs don't have _cs_require_lv
|
# Assume non-OCLP Macs don't have _cs_require_lv
|
||||||
print("- Disabling Library Validation")
|
print("- Disabling Library Validation")
|
||||||
Utilities.process_status(
|
Utilities.process_status(
|
||||||
self.elevated(["defaults", "write", "/Library/Preferences/com.apple.security.libraryvalidation.plist", "DisableLibraryValidation", "-bool", "true"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
self.elevated(
|
||||||
|
["defaults", "write", "/Library/Preferences/com.apple.security.libraryvalidation.plist", "DisableLibraryValidation", "-bool", "true"],
|
||||||
|
stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.STDOUT,
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
def gpu_accel_legacy_extended_ts2(self):
|
def gpu_accel_legacy_extended_ts2(self):
|
||||||
@@ -451,6 +464,14 @@ set million colour before rebooting"""
|
|||||||
print("- Detected unsupported OS, installing Basic Framebuffer")
|
print("- Detected unsupported OS, installing Basic Framebuffer")
|
||||||
self.gpu_accel_legacy_nvidia_master()
|
self.gpu_accel_legacy_nvidia_master()
|
||||||
|
|
||||||
|
elif self.kepler_gpu is True:
|
||||||
|
print("- Installing Kepler Patches")
|
||||||
|
if self.constants.detected_os == self.constants.monterey:
|
||||||
|
print("- Detected supported OS, installing Acceleration Patches")
|
||||||
|
else:
|
||||||
|
print("- Detected unsupported OS, installing Basic Framebuffer")
|
||||||
|
self.gpu_franevuffer_kepler_master()
|
||||||
|
|
||||||
elif self.amd_ts1 is True:
|
elif self.amd_ts1 is True:
|
||||||
print("- Installing legacy TeraScale 1 Patches")
|
print("- Installing legacy TeraScale 1 Patches")
|
||||||
if self.constants.detected_os in self.constants.legacy_accel_support:
|
if self.constants.detected_os in self.constants.legacy_accel_support:
|
||||||
@@ -495,11 +516,7 @@ set million colour before rebooting"""
|
|||||||
print("- Detected unsupported OS, installing Basic Framebuffer")
|
print("- Detected unsupported OS, installing Basic Framebuffer")
|
||||||
self.gpu_framebuffer_ivybridge_master()
|
self.gpu_framebuffer_ivybridge_master()
|
||||||
|
|
||||||
if (
|
if self.amd_ts2 is True and self.constants.detected_os in self.constants.legacy_accel_support and self.constants.allow_ts2_accel is True:
|
||||||
self.amd_ts2 is True
|
|
||||||
and self.constants.detected_os in self.constants.legacy_accel_support
|
|
||||||
and self.constants.allow_ts2_accel is True
|
|
||||||
):
|
|
||||||
# TeraScale 2 patches must be installed after Intel HD3000
|
# TeraScale 2 patches must be installed after Intel HD3000
|
||||||
self.add_new_binaries(SysPatchArray.AddAMDAccel11TS2, self.constants.legacy_amd_path_ts2)
|
self.add_new_binaries(SysPatchArray.AddAMDAccel11TS2, self.constants.legacy_amd_path_ts2)
|
||||||
|
|
||||||
@@ -599,6 +616,15 @@ set million colour before rebooting"""
|
|||||||
if self.constants.detected_os > non_metal_os:
|
if self.constants.detected_os > non_metal_os:
|
||||||
self.nvidia_legacy = True
|
self.nvidia_legacy = True
|
||||||
self.amfi_must_disable = True
|
self.amfi_must_disable = True
|
||||||
|
elif dgpu.arch == device_probe.NVIDIA.Archs.Kepler:
|
||||||
|
if self.constants.detected_os > self.constants.big_sur:
|
||||||
|
# Kepler drivers were dropped with Beta 7
|
||||||
|
# 12.0 Beta 5: 21.0.0 - 21A5304g
|
||||||
|
# 12.0 Beta 6: 21.1.0 - 21A5506j
|
||||||
|
# 12.0 Beta 7: 21.1.0 - 21A5522h
|
||||||
|
if self.constants.detected_os == self.constants.monterey and self.constants.detected_os_minor > 0:
|
||||||
|
if "21A5506j" not in self.constants.detected_os_build:
|
||||||
|
self.kepler_gpu = True
|
||||||
elif dgpu.arch == device_probe.AMD.Archs.TeraScale_1:
|
elif dgpu.arch == device_probe.AMD.Archs.TeraScale_1:
|
||||||
if self.constants.detected_os > non_metal_os:
|
if self.constants.detected_os > non_metal_os:
|
||||||
self.amd_ts1 = True
|
self.amd_ts1 = True
|
||||||
@@ -647,6 +673,8 @@ set million colour before rebooting"""
|
|||||||
print("The following patches will be applied:")
|
print("The following patches will be applied:")
|
||||||
if self.nvidia_legacy is True:
|
if self.nvidia_legacy is True:
|
||||||
print("- Add Legacy Nvidia Tesla Graphics Patch")
|
print("- Add Legacy Nvidia Tesla Graphics Patch")
|
||||||
|
elif self.kepler_gpu is True:
|
||||||
|
print("- Add Legacy Nvidia Kepler Graphics Patch")
|
||||||
elif self.amd_ts1 is True:
|
elif self.amd_ts1 is True:
|
||||||
print("- Add Legacy ATI TeraScale 1 Graphics Patch")
|
print("- Add Legacy ATI TeraScale 1 Graphics Patch")
|
||||||
elif self.amd_ts2 is True:
|
elif self.amd_ts2 is True:
|
||||||
@@ -667,6 +695,7 @@ set million colour before rebooting"""
|
|||||||
self.no_patch = not any(
|
self.no_patch = not any(
|
||||||
[
|
[
|
||||||
self.nvidia_legacy,
|
self.nvidia_legacy,
|
||||||
|
self.kepler_gpu,
|
||||||
self.amd_ts1,
|
self.amd_ts1,
|
||||||
self.amd_ts2,
|
self.amd_ts2,
|
||||||
self.iron_gpu,
|
self.iron_gpu,
|
||||||
@@ -701,7 +730,8 @@ set million colour before rebooting"""
|
|||||||
|
|
||||||
if self.fv_enabled is True:
|
if self.fv_enabled is True:
|
||||||
print("\nCannot patch! Please disable FileVault.")
|
print("\nCannot patch! Please disable FileVault.")
|
||||||
print("Go to System Preferences -> Security and disable FileVault")
|
print("For OCLP Macs, please rebuild your config with 0.2.5 or newer")
|
||||||
|
print("For others, Go to System Preferences -> Security and disable FileVault")
|
||||||
|
|
||||||
if self.amfi_enabled is True and self.amfi_must_disable is True:
|
if self.amfi_enabled is True and self.amfi_must_disable is True:
|
||||||
print("\nCannot patch! Please disable AMFI.")
|
print("\nCannot patch! Please disable AMFI.")
|
||||||
|
|||||||
Reference in New Issue
Block a user