Skip to content

Commit 1aee2e5

Browse files
committed
sys_patch: Add T1 support
1 parent 760db35 commit 1aee2e5

13 files changed

+82
-9
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
- Resolve unfocused password windows
1010
- Resolve USB 1.1 kernel panics on macOS 14.1
1111
- Resolve PCIe FaceTime camera support on macOS 14.1
12+
- Resolve T1 Security Chip support on macOS 14
13+
- Applicable for MacBookPro13,2, MacBookPro13,3, MacBookPro14,2, MacBookPro14,3
1214
- Increment Binaries:
1315
- PatcherSupportPkg 1.3.7 - release
1416
- AirportBrcmFixup 2.1.8 - release

data/sys_patch_dict.py

+30
Original file line numberDiff line numberDiff line change
@@ -1320,5 +1320,35 @@ def _generate_sys_patch_dict(self):
13201320
],
13211321
}
13221322
},
1323+
"T1 Security Chip": {
1324+
"Display Name": "Miscellaneous: T1 Security Chip",
1325+
"OS Support": {
1326+
"Minimum OS Support": {
1327+
"OS Major": os_data.os_data.sonoma,
1328+
"OS Minor": 0
1329+
},
1330+
"Maximum OS Support": {
1331+
"OS Major": os_data.os_data.max_os,
1332+
"OS Minor": 99
1333+
},
1334+
},
1335+
"Install": {
1336+
"/System/Library/Frameworks": {
1337+
"LocalAuthentication.framework": "13.6" # Required for Password Authentication (SharedUtils.framework)
1338+
},
1339+
"/System/Library/PrivateFrameworks": {
1340+
"EmbeddedOSInstall.framework": "13.6" # Required for biometrickitd
1341+
},
1342+
# Required for Apple Pay
1343+
"/usr/lib": {
1344+
"libNFC_Comet.dylib": "13.6",
1345+
"libNFC_HAL.dylib": "13.6",
1346+
"libPN548_API.dylib": "13.6"
1347+
},
1348+
"/usr/libexec": {
1349+
"biometrickitd": "13.6" # Required for Touch ID
1350+
},
1351+
},
1352+
},
13231353
},
13241354
}

payloads/Config/config.plist

+18
Original file line numberDiff line numberDiff line change
@@ -1707,6 +1707,24 @@
17071707
<key>PlistPath</key>
17081708
<string>Contents/Info.plist</string>
17091709
</dict>
1710+
<dict>
1711+
<key>Arch</key>
1712+
<string>x86_64</string>
1713+
<key>Comment</key>
1714+
<string>corecrypto - T1</string>
1715+
<key>Enabled</key>
1716+
<false/>
1717+
<key>MaxKernel</key>
1718+
<string></string>
1719+
<key>MinKernel</key>
1720+
<string>23.0.0</string>
1721+
<key>BundlePath</key>
1722+
<string>corecrypto_T1.kext</string>
1723+
<key>ExecutablePath</key>
1724+
<string>Contents/MacOS/corecrypto_T1</string>
1725+
<key>PlistPath</key>
1726+
<string>Contents/Info.plist</string>
1727+
</dict>
17101728
<dict>
17111729
<key>Arch</key>
17121730
<string>x86_64</string>
-567 KB
Binary file not shown.
572 KB
Binary file not shown.
-64.7 KB
Binary file not shown.
71.7 KB
Binary file not shown.
479 KB
Binary file not shown.

resources/build/misc.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ def _build(self) -> None:
4343
self._debug_handling()
4444
self._cpu_friend_handling()
4545
self._general_oc_handling()
46+
self._t1_handling()
4647

4748

4849
def _feature_unlock_handling(self) -> None:
@@ -357,9 +358,8 @@ def _t1_handling(self) -> None:
357358
logging.info("- Enabling T1 Security Chip support")
358359

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

363+
support.BuildSupport(self.model, self.constants, self.config).enable_kext("corecrypto_T1.kext", self.constants.t1_corecrypto_version, self.constants.t1_corecrypto_path)
363364
support.BuildSupport(self.model, self.constants, self.config).enable_kext("AppleSSE.kext", self.constants.t1_sse_version, self.constants.t1_sse_path)
364-
support.BuildSupport(self.model, self.constants, self.config).enable_kext("AppleCredentialManager.kext", self.constants.t1_credential_version, self.constants.t1_credential_path)
365365
support.BuildSupport(self.model, self.constants, self.config).enable_kext("AppleKeyStore.kext", self.constants.t1_key_store_version, self.constants.t1_key_store_path)

resources/constants.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ def __init__(self) -> None:
6767
self.aicpupm_version: str = "1.0.0" # AppleIntelCPUPowerManagement/Client
6868
self.s3x_nvme_version: str = "1.0.0" # IONVMeFamily (14.0 Beta 1, S1X and S3X classes)
6969
self.apple_camera_version: str = "1.0.0" # AppleCameraInterface (14.0 Beta 1)
70-
self.t1_credential_version: str = "1.0.0" # AppleCredentialManager (13.5 - T1 support)
71-
self.t1_sse_version: str = "1.0.0" # AppleSSE (13.5 - T1 support)
72-
self.t1_key_store_version: str = "1.0.0" # AppleKeyStore (13.5 - T1 support)
70+
self.t1_sse_version: str = "1.1.0" # AppleSSE (13.6 - T1 support)
71+
self.t1_key_store_version: str = "1.1.0" # AppleKeyStore (13.6 - T1 support)
72+
self.t1_corecrypto_version: str = "1.0.0" # corecrypto (13.6 - T1 support)
7373

