# Futurerestore Guide
Futurerestore is a tool that allows users to upgrade, downgrade, or re-restore their iOS device to an unsigned firmware through the use of SHSH2 blobs. This guide will teach you how to use Futurerestore in order to upgrade, downgrade, or re-restore to an unsigned firmware.
Before continuing, keep in mind that this guide is based off of [this one](https://docs.google.com/document/d/1WHuwuvnkcEUCwaDuck2dy-MR7q4em38uL4_4Utx2QZ8/mobilebasic), and contains information that can change your device's behavior or even damage it. With that in mind, **please read the guide fully, as no one but YOU** will be held responsible for any damage caused to your device.
## Notes and Hints
Throughout the entirety of this guide, keep in mind that:
- **iOS 13.1.3's SEP and Baseband are NOT compatible with iOS 12.x for all devices.** This means that you're NOT able to upgrade, downgrade, or re-restore A10-A12X devices back to iOS 12.x. Attempting to use an incompatible SEP and Baseband will cause Futurerestore to fail.
- **iOS 12.4.2's SEP and Baseband are fully compatible with iOS 12.2+ for A7-A9 devices.** This means that you're able to upgrade, downgrade, or re-restore to iOS 12.2 through iOS 12.4 without experiencing the ["fortnight bug"](https://gist.github.com/TheRealKeto/39302daf6b190fa9f0f468b3326345bd), a bug that causes your device to stop working correctly after 2 weeks prior to using Futurerestore.
- A7-A8X devices are **forever downgradable** as long as you have a jailbreak with saved blobs, or [nonce collisions](https://gist.github.com/TheRealKeto/660834765a0c34a3668d8ab95d6e995c).
- It's a good practice to put anything you need in a folder named `futurerestore`, which should be created on your desktop as you'll refer to this folder very often.
- **If you're a Windows user**, make sure iTunes and its drivers are correctly installed from [Apple's website](https://www.apple.com/itunes/). This is critial for you as you want to avoid having the Microsoft version of iTunes installed.
- Avoid having a 32-bit system, as it's likely that Futurerestore will not work on said systems.
- If you're planning to restore your device using a backup (after using Futurerestore), **make sure to unjailbreak your device before creating a backup** by running the "Restore RootFS" option on modern jailbreaks, or using a tool like [Succession](https://repo.dynastic.co/package/com.samgisaninja.successionrestore). This is to ensure that nothing messes up your device during the setup process after using Futurerestore.
## Preparation
To upgrade, downgrade, or re-restore your device using Futurerestore, you'll need a few things, such as:
- Futurerestore's latest release [(from s0uthwest's fork)](https://github.com/s0uthwest/futurerestore/releases)
- Your SHSH2 blobs from either [TSSSaver](https://tsssaver.1conan.com/) or [shsh.host](https://shsh.host/) for the version you're upgrading, downgrading, or re-restoring to
- An IPSW from [ipsw.me](https://ipsw.me/) that contains the SEP and Baseband that is compatible with the version you're trying to upgrade, downgrade, or re-restore to
- **(Optional)** The specific SEP, Baseband and BuildManifest from the IPSW that are compatible with the version you're trying to upgrade, downgrade, or re-restore to
If you're unsure as to which SHSH2 blob you should use, use the one inside the `noapnonce` folder in TSSSaver or shsh.host. If that blob doesn't work when using Futurerestore, use blobs with an specific APNonce.
### Finding your SEP and Baseband
*This step is **optional** , and you don't have to do this unless you're using the ["Manually specifying SEP and Baseband"](#manually-specifying-sep-and-baseband) method in order to upgrade, downgrade, or re-restore your device*
In order to extract the SEP, Baseband, and BuildManifest from the IPSW you downloaded, use [r/Jailbreak's Telegram Bot](https://t.me/rjailbreakbot) to find the specific names for these files as they are different through every iOS version.
You can run `/sepbb` when using the bot in order to find the correct SEP and Baseband files for your device.
When you have these file names, use [extract.me](https://extract.me/) in order to extract your SEP, Baseband and the `BuildManifest.plist` file (located near the bottom) from the IPSW you downloaded and put them inside your `futurerestore` folder.
### Finding your Nonce Generator
SHSH2 blobs are a critial component when using Futurerestore, as they contain an 16-character string, or a nonce generator that will essensially authenticate or allow you to upgrade, downgrade, or re-restore your iOS device to an unsigned firmware.
If you're using blobs that were inside your `noapnonce` folder, you can find your nonce generator by:
1. Opening your SHSH2 blob from TSSSaver or shsh.host with any kind of text editor.
2. **(On Windows)** Press `Ctrl + F`, or **(On macOS)** Press `Command + F`, then search for the word "generator".
Next to, or underneath the word "generator", you'll find your nonce generator. If you didn't find your nonce generator, it means that you're using blobs with a specfic APNonce.
These blobs do have a nonce generator, however, it isn't within the blob itself. In order to find your nonce generator for these types of blobs, check the dropdown menus below.
Devices with an A9 chip and below
Try copying the provided APNonce, hit `Ctrl + F` or `Command + F` and see if it matches with the name of your blob.
| APNonce | Generator |
|---------|-----------|
| 603be133ff0bdfa0f83f21e74191cf6770ea43bb | 0xbd34a880be0b53f3 |
| 352dfad1713834f4f94c5ff3c3e5e99477347b95 | 0x9d0b5b5ff92fff23 |
| 42c88f5a7b75bc944c288a7215391dc9c73b6e9f | 0x4bb8834ba6444b50 |
| 0dc448240696866b0cc1b2ac3eca4ce22af11cb3 | 0x698337f5a79c3292 |
| 9804d99e85bbafd4bb1135a1044773b4df9f1ba3 | 0xedeeb72d7575e360 |
##
Devices with an A10 chip and above
Try copying the provided APNonce, hit `Ctrl + F` or `Command + F` and see if it matches with the name of your blob.
| APNonce | Generator |
|---------|-----------|
| 15400076bc4c35a7c8caefdcae5bda69c140a11bce870548f0862aac28c194cc | 0xbd34a880be0b53f3 |
| 833e50b9c6a4fbfbdc51144a60b4cf25be3a0a4742ca2b7bd6f5ec06905443ac | 0x9d0b5b5ff92fff23 |
| d8f682df87d812c372491b613d59795a80383f439587c0bb511ccf6865eb87cc | 0x4bb8834ba6444b50 |
##
Once you have your nonce generator for your blob, create a text docmuent inside your `futurerestore` and save it in said document. You'll use this string later.
### Setting your Nonce Generator
Your device's NVRAM already contains a nonce generator, however, that needs to change, otherwise the restoration process will fail since the nonce generator of your device needs to match with your SHSH2 blob.
You can use a modern jailbreak tool, such as [unc0ver](https://github.com/pwn20wndstuff/Undecimus/releases) or [Chimera](https://chimera.sh/), in order to set your nonce generator to your device running a supported firmware.
In order to set your nonce generator:
1. Open your modern jailbreak app.
2. Find a text field with the words "generator".
3. Within that region, type in your string that you saved from your SHSH2 blob.
4. Hit "Done", then hit "Jailbreak".
This should change the nonce generator on your device's NVRAM, and you're now ready to use Futurerestore. Note that **if you turn off your device, or it powers off for any reason, you will need to set your nonce generator again.**
## Upgrading, downgrading, or re-restoring
You're finally ready to upgrade, dowgrade, or re-restore using Futurerestore. However, before you begin, note that:
- Failing to disable "Find my iPhone/iPad/iPod" and/or having [NO PLS Recovery](https://cydia.akemi.ai/?page/net.angelxwind.noplsrecovery) installed can cause Futurerestore to not upgrade, downgrade, or re-restore your device to an unsigned firmware.
- If your device is put on "Recovery Mode", **do not panic. This is entirely normal.**
- If you recieve any pop-up from iTunes attempting to update/restore your device, **ignore them and close iTunes.**
There are 2 ways you can use Futurerestore in order to upgrade, downgrade, or re-restore your device to an unsigned firmware. This guide will explain both.
### Automatic SEP and Baseband
This method is used when the latest iOS version contains an SEP and Baseband that is **fully compatible with the version you're trying to upgrade, downgrade, or re-restore to.** This method is consider to be the **most common**, but can fail if the requirements are not met.
In order to upgrade, downgrade, or re-restore using this method:
1. Open Command Prompt/Terminal.
2. Drag Futurerestore from your `futurerestore` folder onto your terminal, then type `-t`.
3. Drag your SHSH2 blob from your `futurerestore` folder onto your terminal.
4. Type `--latest-sep --latest-baseband`, then drag your IPSW from your `futurerestore` folder onto your terminal.
In the end, your result should look something like this:
```
$ futurerestore -t [Your SHSH blob] --latest-sep --latest-baseband [IPSW]
```
For **iPods and Wifi-Only iPads**, *do not specify a baseband*:
```
$ futurerestore -t [Your SHSH blob] --latest-sep --no-baseband [IPSW]
```
Once you are sure that you have the right command, hit `Enter` and the process should begin.
### Manually specifying SEP and Baseband
This method is used when the latest iOS version contains an SEP and Baseband that is **not compatible with the version you're trying to upgrade, downgrade, or re-restore to.**
In order to upgrade, downgrade, or re-restore using this method:
1. Open Command Prompt/Terminal.
2. Drag Futurerestore onto your terminal from your `futurerestore` folder, then type `-t`.
3. Drag your SHSH2 blob from your `futurerestore` folder onto your terminal.
4. Type `-s`, then drag your SEP from your `futurerestore` folder onto your terminal.
5. Type `-b`, then drag your Baseband from your `futurerestore` folder onto your terminal.
6. Type `-p`, then drag your `Buildmanifest.plist` file from your `futurerestore` folder onto your terminal.
7. Type `-m`, drag your `Buildmanifest.plist` file (again), then drag your IPSW from your `futurerestore` folder onto your terminal.
In the end, your result should look something like this:
```
$ futurerestore -t [Your SHSH blob] -s [SEP] -b [Baseband] -p [BuildmManifest] -m [BuildManifest] [IPSW]
```
For **iPods and Wifi-Only iPads**, *do not specify a baseband*:
```
$ futurerestore -t [Your SHSH blob] -s [SEP] --no-baseband -p [BuildmManifest] -m [BuildManifest] [IPSW]
```
Once you are sure that you have the right command, hit `Enter` and the process should begin.
If you run into any issues or errors when using Futurerestore, please refer to [this](https://gist.github.com/TheRealKeto/871116a9fc6cc46393b818816a876da0), which includes documentation of the most common errors you can encouter when using Futurerestore and how to fix them.
Additionally, you can check out [this video](https://www.youtube.com/watch?v=dyQLR00WhYE) in case you want a visual for this guide. Do note that the video focuses on downgrading an A12 device, however the methods used are relatively the same as the ones mentioned here.
##
### About this Guide
This guide was updated on **November 3rd, 2019**, and continues to be updated. If you have any questions, head over to [r/Jailbreak's Discord Server](https://discordapp.com/invite/jb) for support under their futurerestore-help channel.