Jailbreaking used to be pretty straight forward. There was 1 device, you could jailbreak it or not with the latest firmware and even if you couldn’t use the latest firmware you could always downgrade the firmware and re-jailbreak. Then the 3G[S] came out and the whole game changed.
With the 3G[S] Apple introduced the ability to sign a firmware version, effectively letting Apple choose what versions of the firmware a 3G[S] user could install on their device at any given time. When the first jailbreak came out for the 3G[S], you were instructed to save off your ECID and your iBSS info if you were using purplera1n from George Hotz. Those that didn’t had different ways to get their ECID and iBSS information, but nobody really knew exactly how Apple was going to use this when they decided to. Then Apple updated to 3.1 and we found out what was going on. When iTunes restores a 3G[S], it sends a request to the Apple servers asking if this iPhone 3G[S] can restore to a specific version of firmware. In the past you could simply press SHIFT + the restore button in iTunes and browse to any version of firmware and it would restore to it, but this was no longer the case if Apple decided it didn’t want users to install older versions anymore.
Just as Apple was about to stop signing 3.0, Saurik got his Apple Signature Caching server online and a service called “Make My Life Easier” inside of Cydia. Users that tapped that, allowed Cydia to request from Apple valid restore signatures for each version of the firmware that is released. Very few 3G[S] users got their 3.0 SHSH blobs saved in Cydia and without those they can never restore back to 3.0. Saurik’s server was working great with the release of 3.1, 3.1.2, and onward.
A common misunderstanding is that if a user buys a new iPhone and it has 3.1.2 on it, they jailbreak and press the “Make My Life Easier” button in Cydia, that they will have their SHSH blobs for 3.1.2 saved. This is NOT so. Apple only signs the CURRENT firmware. If the latest firmware is 3.1.3, or 3.2 or even 4.0, you will never be able to get the 3.1.2 blobs and if something goes wrong you will lose your jailbreak and HAVE to upgrade to the current firmware.
So where are we today?
iPhone 2G – this can be jailbroken up and down the street. If you accidentally upgrade to 3.1.3 you can downgrade to 3.1.2 and jailbreak. Everything is as it was.
iPhone 3G – this is also the case as above, you can use redsn0w, sn0wbreeze or pwnage tool to jailbreak your 3.1.3 device.
iPhone 3G[S] (old bootrom) – if you are on 3.1.3 already, you’re out of luck. If you’re on 3.1.2 and want to update to 3.1.3 you can use sn0wbreeze to make a custom 3.1.3 firmware for you that will preserve your jailbreak.
iPhone 3G[S] (new bootrom) – If you have updated to 3.1.3 you’re out of luck. You want to stay on 3.1.2 and hope you never have to restore if you were not able to save off your SHSH blobson Cydia when you could.