iPhone 3.1 now jailbroken
Two nights ago, the iPhone dev team announced that the jailbreak for iPhoneOS 3.1 on the 3GS is now available albeit only to users with an already jailbroken iPhoneOS 3.0. I am such a user, and I’d been champing at the bit waiting to the upgrade but not wanting to lose my jailbreak, so I was eager to get started. I basically followed the excellent instructions on iClarified.com.
I’ve understood that one of the challenges is that the new iPhone 3G S has some hardware change (so these remarks do not apply to the iPhone 3G or original model) whereby iTunes requires to authenticate with Apple’s server any firmware image before it will install it. One consequence is that it’s no longer possible to downgrade. So if you upgrade to 3.1, you cannot downgrade back to 3.0, as Apple is no longer authenticating the 3.0 ipsw image. And of course you cannot load non-Apple ipsw. I’m not sure how they got around this for the new jailbreak.
- Update all applications in iTunes
- Update all applications on iPhone
- Transfer purchases from iPhone to iTunes
- Sync
- Backup iPhone
- Restore from backup. This forces iTunes to tag the backup with a timestamp, and it will be kept even after subsequent backups, rather than overwritten as is normally done.
- Download PwnageTool 3.1.3
- Have iTunes download only, not install, the iPhoneOS update. Copy update file.
$ cp ~/Library/iTunes/iPhone\ Software\ Updates/iPhone2,1_3.1_7C144_Restore.ipsw ~/pwn - Copy PwnageTool to disk and run in expert mode, opening Apple’s vanilla ipsw, and saving the new custom ipsw.
- Put iPhone into recovery mode.
- Note 1: Recovery mode (instructions here) is different from DFU mode (instructions here). I tried this several times in DFU mode (with a black screen) thinking I was in recovery mode. Every time iTunes failed to update with the custom ipsw. Luckily I did finally guess that there was a difference between the two, and that I was in the wrong one. But then I couldn’t figure out how to exit DFU mode, so I thought I had no choice but to restore to Apple vanilla 3.1 ipsw since the 3.0 ipsw are no longer authenticated by Apple’s server. I almost panicked and did the vanilla 3.1 restore, which would have killed my chances at a jailbreak for now, and possibly forever. Finally I did get out of DFU mode through some combination of home and power button.
- Note 2: iClarified’s instructions for getting into recovery mode (hold home and sleep/wake until screen goes black, continue holding home and release sleep/wake) did not work for me. I used these instructions (turn off, hold home button while plugging in to iTunes) at ihackintosh instead.
- Once the iPhone is in recovery mode, plug in to iTunes, it will prompt you that your are in recovery mode. Do not hit the restore button! I did this the first time I jailbroke, resulting in a complete wipe of my iPhone (not too big a problem if you backed up). My buddy did this last night. Instead you must option-click, to open a file browser dialogue. Navigate to your custom ipsw.
- As all photos, apps, and music are gone, we must now sync.
- Backup again. If you skipped step 6, this backup will overwrite your pre-upgrade backup.
It was a lot of steps, and it took a long time. I was at it pretty much all night. But it’s done. I now have a jailbroken iPhone 3G S running iPhone OS 3.1. I do note that my baseband firmware (Settings -> General -> About: Modem Firmware) is still stuck at 04.26.08, whereas new iPhone 3GSes and legitimate 3.1 upgraders have 05.11.07. So the cost of keeping the jailbreak is that I can no longer run up-to-date iPhone baseband firmware. Could that affect call quality or reception? Don’t know.
I’m not sure how much longer I’ll be willing to go through all that pain in order to have a jailbroken phone. I like having OpenSSH on my iPhone, so I can copy files to and from its filesystem, including preference files for applications I use on my phone. But it’s not something I rely heavily on. I’ve installed QuickReply, a modification to the stock SMS program which allows you to reply to an SMS without leaving the application you’re in. It’s a handy feature, but the UI is so terrible (it simply overlays SMS on top of whatever application you’re in) that it leaves me with a gross feeling.
I had enabled tethering on my iPhone 3G S using the carrier settings download at BenM’s iPhone Help Center. Tethering was a must-have feature for me, one that had kept me from getting an iPhone before, though I did finally take the iPhone plunge. With iPhone 3.0, tethering was supported by the OS, but not switched on by AT&T. BenM made it possible to toggle that setting on. Better yet, you didn’t have to pay service charges for it.
My previous phone before the iPhone, and my first smartphone, had been an AT&T Tilt (the AT&T branding for the HTC Kaiser) running Windows Mobile 6. The same thing had been possible with that phone; there’s some hidden application in the Windows System directory which turns on tethering. BenM made that possible with iPhone 3.0.
Unfortunately, it seems that iPhone 3.1 has removed the tethering preference. I’m hoping that my jailbreak status will restore it for me. I suppose it won’t be much longer before AT&T rolls out official support. I don’t much fancy paying another $15 or $30 per month for something that I only use once in a while.