iPhone Cellular Tracking – Redux. Can it be turned off, at all?

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  Confidence

22-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|50
26-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.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.