When the iPhone 3GS was initially released, Apple did not have enough time to fix the 0x24000 Segment Overflow in the S5L8920. However, in order to flash an exploited LLB and jailbreak the iPhone 3GS, one of the following needs to be done:
- Find a new iBoot exploit every time a new firmware is out.
- Find a way to bypass the ECID checks.
- Find another bootrom exploit that allows unsigned code executing via USB (Pwnage 2.0-like)
Apple added a new tag to the IMG3 File Format called ECID. The ECID is unique to each phone, and its signature is being checked. With this method, Apple attempts to block downgrades once newer firmware becomes available, unless you have a dump of your old firmware's unique IMG3 or signed certificate. Therefore, iBoot exploits won't be so useful for tethered jailbreaks, because such exploits will be closed in new firmwares. .
The issue with this is that, even with the 0x24000 Segment Overflow still in bootrom, an iBoot exploit is still needed to actually flash the exploited LLB. If Apple uses this ECID stuff to block downgrades, then a new iBoot exploit will be needed whenever they fix the last, so that the 0x24000 Segment Overflow can be applied. This is because Apple could choose to not let you upload an older, exploitable iBEC/iBoot/iBSS to the device.
There are methods to help keep your downgrading ability, though.
- If it was cached prior to 3.1's release, 3GS owners can save a file which contains the signature of the 3.0 iBSS containing their ECID, using the purplera1n website.
- Saurik's servers are actively caching the necessary files. Instructions to use the servers are included.
- The SHSH associated with an ECID can be also saved by running TinyUmbrella. TinyUmbrella allows the user to restore to whatever version is associated with that SHSH file permanently. This is based on the aforementioned service Saurik provides remotely from his server(s).
Firmware 3.0 for iPhone 3GS
Firmware 3.1 for iPhone 3GS
Firmware 3.1 can be jailbroken using
- PwnageTool 3.1.3 (Mac only), provided that the device was previously jailbroken on 3.0/3.0.1.
Firmware 3.1.2 for iPhone 3GS
Firmware 3.1.2 for iPhone 3GS can be jailbroken using
Firmware 3.1.1/3.1.2 for iPod Touch 3G
It is currently possible to jailbreak all devices that have/had 3.1/3.1.1/3.1.2 using
Firmware 3.1.2/3.1.3 for iPhone 3GS and iPod Touch 3G
Firmware 3.1.3 for iPhone 3GS (both bootroms) and iPod Touch 3G can be jailbroken using