diff --git a/CHANGELOG.md b/CHANGELOG.md index 73b2c6d02..8a4f9d4f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ - Users may still manually run from source for future builds - Binaries will no longer be provided on future release - Switch boot.efi model patch to iMac18,1 +- Resolve pre-Force Touch Trackpad support in Ventura ## 0.4.5 - Fix AutoPatcher.pkg download on releases diff --git a/payloads/Config/config.plist b/payloads/Config/config.plist index 7614e71f8..6e7f8759d 100644 --- a/payloads/Config/config.plist +++ b/payloads/Config/config.plist @@ -1239,6 +1239,42 @@ PlistPath Contents/Info.plist + + Arch + x86_64 + BundlePath + AppleUSBMultitouch.kext + Comment + Trackpad support for 13.0+ + Enabled + + ExecutablePath + Contents/MacOS/AppleUSBMultitouch + MaxKernel + + MinKernel + 22.0.0 + PlistPath + Contents/Info.plist + + + Arch + x86_64 + BundlePath + AppleUSBTopCase.kext + Comment + Trackpad support for 13.0+ + Enabled + + ExecutablePath + Contents/MacOS/AppleUSBTopCase + MaxKernel + + MinKernel + 22.0.0 + PlistPath + Contents/Info.plist + Block diff --git a/payloads/Kexts/Misc/AppleUSBMultitouch-v1.0.0.zip b/payloads/Kexts/Misc/AppleUSBMultitouch-v1.0.0.zip new file mode 100644 index 000000000..3b9a42652 Binary files /dev/null and b/payloads/Kexts/Misc/AppleUSBMultitouch-v1.0.0.zip differ diff --git a/payloads/Kexts/Misc/AppleUSBTopCase-v1.0.0.zip b/payloads/Kexts/Misc/AppleUSBTopCase-v1.0.0.zip new file mode 100644 index 000000000..90dad0356 Binary files /dev/null and b/payloads/Kexts/Misc/AppleUSBTopCase-v1.0.0.zip differ diff --git a/resources/build.py b/resources/build.py index d15378f21..911e39be7 100644 --- a/resources/build.py +++ b/resources/build.py @@ -765,6 +765,15 @@ class BuildOpenCore: # Add AMDGPUWakeHandler self.enable_kext("AMDGPUWakeHandler.kext", self.constants.gpu_wake_version, self.constants.gpu_wake_path) + # Pre-Force Touch trackpad 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 + if self.model not in ["MacBookPro11,4", "MacBookPro11,5", "MacBook8,1"]: + self.enable_kext("AppleUSBTopCase.kext", self.constants.topcase_version, self.constants.top_case_path) + self.enable_kext("AppleUSBMultitouch.kext", self.constants.multitouch_version, self.constants.multitouch_path) + + # Bluetooth Detection if not self.constants.custom_model and self.computer.bluetooth_chipset: if self.computer.bluetooth_chipset in ["BRCM2070 Hub", "BRCM2046 Hub"]: @@ -841,6 +850,23 @@ class BuildOpenCore: except KeyError: pass + # With macOS 13, Ventura, Apple removed the Skylake graphics stack. However due to the lack of inovation + # with the Kaby lake and Coffee Lake iGPUs, we're able to spoof ourselves to natively support them + + # Currently the following iGPUs we need to be considerate of: + # - HD530 (mobile): 0x191B0006 + + + # | GPU | Model | Device ID | Platform ID | New Device ID | New Platform ID | + # | -------- | ---------------- | --------- | ----------- | ------------- | --------------- | + # | HD 515 | MacBook9,1 | 0x191E | 0x131E0003 | + # | Iris 540 | MacBookPro13,1/2 | 0x1926 | 0x19160002 | 0x5926 | 0x59260002 + # | HD 530 | MacBookPro13,3 | 0x191B | 0x191B0006 | 0x591B | 0x591B0006 | + # | HD 530 | iMac17,1 | 0x1912 | 0x19120001 | 0x5912 | 0x59120003 | + + + + if self.constants.xhci_boot is True: print("- Adding USB 3.0 Controller Patch") print("- Adding XhciDxe.efi and UsbBusDxe.efi") diff --git a/resources/constants.py b/resources/constants.py index 4060d1b82..1d68788ee 100644 --- a/resources/constants.py +++ b/resources/constants.py @@ -56,6 +56,8 @@ class Constants: self.apple_isight_version = "1.0.0" # AppleiSight self.apple_raid_version = "1.0.0" # AppleRAIDCard self.apfs_zlib_version = "12.3.1" # NoAVXFSCompressionTypeZlib + self.multitouch_version = "1.0.0" # AppleUSBMultitouch + self.topcase_version = "1.0.0" # AppleUSBTopCase ## Apple - Dortania Modified self.bcm570_version = "1.0.2" # CatalinaBCM5701Ethernet @@ -313,6 +315,14 @@ class Constants: def apfs_zlib_path(self): return self.payload_kexts_path / Path(f"Misc/NoAVXFSCompressionTypeZlib-v{self.apfs_zlib_version}.zip") + @property + def multitouch_path(self): + return self.payload_kexts_path / Path(f"Misc/AppleUSBMultitouch-v{self.multitouch_version}.zip") + + @property + def top_case_path(self): + return self.payload_kexts_path / Path(f"Misc/AppleUSBTopCase-v{self.topcase_version}.zip") + @property def mousse_path(self): return self.payload_kexts_path / Path(f"SSE/AAAMouSSE-v{self.mousse_version}.zip")