Notice: I have neither posted nor updated any content on this blog since the mid 2010's. (😱) Please check out the homepage and my bio, for more recent information.
Loud thinking from the mind of Mike Tigas.
Notice: I have neither posted nor updated any content on this blog since the mid 2010's. (😱) Please check out the homepage and my bio, for more recent information.
To catch up: last week, a couple O’Reilly analysts discovered a database file on the iPhone that appears to track the location of the phone, over time. They also released a companion program to view the data, on any computer used to sync an iPhone.
Inspired by this piece in The Atlantic, I downloaded the iPhoneTracker application to take a look at my own data. Below is my full location track over a map of the United States.
(Note: I intentionally reset my iPhone and removed my backups so I could “start clean” in May 2010. This is unfortunate, but I think the following map would have rendered exactly the same since I’ve repeated road trips and routes over the past few years.)
Of note:
For fun, here’s a map of my trip to the New Jersey / New York City area last June.
Unimpressed with the granularity of iPhoneTracker’s maps at high-zoom (example), I decided to take apart the data myself. (Python’s native sqlite3 support helped. I’ll likely publish some source code when I follow-up on this.)
Here’s a very rough map of every point my iPhone stored in the Spokane area: blue points from the “CellLocation” table (likely AT&T cell signal transmitters), red points from the “WifiLocation” table (likely a list of every access point seen).
(Compare to iPhoneTracker’s version.)
And, for good measure, a detail view of Downtown Spokane:
The above images are fairly rough: I’m not filtering duplicate MAC addresses, nor am I taking into account the accuracy of any of the data points. I do no date filtering or time-based analysis — it’s just a mass of points. But, I think visualizing the density of information stored on my device is interesting nonetheless. There are at least 10,000 data points in the above maps, dating as far back as the end of June last year.
As an en masse set of points, the data isn’t nearly as damning as the “location tracking log” moniker would suggest — there are no telltale “dense spots” to give away locations I frequent. But, as I said, it’s a rough view of the data and not representative of an actual attempt to run forensics.
Where can I go from here?
It turns out that, much like it’s easier to write a long blog post than it is to make the same point succinctly, it’s difficult to write software that is straightforward. […]
Another word for this problem is cleverness: to quote another one of the C hackers, “Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”