This is an introductory article which explains what futurerestore is and how it works, as well as how to follow our two-part guide on using futurerestore to upgrade/downgrade your device.

Before attempting either Part 1 or Part 2 of the guide, everyone should read this article. It explains whether the guides apply to you, and if they do, which ones you should follow, as well as making sure that you fulfil the requirements for it to work. Not everyone can use futurerestore.

What is futurerestore?

The futurerestore tool was originally developed by tihmstar, though it contains many pre-existing internal components from other authors, and the most recent working versions are maintained by other developers. It is a command-line tool which can upgrade, downgrade, and restore Apple devices (iOS, iPadOS, and tvOS). It mainly uses Apple’s stock restoring infrastructure, (as used by iTunes, Apple Configurator, and more recently Finder) for device restores, but is more configurable and adds options for restores which would not be permitted by Apple’s own tools.

Why is it useful?

Jailbreaks only work on certain firmware ranges, and are patched in later firmwares. So you need to be on a certain firmware to use a given jailbreak. Apple only lets you update your device to the newest firmware, not downgrade, nor upgrade to somewhere between your current firmware and the newest firmware. If you are on 13.5 and the newest firmware is 14.5, you cannot move to 13.4, nor 14.4, only 14.5, using Apple’s methods. They enforce this rule by “signing” firmwares. When you attempt to restore your device, a check is made with Apple to see whether the firmware you are moving to is currently “signed” by them. If it is, the restore completes. If it’s not, it fails. Once a firmware is no longer the newest (when a newer one has been released by Apple), they un-sign the older one, and sign the new one, forcing users to restore to the new one only.

With futurerestore a user can “trick” the signing check, allowing a restore to an unsigned firmware to complete. It does this by forging elements of the verification process, creating the impression that the destination firmware is signed, when it is in fact not signed by Apple. If you wanted to move to 14.3 in order to jailbreak there, but Apple had unsigned it and was signing only 14.5, futurerestore could fool the checks and initiate the restore to 14.3 anyway. There are additional caveats and requirements, but that is the gist of it: futurerestore is a tool which allows jailbreakers to move to their desired firmwares without obeying Apple’s draconian rules.

How does it work?

I’ve mentioned above how futurerestore hijacks the stock restore process whilst bypassing checks to restore devices, but here are some further details. Bear in mind, futurerestore has several modes and there are some special cases, but in general, the following steps would take place. A user would download the full firmware file for the firmware they wanted to move to. They would also normally have saved SHSH blobs for the destination firmware. These are what futurerestore uses to trick the restore process into thinking the restore is valid, even on unsigned firmwares. The user would then connect their device to their computer and run the futurerestore tool via a command. They will specify their blob, the destination firmware and often, but not always, various other required files too (think SEP and baseband for those who are familiar). If all goes well, futurerestore will use our blob to validate the restore, use the various other required files to pass any signing checks which we cannot fake with our blob, and then finally use the destination firmware file to restore onto the device.

Can I use futurerestore?

Not everyone can use futurerestore. What you will need depends on which destination firmware, device, jailbreak availability, and futurerestore mode you are using. In the most common case you will need to have saved .shsh2 blobs for your destination firmware (and you must have saved them while that firmware was still being signed by Apple), and a way to set a generator on your iOS, iPadOS, or tvOS device. The way to set that generator will nearly always be a jailbreak on your starting firmware, though a generator-setter or other unusual methods can be used too in rare cases.

For more details read the Types of futurerestore¬†section below, but remember: unless you are in a few very rare scenarios, you will need a current jailbreak and saved blobs to use futurerestore. If you don’t have them, be prepared for disappointment. Start saving blobs now for all current and future firmwares for all devices so you can use futurerestore next time!

If you’re looking to downgrade an older device, check out my futurerestore+libipatcher guide, which details how to use the tool on legacy 32-bit models.

Types of futurerestore

Below are the different futurerestore modes which exist, in order of decreasing usefulness to the average user. Check if you meet the eligibility criteria for any of the modes, and proceed from there.

1) Generator mode

