Skip to content

Commit

Permalink
Add support for macOS 14.4
Browse files Browse the repository at this point in the history
  • Loading branch information
khronokernel committed Feb 11, 2024
1 parent 82084c8 commit f8a3d57
Show file tree
Hide file tree
Showing 7 changed files with 92 additions and 39 deletions.
9 changes: 9 additions & 0 deletions CHANGELOG.md
Expand Up @@ -5,6 +5,15 @@
- Resolve RecoveryOS support (Regression resolved in OpenCorePkg)
- Restore SPI Keyboard and Trackpad support for macOS 14.4 and newer
- Applicable for MacBook8,1, MacBookPro13,x and MacBookPro14,x
- Restore support for T1 on macOS 14.4 and newer
- Applicable for MacBookPro13,2, MacBookPro13,3, MacBookPro14,2, MacBookPro14,3
- Restore support for legacy Metal GPUs on macOS 14.4 and newer
- Applicable for:
- Intel Ivy Bridge through Skylake
- Nvidia Kepler
- AMD legacy GCN
- Restore support for USB 1.1 on macOS 14.4 and newer
- Applicable for Penryn Macs, Xserve3,1 and MacPro4,1/5,1
- Increment binaries:
- OpenCorePkg 0.9.7 - release

Expand Down
105 changes: 71 additions & 34 deletions data/sys_patch_dict.py
Expand Up @@ -72,10 +72,54 @@ def __init__(self, os_major: int, os_minor: int, non_metal_os_support: list) ->
self.macOS_13_3: float = 22.4
self.macOS_14_1: float = 23.1
self.macOS_14_2: float = 23.2
self.macOS_14_4: float = 23.4

self._generate_sys_patch_dict()


def __resolve_ivy_bridge_framebuffers(self) -> str:
"""
Resolve patchset directory for Ivy Bridge framebuffers:
- AppleIntelFramebufferCapri.kext
- AppleIntelHD4000Graphics.kext
"""
if self.os_major < os_data.os_data.sonoma:
return "11.4"
if self.os_float < self.macOS_14_4:
return "11.4-23"
return "11.4-23.4"


def __resolve_kepler_geforce_framebuffers(self) -> str:
"""
Resolve patchset directory for GeForce.kext
"""
if self.os_major < os_data.os_data.sonoma:
return "12.0 Beta 6"
if self.os_float < self.macOS_14_4:
return "12.0 Beta 6-23"
return "12.0 Beta 6-23.4"


def __resolve_monterey_framebuffers(self) -> str:
"""
Resolve patchset directory for framebuffers last supported in Monterey:
- AppleIntelBDWGraphics.kext
- AppleIntelBDWGraphicsFramebuffer.kext
- AppleIntelFramebufferAzul.kext
- AppleIntelHD5000Graphics.kext
- AppleIntelSKLGraphics.kext
- AppleIntelSKLGraphicsFramebuffer.kext
- AMDRadeonX4000.kext
- AMDRadeonX5000.kext
"""
if self.os_major < os_data.os_data.sonoma:
return "12.5"
if self.os_float < self.macOS_14_4:
return "12.5-23"
return "12.5-23.4"


