iPhone 3G Upgrade to iOS 4.2.1 – with SIM Unlock!

Background

Despite the availability of iOS 4, until today I had kept my iPhone 3G running on OS 3.1.3. The main reason I held off from upgrading the OS was in order to retain my third party software unlock (requiring jailbreaking the phone to install), which allowed me to remove my AT&T SIM card and put in a SIM card from another provider, as I did with my recent trip to Germany.

Actually, I could have upgraded to iOS 4.0.x and retained my unlock, but there are HUGE performance issues with that OS on a 3G. iOS 4.1 solves many of the performance issues (though I’ve still seen complaints about the speed), but its stock baseband (modem firmware) is not unlockable.

According to this video, the latest release of iOS 4.2.1 solves the performance issues in 4.0.x and 4.1 (oh, and it also solves the annoying DST bug in 4.1). My goal was to upgrade to 4.2.1 if I could keep the unlock, so with my eventual plan to upgrade to the iPhone 4, I would be able to “retire” the iPhone 3G for use as an overseas travel phone.

After the 4.2.1 release, the unlock tool was updated to support those who had upgraded to 4.1 and 4.2.1.  But rather unlocking the stock 4.1 and 4.2.1 baseband, it instead used an existing exploit which requires updating to the baseband from iPad 3.2.2 (!), and there is no going back on the baseband update.  Furthermore, there were reports of some people losing their GPS after the baseband upgrade! So there’s no way I was going down that road!

How I Upgraded

The alternative was to create a custom IPSW file which allows upgrading the OS 4.2.1 while retaining the original unlockable baseband.  The problem for me was that Pwnage Tool 4.1.3 Unlock Edition to do this is only available for the Mac. A friend was kind enough to lend me her Mac for about 15 minutes to do this, and the process was quite easy.  After the IPSW file was generated, the Pwnage Tool asked me to put the phone in DFU mode. Instead, I called it quits, figuring I would go through the rest of the process on my Windows machine in the comfort of my home.

But after continuing the process at home, I got the dreaded 1600 error in iTunes. After many tries, I was able to use iREB to get around the 1600 error, but then I got the 21 iTunes error.  And it was then where I realized the “error” of my ways – DFU mode in Pwnage Tool is different than “regular” DFU mode.

So then I followed this procedure, which involved reinstalling the stock 3.1.3 firmware, jailbreaking with Redsn0w 0.9.4 (not Spirit as I had previously used!), putting the phone in recovery mode (not DFU mode!), and then pressing Shift-Restore and selecting the 4.2.1 custom firmware.  The ultrasn0w unlock from Cydia worked fine and all looked good – until I discovered I lost my GPS, even though I hadn’t upgraded to the iPad baseband!

Later when I used Redsn0w 0.9.6b5 for Windows to jailbreak my iPad iOS 4.2.1, I noticed there was an option to put the device in pwned DFU mode. So after the iPad jailbreak (which went without a hitch), I ran Redsn0w for the iPhone so I could try a fresh install from pwned DFU mode rather than recovery mode.  I had to point it to a firmware – it didn’t like the custom 4.2.1, so pointed it to the stock 4.2.1. (I was a little nervous about doing that, but I figured that just had to be done to get to the next screen.) Then on the next screen, I selected the pwned DFU mode.  After I let Redsn0w do its thing, I opened iTunes and did the Shift-Restore to the 4.2.1 custom firmware.  Now the GPS is working again on my iPhone!

Adding Multitasking and Game Center

Multitasking and Game Center are disabled for the iPhone 3G. But adding them is real easy to do if you’re familiar with iFile and WinSCP, but a pain to do otherwise:

Results

iOS 4.2.1 is pretty snappy on the 3G, and my original baseband was retained allowing the ultrasn0w unlock to work! All is working well!