This is by far the most commonly used way of using futurerestore, and the only way which most users will be eligible for. It works with all devices (even the newest) but generally only works to move to a range of recent firmwares. Below are the requirements to use the generator method with futurerestore.

  • A jailbreak, or at bare minimum a generator-setter, on your starting firmware. This is required to set a known generator on your device before restoring, which will match your saved blobs and allow the them to be used.
  • Valid .shsh2 blobs for your destination firmware. There are various requirements for blobs to be valid; read our general and A12+¬†guides on the subject to find out more. Many tools exist to save blobs. You can take your pick, but the blobs must be saved while the destination firmware is still signed, must be valid, and will probably need to be saved with a generator and/or an Apnonce, depending on your device.
  • Access to a Mac, Linux, or Windows computer. A third-party Windows tool does exist, but is not official and may have unique issues. Using a VM (virtual machine) can also cause problems; I recommend Windows users borrow a friend’s laptop, or use a free copy of Ubuntu.
  • The most recent version of the futurerestore tool.
  • The downloaded firmware file for your unsigned destination firmware.
  • SEP (and possibly baseband) compatibility between any firmware currently signed by Apple and your unsigned destination firmware. In general, SEP and baseband are compatible for a few firmwares either side. For example, if 14.5 is signed by Apple, we will use the SEP (and baseband) from 14.5 with futurerestore, and we can move to a firmware such as 14.3 or 14.4 because they are compatible. We cannot move to 12.4 because the 14.5 SEP (and baseband) are not compatible with 12.4, and there is no firmware currently signed by Apple which is compatible with 12.4. If none of the SEPs (and basebands) which Apple is currently signing are compatible with your destination firmware, you cannot use the generator method with futurerestore. You can check SEP (and baseband) compatibility for recent firmwares, but for a device-specific confirmation, and for older devices, I would still recommend a full search on jailbreak forums.
  • (Optional, but recommended): The downloaded firmware file for a currently signed firmware, which is compatible with your destination firmware as outlined above. This is not always necessary, but can avoid difficulties and is sometimes required.
  • Time and patience, and our iDB guides on how to use futurerestore.

2) Apnonce collision mode

This mode does not require a jailbreak, but does require specific devices and firmwares. If you have a recent device and firmware, and/or don’t have blobs saved with specific Apnonces which are known to recur on your device, this is unlikely to be a method you can use.

  • An A7 device on 9.1-10.2 or 10.3b1 (for Recovery Mode restores), or any A7, A8, or A8X device released after late 2015 on any firmware (for DFU mode restores). These are the only device/firmware combinations which experience nonce collisions. No other devices/firmwares will work with the Apnonce collision mode.
  • Valid .shsh2 blobs for your destination firmware. There are specific requirements for blobs to be valid with this mode; they must have been saved with the specific nonces which your device generates often. You must know which Apnonces collide on your device/firmware, and have saved blobs with those Apnonces, not¬†with a standard generator like you would for Generator mode. Many tools exist to save blobs. You can take your pick, but the blobs must be saved while the destination firmware is still signed, must be valid, and must be saved with a custom colliding Apnonce.
  • Access to a Mac or Linux computer. A third-party Windows tool may be released at some point, but will not be official and is not currently working. Using a VM (virtual machine) can also cause problems; I recommend Windows users borrow a friend’s laptop, or use a free copy of Ubuntu.
  • The most recent version of the futurerestore tool.
  • The downloaded firmware file for your unsigned destination firmware.
  • SEP (and possibly baseband) compatibility between any firmware currently signed by Apple and your unsigned destination firmware. In general, SEP and baseband are compatible for a few firmwares either side. For example, if 14.5 is signed by Apple, we will use the SEP (and baseband) from 14.5 with futurerestore, and we can move to a firmware such as 14.3 or 14.4 because they are compatible. We cannot move to 12.4 because the 14.5 SEP (and baseband) are not compatible with 12.4, and there is no firmware currently signed by Apple which is compatible with 12.4. If none of the SEPs (and basebands) which Apple is currently signing are compatible with your destination firmware, you cannot use the generator method with futurerestore. You can check SEP (and baseband) compatibility for recent firmwares, but for a device-specific confirmation, and for older devices, I would still recommend a full search on jailbreak forums.
  • (Optional, but recommended): The downloaded firmware file for a currently signed firmware, which is compatible with your destination firmware as outlined above. This is not always necessary, but can avoid difficulties and is sometimes required.
  • Time and patience, and our iDB guides on how to use futurerestore.

How to use futurerestore to move to an unsigned firmware

If you fulfil the requirements and have the files ready, you can move onto the guides. There are two parts to the guide, the vast majority of people must follow both:

Generator method:

If you¬†currently have a jailbreak¬†and you want to move to a different firmware with futurerestore using the¬†generator method,¬†you must¬†follow¬†Part 1 &¬†Part 2 of the guide.¬†This is the recommended method, and the one nearly everyone will need to use. If you have a current jailbreak or generator setter, have saved blobs with a generator, and/or have an A12+ device which requires blobs saved with an Apnonce, this is the one for you. If you don’t know if this is you, but have saved blobs somewhat recently using somewhat recent tools, this is also you.

Nonce collision method:

If you¬†currently have no jailbreak,¬†and you want to try to move to a different firmware with futurerestore’s¬†nonce collision method,¬†do¬†only¬†Part 2 of the guide,¬†skip Part 1. Remember, this will not work except in very specific cases on old devices; check the Requirements¬†carefully before wasting your time.

Guides

Good luck, I hope your restore is successful! Please don’t ask eligibility questions unless you have read this article carefully first. If you have a question which is not answered in the article, let me know in the comments!