Some people (namely David Pogue) have been saying that it is quite difficult to get access to this data without lots of knowledge of Linux. This is not true. Here are some simple instructions on how to get access to the raw location data kept track of by Apple. The basic idea of these steps is: Extract your backup with a backup extractor application, then read the location database file with a database browser.
Step one: Back up your iPhone using iTunes. Do not encrypt your backup as that renders it impossible to get access to the contents. If you don’t want people getting access to the contents then encrypt it. But for the purposes of this exercise, don’t encrypt it.
Step two: Get the iPhone backup extractor application. This application simply finds your backups and extracts them into a readable folder. It is available here: http://supercrazyawesome.com/ This app is only for Macs so if you have a PC or if you use linux then you might want to try this one instead: http://www.iphonebackupextractor.com/ I have not tried it so use it at your own risk.
Step three: Extract your backup! Open up the iPhone backup extractor you downloaded, select “Read Backups”, select the most recent backup from the list, and click “Choose”. Scroll down until you find the text “iOS Files”. Select this and click “Extract”. Select a location to extract it into and click “Extract Here”. It will create a new folder so you don’t have to worry about it spitting files everywhere.
Step four: Get a program to read the database file. I’m using a program called SQLite Database Browser. It is available here: http://sourceforge.net/projects/sqlitebrowser/ Another one that is popular is Base (Mac only): http://menial.co.uk/software/base/
Step five: Go to the place where you extracted your backup. You should see a folder called “iOS Files” or something similar. In that folder go into Library>Caches>locationd. In locationd you should see a file called “consolidated.db”. Open this with the database browser you just downloaded.
Step six: In SQLite Database Browser, click on the “Browse Data” tab. Select “CellLocation” from the “Table” pull-down menu. Here you will see all of the location data points. You can double click on any of the cells in the table to get copy and pastable text. You can copy and paste the longitude and latitude data into google maps to see where it is. This data is not especially useful the way it is because of how inaccurate the location data is. For each data point there is also a “HorizontalAccuracy” field which is most likely in meters. Most of them are between 500 and 1000 for me so that shows how inaccurate it is.
But this data is still very useful for someone who wants to know where you’ve been. Put it all on a map and you have a very clear path of where you’ve been. The point of this blog post is not to show how you can see where you’ve been on a map, but rather to show how easy it is to access this data. All of the software used here has been available for a long time so anyone could have had access to this information for months.
This tutorial may not seem incredibly simple for the average consumer, but this is an extremely simple procedure for any programmer with SQL experience (which is most programmers). There are many virus programmers who would love to have access to millions of people’s location information. This information is just sitting on your hard drive so it would be trivial for someone to add this capability to their PC virus. It only took the O’reily researchers a day to create their mapping application. And if you combine this information with your address book and all of your text messages that are also stored in this backup (in iOS Files>Library>SMS>sms.db) then you get a very good representation of someone and what they’ve done.