There was a lot of publicity earlier this week regarding the discovery that the iPhone maintains a non-encrypted record of the device’s location. The location database file is kept on the phone and in backups made through iTunes. It is disconcerting that the existence of this location database file was not published by Apple, and that the file is not protected. An application called iPhone Tracker was created to demonstrate the magnitude of the data collected by presenting the location data on an interactive map.
Curiosity got the better of me, so I decided to run the iPhone Tracker application against my own Verizon iPhone. I discovered that the application was built for Mac OS X 10.6 only, but I use 10.5 at home. So, I launched XCode and began tweaking the project configuration to compile on 10.5. One hour later and it’s working great.
One thing that caught my attention is that there is no data in the CellLocation table that is part of the location database. There is plenty of data in the WifiLocation table. The iPhone Tracker does not use the WifiLocation table by default because, as the source code comments suggest, it is dodgy.
So, why does the Verizon iPhone not store location data from cellular networks? Is it because the Verizon iPhone uses CDMA instead of GSM? Or did Verizon request that Apple not store cellular location data? Who knows, but I find it a bit reassuring to know that my whereabouts on the cellular networks are not recorded.
Update – April 23, 2011@14:30 PDT
The Verizon CDMA iPhone does collect location data. It is stored in a separate table called CdmaCellLocation. All builds will include location data from GSM and CDMA networks, if available.
Update – April 25, 2011@20:00 PDT
I updated the XCode project to support x86 and PPC architectures. The binary builds have been updated, too.
Here are links to the Mac OS X 10.5 source project and different builds for the Cell- and WiFi-based configurations: