Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions tsschecker/tsschecker.c
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ const char *shshSavePath = "."DIRECTORY_DELIMITER_STR;
// iPhone & iPod touch 1st generation models do not use SHSH or APTicket.
static struct bbdevice bbdevices[] = {
// Apple Silicon Macs
{"ADP3,1", 0, 0}, // DTK (2020)
{"ADP3,2", 0, 0}, // DTK (2020)
{"iMac21,1", 0, 0}, // iMac (24-inch, M1, 2021)
{"iMac21,2", 0, 0}, // iMac (24-inch, M1, 2021)
Expand Down Expand Up @@ -178,7 +179,7 @@ static struct bbdevice bbdevices[] = {
{"Mac16,11", 0, 0}, // Mac mini (M4 Pro, 2024)
{"Mac16,12", 0, 0}, // MacBook Air (13-inch, M4, 2025)
{"Mac16,13", 0, 0}, // MacBook Air (15-inch, M4, 2025)

// Apple Displays
{"AppleDisplay2,1", 0, 0}, // Studio Display

Expand Down Expand Up @@ -266,9 +267,9 @@ static struct bbdevice bbdevices[] = {
{"iPhone17,3", 1652214800, 4}, // iPhone 16
{"iPhone17,4", 1652214800, 4}, // iPhone 16 Plus
{"iPhone17,5", 4, 0}, // iPhone 16e
{"iPhone18,3", 694094470, 12}, // iPhone 17
{"iPhone18,1", 694094470, 12}, // iPhone 17 Pro
{"iPhone18,2", 694094470, 12}, // iPhone 17 Pro Max
{"iPhone18,3", 694094470, 8}, // iPhone 17
{"iPhone18,1", 694094470, 8}, // iPhone 17 Pro
{"iPhone18,2", 694094470, 8}, // iPhone 17 Pro Max
{"iPhone18,4", 4, 0}, // iPhone Air

// iPads
Expand Down Expand Up @@ -1378,6 +1379,7 @@ int tssrequest(plist_t *tssreqret, char *buildManifest, t_devicevals *devVals, t
// macOS OTAs don't include SEP definition; hardcode them as having SEP
int hasSEP = (!(!sep || plist_get_node_type(sep) != PLIST_DICT)
|| strncasecmp(devVals->deviceModel, "Mac", strlen("Mac")) == 0
|| strncasecmp(devVals->deviceModel, "ADP", strlen("ADP")) == 0
|| strncasecmp(devVals->deviceModel, "iMac", strlen("iMac")) == 0);
if(virt) {
hasSEP = plist_get_node_type(virt) == PLIST_STRING;
Expand Down Expand Up @@ -1565,6 +1567,8 @@ int isManifestBufSignedForDevice(char *buildManifestBuffer, t_devicevals *devVal
|| !strcasecmp(devVals->deviceBoard, "d83ap") || !strcasecmp(devVals->deviceBoard, "d84ap")
|| !strcasecmp(devVals->deviceBoard, "d93ap") || !strcasecmp(devVals->deviceBoard, "d94ap")
|| !strcasecmp(devVals->deviceBoard, "d47ap") || !strcasecmp(devVals->deviceBoard, "d48ap")
|| !strcasecmp(devVals->deviceBoard, "v53ap") || !strcasecmp(devVals->deviceBoard, "v54ap")
|| !strcasecmp(devVals->deviceBoard, "v57ap")
|| !strcasecmp(devVals->deviceBoard, "n102ap") || !strcasecmp(devVals->deviceBoard, "j71ap")
|| !strcasecmp(devVals->deviceBoard, "j72ap") || !strcasecmp(devVals->deviceBoard, "j73ap")
|| !strcasecmp(devVals->deviceBoard, "j85ap") || !strcasecmp(devVals->deviceBoard, "j86ap")
Expand All @@ -1585,6 +1589,8 @@ int isManifestBufSignedForDevice(char *buildManifestBuffer, t_devicevals *devVal
|| !strcasecmp(devVals->deviceModel, "iPhone16,1") || !strcasecmp(devVals->deviceModel, "iPhone16,2")
|| !strcasecmp(devVals->deviceModel, "iPhone17,1") || !strcasecmp(devVals->deviceModel, "iPhone17,2")
|| !strcasecmp(devVals->deviceModel, "iPhone17,3") || !strcasecmp(devVals->deviceModel, "iPhone17,4")
|| !strcasecmp(devVals->deviceModel, "iPhone18,1") || !strcasecmp(devVals->deviceModel, "iPhone18,2")
|| !strcasecmp(devVals->deviceModel, "iPhone18,3")
|| !strcasecmp(devVals->deviceModel, "iPod7,1") || !strcasecmp(devVals->deviceModel, "iPad4,1")
|| !strcasecmp(devVals->deviceModel, "iPad4,2") || !strcasecmp(devVals->deviceModel, "iPad4,3")
|| !strcasecmp(devVals->deviceModel, "iPad4,4") || !strcasecmp(devVals->deviceModel, "iPad4,5")
Expand Down