diff --git a/Resources/Constants.py b/Resources/Constants.py index e84310277..503d8c3c3 100644 --- a/Resources/Constants.py +++ b/Resources/Constants.py @@ -212,9 +212,17 @@ class Constants: @property def payload_apple_frameworks_path(self): return self.payload_apple_root_path / Path("Frameworks") @property + def payload_apple_frameworks_path_accel(self): return self.payload_apple_frameworks_path / Path("Graphics-Acceleration") + @property def payload_apple_lauchd_path(self): return self.payload_apple_root_path / Path("LaunchDaemons") @property + def payload_apple_lauchd_path_accel(self): return self.payload_apple_lauchd_path / Path("Graphics-Acceleration") + @property def payload_apple_private_frameworks_path(self): return self.payload_apple_root_path / Path("PrivateFrameworks") + @property + def payload_apple_private_frameworks_path_accel(self): return self.payload_apple_private_frameworks_path / Path("Graphics-Acceleration") + @property + def payload_apple_private_frameworks_path_brightness(self): return self.payload_apple_private_frameworks_path / Path("Brightness-Control") # Apple Extensions @property @@ -233,6 +241,9 @@ class Constants: @property def legacy_intel_gen2_path(self): return self.legacy_graphics / Path("Intel-Gen6-SandyBridge") + @property + def legacy_brightness(self): return self.payload_apple_kexts_path / Path("Brightness-Control") + # Apple Frameworks @property def coredisplay_path(self): return self.payload_apple_frameworks_path / Path("CoreDisplay.framework") diff --git a/Resources/ModelArray.py b/Resources/ModelArray.py index 0b6d8f0cc..2f7018575 100644 --- a/Resources/ModelArray.py +++ b/Resources/ModelArray.py @@ -371,6 +371,13 @@ LegacyGPUIntelGen2 = [ "Macmini5,3", # Intel 3000 ] +LegacyBrightness = [ + "MacBook5,2", + "iMac7,1", + "iMac8,1", + "iMac9,1", +] + LegacyHID = [ "MacBook4,1", "MacBook5,1", @@ -891,3 +898,12 @@ AddIntelGen2Accel = [ "AppleIntelSNBVA.bundle", "IOSurface.kext", ] + +DeleteBrightness = [ + "AppleGraphicsControl.kext/Contents/PlugIns/AGDCBacklightControl.kext" +] + +AddBrightness = [ + "AppleBacklight.kext", + "AppleBacklightExpert.kext", +] \ No newline at end of file diff --git a/Resources/SysPatch.py b/Resources/SysPatch.py index 8e265913d..3a4129296 100644 --- a/Resources/SysPatch.py +++ b/Resources/SysPatch.py @@ -133,17 +133,23 @@ class PatchSysVolume: # Frameworks print("- Merging legacy Frameworks") - subprocess.run(f"sudo ditto {self.constants.payload_apple_frameworks_path} {self.mount_frameworks}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode() + subprocess.run(f"sudo ditto {self.constants.payload_apple_frameworks_path_accel} {self.mount_frameworks}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode() + + if self.model in ModelArray.LegacyBrightness: + print("- Merging legacy Brightness Control Patches") + self.delete_old_binaries(ModelArray.DeleteBrightness) + self.add_new_binaries(ModelArray.AddBrightness, self.constants.legacy_brightness) + subprocess.run(f"sudo ditto {self.constants.payload_apple_private_frameworks_path_brightness} {self.mount_private_frameworks}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode() # LaunchDaemons print("- Adding HiddHack.plist") - subprocess.run(f"sudo ditto {self.constants.payload_apple_lauchd_path} {self.mount_lauchd}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode() + subprocess.run(f"sudo ditto {self.constants.payload_apple_lauchd_path_accel} {self.mount_lauchd}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode() subprocess.run(f"sudo chmod 755 {self.mount_lauchd}/HiddHack.plist".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode() subprocess.run(f"sudo chown root:wheel {self.mount_lauchd}/HiddHack.plist".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode() # PrivateFrameworks print("- Merging legacy PrivateFrameworks") - subprocess.run(f"sudo ditto {self.constants.payload_apple_private_frameworks_path} {self.mount_private_frameworks}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode() + subprocess.run(f"sudo ditto {self.constants.payload_apple_private_frameworks_path_accel} {self.mount_private_frameworks}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode() # Sets AppKit to Catalina Window Drawing codepath print("- Disabling NSDefenestratorModeEnabled")