It was pretty hard coming up with a title for this post. I did all sorts of horrible and appalling things to my iPhone this afternoon. However, swapping out the SIM and deactivating the iPhone was probably at the top of the list, so it won. Having the Scissors Sisters singing "I can't decide whether you should live or die" in the background was a fantastic inspiration for this exercise. And yes, the iPhone lives.
Peeking at iPhone data with iPhoneInterface
I started out by giving iPhoneInterface a test run. After popping over to #iphone on irc.osx86.hu, I followed instructions, downloaded a copy of the source, compiled up the utility and tried it out at the command line. (If you want a copy of the source, drop a note with a usable e-mail address in the comments.)
The utility quickly recognized my iPhone and offered a simple help menu of commands
iPhoneInterface v0.3.2 built on Jul 12 2007
Waiting for phone... established.
iPhone state: Activated
type "help" for help
help - this, also help startservice and help readvalue
ls - list directories
cd - change directory
mkdir - make directory
rmdir - remove directory
deviceinfo - get device info
fileinfo - get file info
readvalue - read a value
activate - activate iPhone with plist
deactivate - deactivate iPhone
startservice - start service on iPhone
enterrecovery - Enter recovery Mode **WARNING: YOU'LL NEED TO RESTORE**
quit - exit shell
For anyone familiar with the command line (and if you've gotten this far, you probably are), it was easy to navigate around the iPhone folders using cd and list them with ls. At the main level, the directories looked like this:
The parent directory (..) leads nowhere. DCIM stores all the pictures you snapped from your iPhone. iPhoneDrive was created by the ecamm utility I reviewed recently and had all the data files I'd stored there. iTunes_Control three subfolders: Artwork, Music and iTunes corresponding more or less to a normal iPod structure.
Unfortunately, there was no access I could find to the underlying OS X system folder.
Deactivating my iPhone and reactivating it with iPhoneActivatorTool
Next up, after reviewing the possible iPhoneInterface options, I decided to deactivate my iPhone. Just to be safe, I decided to swap out my SIM first. Grabbing my trusty paperclip, I popped out the good SIM and replaced it with another, fresh, unused one. I then instructed iPhoneInterface to deactivate the phone using the deactivate command. (My picture of the results is at the top of this post.)
This is, of course when I noticed that little bit about "activate iPhone with plist" option. Plist? What plist? A few seconds of frantic googling later, I came across This Anderson Technologies post about how to activate your iPhone without AT&T service. It included a tool (iPhoneTool.zip) including that all-necessary plist. I downloaded the tool, unzipped it, and ran it according to the instructions on the post.
iPhoneActivatorTool 1.0 2007-07-12 12:27:11.683 tool Found iPhone Device: 1
2007-07-12 12:27:11.684 tool Connecting...
2007-07-12 12:27:11.703 tool Checking Pairing...
2007-07-12 12:27:11.737 tool Starting device session...
2007-07-12 12:27:11.856 tool ActivationState: Unactivated
2007-07-12 12:27:11.857 tool Deactivating your iPhone...
2007-07-12 12:27:11.880 tool New ActivationState: Unactivated
2007-07-12 12:27:11.881 tool Activating your iPhone...
2007-07-12 12:27:12.002 tool New ActivationState: MismatchedICCID
2007-07-12 12:27:12.003 tool Your iPhone was successfully activated.
Notice that bit about the mismatched ICCID? That's because of the SIM swap. The iPhone was reactivated but still complained about the SIM. So I swapped out to the original SIM and guess what it said? Um.... This:
So I did what anyone would do. I launched iTunes, which immediately recognized it and reactivated it and stopped complaining about the SIM. Shortly after I made a couple of calls just to be sure.
Are there lessons to be learned here? Sure there are but my iPhone is working and anyway, aren't you glad we try this stuff out here at TUAW before you do?
Thanks to all the great #phone irc folks, especially speedyAZ and appleweed.