7474
## Apple - Dortania Modified
7575
self.bcm570_version: str = "1.0.2" # CatalinaBCM5701Ethernet
@@ -439,14 +439,14 @@ def top_case_path(self):
439439
def t1_key_store_path(self):
440440
return self.payload_kexts_path / Path(f"Misc/AppleKeyStore-v{self.t1_key_store_version}.zip")
441441

442-
@property
443-
def t1_credential_path(self):
444-
return self.payload_kexts_path / Path(f"Misc/AppleCredentialManager-v{self.t1_credential_version}.zip")
445-
446442
@property
447443
def t1_sse_path(self):
448444
return self.payload_kexts_path / Path(f"Misc/AppleSSE-v{self.t1_sse_version}.zip")
449445

446+
@property
447+
def t1_corecrypto_path(self):
448+
return self.payload_kexts_path / Path(f"Misc/corecrypto_T1-v{self.t1_corecrypto_version}.zip")
449+
450450
@property
451451
def mousse_path(self):
452452
return self.payload_kexts_path / Path(f"SSE/AAAMouSSE-v{self.mousse_version}.zip")

resources/device_probe.py

+14
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,7 @@ class Computer:
634634
ambient_light_sensor: Optional[bool] = False
635635
third_party_sata_ssd: Optional[bool] = False
636636
pcie_webcam: Optional[bool] = False
637+
t1_chip: Optional[bool] = False
637638
secure_boot_model: Optional[str] = None
638639
secure_boot_policy: Optional[int] = None
639640
oclp_sys_version: Optional[str] = None
@@ -659,6 +660,7 @@ def probe():
659660
computer.cpu_probe()
660661
computer.bluetooth_probe()
661662
computer.topcase_probe()
663+
computer.t1_probe()
662664
computer.ambient_light_sensor_probe()
663665
computer.pcie_webcam_probe()
664666
computer.sata_disk_probe()
@@ -936,6 +938,18 @@ def topcase_probe(self):
936938
elif usb_device.device_id in usb_data.AppleIDs.AppleUSBMultiTouch:
937939
self.trackpad_type = "Modern"
938940

941+
def t1_probe(self):
942+
if not self.usb_devices:
943+
return
944+
945+
for usb_device in self.usb_devices:
946+
if usb_device.vendor_id != 0x5ac:
947+
continue
948+
if usb_device.device_id != 0x8600:
949+
continue
950+
self.t1_chip = True
951+
break
952+
939953
def sata_disk_probe(self):
940954
# Get all SATA Controllers/Disks from 'system_profiler SPSerialATADataType'
941955
# Determine whether SATA SSD is present and Apple-made

resources/sys_patch/sys_patch_detect.py

+6
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ def __init__(self, model: str, global_constants: constants.Constants):
5353
self.legacy_keyboard_backlight = False
5454
self.legacy_uhci_ohci = False
5555
self.legacy_pcie_webcam = False
56+
self.legacy_t1_chip = False
5657

5758
# Patch Requirements
5859
self.amfi_must_disable = False
@@ -540,6 +541,10 @@ def detect_patch_set(self):
540541

541542
if self.constants.detected_os >= os_data.os_data.sonoma:
542543
self.legacy_pcie_webcam = self.constants.computer.pcie_webcam
544+
self.legacy_t1_chip = self.constants.computer.t1_chip
545+
546+
if self.legacy_t1_chip is True:
547+
self.amfi_must_disable = True
543548

544549
if self._check_uhci_ohci() is True:
545550
self.legacy_uhci_ohci = True
@@ -622,6 +627,7 @@ def detect_patch_set(self):
622627
"Miscellaneous: Legacy Keyboard Backlight": self.legacy_keyboard_backlight,
623628
"Miscellaneous: Legacy USB 1.1": self.legacy_uhci_ohci,
624629
"Miscellaneous: PCIe FaceTime Camera": self.legacy_pcie_webcam,
630+
"Miscellaneous: T1 Security Chip": self.legacy_t1_chip,
625631
"Settings: Requires AMFI exemption": self.amfi_must_disable,
626632
"Settings: Supports Auxiliary Cache": not self.requires_root_kc,
627633
"Settings: Kernel Debug Kit missing": self.missing_kdk if self.constants.detected_os >= os_data.os_data.ventura.value else False,

resources/sys_patch/sys_patch_generate.py

+3
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,9 @@ def _generate_patchset(self) -> dict:
181181
if self.hardware_details["Miscellaneous: PCIe FaceTime Camera"] is True:
182182
required_patches.update({"PCIe FaceTime Camera": all_hardware_patchset["Miscellaneous"]["PCIe FaceTime Camera"]})
183183

184+
if self.hardware_details["Miscellaneous: T1 Security Chip"] is True:
185+
required_patches.update({"T1 Security Chip": all_hardware_patchset["Miscellaneous"]["T1 Security Chip"]})
186+
184187
if required_patches:
185188
host_os_float = float(f"{self.constants.detected_os}.{self.constants.detected_os_minor}")
186189

0 commit comments

Comments
 (0)