Add Trackpad fix for Ventura

Credit to IronApple for inital findings
This commit is contained in:
Mykola Grymalyuk
2022-06-09 12:12:20 -06:00
parent 1dd667df89
commit b0f2b00425
6 changed files with 73 additions and 0 deletions

View File

@@ -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

View File

@@ -1239,6 +1239,42 @@
<key>PlistPath</key>
<string>Contents/Info.plist</string>
</dict>
<dict>
<key>Arch</key>
<string>x86_64</string>
<key>BundlePath</key>
<string>AppleUSBMultitouch.kext</string>
<key>Comment</key>
<string>Trackpad support for 13.0+</string>
<key>Enabled</key>
<false/>
<key>ExecutablePath</key>
<string>Contents/MacOS/AppleUSBMultitouch</string>
<key>MaxKernel</key>
<string></string>
<key>MinKernel</key>
<string>22.0.0</string>
<key>PlistPath</key>
<string>Contents/Info.plist</string>
</dict>
<dict>
<key>Arch</key>
<string>x86_64</string>
<key>BundlePath</key>
<string>AppleUSBTopCase.kext</string>
<key>Comment</key>
<string>Trackpad support for 13.0+</string>
<key>Enabled</key>
<false/>
<key>ExecutablePath</key>
<string>Contents/MacOS/AppleUSBTopCase</string>
<key>MaxKernel</key>
<string></string>
<key>MinKernel</key>
<string>22.0.0</string>
<key>PlistPath</key>
<string>Contents/Info.plist</string>
</dict>
</array>
<key>Block</key>
<array/>

Binary file not shown.

Binary file not shown.

View File

@@ -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")

View File

@@ -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")