Skip to content

Commit 6756229

Browse files
committed
update to tihmstar's latest tsschecker (all platforms)
1 parent 3743aea commit 6756229

16 files changed

+21
-25
lines changed

.idea/modules/blobsaver_main.iml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules/blobsaver_test.iml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Help support this project by ⭐️'ing it! [Donations](https://www.paypal.me/airsqrd) also appreciated!
22

33
# blobsaver [![GitHub All Releases](https://img.shields.io/github/downloads/airsquared/blobsaver/total.svg)](https://github.com/airsquared/blobsaver/releases/latest) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/21c7f52476c948c9adc0439c0b6841ad)](https://app.codacy.com/app/airsquared/blobsaver?utm_source=github.com&utm_medium=referral&utm_content=airsquared/blobsaver&utm_campaign=Badge_Grade_Dashboard)
4-
A GUI for saving SHSH blobs using s0uthwest's fork of tsschecker. Supports Mac, Windows, and Linux. Requires [Java](https://java.com/inc/BrowserRedirect1.jsp).
4+
A GUI for saving SHSH blobs using [tsschecker](https://github.com/tihmstar/tsschecker). Supports Mac, Windows, and Linux. Requires [Java](https://java.com/inc/BrowserRedirect1.jsp).
55

66
**Tip:** if you want blobs you save to automatically be uploaded to the cloud, see [this](https://github.com/airsquared/blobsaver/wiki/Automatically-saving-blobs-to-the-cloud)
77

dist/linux/tsschecker

32 Bytes
Binary file not shown.

dist/macos/tsschecker

24.6 KB
Binary file not shown.

dist/windows/libcrypto-1_1-x64.dll

3.38 MB
Binary file not shown.

dist/windows/libcurl-4.dll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
lib/libcurl.dll

dist/windows/libeay32.dll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
lib/libeay32.dll

dist/windows/libirecovery.dll

343 KB
Binary file not shown.

dist/windows/libplist.dll

448 KB
Binary file not shown.

dist/windows/libssl-1_1-x64.dll

979 KB
Binary file not shown.

dist/windows/ssleay32.dll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
lib/ssleay32.dll

dist/windows/tsschecker.exe

-1.26 MB
Binary file not shown.

dist/windows/zlib1.dll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
lib/zlib1.dll

src/main/java/com/airsquared/blobsaver/Background.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ private static void saveBackgroundBlobs(int preset) {
244244
} else {
245245
presetName = appPrefs.get("Name Preset" + preset, "");
246246
}
247-
if (containsIgnoreCase(tsscheckerLog, "Saved")) {
247+
if (containsIgnoreCase(tsscheckerLog, "Saved shsh blobs")) {
248248
Notification notification = new Notification("Successfully saved blobs for", "iOS " + firmware.get("version").toString() + " (" + presetName + ") in\n" + path, Notification.SUCCESS_ICON);
249249
Notification.Notifier.INSTANCE.setPopupLifetime(Duration.seconds(30));
250250
Notification.Notifier.INSTANCE.setOnNotificationPressed((event) -> {
@@ -261,7 +261,7 @@ private static void saveBackgroundBlobs(int preset) {
261261

262262
log("displayed message");
263263

264-
} else if (containsIgnoreCase(tsscheckerLog, "[Error] ERROR: TSS request failed: Could not resolve host:")) {
264+
} else if (containsIgnoreCase(tsscheckerLog, "Could not resolve host")) {
265265
Notification notification = new Notification("Saving blobs failed", "Check your internet connection. If it is working, click here to report this error.", Notification.ERROR_ICON);
266266
Notification.Notifier.INSTANCE.setPopupLifetime(Duration.minutes(1));
267267
Notification.Notifier.INSTANCE.setOnNotificationPressed(event -> {
@@ -276,7 +276,7 @@ private static void saveBackgroundBlobs(int preset) {
276276
reportError(alert, tsscheckerLog);
277277
});
278278
Notification.Notifier.INSTANCE.notify(notification);
279-
} else if (containsIgnoreCase(tsscheckerLog, " IS NOT being signed")) {
279+
} else if (containsIgnoreCase(tsscheckerLog, "IS NOT being signed")) {
280280
continue;
281281
} else {
282282
Notification notification = new Notification("Saving blobs failed", "An unknown error occurred. Click here to report this error.", Notification.ERROR_ICON);

src/main/java/com/airsquared/blobsaver/TSSChecker.java

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ private static void run(URL ipswURL, String device, String version) throws TSSCh
156156
throw new TSSCheckerException(e);
157157
}
158158

159-
if (containsIgnoreCase(tsscheckerLog, "Saved signing tickets")) {
159+
if (containsIgnoreCase(tsscheckerLog, "Saved shsh blobs")) {
160160
// if multiple versions are being saved at the same time, do not show success message multiple times
161161
// the success message will be shown after saving everything is completed
162162
if (!controller.versionCheckBox.isSelected()) {
@@ -174,34 +174,29 @@ private static void run(URL ipswURL, String device, String version) throws TSSCh
174174
resizeAlertButtons(alert);
175175
alert.showAndWait();
176176
reportError(alert);
177-
} else if (containsIgnoreCase(tsscheckerLog, "[Error] [TSSC] ERROR: could not get url for device " + device + " on iOS " + version)) {
178-
newUnreportableError("Could not find device \"" + device + "\" on iOS/tvOS " + version +
179-
"\n\nThe version doesn't exist or isn't compatible with the device");
180-
controller.versionField.setEffect(errorBorder);
181-
} else if (containsIgnoreCase(tsscheckerLog, "[Error] [TSSC] manually specified apnonce=" + apnonce + ", but parsing failed")) {
177+
} else if (containsIgnoreCase(tsscheckerLog, "[Error] [TSSC] manually specified ApNonce=" + apnonce + ", but parsing failed")) {
182178
newUnreportableError("\"" + apnonce + "\" is not a valid apnonce");
183179
controller.apnonceField.setEffect(errorBorder);
184-
} else if (containsIgnoreCase(tsscheckerLog, "[WARNING] [TSSC] could not get id0 for installType=Erase. Using fallback installType=Update since user did not specify installType manually")
185-
&& containsIgnoreCase(tsscheckerLog, "[Error] [TSSR] Error: could not get id0 for installType=Update")
186-
&& containsIgnoreCase(tsscheckerLog, "[Error] [TSSR] faild to build TSS request")
187-
&& containsIgnoreCase(tsscheckerLog, "Error] [TSSC] checking tss status failed!")) {
180+
} else if (containsIgnoreCase(tsscheckerLog, "could not get id0 for installType=Erase")
181+
&& containsIgnoreCase(tsscheckerLog, "could not get id0 for installType=Update")
182+
&& containsIgnoreCase(tsscheckerLog, "checking tss status failed")) {
188183
Alert alert = new Alert(Alert.AlertType.ERROR,
189184
"Saving blobs failed. Check the board configuration or try again later.\n\nIf this doesn't work, please create a new issue on Github or PM me on Reddit. The log has been copied to your clipboard.\n\nIf this was done to test whether the preset works in the background, please cancel that preset, fix the error, and try again.",
190185
githubIssue, redditPM, ButtonType.OK);
191186
resizeAlertButtons(alert);
192187
alert.showAndWait();
193188
reportError(alert, tsscheckerLog);
194-
} else if (containsIgnoreCase(tsscheckerLog, "[Error] ERROR: TSS request failed: Could not resolve host:")) {
189+
} else if (containsIgnoreCase(tsscheckerLog, "Could not resolve host")) {
195190
Alert alert = new Alert(Alert.AlertType.ERROR,
196191
"Saving blobs failed. Check your internet connection.\n\nIf your internet is working and you can connect to apple.com in your browser, please create a new issue on Github or PM me on Reddit. The log has been copied to your clipboard.\n\nIf this was done to test whether the preset works in the background, please cancel that preset, fix the error, and try again.",
197192
githubIssue, redditPM, ButtonType.OK);
198193
resizeAlertButtons(alert);
199194
alert.showAndWait();
200195
reportError(alert, tsscheckerLog);
201-
} else if (containsIgnoreCase(tsscheckerLog, "[Error] [Error] can't save signing tickets at " + savePath)) {
196+
} else if (containsIgnoreCase(tsscheckerLog, "can't save shsh at")) {
202197
newUnreportableError("\'" + savePath + "\' is not a valid path\n\nIf this was done to test whether the preset works in the background, please cancel that preset, fix the error, and try again.");
203198
controller.pathField.setEffect(errorBorder);
204-
} else if (containsIgnoreCase(tsscheckerLog, "iOS " + version + " for device " + device + " IS NOT being signed!") || containsIgnoreCase(tsscheckerLog, "Build " + controller.buildIDField.getText() + " for device" + device + "IS NOT being signed!")) {
199+
} else if (containsIgnoreCase(tsscheckerLog, "IS NOT being signed")) {
205200
newUnreportableError("iOS/tvOS " + version + " is not being signed for device " + device);
206201
if (version.equals(controller.versionField.getText())) {
207202
controller.versionField.setEffect(errorBorder);
@@ -210,22 +205,19 @@ && containsIgnoreCase(tsscheckerLog, "Error] [TSSC] checking tss status failed!"
210205
controller.buildIDField.setEffect(errorBorder);
211206
controller.ipswField.setEffect(errorBorder);
212207
}
213-
} else if (containsIgnoreCase(tsscheckerLog, "[Error] [TSSC] failed to load manifest")) {
208+
} else if (containsIgnoreCase(tsscheckerLog, "failed to load manifest")) {
214209
Alert alert = new Alert(Alert.AlertType.ERROR,
215210
"Failed to load manifest.\n\n \"" + ipswURL + "\" might not be a valid URL.\n\nMake sure it starts with \"http://\" or \"https://\", has \"apple\" in it, and ends with \".ipsw\"\n\nIf the URL is fine, please create a new issue on Github or PM me on Reddit. The log has been copied to your clipboard",
216211
githubIssue, redditPM, ButtonType.OK);
217212
resizeAlertButtons(alert);
218213
alert.showAndWait();
219214
reportError(alert, tsscheckerLog);
220-
} else if (containsIgnoreCase(tsscheckerLog, "[Error] [TSSC] selected device can't be used with that buildmanifest")) {
215+
} else if (containsIgnoreCase(tsscheckerLog, "selected device can't be used with that buildmanifest")) {
221216
newUnreportableError("Device and build manifest don't match.");
222-
} else if (containsIgnoreCase(tsscheckerLog, "[Error]")) {
223-
newReportableError("Saving blobs failed.\n\nIf this was done to test whether the preset works in the background, please cancel that preset, fix the error, and try again.", tsscheckerLog);
224217
} else {
225-
newReportableError("Unknown result.\n\nIf this was done to test whether the preset works in the background, please cancel that preset, fix the error, and try again.", tsscheckerLog);
218+
newReportableError("Saving blobs failed.\n\nIf this was done to test whether the preset works in the background, please cancel that preset, fix the error, and try again.", tsscheckerLog);
226219
}
227220
throw new TSSCheckerException();
228-
229221
}
230222

231223
/**

0 commit comments

Comments
 (0)