I don’t know firsthand whether Toyotas accelerate by themselves as recently reported in the media; for sure my iPhone called somebody by itself yesterday evening. Looks like others have seen their iPhone calling random people by itself!
I was in the bathroom, very far from my iPhone when my friend called. “Hey did you just call me? Why only one ring?”. I figured he was joking but then he insisted so much and even emailed me his phone call record. So I checked mine. There was indeed an outgoing call to him which I had not initiated. He was not even the last person I had talked to.
My search for a way to extract low-level logs from my iPhone revealed all sorts of interesting information.
For starters, while it may be slightly hard for the average iPhone user to extract the info, professionals can quickly pull everything out of your iPhone even if you set a passcode:
I wonder whether people realize how much personal information their iPhone can provide.
Given that my iPhone is (ahem) mine, I delved some more into the details. I figured out that I simply had to look at the iPhone backup I already had on my hard drive.
The iPhone backup these days consists of pairs of .mdinfo/.mddata files. You may not want to get to this level of detail, but the .mdinfo appears to be a binary serialization of a plist (a standard toy in Mac OS X) which tells you the original location of the file (path) and file type information (metadata, that is). For example the call history was originally stored in Library/CallHistory/call_history.db but it is now stored in the .mddata portion.
Since the file (as seen in Notepad++) starts with SQLite format 3 it is easily read with the free tools from SQLite.org. (My friend Marco was almost offended that I did not use his SQLiteManager so he sent me a free copy of it. Thanks Marco!)
Unfortunately the raw database data (from the call table) does not help me that much. It shows my friend’s phone number, the time of call (1268706707), the duration (14 seconds), the flags (5), and the ID (244).
Starting from the end, a simple SQL query of SELECT * FROM call where id=244 locates all the calls matching any of my friend’s phone numbers (so it is the address book ID).
It seems that the flags can be either 4 or 5: incoming or outgoing. (In my database table I see one entry with flags=1507333 and I wonder if it’s some weird bug.)
EpochConverter can help converting the time to a human-readable format: Monday, March 15, 2010 7:31:47 PM.
Sadly there is no data indicating who initiated the dialing (user? application?). So I have no way to figure out if this is the first time it happens.
Watch out… It is a brave new world. Your phone may spontaneously dial and the evidence may be used against you. If you are lucky, in favor!
In the meantime, you should glue your iPhone to your body. Or something like that.