From 8c848f9317ecc89221d3ce65ce8b0a745c9bfb83 Mon Sep 17 00:00:00 2001 From: Jazzzny Date: Thu, 18 May 2023 09:29:09 -0400 Subject: [PATCH] Resstore Fn keys on MacBook5,2 and 4,1 --- payloads/Config/config.plist | 18 ++++++++++++++++++ .../Misc/LegacyKeyboardInjector-v1.0.0.zip | Bin 0 -> 5041 bytes resources/build/misc.py | 7 ++++--- resources/constants.py | 5 +++++ 4 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 payloads/Kexts/Misc/LegacyKeyboardInjector-v1.0.0.zip diff --git a/payloads/Config/config.plist b/payloads/Config/config.plist index 74a3cfacd..9d0291366 100644 --- a/payloads/Config/config.plist +++ b/payloads/Config/config.plist @@ -1383,6 +1383,24 @@ PlistPath Contents/Info.plist + + Arch + x86_64 + BundlePath + LegacyKeyboardInjector.kext + Comment + Legacy Keyboard support for macOS 11+ + Enabled + + ExecutablePath + + MaxKernel + + MinKernel + 20.0.0 + PlistPath + Contents/Info.plist + Arch x86_64 diff --git a/payloads/Kexts/Misc/LegacyKeyboardInjector-v1.0.0.zip b/payloads/Kexts/Misc/LegacyKeyboardInjector-v1.0.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..0a97c68dd610d705292c78b6d75101c4d240f691 GIT binary patch literal 5041 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 literal 0 HcmV?d00001 diff --git a/resources/build/misc.py b/resources/build/misc.py index 7a57065a0..9bf332cdf 100644 --- a/resources/build/misc.py +++ b/resources/build/misc.py @@ -192,19 +192,20 @@ class BuildMiscellaneous: Trackpad Handler """ - # Pre-Force Touch trackpad support for macOS Ventura + # Pre-Force Touch trackpad & keyboard support for macOS Ventura if smbios_data.smbios_dictionary[self.model]["CPU Generation"] < cpu_data.cpu_data.skylake.value: if self.model.startswith("MacBook"): - # These units got force touch early, so ignore them + # These units got force touch & the new keyboard mapping early, so ignore them if self.model not in ["MacBookPro11,4", "MacBookPro11,5", "MacBookPro12,1", "MacBook8,1"]: support.BuildSupport(self.model, self.constants, self.config).enable_kext("AppleUSBTopCase.kext", self.constants.topcase_version, self.constants.top_case_path) support.BuildSupport(self.model, self.constants, self.config).get_kext_by_bundle_path("AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCButtons.kext")["Enabled"] = True support.BuildSupport(self.model, self.constants, self.config).get_kext_by_bundle_path("AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext")["Enabled"] = True support.BuildSupport(self.model, self.constants, self.config).get_kext_by_bundle_path("AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyEventDriver.kext")["Enabled"] = True support.BuildSupport(self.model, self.constants, self.config).enable_kext("AppleUSBMultitouch.kext", self.constants.multitouch_version, self.constants.multitouch_path) - # Legacy Trackpad support + # Legacy Trackpad & Keyboard support if self.model in ["MacBook4,1", "MacBook5,2"]: support.BuildSupport(self.model, self.constants, self.config).enable_kext("AppleUSBTrackpad.kext", self.constants.apple_trackpad, self.constants.apple_trackpad_path) + support.BuildSupport(self.model, self.constants, self.config).enable_kext("LegacyKeyboardInjector.kext", self.constants.legacy_keyboard, self.constants.legacy_keyboard_path) # Inject legacy personalities into AppleUSBTCKeyboard and AppleUSBTCKeyEventDriver def _thunderbolt_handling(self) -> None: diff --git a/resources/constants.py b/resources/constants.py index b559d28db..6de8e620c 100644 --- a/resources/constants.py +++ b/resources/constants.py @@ -53,6 +53,7 @@ class Constants: self.piixata_version: str = "1.0.1" # AppleIntelPIIXATA self.fw_kext: str = "1.0.1" # IOFireWireFamily self.apple_trackpad: str = "1.0.1" # AppleUSBTrackpad + self.legacy_keyboard: str = "1.0.0" # LegacyKeyboardInjector - Jazzzny self.apple_isight_version: str = "1.0.0" # AppleiSight self.apple_raid_version: str = "1.0.0" # AppleRAIDCard self.apfs_zlib_version: str = "12.3.1" # NoAVXFSCompressionTypeZlib @@ -496,6 +497,10 @@ class Constants: @property def apple_isight_path(self): return self.payload_kexts_path / Path(f"Misc/LegacyUSBVideoSupport-v{self.apple_isight_version}.zip") + + @property + def legacy_keyboard_path(self): + return self.payload_kexts_path / Path(f"Misc/LegacyKeyboardInjector-v{self.apple_isight_version}.zip") @property def apple_raid_path(self):