Saturday, September 29, 2007

Restore iPhone without Firmware Upgrade

Through a myriad of programs and lots of mucking around with my iPhone, I ended up hosing it pretty well. I'm not sure what went wrong, but it got to the point that even the original AT&T sim card wouldn't work.

The problem is I want to restore the iPhone but I don't want to upgrade the firmware to the latest 1.1.1 version since I'm hearing that it may do bad things to a hacked iPhone. Unfortunately iTunes won't ask you if you want to restore with the current version, it wants to force you to upgrade to the latest version. I then found this great article that did the trick for me. You can use a hidden option in iTunes that allows you to select the firmware version you want to restore to. You just hold down the option key (shift key on Windows) while pressing the restore button.

I've now re-virginized my iPhone! Thank you iPhone Atlas!

Now I can retry this again with the minimal number of steps. The best guide I've found is this one from MacApper.

I got down to the 'minicom' step and somehow the minicom session got screwed and I ended up with a totally non-responsive phone. iTunes wouldn't even recoginize it. It seemed like the phone was in some sort of slow motion. It would reboot after maybe 5 minutes and the home screen would show up with my custom picture of the family and everything. The phone seemed to be about as useful as a brick at this point. I then read this tip. You can restore the phone by holding down the sleep and home buttons and then release the sleep button at exactly 10 seconds (keeping the home button held down). This actually worked for me and I was able to restore my phone one more time using iTunes and the option key hack mentioned above.

Ok, this time I'm going to skip the minicom step and just use INdependence to get SSH onto the phone instead of the AppTAP method described on MacApper. Turns out this works!

Using INdependence I activated the phone, did the jailbreak, and installed ssh. I then copied over anySIM to my phone's /Applications directory like this:

$ scp -r anySIM.app root@10.0.1.200:/Applications

I also did a chmod +x on the anySIM.app directory by ssh-ing to the phone.

$ chmod +x /Applications/anySIM.app

I then restarted the phone and ran the anySIM program from the Springboard (home screen of the iPhone) and it finally worked. Whew!

The odd thing is that with this method, you don't have all the normal Unix commands on the iPhone when you ssh over to it. Even commands like ls, passwd, and rm are missing.