Downgrade an iPhone 4 iOS
Maybe you don’t like the features in the new Apple update. Maybe (like me) you did the new iPhone release on Tuesday and decided to jailbreak your phone this weekend. Either way, for some reason you need to downgrade your iPhone iOS.
NOTE – To my knowledge, you WILL lose all of your settings when rolling back to a previous firmware. You will still have your contacts and music folders, but will have to go back and choose all of your apps, music folders, etc, and will then have to sort your apps and folders on your iPhone. This cost me HOURS of time. Most importantly, you lose all of your SMS and call history. This REALLY upset me. I was not happy. If I could go back, I would not have downgraded my phone using this method. However, I’m documenting it anyway. SO MAKE SURE YOU HAVE READ THIS PARAGRAPH! The alternative that I found to this is Sn0wBreeze (for non iPhone 4 users). I have not yet tested this, but it looks like it will revert to a previous version of iOS and jailbreak it for you without losing your settings. If you’re still interested, read on…
Save SHSH Blobs for iOS 4 Firmware
IMPORTANT: This process is only for those who have already saved the ECIDs with SHSH to Cydia Server for iOS 4.1, iOS 4.0.1 or iOS 4.0.2 and are sure that you had saved it before the release of iOS 4.2. (Or the current firmware.)
When you try to restore your iPhone 4 to its older firmware, you will quickly realize that Apple doesn’t want you to be able to roll back the firmware. You have to save your SHSH blobs for your device manually or you won’t be able to roll back. The way they stop you from doing that is by verifying the signature of any firmware that you try to install. The firmware for the devices is signed with a unique ID known as ECID that only your device has. Apple uses the firmware version files and combines them with your ECID and generates a hash code that ONLY Apple can generate. iTunes packages the valuable information and sends it to your device. Your device then checks the information and verifies the signature (making sure it came from Apple, as it can’t be forged since the encryption is very high). Once the signature matches then the restore process can continue. If it doesn’t match, the device raises an error in the restore process and stops. Most importantly, Apple has ceased to sign older firmwares once a new one is out. TinyUmbrella sends the same exact request that iTunes sends Apple when requesting the signatures for the device to be restored. It saves SHSH signatures that your device receives from the Apple server and allows you to downgrade the OS indefinitely.
TinyUmbrella – you will need to go to TheFirmwareUmbrella website and get the latest version of TinyUmbrella. Additionally, I’m placing version 4.33.02 HERE for my future use if necessary.
Step 1: Run TinyUmbrella. (I recommend copying the file to your desktop before running the .exe)
Step 2: Connect your device and let TinyUmbrella detect it. If iTunes opens, close it and make sure it is completely shut down.
Step 3: Now Simply Hit the Save SHSH button at Top-Right side of the window.
TinyUmbrella will save SHSH blobs of the latest firmware + all those blobs that you had saved for older firmwares. I recommend that as Apple releases new firmwares that you hop on and save your SHSHs in case (for example) that you want to update to iOS 4.3 when iOS 5.0 is released. You want to keep your options open. You can only downgrade to versions that you have saved SHSH blobs.
Do the Downgrade
Downgrade iOS 4.2.1 to 4.1 / 4.0.2 / 4.0.1 on iPhone 4/3GS/3G/iPod touch and iPad :
Step 1: Download the required old ipsw firmware files. I recommend going to the iClarified website and getting the latest firmware with the Jailbreak.
For myself – here is iOS 4.1 and iOS 4.3.
Step 2: Put your device into DFU mode (not recovery mode).
- Connect your iPhone to your computer.
- Turn iPhone off.
- Start iTunes.
- Hold Power and Home buttons together for 10 seconds or so.
- Release Power button but keep holding the Home button until your computer recognizes a new USB device.
- iTunes will now recognize your iPhone.
Note: Your iPhone screen at this time should be blank (black in color), if not, then you are most likely in Recovery Mode, not DFU mode.
(Step 3 is for iPhone 4, iPad, iPhone 3GS, iPod touch 4G, 3G, 2G (MC Model) users only. If you are on iPhone 3G or iPod touch 2G (non-MC model), skip Step 3 and continue from Step 4)
Step 3: This step is applicable to iPhone 4, iPhone 3GS, iPod touch 3G and iPod touch 2G (MC model) which have their SHSH blobs (ECID SHSH) saved on Cydia for the firmware you downgrading on. If you don’t have your SHSH files saved, you cannot downgrade the mentioned devices. See “Save SHSH Blobs…” above.
- Navigate to C:\Windows\System32\drivers\etc and locate the “hosts” file.
- Mac OS X users can get to “/etc/” directory by going through “Go –> Go to Folder” from Finder.
- Open Notepad as an administrator (Windows 7 and Vista – right click the Notepad application and select “Open As Administrator”) If you don’t do this, you won’t have permissions to save the file.
- Open this “hosts” file in Notepad (for Windows) or TextEdit (for Mac OS X) and:
Replace 127.0.0.1 gs.apple.com
with 74.208.105.171 gs.apple.com
Note: I ran into some trouble installing the LATEST firmware from Apple directly through iTunes. I got the error: “update server could not be contacted”. Here is what my hosts file had to look like for it to work:
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
127.0.0.1 localhost
::1 localhost
#127.0.0.1 gs.apple.com
Step 4: You will now have to restore your iPhone, iPad or iPod touch to the firmware you downloaded in Step 1. Click on your iOS device icon from the sidebar in iTunes. Now press and hold left “alt” (option) button on Mac (Left “Shift” button on Windows) on the keyboard and then click on “Restore” (Not “Update” or “Check for Update”) button in the iTunes and then release this button.
Step 5: Now sit back and enjoy as iTunes does the rest for you. This will involve a series of automated steps. Be patient at this stage and don’t do anything silly. Just wait while iTunes installs the requested firmware on your iPhone. Your iPhone screen at this point will be showing a progress bar indicating installation progress. Now at some point, iTunes will probably throw 1004 or 1015 error at you. This is normal, just ignore this error as the firmware has already been successfully installed on the device.
Step 6: Your iPhone at this point will be stuck in Recovery Mode, showing that “Connect to iTunes” screen. To exit your device from Recovery Mode, download this program called TinyUmbrella (Windows / Mac). Run it and the click on “Exit Recovery” button. Your device will now restart normally.
Step 7: Last but not the least, you must now remove 74.208.105.171 gs.apple.com line from the host file so that you are prompted for future updates from Apple via iTunes.
Step 8: At this point, iTunes will ask you if you want to treat the phone like an upgrade or a new phone. I strongly recommend that you do not choose “New” unless you wish to start fresh and manually select all of your music, apps, etc again.