More a meta post, or what Kuro5hin would have called MLP (meaningless link propagation), this post started out as a comment to one of my previous posts on the iOS location caching controversy but soon expanded way beyond a comment into a full blown post.
Firstly, let’s get the conspiracy theory out of the way; this theory has been presented in a variety of ways but all of them seem to think that your iOS device is tracking your location and that the reason for this is some shadowy request from government or intelligence agencies. Perhaps the most eloquent case for this was on Frank Reiger’s blog.
Now I love a good conspiracy theory as much as the next person and Frank’s blog post was a great read. But I have to take issue with the two main points he raises. Firstly there’s “if it was a bug then it would have been fixed … it hasn’t been fixed so it can’t be a bug and must therefore be deliberate“. Secondly there’s “not only has the bug not been fixed but the file even moved location without being fixed so it must be (even more) deliberate“.
I’ve worked in the software industry for almost 25 years, many of those cutting code, and can say with hand on heart that bugs, oddities and plain wrong behaviour stay in code bases not because they don’t need to be fixed but because other factors push them down in the priority list, factors such as hard release dates, new features taking precedence and the ill defined side effects of complex software systems not being able to be fully QA’d. Just because a bug or an unforeseen side effect remains in a production code base does not make a conspiracy theory of government or intelligence agency intervention.
We also live in a world of distributed software development teams. It’s enough of a challenge to keep teams in different floors of the same building in synch; it’s even more difficult when language, time zones and different countries get into the mix. Just because the consolidated.db cache moved location again, does not make a conspiracy theory.
So all in all, nice post, great conspiracy theory but, sadly, very little to back up the assertions.
But if your iOS device is tracking or caching your location, why is the data so inaccurate in places, showing places you’re pretty sure you haven’t been or have visited only fleetingly, yet not showing places you’d think would show up, such as where you live or work?
For the answer to these questions, I’d recommend a thorough reading of Peter Batty’s excellent three posts on the topic, which actually digs into the data that is present on iOS devices, rather than making shrill conspiracy theories based on other, equally shrill, media headlines.
Peter’s posts, “So actually, Apple isn’t recording your (accurate) iPhone location“, “More on Apple recording your iPhone location history” and “The scoop: Apple’s iPhone is NOT storing your accurate location and NOT storing history” go into great detail about what the consolidated.db location data cache does contain and, more importantly, what it doesn’t.
An anonymous comment on one of Peter’s posts points to a document submitted by Apple to US Congress in July 2010, which includes the following
When a customer requests current location information … Apple will retrieve known locations for nearby cell towers and Wi-Fi access points from its proprietary database and transmit the data back to the device … The device uses the information, along with GPS coordinates (if available), to determine its actual location. Information about the device’s location is not transmitted to Apple, Skyhook or Google. Nor is it transmitted to any third-party application provider, unless the customer expressly consents
Another comment from Jude on one of Peter’s posts makes this observation …
It’s not a list of cell phone locations that you’ve been to, but the opposite, a list of cell phone locations near you downloaded to the iPhone from Apple in case you move into range of one of them. i.e. At a guess what is happening is location services identifies a cell tower and asks for its location, and is replied to with the list of locations that contains that cell tower, that list is then cached so that it does not need to be requested again.
Of course, this is only a guess based on the wide range of addresses people are seeing and how its near to, but not exactly where, the people have traveled.
So rather than iOS actively and accurately tracking you and reporting this information to some, unspecified, intelligence agency it’s actually the complete opposite; your device is actively downloading the next cell tower and, in some cases, wifi information that is near you and where you might be going to provide a better location experience. Which explains the inaccuracy of the locations people have been seeing in their version of the cache data and explains why there’s some places they haven’t been showing up in the data and why places they have been aren’t showing up.
Of course, this information still has personal value and should really be secured by iOS and not by an individual having to secure their handset and encrypt their backups but if anyone still thinks they see the black helicopters circling, it looks more and more unlikely and, as Ed Parsons pointed out, a smartphone without location just isn’t … smart.