diff --git a/README.md b/README.md index 2e315562..60ae1d2a 100644 --- a/README.md +++ b/README.md @@ -7,14 +7,14 @@ A GUI for saving SHSH blobs using encounter's fork of tsschecker(uses tihmstar's If you have an antivirus or firewall, you may need to disable some other settings or disable the firewall completely for automatically saving blobs in the background to work. If you use Norton, go to Settings -> Firewall -> Advanced Program Control and set the option "Low Risk Applications" to "Allow". -![Mac Screenshot](https://i.imgur.com/DLPbzNd.png) -![Windows Screenshot](https://i.imgur.com/oxqUZsI.png) +![Mac Screenshot](https://i.imgur.com/2UvuaCZ.png) +![Windows Screenshot](https://i.imgur.com/ENSX4E5.png) ## Features - **Automatically save blobs in the background** - Store up to ten devices with presets - Save blobs for beta versions -- Read ECID and other info from device so you don't to get it manually (currently broken on Windows) +- Read ECID and other info from device so you don't have to get it manually (currently broken on Windows) - No need to download entire .ipsw for beta versions(just specify link) - Choose where to save blobs with file picker - Explains how to get ECID, Board Config(if needed), and information necessary for beta versions diff --git a/build.gradle b/build.gradle index f677f299..de3900d1 100644 --- a/build.gradle +++ b/build.gradle @@ -46,6 +46,7 @@ macAppBundle { backgroundImage = "icons/dmg_background.png" appName = 'blobsaver' dmgName = 'blobsaver-macos' + volumeName = 'blobsaver-macos' } launch4j { // Windows only, don't use this, use createWindowsInstaller @@ -88,6 +89,5 @@ void buildEverything() { println " first make sure you have installed Inno Setup first" println " and make sure you have wine in your path if you are not on windows" println " Inno Setup **MUST** be installed to C:\\Program Files (x86)\\Inno Setup 5\\" - createWindowsInstaller.execute() } \ No newline at end of file diff --git a/src/main/java/com/airsquared/blobsaver/Controller.java b/src/main/java/com/airsquared/blobsaver/Controller.java index 56ac00fe..0519a156 100644 --- a/src/main/java/com/airsquared/blobsaver/Controller.java +++ b/src/main/java/com/airsquared/blobsaver/Controller.java @@ -83,6 +83,7 @@ public class Controller { @FXML private Label versionLabel; + @FXML private Button readFromConnectedDeviceButton; @FXML private Button startBackgroundButton; @FXML private Button chooseTimeToRunButton; @FXML private Button forceCheckForBlobs; @@ -242,6 +243,7 @@ public void initialize() { presetButtons = new ArrayList<>(Arrays.asList(preset1Button, preset2Button, preset3Button, preset4Button, preset5Button, preset6Button, preset7Button, preset8Button, preset9Button, preset10Button)); presetButtons.forEach((Button btn) -> btn.setOnAction(this::presetButtonHandler)); + // the following is to set the path to save blobs to the correct location final String url = getClass().getResource("Controller.class").toString(); String path = url.substring(0, url.length() - "com/airsquared/blobsaver/Controller.class".length()); if (path.startsWith("jar:")) { @@ -265,7 +267,7 @@ public void initialize() { } pathField.setText(path); - if (PlatformUtil.isMac()) { + if (PlatformUtil.isMac()) { // use macos menu bar or not primaryStage.setOnShowing(new EventHandler() { // can't use lambda due to using the 'this' keyword @Override @@ -276,6 +278,10 @@ public void handle(WindowEvent event) { } }); } + + if (!PlatformUtil.isMac()) { + readFromConnectedDeviceButton.setText("Read from connected device(beta)"); + } } public void checkForUpdatesHandler() { @@ -1129,6 +1135,9 @@ public void showWiki(ActionEvent event) { case "Automatically upload blobs to the cloud": url = "https://github.com/airsquared/blobsaver/wiki/Automatically-saving-blobs-to-the-cloud(Dropbox,-Google-Drive,-iCloud)"; break; + case "How do I get a crash log?": + url = "https://github.com/airsquared/blobsaver/wiki/How-do-I-get-a-crash-log%3F"; + break; default: url = "https://github.com/airsquared/blobsaver/wiki"; break; @@ -1142,18 +1151,18 @@ public void showWiki(ActionEvent event) { @SuppressWarnings({"unchecked", "UnnecessaryReturnStatement"}) public void readInfo() { - String alertText; - if (PlatformUtil.isMac()) { - alertText = "This feature is in beta, and may or may not work. Please report any bugs with this feature to me using the help menu."; - } else if (PlatformUtil.isWindows()) { - alertText = "This feature will most likely not work, but you can give it a try. If this feature doesn't work, please don't report this bug to me, I already know and am trying to fix it."; - } else { - alertText = "IMPORTANT: make sure to install libimobiledevice before running it and `ideviceinfo` and `idevicepair` are in your $PATH\n\nThis feature is in beta, and may or may not work. Please report any bugs with this feature to me using the help menu."; - } - Alert confirmationAlert = new Alert(Alert.AlertType.CONFIRMATION, alertText); - confirmationAlert.showAndWait(); - if (confirmationAlert.getResult().equals(ButtonType.CANCEL)) { - return; + if (!PlatformUtil.isMac()) { + String alertText; + if (PlatformUtil.isWindows()) { + alertText = "This feature will most likely not work, but you can give it a try. If this feature doesn't work, please don't report this bug to me, I already know and am trying to fix it."; + } else { + alertText = "IMPORTANT: make sure to install libimobiledevice before running it and `ideviceinfo` and `idevicepair` are in your $PATH\n\nThis feature is in beta, and may or may not work. Please report any bugs with this feature to me using the help menu."; + } + Alert confirmationAlert = new Alert(Alert.AlertType.CONFIRMATION, alertText); + confirmationAlert.showAndWait(); + if (confirmationAlert.getResult().equals(ButtonType.CANCEL)) { + return; + } } String idevicepairPath; try { diff --git a/src/main/java/com/airsquared/blobsaver/Main.java b/src/main/java/com/airsquared/blobsaver/Main.java index c437cdab..7b317703 100644 --- a/src/main/java/com/airsquared/blobsaver/Main.java +++ b/src/main/java/com/airsquared/blobsaver/Main.java @@ -35,7 +35,7 @@ public class Main { - static final String appVersion = "v2.2-beta"; + static final String appVersion = "v2.2"; static final Preferences appPrefs = Preferences.userRoot().node("airsquared/blobsaver/prefs"); private static final String appID = "com.airsquared.blobsaver"; static Stage primaryStage; diff --git a/src/main/resources/com/airsquared/blobsaver/blobsaver.fxml b/src/main/resources/com/airsquared/blobsaver/blobsaver.fxml index f8f9bd1c..195f8f1e 100644 --- a/src/main/resources/com/airsquared/blobsaver/blobsaver.fxml +++ b/src/main/resources/com/airsquared/blobsaver/blobsaver.fxml @@ -44,6 +44,8 @@ text="Automatically upload blobs to the cloud"/> + @@ -79,7 +81,7 @@ -