This repository has been archived by the owner on Nov 11, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
/
index.html
147 lines (136 loc) · 12.7 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<link rel="stylesheet" href="assets/css/github-markdown.css">
<link rel="stylesheet" href="assets/css/style.css">
<title>Futurerestore | Guide</title>
</head>
<body>
<input type="checkbox" onclick="darkmode()" id="switch" /><label for="switch"></label>
<div class="markdown-body">
<h1>Introduction</h1>
<p>Futurerestore is a tool that allows iOS devices to upgrade, downgrade, or re-restore to any iOS unsigned firmware, through the usage of SHSH blobs. This guide will teach you on how to use Futurerestore to upgrade, downgrade, or re-restore to an unsigned firmware.</p>
<p>Before continuing, keep in mind that this guide is based off of <a href="https://docs.google.com/document/d/1WHuwuvnkcEUCwaDuck2dy-MR7q4em38uL4_4Utx2QZ8/mobilebasic">this one</a>, and contains information that can change your device's behavior and even damage it. Note that if anything happens to your device, <strong>you</strong> will be held resposible for the damaged caused.</p>
<h2>Background Info</h2>
<p>Before you begin following this guide, keep in mind that: </p>
<ul>
<li>This guide was created to teach users (specially beginners) how to use Futurerestore in order to downgrade their devices to iOS 12.2. However, the methods used in this guide are <strong>not</strong> limited to these users only, as they are essensially the same for other firmwares.</li>
<li><strong>iOS 12.4.1's SEP and Baseband are fully compatible when attempting to downgrade to iOS 12.2.</strong> This means that you're able to use the latest SEP and Baseband without having to worry about the "fortnight bug", a bug which causes your device to stop working after 2 weeks. </li>
<li>If you're planning to backup your device in order to use that backup after futurerestoring, note that said backup <strong>must not include any jailbreak data</strong>. Modern jailbreaks have an option to "uninstall" or remove the jailbreak, and there are many tools out there that can delete your jailbreak without losing data.</li>
</ul>
<h4>For Windows users</h4>
<ul>
<li>If you're a Windows user, <strong>avoid having the Microsoft version of iTunes installed.</strong> If you have it installed, uninstall it, then download the latest iTunes release from Apple's website in order to install its drivers correctly. </li>
<li>If you're on Windows, avoid having a 32-bit system, as Futurerestore does not work on them. </li>
</ul>
<h2>Getting ready to Restore</h2>
<p>In order to use Futurerestore to upgrade, dowgrade, or re-restore to your desired unsigned firmware, there are a few things you will need, such as: </p>
<ul>
<li><a href="https://github.com/s0uthwest/futurerestore/releases">Futurerestore</a>'s latest release.</li>
<li>Your SHSH blob file from <a href="https://tsssaver.1conan.com">TSSSaver</a>, or <a href="https://shsh.host/">shsh.host</a>.</li>
<li>The IPSW from <a href="https://ipsw.me/">ipsw.me</a> contaning the SEP and Baseband that is compatible with the unsigned firmware you're trying to upgrade, downgrade, or re-restore to.</li>
</ul>
<p>Additionally, if you know you have to specify an specific SEP and Baseband, you will need: </p>
<ul>
<li>A <code>.im4w</code> file containing the boardconfig indentifier of your device. (This is your SEP)</li>
<li>A <code>.bbtw</code> file containing the iOS version number. (This is your baseband)</li>
<li>The <code>BuildManifest.plist</code> file from said IPSW.</li>
</ul>
<p>In order to obtain additional files, you'll have to extract the IPSW. You can use <a href="https://extract.me/">extract.me</a> in order to download additional files without having to extract an IPSW on your system. </p>
<p>Once you have these files, its a good practice to put them inside a folder located on your desktop, named <code>futurerestore</code>. </p>
<h3>Finding your Nonce Generator</h3>
<p>Your nonce generator is a 16-character string used by the device's bootloaders in order to authenticate a legitimate restore with Apple, which is why its so critial to have SHSH blobs saved, as they contain this string.</p>
<p>In order to find your nonce generator: </p>
<ol>
<li>Open your downloaded blob from TSSSaver, or shsh.host with any kind of text editor.</li>
<li><strong>(On Windows)</strong> Press <code>Ctrl + F</code>, <strong>(On macOS)</strong> <code>Press Command + F</code>, then search for the word "generator"</li>
</ol>
<p>Next to, or underneath, you'll find your nonce generator. Copy the 16-character string onto a text file inside your <code>futurerestore</code> folder, as you will need this string later on. </p>
<h3>Setting your Nonce Generator</h3>
<p>Now that you have found your nonce generator, its time to specify it on your device NVRAM. In order to specify your nonce generator, you will need a nonce setter. </p>
<p>Nonce setters are often applications somewhat like jailbreaks, but only grant access to your device's NVRAM in order to change your current nonce. There are many nonce setters released supporting many fimrwares. Here's a list of a few released by respected jailbreak developers: </p>
<ul>
<li><a href="https://github.com/Siguza/PhoenixNonce/releases">PhœnixNonce</a> for iOS 9.x (Created by Siguza and Tihmstar)</li>
<li><a href="https://julioverne.github.io/description.html?id=com.julioverne.nonceset">NonceSet</a> for iOS 10.x (Created by Julioverne)</li>
<li><a href="https://github.com/julioverne/NonceSet112">NonceSet112</a> for iOS 11 - 11.1.2 (Created by Julioverne)</li>
<li><a href="https://github.com/GeoSn0w/GeoNonceSetter12/releases">GeoNonceSetter</a> for iOS 12 - 12.4 (Created by GeoSnow)</li>
</ul>
<p>You can install and use a nonce setter that supports your iOS firmware by downloading the application from Cydia, or by sideloading it with <a href="http://www.cydiaimpactor.com/">Cydia Impactor</a> or <a href="https://github.com/Matchstic/ReProvision/releases">ReProvision</a>. Alternatively, modern jailbreaks, such as <a href="https://github.com/pwn20wndstuff/Undecimus/releases">unc0ver</a> or <a href="https://chimera.sh/">Chimera</a>, have an option to set your nonce generator on supported firmwares, so you can use your jailbreak tool as well. </p>
<p>In order to set your nonce generator:</p>
<ol>
<li>Open your nonce setter tool (or modern jailbreak tool).</li>
<li>Find a text field with the words "generator", "boot nonce" or "set nonce".</li>
<li>Within that region, type in your string that you saved from your SHSH blob.</li>
<li>Press "Set Nonce" (or hit "Jailbreak" if you're using a jailbreak tool).</li>
</ol>
<p>Once you've set your nonce generator, you're ready to begin the restoration process. Note that <strong>if you power off your device, or it turns off for any given reason, you will need to set your nonce again.</strong></p>
<h2>Restoration</h2>
<p>You're finally ready to start using Futurerestore in order to upgrade, downgrade, or re-restore to your desired unsigned firmware. Before you move forward, keep in mind that: </p>
<ul>
<li>Failing to disable "Find my iPhone/iPod/iPad" and/or having <a href="https://cydia.akemi.ai/?page/net.angelxwind.noplsrecovery">NO PLS Recovery</a> installed can cause the process of Futurerestore to not begin, or fail.</li>
<li>If you're device is put into "Recovery Mode", <strong>do not panic. This is entirely normal.</strong></li>
<li>If you receive any pop-ups from iTunes attempting to update/restore your device, simply hit "Cancel" and close iTunes.</li>
</ul>
<p>With that out of the way, lets cut to the chase. There are 2 ways you can use Futurerestore in order upgrade, downgrade, or re-restore to an unsigned firmware. This guide will explain both. </p>
<h3>Automatic SEP & Baseband</h3>
<p>This method is used when you are certain that the latest iOS release has an SEP and Baseband that is <strong>fully</strong> compatible with the version you're trying to upgrade, downgrade, or re-restore to. Often times, this is the most common method used by many. </p>
<p>In order to upgrade, downgrade, or re-restore using this method: </p>
<ol>
<li>Open Command Prompt/Terminal.</li>
<li>Drag Futurerestore from your <code>futurerestore</code> folder onto your terminal, then type <code>-t</code>.</li>
<li>Drag your SHSH blob from your <code>futurerestore</code> folder onto your terminal.</li>
<li>Type <code>--latest-sep --latest-baseband</code>, then drag your IPSW from your <code>futurerestore</code> folder onto your terminal.</li>
</ol>
<p>In the end, your result should look something like this: </p>
<pre><code>$ futurerestore -t [your blob] --latest-sep --latest-baseband [IPSW]</code></pre>
<p>For <strong>iPods and Wifi-Only iPads</strong>, do not specify a baseband: </p>
<pre><code>$ futurerestore -t [your blob] --latest-sep --no-baseband [IPSW]</code></pre>
<p>Once you are sure that you have the right command, hit "Enter" and the process should begin.</p>
<h3>Manually specify SEP & Baseband</h3>
<p>This method is used when the latest iOS release has an SEP and Baseband that is <strong>not compatible</strong> with the version you're trying to upgrade, downgrade, or re-restore to. The neat thing about this is that its similar to the previous method, except there are some alternations. </p>
<p>In order to upgrade, downgrade, or re-restore using this method: </p>
<ol>
<li>Open Command Prompt/Terminal.</li>
<li>Drag Futurerestore onto your terminal from your <code>futurerestore</code> folder, then type <code>-t</code>.</li>
<li>Drag your SHSH blob from your <code>futurerestore</code> folder onto your terminal.</li>
<li>Type <code>-s</code>, then drag your SEP from your <code>futurerestore</code> folder onto your terminal.</li>
<li>Type <code>-b</code>, then drag your Baseband from your <code>futurerestore</code> folder onto your terminal.</li>
<li>Type <code>-p</code>, then drag your <code>Buildmanifest.plist</code> file from your <code>futurerestore</code> folder onto your terminal.</li>
<li>Type <code>-m</code>, drag your <code>Buildmanifest.plist</code> file (again), then drag your IPSW from your <code>futurerestore</code> folder onto your terminal.</li>
</ol>
<p>In the end, your result should look something like this:</p>
<pre><code>$ futurerestore -t [your blob] -s [SEP] -b [Baseband] -p [BuildmManifest] -m [BuildManifest] [IPSW]</code></pre>
<p>For <strong>iPods and Wifi-Only iPads</strong>, do not specify a baseband: </p>
<pre><code>$ futurerestore -t [your blob] -s [SEP] --no-baseband -p [BuildmManifest] -m [BuildManifest] [IPSW]</code></pre>
<p>Once you are sure that you have the right command, hit "Enter" and the process should begin.</p>
<p>If you run into any issues during the Futurerestore process, please refer to <a href="https://therealketo.github.io/futurerestore-guide/error-codes">this</a>, which includes the most common errors you can encouter when using Futurerestore, and how to fix them. </p>
<h2></h2>
<h3>About this guide</h3>
<p>This guide was updated on <strong>August 27th, 2019</strong>, and continues to be updated with the lastest SEP/Baseband compatiblity and other info. </p>
<p>If you have any questions, head over to <a href="https://discordapp.com/invite/jb">r/Jailbreak's Discord Server</a> for support under their futurerestore-help channel.</p>
</div>
<script>
$('body').toggleClass(localStorage.toggled);
function darkmode() {
/*DARK CLASS*/
if (localStorage.toggled != 'dark') {
$('body').toggleClass('dark', true);
localStorage.toggled = "dark";
} else {
$('body').toggleClass('dark', false);
localStorage.toggled = "";
}
}
/*Add 'checked' property to input if background == dark*/
if ($('body').hasClass('dark')) {
$( '#switch' ).prop( "checked", true )
} else {
$( '#switch' ).prop( "checked", false )
}
</script>
</body>
</html>