Skip to content

Instantly share code, notes, and snippets.

@zeroeth
Forked from TheRealKeto/FuturerestoreGuide.md
Created January 16, 2020 05:17
Show Gist options
  • Select an option

  • Save zeroeth/4791e0ba20c0ccea734faaa1f1574dfb to your computer and use it in GitHub Desktop.

Select an option

Save zeroeth/4791e0ba20c0ccea734faaa1f1574dfb to your computer and use it in GitHub Desktop.
A guide fully covering the process of using Futurerestore to upgrade, downgrade, or re-restore to an unsigned iOS firmware.

Futurerestore Guide

Futurerestore is a tool that allows users to upgrade, downgrade, or re-restore their iOS devices to an unsigned firmware through the usage of SHSH2 blobs. This guide will teach you how to use Futurerestore in order to upgrade, downgrade, on re-restore to an unsigned firmware.

Before continuing, keep in mind that this guide is based off of this one, and contains informtaion that can change your device's behavior, or even damage it. With that in mind, please ready the guide fully, as no one but you will be held responsible for any damage caused to your device.

Background Info

Before you begin following this guide, keep in mind that:

  • iOS 12.4.1's SEP and Baseband are fully compatible for upgrading, downgrading, and re-restoring. This means that every device can upgrade, downgrade, or re-restore to anything above iOS 12.2, and that A7 and A8(X) devices are forever "jailbreakable" as long as you have a jailbreak with saved blobs, or nonce collisions.
  • Using 12.4.1's SEP and Baseband to downgrade to anything below iOS 12.2 can result in the apperance of the "fortnight bug", a bug that causes your device to stop working 2 weeks after using Futurerestore.
  • If you're a Windows user, make sure iTunes and its drivers are installed correctly. This is critial to you as you want to avoid having the Microsoft Store version of iTunes. You should also avoid having a 32-bit system, as Futurerestore does not work on 32-bit Windows.
  • If you're planning to backup your device in order to use that backup after using Futurerestore, note that said backup must not include any jailbreak data. Modern jailbreaks have an option to "uninstall" or remove the jailbreak (known as "Restore RootFS"), and there are many tools out there that can delete your jailbreak without losing data.

Preparing to Restore

In order to upgrade, downgrade, or re-restore to an unsigned firmware using Futurerestore, there are a few things you will need to have, such as:

Once you have these nessecities, it's a good practice to put them in a folder named futurerestore, which should be created on your desktop as you'll refer to this folder very often.

If the iOS firmware containing the SEP and Baseband that is compatible with the version you're trying to upgrade, downgrade, or re-restore to is unsigned, you'll have to use a specific SEP and Baseband.

Using a specific SEP and Baseband

If you have to use a specific SEP and Baseband, you will need to extract the IPSW in order to find said files. However, these files are different across all IPSWs (in most cases). That's why it's recommended to use r/Jailbreak's Telegram Bot in order find the right SEP and Baseband files for your device.

You can run /sepbb when using the bot in order to find the correct SEP and Baseband files for your device.

Once you have these file names, use extract.me in order to extract your SEP, Baseband and the BuildManifest.plist file from the IPSW you downloaded, then put them inside your futurerestore folder.

Finding your Nonce Generator

Your nonce generator is a 16-character string used by Apple in order to authenticate a legitemate restore with their servers and your device. This makes SHSH2 blobs a critical component, as they are essensially what will allow you to upgrade, downgrade, or re-restore to an unsigned fimrware.

In order to find your nonce generator:

  1. Open 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. Copy your nonce generator, 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.

In order to change your device's current nonce generator, you can use a modern jailbreak tool, such as unc0ver or Chimera, in order to to specify your nonce generator provided by your SHSH2 blob.

In order to change, or set your nonce generator provided by your SHSH2 blob file:

  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.

Restoring

Before you begin using Futurerestore, you should keep in mind that:

  • Failing to disable "Find my iPhone/iPad/iPod" and/or having NO PLS Recovery 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 & Baseband

This method is used when the latest iOS released 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, and it is used by many.

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 specify SEP & Baseband

This method is used in case the latest iOS release contains an SEP and Baseband that is incompatible with the version you're trying to upgrade, downgrade, or re-restore to. This method comes in handy when the IPSW that contains the compatible SEP and Baseband is unsigned by Apple.

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, 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 in case you want a visual for this guide. Do note that the video uses different files, but the methods used are relatively the same as the ones mentioned here.

About this Guide

This guide was updated on September 13th, 2019, and continues to be updated. If you have any questions, head over to r/Jailbreak's Discord Server for support under their futurerestore-help channel.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment