By now you all probably know of Prometheus, the tool which allows you to restore to unsigned iOS versions using SHSH2 blobs. If you don’t know what it is, here’s a guide to restoring to iOS 12.1.2. A lot of people have encountered errors while using futurerestore. This article will attempt to help as many people as possible solve their issues.
Some of the main issues people have when trying to use futurerestore are caused because their Mac or Linux machine does not have some of the required dependencies installed. This essentially means the software that needs to be installed on your computer before futurerestore can work.
Errors and How to Fix Them
“dyld: Library not loaded: /usr/local/lib/libzip.dylib” / “Reason: image not found” / “Abort trap: 6”
This issue is usually caused because software than futurerestore depends on to run is not installed on your computer. Skip step 1 if you are using a Linux machine. If you are asked for a password at any point, just type your Mac account password and press the enter key.
- Open the Terminal application on your Mac and type in the following command:
This should open a pop-up asking you to install the Xcode Command Line Tools. Click the Install button to download and install this.
- You now need to install “homebrew” in order to install the tools required for futurerestore. To do this, type the following command into the Terminal application and wait for it to finish installing:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- Now you need to install the tools required for futurerestore. Copy and paste the commands below into Terminal (one at a time):
brew install automake autoconf libtool pkg-config libplist openssl libzip
git clone https://github.com/tihmstar/libirecovery && cd ./libirecovery && bash autogen.sh && make install
git clone https://github.com/tihmstar/libcrippy && cd ./libcrippy && bash autogen.sh && make install
git clone https://github.com/tihmstar/libfragmentzip && cd ./libfragmentzip && bash autogen.sh && make install
git clone https://github.com/tihmstar/libpartialzip && cd ./libpartialzip && bash autogen.sh && make install
- Once all of those tools have been installed, type the commands below into Terminal (again, one by one):
sudo mkdir ssl
sudo chmod 777 /usr/local/ssl
git clone https://github.com/openssl/openssl.git
- Now you should update curl. To do this type the following command into Terminal:
brew install curl
- You now need to copy and paste the commands below into Terminal (one at a time):
ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/
ln -s /usr/local/Cellar/openssl/1.0.2j/bin/openssl openssl
You should hopefully now be able to run futurerestore without any problems.
If you have any errors which are not listed here, please comment them below or contact me on Twitter @iPodHacks142 so I can add them.
Frequently Asked Questions
Q: Can I run futurerestore on Windows?
A: Yes, the latest forked version of futurerestore by s0uthwest supports both Mac and Windows.
Q: When I run nonceEnabler on my device, I get an error like “[!] failed to get the kernel base address”. What does this mean?
A: This error usually means that you are using a jailbreak that doesn’t have task_for_pid_0 (tfp0) functionality. This does, unfortunately, mean that you can’t install nonceEnabler on your phone, and can’t use futurerestore with a forced generator. Look at my guide for a list of compatible jailbreaks.
Q: I left futurerestore running for hours on my non-jailbroken device and didn’t get any collisions. Did I do something wrong?
A: The non-jailbreak method of using futurerestore is pretty unlikely to work, your device would have to randomly generate the exact same nonce as the one in your SHSH2 blob. If you have this running for more than an hour or two, its probably worth giving up.
Q: Does Touch ID work after using futurerestore to restore my device?
A: This depends on the SEP files of the current signed version by Apple, and the version you are trying to restore to. For example, the sep version for iOS 10.2.1 and 10.2 are the same, therefore Touch ID will work in this case. However, the SEP for iOS 10.2.1 is not fully compatible with iOS 10.1.1, meaning Touch ID would not work if restoring to iOS 10.1.1 with iOS 10.2.1 SEP.
Q: When I try to set a custom generator using nvram on my device, I get an error like “nvram: Error setting variable – ‘com.apple.System.boot-nonce’: (iokit/common) general error”. How do I fix this?
A: As far as I can tell, this usually occurs when nonceEnabler has either not been installed on the device, or you got an error when you tried to install nonceEnabler. Make sure to add the nonceEnabler patch to your device, or you will not be able to set custom generators using nvram.
This article may be updated from time to time, so keep checking back if your error or question is not listed here.