76°F

Aaron Parecki

  • Articles
  • Notes
  • Photos
  • Analyzing the iPhone Location Log File

    April 20, 2011

    Today at Where 2.0, two data scientists announced a discovery that iPhones are recording GPS positions into a hidden file on the device. I'll save a summary for an update of this post, but go read the original article for now.

    I downloaded the logs from Amber Case's iPhone, and have been looking through them to see what's there. Turns out it's a lot more than just the cell tower positions of the phone. There's also a list of all wifi access points the device has seen, as well as the best-guess position of each wifi access point!

    There also seems to be a table in the database containing a record of all the requests that other programs have made for your location, which includes the app's bundle ID. Here's a snippet of the logs:

    MCCMNCLACCIRSSIARFCNPSCRSCPECN0OperatorTransmitBundleIdTimestampLatitudeLongitudeHorizontalAccuracyAltitudeVerticalAccuracySpeedCourseConfidence
    310410569832067187-19721414967AT&T-1325045574.11904937.39194315-121.97732501666747.421633549763453.273893356323270.28100137579970.0-1.090
    310410569832067187-1972141410912AT&T-1com.geoloqi325044683.1898437.3916252333333-121.976906347.421633549763435.274089813232470.28100137579970.0-1.090
    310410569832039667-19721276764AT&T-1com.localmind.ios325043720.46491637.4044454-121.9751501162.95795319434228.2493667602539228.3436732562420.0-1.090
    310410569832039667-19721276725AT&T-1com.naveenium.foursquare325024994.16863337.4042630166667-121.975922583333162.95795319434228.2504062652588228.3436732562420.0-1.090
    310410569832070748-15121809613AT&T-1com.apple.camera324957354.6112937.3848867333333-121.995491966667162.95795319434228.3031120300293228.3436732562420.0-1.090
    310410569832068368-197211809914AT&T-1com.alamofire.gowalla324956280.78680537.3848867333333-121.995491966667162.95795319434228.3031120300293228.3436732562420.0-1.090
    310410569832052127-197214648912AT&T-1com.google.GoogleLatitude324940590.28854537.4049282-121.976459016667162.95795319434228.2496871948242228.3436732562420.0-1.090
    310410569772497652-14385299719AT&T-1com.apple.Maps324879306.75140537.5537628166667-122.30979746666776.356885915378346.2922878265381113.175756567520.0158.090
    310410569762757485-19721252899AT&T-1com.yelp.yelpiphone324873997.28152537.7768964333333-122.3948506162.95795319434250.9832305908203228.3436732562420.0-1.090

    The Bundle IDs of the apps that requested location are clearly visible, and it also shows where the phone was when the app requested the location. This suggests to me that the purpose for these logs is not malicious on Apple's part at all.

    I also observed that the timestamps of the logs in the CellLocation table were not very granular. There seemed to be batches of 30-50 significantly different locations at a time, with anywhere from 1 to 12 hours between timestamps. My guess after asking Amber about her syncing habits, is that the timestamps correspond to the date the phone was synced with the computer, not necessarily the date the timestamp was recorded. This is speculation at this point, and I will hopefully be able to come to a better conclusion after some more analysis of the data.

    If it in in fact the timestamp of the sync, this would seem to further contradict the notion that Apple is covertly tracking your every move, since location data is far more useful when it contains a timestamp associated with it. This data says something more like “Here are all the cell towers the phone has seen since it was last synced.” I'm not sure exactly what purpose this would serve.

    Some of the other database tables that piqued my interest included:

    WifiLocation - a database of all wifi hotspots seen, their mac addresses and latitude/longitudes

    Fences - my guess is this corresponds to Apple's CLRegion API, which allows iOS developers to define fences which trigger a method when the user crosses the boundary.

    Harvest - All tables ending in Harvest correlate with the different location tracking types, Cell, CDMA, Wifi, etc. These tables track requests made to the various location providers.

    So far it's been a lot of fun to look through this data, and I'm looking forward to continuing to play with the data. Many thanks to Pete Warden and Alasdair Allan for pointing out this log!


    Aaron Parecki is the co-founder of Geoloqi.com, a private, real-time location sharing platform. Geoloqi allows you to securely track your location and you always have complete control over who can see your location. You can leave yourself a Geonote at a place which will be sent to you next time you're there. Geoloqi has an API which lets you download all of your location history, as well as build fun apps on top of the platform!

    Wed, Apr 20, 2011 10:39pm -07:00
Posted in /articles

Hi, I'm Aaron Parecki, Director of Identity Standards at Okta, and co-founder of IndieWebCamp. I maintain oauth.net, write and consult about OAuth, and participate in the OAuth Working Group at the IETF. I also help people learn about video production and livestreaming. (detailed bio)

I've been tracking my location since 2008 and I wrote 100 songs in 100 days. I've spoken at conferences around the world about owning your data, OAuth, quantified self, and explained why R is a vowel. Read more.

  • Director of Identity Standards at Okta
  • IndieWebCamp Founder
  • OAuth WG Editor
  • OpenID Board Member

  • 🎥 YouTube Tutorials and Reviews
  • 🏠 We're building a triplex!
  • ⭐️ Life Stack
  • ⚙️ Home Automation
  • All
  • Articles
  • Bookmarks
  • Notes
  • Photos
  • Replies
  • Reviews
  • Trips
  • Videos
  • Contact
© 1999-2025 by Aaron Parecki. Powered by p3k. This site supports Webmention.
Except where otherwise noted, text content on this site is licensed under a Creative Commons Attribution 3.0 License.
IndieWebCamp Microformats Webmention W3C HTML5 Creative Commons
WeChat ID
aaronpk_tv