As most jailbreakers (and many non-jailbreakers) know, with the iPhone 3GS Apple implemented a new "security" feature which gives Apple an unprecedented amount of control over what firmware we can run on our phones. Because the 3GS requires authorization before accepting firmware, it is possible for Apple to recall past firmwares essentially requiring anyone who needs to restore his iPhone to upgrade to the latest firmware. Members of the jailbreak community have developed several workarounds for this problem. By saving the signature hash (SHSH) for your iPhone either to a remote server run by Jay Freeman (Saurik) or locally on your computer, you can guarantee that you will be able to restore to the current OS version even should Apple later decide to stop allowing it. Even if you don't jailbreak, you should get your SHSH on file. There are at least two reasons even non-jailbreakers should take the steps now to get their SHSH cached: 1) Imagine that some future version of the OS breaks or removes some feature of the current OS on which you rely (this happened to many people with the 3.0 tethering hack). It is impossible to predict what future bug or feature change might make you want to downgrade. 2) You will be preserving the possibility of jailbreak, something even non-jailbreakers should do as it could significantly increase the value of your device at resale. In either of these cases, it might be essential for you to restore your phone to a previous firmware, something you won't be able to do unless you are prepared. Anyone Can Get His 3.1.3 SHSH On-file in Cydia! I have created this guide to dispel a widespread misconception: that it is only possible to get your SHSH on file if you have a currently jailbroken phone. This is simply not true. If you don't jailbreak, you cannot use the method most jailbreakers use to get their SHSH on file, but there are two work-arounds which will accomplish the same thing but which do not require your phone to be jailbroken. By following one of these two methods, it should be possible for anyone -- regardless of current firmware version, bootrom version, or current jailbreak status -- to get his 3.1.3 SHSH on file with Saurik. 1) Using The Firmware Umbrella Benefits: Stores your SHSH locally as a backup to Cydia Creates Local Backup: Yes This method has the added advantage of creating a local backup of your SHSH in addition to getting your SHSH on file in Cydia. This is done using free software called The Firmware Umbrella. The steps are as follows: For Windows: 1) Download and unzip the latest version of The Firmware Umbrella from http://thefirmwareumbrella.blogspot.com/. 2) Double click Umbrella.exe to run it. 3) Enter your phone's ECID into the first box (follow steps 1-6 in this tutorial to find your ECID). 4) Choose iPhone 3GS - 3.1.3 in the Device Version dropdown menu. 5) Choose Saurik - Cydia in the SHSH Repository dropdown. 6) Click Submit. For Mac: 1) Download and unzip the latest version of The Firmware Umbrella from http://thefirmwareumbrella.blogspot.com/. 2) Open Umbrella.dmg and copy the file Umbrella.app to your hard drive. 3) Run Umbrella.app 4) Enter your phone's ECID into the first box (follow steps 1-4 in this tutorial to find your ECID). 5) Choose iPhone 3GS - 3.1.3 in the Device Version dropdown menu. 6) Choose Saurik - Cydia in the SHSH Repository dropdown. 7) Click Submit. This will accomplish two things in once step: Saurik's server will download and save your 3.1.3 SHSH (along with the information it will need to request any future version's SHSH) and Umbrella will download a copy of the SHSH from Saurik's server and save it to your computer. 2) Using iTunes and a Hacked hosts File Benefits: Fewer steps than Umbrella; doesn't require you to know ECID. Creates Local Backup: No There is one other way that you can get your 3.1.3 SHSH on file with Saurik. This method does not require you to download any software or to jailbreak your phone, but it does require that you edit the hosts file on your computer and have a copy of the 3.1.2 firmware file (you can download it here. 1) Open the file C:\Windows\System32\drivers\etc\hosts (Windows) or /etc/hosts (Mac OS X) and edit it by adding the following entry to the bottom of the file: Code: 184.108.40.206 gs.apple.com 2) Plug in your iPhone and open iTunes. 3) Hold down shift (Win) or option (Mac) and click restore. 4) Browse to your copy of the 3.1.2 firmware (not the 3.1.3 firmware). 5) Click OK. Please note: you will get an error message. This is expected. Because Apple is no longer signing 3.1.2, you will not be able to restore, and Saurik's server will return an "device ineligible" error. Your phone will not be restored to 3.1.2. This unsuccessful request will, however, have placed your ECID on file with Saurik's server and will place you in the queue for 3.1.3 SHSH. You should have your 3.1.3 SHSH on file within a day or so. If you need to restore to 3.1.3 in the meantime, simply do so using iTunes. iTunes will send the 3.1.3 SHSH request to Saurik's server, which will request it immediately and pass it back to you so that you can restore.