diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d91e6175..c1e62e2e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,7 +26,7 @@ - Add Legacy GMUX patchsets - Applicable for dual GPU MacBookPro5,x and demuxed MacBookPro8,x - Increment Binaries: - - PatcherSupportPkg 0.1.5 release + - PatcherSupportPkg 0.1.6 release - RestrictEvents 1.0.5 rolling (2430ed0) - Limit MacBookPro6,2 G State - Works around crashing when switching GPUs @@ -37,6 +37,8 @@ - Resolve dGPU output on MacBookPro10,1 - Add Panel ID `9cd6` for iMac11,3 - Resolves Brightness control +- Add AppleGVA patch set for HD3000 machines + - Mainly applicable for iMac12,x and iGPU-only MacBooks ## 0.2.5 diff --git a/resources/constants.py b/resources/constants.py index 3c7c77576..ff36ba2c7 100644 --- a/resources/constants.py +++ b/resources/constants.py @@ -13,8 +13,9 @@ from resources import device_probe class Constants: def __init__(self): # Patcher Versioning - self.patcher_version = "0.3.0" # OpenCore-Legacy-Patcher - self.patcher_support_pkg_version = "0.1.5" # PatcherSupportPkg + self.patcher_support_pkg_version = "0.1.6" # PatcherSupportPkg + self.url_patcher_support_pkg = "https://github.com/dortania/PatcherSupportPkg/releases/download/" + self.nightly_url_patcher_support_pkg = "https://nightly.link/dortania/PatcherSupportPkg/workflows/build/master/" # OpenCore Versioning # https://github.com/acidanthera/OpenCorePkg @@ -144,6 +145,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.force_latest_psp = False # Force latest PatcherSupportPkg # OS Versions ## Based off Major Kernel Version @@ -189,9 +191,6 @@ class Constants: self.arch_fermi = "GF100" self.arch_kepler = "GK100" - # External Files - self.url_patcher_support_pkg = "https://github.com/dortania/PatcherSupportPkg/releases/download/" - self.legacy_accel_support = [ self.mojave, self.catalina, @@ -565,6 +564,10 @@ class Constants: @property def payload_apple_private_frameworks_path_brightness(self): return self.payload_apple_private_frameworks_path / Path("Brightness-Control") + + @property + def payload_apple_private_frameworks_path_legacy_drm(self): + return self.payload_apple_private_frameworks_path / Path("Legacy-GVA") # Apple Extensions # El Capitan Extensions @@ -658,4 +661,16 @@ class Constants: "Mac-937CB26E2E02BB01", # MacBookAir7,2 "Mac-35C5E08120C7EEAF", # Macmini7,1 "Mac-7BA5B2D9E42DDD94", # iMacPro1,1 + ] + + sandy_board_id_stock = [ + "Mac-94245B3640C91C81", # MacBookPro8,1 + "Mac-94245A3940C91C80", # MacBookPro8,2 + "Mac-942459F5819B171B", # MacBookPro8,3 + "Mac-C08A6BB70A942AC2", # MacBookAir4,1 + "Mac-742912EFDBEE19B3", # MacBookAir4,2 + "Mac-8ED6AF5B48C039E1", # Macmini5,1 + "Mac-7BA5B2794B2CDB12", # Macmini5,3 + "Mac-942B5BF58194151B", # iMac12,1 + "Mac-942B59F58194171B", # iMac12,2 ] \ No newline at end of file diff --git a/resources/defaults.py b/resources/defaults.py index 0cc7d7f8f..33b0c3249 100644 --- a/resources/defaults.py +++ b/resources/defaults.py @@ -66,7 +66,7 @@ class generate_defaults(): if utilities.amfi_status() is False: settings.amfi_status = False - if utilities.get_nvram("gpu-power-prefs", "FA4CE28D-B62F-4C99-9CC3-6815686E30F9"): + if model in ["MacBookPro8,2", "MacBookPro8,3"]: # Users disabling TS2 most likely have a faulty dGPU # users can override this in settings settings.allow_ts2_accel = False diff --git a/resources/sys_patch.py b/resources/sys_patch.py index 82c5d1d5c..c4eda4163 100644 --- a/resources/sys_patch.py +++ b/resources/sys_patch.py @@ -390,15 +390,30 @@ set million colour before rebooting""" print("- Installing Sandy Bridge Acceleration Kext patches for Mojave/Catalina") self.gpu_accel_legacy() self.add_new_binaries(sys_patch_data.AddIntelGen2Accel, self.constants.legacy_intel_gen2_path) + self.gpu_accel_legacy_sandybridge_board_id() elif self.constants.detected_os in [self.constants.big_sur, self.constants.monterey]: print("- Installing Sandy Bridge Acceleration Kext patches for Big Sur/Monterey") self.delete_old_binaries(sys_patch_data.DeleteNvidiaAccel11) self.gpu_accel_legacy() self.add_new_binaries(sys_patch_data.AddIntelGen2Accel, self.constants.legacy_intel_gen2_path) + self.gpu_accel_legacy_sandybridge_board_id() + self.gpu_accel_legacy_gva() else: print("- Installing basic Sandy Bridge Framebuffer Kext patches for generic OS") self.add_new_binaries(sys_patch_data.AddIntelGen2Accel, self.constants.legacy_intel_gen2_path) - + self.gpu_accel_legacy_sandybridge_board_id() + + def gpu_accel_legacy_sandybridge_board_id(self): + if self.computer.reported_board_id in self.constants.sandy_board_id_stock: + print("- Using stock AppleIntelSNBGraphicsFB") + self.add_new_binaries(sys_patch_data.AddIntelGen2AccelStock, self.constants.legacy_intel_gen2_path) + # Rename kext + utilities.process_status(utilities.elevated(["mv", f"{self.mount_extensions}/AppleIntelSNBGraphicsFB-Clean.kext", f"{self.mount_extensions}/AppleIntelSNBGraphicsFB.kext"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)) + else: + # Adjust board ID for spoofs + print("- Installing modified AppleIntelSNBGraphicsFB") + self.add_new_binaries(sys_patch_data.AddIntelGen2AccelPatched, self.constants.legacy_intel_gen2_path) + def gpu_framebuffer_ivybridge_master(self): if self.constants.detected_os == self.constants.monterey: print("- Installing IvyBridge Acceleration Kext patches for Monterey") @@ -421,6 +436,10 @@ set million colour before rebooting""" else: print("- Installing Kepler Kext patches for generic OS") self.add_new_binaries(sys_patch_data.AddNvidiaKeplerAccel11, self.constants.legacy_nvidia_kepler_path) + + def gpu_accel_legacy_gva(self): + print("- Merging AppleGVA Hardware Accel patches for non-Metal") + utilities.elevated(["rsync", "-r", "-i", "-a", f"{self.constants.payload_apple_private_frameworks_path_legacy_drm}/", self.mount_private_frameworks], stdout=subprocess.PIPE) def gpu_accel_legacy_extended(self): print("- Merging general legacy Frameworks") @@ -780,11 +799,15 @@ set million colour before rebooting""" print("\nCannot patch! Please disable AMFI.") print("For Hackintoshes, please add amfi_get_out_of_my_way=1 to boot-args") - if self.check_board_id is True and self.computer.reported_board_id not in self.constants.sandy_board_id: + if self.check_board_id is True and ( + self.computer.reported_board_id not in self.constants.sandy_board_id and + self.computer.reported_board_id not in self.constants.sandy_board_id_stock + ): print("\nCannot patch! Board ID not supported by AppleIntelSNBGraphicsFB") print(f"Detected Board ID: {self.computer.reported_board_id}") print("Please ensure your Board ID is listed below:") print("\n".join(self.constants.sandy_board_id)) + print("\n".join(self.constants.sandy_board_id_stock)) self.bad_board_id = True if self.dosdude_patched is True: