Skip to content

Commit

Permalink
Merge pull request #57 from CoocooFroggy/dev
Browse files Browse the repository at this point in the history
Update README, fix run FRGUI script, fix workflow to include run FRGUI script in linux-universal zip
  • Loading branch information
CoocooFroggy authored Aug 11, 2021
2 parents 19c7c80 + b5f3498 commit d7e7a1c
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 22 deletions.
6 changes: 4 additions & 2 deletions .github/workflows/build-pack-manual.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,10 @@ jobs:
VERSION: ${{ steps.output-version.outputs.version }}
run: jpackage --input ./input --name "FutureRestore GUI" --main-jar "FutureRestore GUI-1.0-all.jar" --main-class Main --type app-image --icon ./.github/workflows/ubuntu/Icon-1024.png --copyright "© CoocooFroggy 2021" --verbose --name "FutureRestore GUI" --module-path ./.github/workflows/ubuntu/javafx-jmods-11.0.2 --add-modules javafx.swing,java.logging,java.sql,java.base,jdk.crypto.ec,java.naming --app-version $VERSION

- name: Zip app-image and run script
run: zip -r FutureRestore-GUI-Linux-Universal.zip "FutureRestore GUI" ./.github/workflows/ubuntu/"Run FutureRestore GUI.sh"
- name: Zip app-image and script
run: |
cp ./.github/workflows/ubuntu/"Run FutureRestore GUI.sh" ./
zip -r FutureRestore-GUI-Linux-Universal.zip "FutureRestore GUI" "Run FutureRestore GUI.sh"
- name: Upload deb
uses: actions/upload-artifact@v2
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/build-pack-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,10 @@ jobs:
VERSION: ${{ steps.output-version.outputs.version }}
run: jpackage --input ./input --name "FutureRestore GUI" --main-jar "FutureRestore GUI-1.0-all.jar" --main-class Main --type app-image --icon ./.github/workflows/ubuntu/Icon-1024.png --copyright "© CoocooFroggy 2021" --verbose --name "FutureRestore GUI" --module-path ./.github/workflows/ubuntu/javafx-jmods-11.0.2 --add-modules javafx.swing,java.logging,java.sql,java.base,jdk.crypto.ec,java.naming --app-version $VERSION

- name: Zip app-image and run script
run: zip -r FutureRestore-GUI-Linux-Universal.zip "FutureRestore GUI" ./.github/workflows/ubuntu/"Run FutureRestore GUI.sh"
- name: Zip app-image and script
run: |
cp ./.github/workflows/ubuntu/"Run FutureRestore GUI.sh" ./
zip -r FutureRestore-GUI-Linux-Universal.zip "FutureRestore GUI" "Run FutureRestore GUI.sh"
- name: Download URL to upload to
uses: actions/download-artifact@v2
Expand Down
39 changes: 21 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,23 @@

A GUI wrapper for a hacked up wrapper for a full reimplementation of the restore of a firmware to a device, which allows manually specifying SEP and Baseband for restoring, written in Java with Swing.

*AKA a modern GUI for FutureRestore, with added features to make the process easier.*
*More simply, A modern GUI for FutureRestore, with added features to make the process easier.*

![Screenshot of FutureRestore GUI in Light Theme](.github/Light.png?raw=true "FutureRestore GUI Light")
![Screenshot of FutureRestore GUI in Dark Theme](.github/Dark.png?raw=true "FutureRestore GUI Dark")

## Installation

Download from [releases](https://github.com/CoocooFroggy/FutureRestore-GUI/releases). No Java download required (it's bundled).
Download from [releases](https://github.com/CoocooFroggy/FutureRestore-GUI/releases). No Java installation required (it's bundled).

- Mac: Right click the Mac app and click "Open" to open.
- Windows: Double click the Windows MSI to install the App. Launch it from the Start Menu or the Desktop shortcut.
- Linux (64 bit, amd64/x86_64):
- On Debian based Linux systems, such as Ubuntu and Mint, double click the DEB to install it. Launch it from your application library.
- On other Linux systems, download the Linux-Universal build, and run the runFRGUI.sh script in terminal to launch the GUI.
- On Debian based Linux systems, such as Ubuntu and Mint, double click the .deb file to install it. Launch it from your application library.
- On other Linux systems, download the Linux-Universal build, and run the `Run FutureRestore GUI.sh` script in terminal to launch the GUI.

#### Package managers

#### Quicker Install
- Mac: `brew install futurerestore-gui`
- Windows: `winget install futurerestore-gui`
- Debian Linux:
Expand All @@ -30,33 +31,35 @@ u="https://coocoofroggy.github.io/CoocooFroggy-PPA/" && curl -s --compressed $u"
```

## Features

- Fancy, user-friendly interface for selecting files for FutureRestore. No more huge commands such as:
```
/Users/CoocooFroggy/Downloads/futurerestore -d -t /Users/CoocooFroggy/Downloads/353561670934855681_iPhone69\,4_d200ap_18.2-31D37_27325c8258be46e69d9ee57fa9a8fbc28b873df434e5e702a8b27999551138ae.shsh2 --latest-sep --latest-baseband /Users/CoocooFroggy/Downloads/iPhone69\,4\,iPhone20\,0_18.2_31D37_Restore.ipsw
```
- Only select BuildManifest once for both SEP and BB.
- Ensures you don't select incorrect files: The program will ensure you have a working FutureRestore build. You can only select .iPSW files for target firmware, .BBFW files for baseband, etc.
- Option to connect to GitHub and check if your version of FutureRestore is the latest version.
- **Download FutureRestore** will automatically fetch the latest FutureRestore for your operating system, extract it, and select it.
- **Exit Recovery** button to run `futurerestore --exit recovery`
- **Exit Recovery** button to run `futurerestore --exit-recovery`
- **Stop FutureRestore** to kill the FutureRestore process. Button dynamically changes to "Stop FutureRestore (Unsafe)" while the process is running. Pop-up to confirm killing the process if it's currently running.
- Automatically launch with **Dark or Light mode theme** (not supported on Linux).
- **Error parsing** such as iBEC, APTicket-APNonce mismatch, unable to place device in recovery mode. Will show a pop-up with some help and a link on where to get help.
![Error Parsing Example](.github/AP%20Nonce%20Error.png?raw=true "FutureRestore GUI iBEC Error")
![Error Parsing Example](.github/AP%20Nonce%20Error.png?raw=true "FutureRestore GUI AP Nonce Error")
- **Automatically retry** FutureRestore only once if error received is "unable to place device in recovery mode."
- Inline **GUI progress bar** for downloading SEP, BB, Sending Filesystem, etc.
- Automatically **saves all logs** to `/[Home]/FutureRestoreGUI/logs`. Never worry about accidentally closing terminal, forgetting to paste your terminal to pastebin, etc.
- **Current task** text field to simply show what FutureRestore is doing.
- Log **smart autoscroll** when scrolled to the bottom.
- Optionally share logs automatically to help improve FutureRestore
- If you like terminal, you can use this to simply **generate the command and copy it** with one click
- **Automatic dark mode** supported for MacOS, Windows 10, and some Linux distros
- If you like terminal, you can use this to simply **generate the command and copy it** with a few clicks
- **Automatic dark mode** supported for macOS, Windows 10, and some Linux distros
- **Pwndfu** restore and **onboard** blobs (with a supported FutureRestore build)

## Settings

- **Share logs**: Shares logs automatically to help develop FutureRestore.
- **Preview command**: Preview the final FutureRestore command. You can then choose to copy and/or run the command.
- **GUI updates**: Automatically checks for updates for this program on launch.
- **FutureRestore Beta**: The Download FutureRestore button will download the latest beta asset of FutureRestore.
- **GUI themes**: Choose between system theme, force light, or force dark theme.

## Usage
Expand All @@ -69,20 +72,20 @@ See [how to use FutureRestore](https://ios.cfw.guide/futurerestore).
4. Choose your desired arguments. See [this table](https://github.com/m1stadev/futurerestore#help) for an explanation of arguments.
5. Baseband and SEP (choose 1 each):
1. If the latest Baseband and/or SEP firmware is compatible with your target version, select **Latest Baseband**/**Latest SEP**.
2. Choose **Manual Baseband**/**Manual SEP**, and select your desired **Baseband** and **SEP** (BBFW and IM4P), along with a BuildManifest (.PList).
3. If your device is Wi-Fi only (no cellular/calling ability), select **No Baseband**.
2. Otherwise, choose **Manual Baseband**/**Manual SEP**, and select your desired **Baseband** and **SEP** (BBFW and IM4P), along with a BuildManifest (.PList).
3. If your device is Wi-Fi only (no cellular/calling ability), select **No Baseband**. If it does not have a Secure Enclave, select **No SEP**.
6. **Start FutureRestore**!

- You can take your device out of recovery mode with **Exit Recovery**, which will run `[futurerestore] --exit-recovery`
- You may kill the FutureRestore process while it is running, but it is considered unsafe. Do not press the **Stop FutureRestore** button while the button's text indicates that it is "Unsafe."
- You can take your device out of recovery mode with **Exit Recovery**, which will set `auto-boot` to true and reboot the phone.
- You may kill the FutureRestore process while it is running, but it is considered unsafe. It is strongly recommended to not press the **Stop FutureRestore** button while the button's text indicates that it is "unsafe," unless you know what you are doing.

## Third-Party Assets

Download FutureRestore using the button included in the GUI, or manually from [here](https://github.com/m1stadev/futurerestore/releases). Download target iPSW from [iPSW.me](https://ipsw.me) or [iPSW.dev](https://ipsw.dev).
Download FutureRestore using the button included in the GUI, or manually from [here](https://github.com/m1stadev/futurerestore/releases). Download target iPSW from [iPSW.me](https://ipsw.me) or [iPSW.dev](https://ipsw.dev).

## Troubleshooting

For FutureRestore related issues, refer to #futurerestore-help in the [r/jailbreak Discord server](https://discord.gg/GaCUYSDGt9).
For FutureRestore related issues, send a message in #support in the [official FutureRestore support server](https://discord.gg/96wCSnwYVX).

For GUI related issues, open an issue in the GitHub [issues section](https://github.com/CoocooFroggy/FutureRestore-GUI/issues).

Expand All @@ -94,8 +97,8 @@ git clone https://github.com/CoocooFroggy/FutureRestore-GUI.git
```

#### Building:
Build a .jar with `gradle shadowjar`. Requires Java 11 or later.
Build a .jar with `gradle shadowjar`. Requires Java 11 or later. Class `Main`, method `main` is the entry point of this program. Please do not touch Not an actual Number.

Package to a Windows .msi, Mac .app, or Linux .deb, .rpm, app-image with JPackage from Java 14 or later (continuous integration releases use Java 15).

Pull requests are welcome. For major feature requests, please open an issue to discuss what improvements you would like to see.
Pull requests are welcome. For feature requests, please open an issue to discuss what improvements you would like to see.

0 comments on commit d7e7a1c

Please sign in to comment.