def _generate_sys_patch_dict(self):
"""
Generates the sys_patch_dict dictionary
Expand Down Expand Up @@ -584,7 +628,7 @@ def _generate_sys_patch_dict(self):
},
"Install": {
"/System/Library/Extensions": {
"GeForce.kext": "12.0 Beta 6" if self.os_major < os_data.os_data.sonoma else "12.0 Beta 6-23",
"GeForce.kext": self.__resolve_kepler_geforce_framebuffers(),
"NVDAGF100Hal.kext": "12.0 Beta 6",
"NVDAGK100Hal.kext": "12.0 Beta 6",
"NVDAResman.kext": "12.0 Beta 6",
Expand Down Expand Up @@ -781,7 +825,7 @@ def _generate_sys_patch_dict(self):
"AMD9000Controller.kext": "12.5",
"AMD9500Controller.kext": "12.5",
"AMD10000Controller.kext": "12.5",
"AMDRadeonX4000.kext": "12.5" if self.os_major < os_data.os_data.sonoma else "12.5-23",
"AMDRadeonX4000.kext": self.__resolve_monterey_framebuffers(),
"AMDRadeonX4000HWServices.kext": "12.5",
"AMDFramebuffer.kext": "12.5" if self.os_float < self.macOS_13_3 else "12.5-GCN",
"AMDSupport.kext": "12.5",
Expand Down Expand Up @@ -844,7 +888,7 @@ def _generate_sys_patch_dict(self):
},
"Install": {
"/System/Library/Extensions": {
"AMDRadeonX4000.kext": "12.5" if self.os_major < os_data.os_data.sonoma else "12.5-23",
"AMDRadeonX4000.kext": self.__resolve_monterey_framebuffers(),
"AMDRadeonX4000HWServices.kext": "12.5",

"AMDRadeonVADriver2.bundle": "12.5",
Expand All @@ -868,7 +912,7 @@ def _generate_sys_patch_dict(self):
},
"Install": {
"/System/Library/Extensions": {
"AMDRadeonX5000.kext": "12.5" if self.os_major < os_data.os_data.sonoma else "12.5-23",
"AMDRadeonX5000.kext": self.__resolve_monterey_framebuffers(),

"AMDRadeonVADriver2.bundle": "12.5",
"AMDRadeonX5000GLDriver.bundle": "12.5",
Expand Down Expand Up @@ -962,8 +1006,8 @@ def _generate_sys_patch_dict(self):
"AppleIntelHD4000GraphicsGLDriver.bundle": "11.0 Beta 6",
"AppleIntelHD4000GraphicsMTLDriver.bundle": "11.0 Beta 6" if self.os_major < os_data.os_data.ventura else "11.0-beta 6-22",
"AppleIntelHD4000GraphicsVADriver.bundle": "11.3 Beta 1",
"AppleIntelFramebufferCapri.kext": "11.4" if self.os_major < os_data.os_data.sonoma else "11.4-23",
"AppleIntelHD4000Graphics.kext": "11.4" if self.os_major < os_data.os_data.sonoma else "11.4-23",
"AppleIntelFramebufferCapri.kext": self.__resolve_ivy_bridge_framebuffers(),
"AppleIntelHD4000Graphics.kext": self.__resolve_ivy_bridge_framebuffers(),
"AppleIntelIVBVA.bundle": "11.4",
"AppleIntelGraphicsShared.bundle": "11.4", # libIGIL-Metal.dylib pulled from 11.0 Beta 6
},
Expand All @@ -983,8 +1027,8 @@ def _generate_sys_patch_dict(self):
},
"Install": {
"/System/Library/Extensions": {
"AppleIntelFramebufferAzul.kext": "12.5" if self.os_major < os_data.os_data.sonoma else "12.5-23",
"AppleIntelHD5000Graphics.kext": "12.5" if self.os_major < os_data.os_data.sonoma else "12.5-23",
"AppleIntelFramebufferAzul.kext": self.__resolve_monterey_framebuffers(),
"AppleIntelHD5000Graphics.kext": self.__resolve_monterey_framebuffers(),
"AppleIntelHD5000GraphicsGLDriver.bundle": "12.5",
"AppleIntelHD5000GraphicsMTLDriver.bundle": "12.5",
"AppleIntelHD5000GraphicsVADriver.bundle": "12.5",
Expand All @@ -1007,10 +1051,10 @@ def _generate_sys_patch_dict(self):
},
"Install": {
"/System/Library/Extensions": {
"AppleIntelBDWGraphics.kext": "12.5" if self.os_major < os_data.os_data.sonoma else "12.5-23",
"AppleIntelBDWGraphicsFramebuffer.kext": "12.5" if self.os_major < os_data.os_data.sonoma else "12.5-23",
"AppleIntelBDWGraphics.kext": self.__resolve_monterey_framebuffers(),
"AppleIntelBDWGraphicsFramebuffer.kext": self.__resolve_monterey_framebuffers(),
"AppleIntelBDWGraphicsGLDriver.bundle": "12.5",
"AppleIntelBDWGraphicsMTLDriver.bundle": "12.5" if self.os_major < os_data.os_data.ventura else "12.5-22",
"AppleIntelBDWGraphicsMTLDriver.bundle": "12.5-22",
"AppleIntelBDWGraphicsVADriver.bundle": "12.5",
"AppleIntelBDWGraphicsVAME.bundle": "12.5",
"AppleIntelGraphicsShared.bundle": "12.5",
Expand All @@ -1031,8 +1075,8 @@ def _generate_sys_patch_dict(self):
},
"Install": {
"/System/Library/Extensions": {
"AppleIntelSKLGraphics.kext": "12.5" if self.os_major < os_data.os_data.sonoma else "12.5-23",
"AppleIntelSKLGraphicsFramebuffer.kext": "12.5" if self.os_major < os_data.os_data.sonoma else "12.5-23",
"AppleIntelSKLGraphics.kext": self.__resolve_monterey_framebuffers(),
"AppleIntelSKLGraphicsFramebuffer.kext": self.__resolve_monterey_framebuffers(),
"AppleIntelSKLGraphicsGLDriver.bundle": "12.5",
"AppleIntelSKLGraphicsMTLDriver.bundle": "12.5",
"AppleIntelSKLGraphicsVADriver.bundle": "12.5",
Expand Down Expand Up @@ -1107,10 +1151,10 @@ def _generate_sys_patch_dict(self):
},
"Install": {
"/usr/libexec": {
"airportd": "11.7.1",
"airportd": "11.7.10" if self.os_float < self.macOS_14_4 else "11.7.10-23.4",
},
"/System/Library/CoreServices": {
"WiFiAgent.app": "11.7.1",
"WiFiAgent.app": "11.7.10",
},
},
"Install Non-Root": {
Expand All @@ -1134,19 +1178,16 @@ def _generate_sys_patch_dict(self):
},
"Install": {
"/usr/libexec": {
"wps": "12.6.2",
"wifip2pd": "12.6.2",
"wifianalyticsd": "13.5",
"wps": "12.7.2",
"wifip2pd": "12.7.2",
},
"/System/Library/Frameworks": {
"CoreWLAN.framework": "12.6.2",
"CoreWLAN.framework": "12.7.2",
},
"/System/Library/PrivateFrameworks": {
"CoreWiFi.framework": "12.6.2",
"IO80211.framework": "12.6.2",
"WiFiPeerToPeer.framework": "12.6.2",
**({ "CoreAnalytics.framework": "13.5"} if self.os_major >= os_data.os_data.sonoma else {}),
**({ "WiFiAnalytics.framework": "13.5"} if self.os_major >= os_data.os_data.sonoma else {}),
"CoreWiFi.framework": "12.7.2",
"IO80211.framework": "12.7.2",
"WiFiPeerToPeer.framework": "12.7.2",
},
},
},
Expand All @@ -1166,20 +1207,16 @@ def _generate_sys_patch_dict(self):
},
"Install": {
"/usr/libexec": {
"airportd": "13.5",
"wifianalyticsd": "13.5",
"wifip2pd": "13.5",
"airportd": "13.6.2" if self.os_float < self.macOS_14_4 else "13.6.2-23.4",
"wifip2pd": "13.6.2",
},
"/System/Library/Frameworks": {
"CoreWLAN.framework": "13.5",
"CoreWLAN.framework": "13.6.2",
},
"/System/Library/PrivateFrameworks": {
"CoreAnalytics.framework": "13.5",
"CoreWiFi.framework": "13.5",
"IO80211.framework": "13.5",
"WiFiAnalytics.framework": "13.5",
"WiFiPolicy.framework": "13.5",
"WiFiPeerToPeer.framework": "13.5",
"CoreWiFi.framework": "13.6.2",
"IO80211.framework": "13.6.2",
"WiFiPeerToPeer.framework": "13.6.2",
},
},
},
Expand Down
4 changes: 2 additions & 2 deletions payloads/Config/config.plist
Expand Up @@ -1773,7 +1773,7 @@
<key>MaxKernel</key>
<string></string>
<key>MinKernel</key>
<string>23.0.0</string>
<string>23.4.0</string>
<key>BundlePath</key>
<string>AppleCredentialManager.kext</string>
<key>ExecutablePath</key>
Expand Down Expand Up @@ -1882,7 +1882,7 @@
<key>MaxKernel</key>
<string></string>
<key>MinKernel</key>
<string>23.0.0</string>
<string>23.4.0</string>
<key>Strategy</key>
<string>Exclude</string>
</dict>
Expand Down
Binary file removed payloads/Kexts/Wifi/IOSkywalkFamily-v1.0.0.zip
Binary file not shown.
Binary file added payloads/Kexts/Wifi/IOSkywalkFamily-v1.1.0.zip
Binary file not shown.
4 changes: 3 additions & 1 deletion resources/build/misc.py
Expand Up @@ -365,7 +365,9 @@ def _t1_handling(self) -> None:

support.BuildSupport(self.model, self.constants, self.config).get_item_by_kv(self.config["Kernel"]["Block"], "Identifier", "com.apple.driver.AppleSSE")["Enabled"] = True
support.BuildSupport(self.model, self.constants, self.config).get_item_by_kv(self.config["Kernel"]["Block"], "Identifier", "com.apple.driver.AppleKeyStore")["Enabled"] = True
support.BuildSupport(self.model, self.constants, self.config).get_item_by_kv(self.config["Kernel"]["Block"], "Identifier", "com.apple.driver.AppleCredentialManager")["Enabled"] = True

support.BuildSupport(self.model, self.constants, self.config).enable_kext("corecrypto_T1.kext", self.constants.t1_corecrypto_version, self.constants.t1_corecrypto_path)
support.BuildSupport(self.model, self.constants, self.config).enable_kext("AppleSSE.kext", self.constants.t1_sse_version, self.constants.t1_sse_path)
support.BuildSupport(self.model, self.constants, self.config).enable_kext("AppleKeyStore.kext", self.constants.t1_key_store_version, self.constants.t1_key_store_path)
support.BuildSupport(self.model, self.constants, self.config).enable_kext("AppleKeyStore.kext", self.constants.t1_key_store_version, self.constants.t1_key_store_path)
support.BuildSupport(self.model, self.constants, self.config).enable_kext("AppleCredentialManager.kext", self.constants.t1_credential_version, self.constants.t1_credential_path)
9 changes: 7 additions & 2 deletions resources/constants.py
Expand Up @@ -14,7 +14,7 @@ class Constants:
def __init__(self) -> None:
# Patcher Versioning
self.patcher_version: str = "1.4.0" # OpenCore-Legacy-Patcher
self.patcher_support_pkg_version: str = "1.4.6" # PatcherSupportPkg
self.patcher_support_pkg_version: str = "1.4.7" # PatcherSupportPkg
self.copyright_date: str = "Copyright © 2020-2024 Dortania"
self.patcher_name: str = "OpenCore Legacy Patcher"

Expand Down Expand Up @@ -69,6 +69,7 @@ def __init__(self) -> None:
self.apple_camera_version: str = "1.0.0" # AppleCameraInterface (14.0 Beta 1)
self.t1_sse_version: str = "1.1.0" # AppleSSE (13.6 - T1 support)
self.t1_key_store_version: str = "1.1.0" # AppleKeyStore (13.6 - T1 support)
self.t1_credential_version: str = "1.0.0" # AppleCredentialManager (13.6 - T1 support)
self.t1_corecrypto_version: str = "1.0.1" # corecrypto (13.6 - T1 support)
self.apple_spi_version: str = "1.0.0" # AppleHSSPISupport (14.4 Beta 1)
self.apple_spi_hid_version: str = "1.0.0" # AppleHSSPIHIDDriver (14.4 Beta 1)
Expand All @@ -79,7 +80,7 @@ def __init__(self) -> None:
self.corecaptureelcap_version: str = "1.0.2" # corecaptureElCap
self.io80211elcap_version: str = "2.0.1" # IO80211ElCap
self.io80211legacy_version: str = "1.0.0" # IO80211FamilyLegacy (Ventura)
self.ioskywalk_version: str = "1.0.0" # IOSkywalkFamily (Ventura)
self.ioskywalk_version: str = "1.1.0" # IOSkywalkFamily (Ventura)
self.bigsursdxc_version: str = "1.0.0" # BigSurSDXC
self.monterey_ahci_version: str = "1.0.0" # CatalinaAHCI

Expand Down Expand Up @@ -453,6 +454,10 @@ def top_case_path(self):
def t1_key_store_path(self):
return self.payload_kexts_path / Path(f"Misc/AppleKeyStore-v{self.t1_key_store_version}.zip")

@property
def t1_credential_path(self):
return self.payload_kexts_path / Path(f"Misc/AppleCredentialManager-v{self.t1_credential_version}.zip")

@property
def t1_sse_path(self):
return self.payload_kexts_path / Path(f"Misc/AppleSSE-v{self.t1_sse_version}.zip")
Expand Down

0 comments on commit f8a3d57

Please sign in to comment.