If you managed to catch my previous post on the iPhone Cellular Location Tracking Controversy, you saw that I did a little more research into the issue than most of the other articles. Or, at least I showed my work. So why post today? I’m going to walk through a check to see if turning of ‘Location Services’ and *not* approving any of the services to use it for a week, stopped or at least reduced the amount of data recorded.
Here is what I did…. and at the end of the article, we’ll both know the results.
Syncing the iPhone to laptop
Connected my phone to the laptop at 08:49, and specifically told iTune to sync. Once that was done, I changed to the iPhone backup directory:
Looking for updated files
:Backup me$ cd /Users/me/Library/Application\ Support/MobileSync/Backup
Next, I checked to see which directories had been most recently updated:
:Backup me$ ls -ltr total 0 drwxr-xr-x 1929 me staff 65586 Mar 16 2010 21562bef54882a56a05f4047db0dd1ea95783af1 drwxr-xr-x 1323 me staff 44982 Apr 2 08:16 d56742670a5e045f4a76ebb7fd93c728054c0ebe-20110402-081551 drwxr-xr-x 719 me staff 24446 Apr 25 16:33 669ed5e78e2afe06caad469294edd80d4b3261b9 drwxr-xr-x 1371 me staff 46614 Apr 26 08:49 d56742670a5e045f4a76ebb7fd93c728054c0ebe
Locating the Manifest files that contain filename for the consolidated.db data file. This netted 4 database files. The one I am most interested in is the one created during the sync at 08:49 this morning.
:Backup me$ find . -name 'Manifest.mbdb*' -exec ls -l {} \; -rw-r--r-- 1 me staff 226086 Apr 2 08:16 ./d56742670a5e045f4a76ebb7fd93c728054c0ebe-20110402-081551/Manifest.mbdb -rw-r--r-- 1 me staff 167152 Apr 2 12:21 ./669ed5e78e2afe06caad469294edd80d4b3261b9/Manifest.mbdb -rw-r--r-- 1 me staff 167022 Apr 25 16:33 ./669ed5e78e2afe06caad469294edd80d4b3261b9/Snapshot/Manifest.mbdb -rw-r--r-- 1 me staff 232090 Apr 26 08:49 ./d56742670a5e045f4a76ebb7fd93c728054c0ebe/Manifest.mbdb
Changing to the directory, I ran the python script that lists contents of the db, and it’s data files, looking for the true name of the consolidated.db. There are over 1300 data files in that directory. It looks like the data file name remains unchanged (4096c9ec676f2847dc283405900e284a7c815836).
:Backup me$ cd ./d56742670a5e045f4a76ebb7fd93c728054c0ebe :d56742670a5e045f4a76ebb7fd93c728054c0ebe me$ ls -1 | wc -l 1369 :d56742670a5e045f4a76ebb7fd93c728054c0ebe me$ ~/phonedb2.py | grep consolidated -rw-r--r-- 00000000 00000000 19128320 1303587917 1303587917 1301716372 (4096c9ec676f2847dc283405900e284a7c815836)RootDomain::Library/Caches/locationd/consolidated.db
File located, copy and compare to previous
Now that I know where the file is, I’m going to copy it to my home directory, and compare it to the other DB files I’ve saved off over the last week. Looking at the list, you can see that the size of the file has not changed, since I started to track this last week. Now, that does not necessarily mean there are no new records in the table, but, it’s a pretty decent indication that it does not. But, an examination of the table, and comparison to the data from the last extract will quickly tell the tail!
:d56742670a5e045f4a76ebb7fd93c728054c0ebe me$ cp 4096c9ec676f2847dc283405900e284a7c815836 ~/iPhoneTracking.3.db :~ me$ ls -ltr iPhone* -rw-r--r-- 1 me staff 19128320 Apr 21 10:19 iPhoneLocation.1.db -rw-r--r-- 1 me staff 225280 Apr 21 10:21 iPhoneLocation.2.db -rw-r--r-- 1 me staff 19128320 Apr 21 13:23 iPhoneLocation.4.db -rw-r--r-- 1 me staff 19128320 Apr 21 15:13 iPhoneTracking.1.db -rw-r--r-- 1 me staff 19128320 Apr 22 14:24 iPhoneTracking.2.db -rw-r--r-- 1 me staff 19128320 Apr 26 09:16 iPhoneLocation.3.db
Comparing the data. 22-APRIL vs. 26-APRIL.
I simply turned off Location Services on my phone last week, after storing the snapshot on 22-APRIL. During that time I used several apps that use some sort of location information, and in the cases where I was prompted to provide location services, I declined.
But first things first. I think it’s important to show that there is more than just the controversial CellLocation data in this database file. Here is the full list of tables included in consolidated.db
:~ me$ sqlite3 iPhoneTracking.2.db (this is the file from 22-APRIL) SQLite version 3.6.12 sqlite> .tables CdmaCellLocation CellLocationCounts CdmaCellLocationBoxes CellLocationHarvest CdmaCellLocationBoxes_node CellLocationHarvestCounts CdmaCellLocationBoxes_parent CellLocationLocal CdmaCellLocationBoxes_rowid CellLocationLocalBoxes CdmaCellLocationCounts CellLocationLocalBoxes_node CdmaCellLocationHarvest CellLocationLocalBoxes_parent CdmaCellLocationHarvestCounts CellLocationLocalBoxes_rowid CdmaCellLocationLocal CellLocationLocalCounts CdmaCellLocationLocalBoxes CompassCalibration CdmaCellLocationLocalBoxes_node Fences CdmaCellLocationLocalBoxes_parent Location CdmaCellLocationLocalBoxes_rowid LocationHarvest CdmaCellLocationLocalCounts LocationHarvestCounts Cell TableInfo CellLocation Wifi CellLocationBoxes WifiLocation CellLocationBoxes_node WifiLocationCounts CellLocationBoxes_parent WifiLocationHarvest CellLocationBoxes_rowid WifiLocationHarvestCounts
The table that is supposed to contain the data, is CellLocation. Lets show what is in the last 5 records entered in that table. Here are the fields, then the last 5 records:
sqlite> .header ON sqlite> select * from CellLocation limit 1; MCC MNC LAC CI Timestamp Latitude Longitude HorizontalAccuracy Altitude VerticalAccuracy Speed Course Confidence22-APRIL
sqlite> select Timestamp,Latitude,Longitude,HorizontalAccuracy,Speed,Confidence from CellLocation order by Timestamp desc limit 5; Timestamp|Latitude|Longitude|HorizontalAccuracy|Speed|Confidence 325110108.640637|47.24654626|-122.43737727|2164.0|-1.0|70 325110108.640637|47.24717628|-122.43819308|500.0|-1.0|50 325110108.640637|47.24570667|-122.43808859|2138.0|-1.0|50 325110108.640637|47.2472279|-122.43625974|1550.0|-1.0|70 325110108.640637|47.24575543|-122.43641382|500.0|-1.0|5026-APRIL
:~ me$ sqlite3 iPhoneTracking.3.db SQLite version 3.6.12 sqlite> .header ON sqlite> select Timestamp,Latitude,Longitude,HorizontalAccuracy,Speed,Confidence from CellLocation order by Timestamp desc limit 5; Timestamp|Latitude|Longitude|HorizontalAccuracy|Speed|Confidence 325110108.640637|47.24654626|-122.43737727|2164.0|-1.0|70 325110108.640637|47.24717628|-122.43819308|500.0|-1.0|50 325110108.640637|47.24570667|-122.43808859|2138.0|-1.0|50 325110108.640637|47.2472279|-122.43625974|1550.0|-1.0|70 325110108.640637|47.24575543|-122.43641382|500.0|-1.0|50
CONCLUSION
Based on the evidence collected from my phone, it indicates that turning LOCATION SERVICES OFF DOES STOP CellLocation LOGGING!. So.. there you have it.. My research. I’ve shown my work. Explained my methodology. You can trust me or not, but if you have some evidence, beyond some huckster’s article, that indicates I’m wrong, PLEASE let me know! If I missed something, I want to correct my research and conclusion.
As always, you cell phone may vary.