I often travel internationally (with no data roaming) and I've noticed that the iPhone's A-GPS is incapable of determining my location when I arrive in a new place, even if I've pre-loaded my route/maps in the maps application prior to arrival. But once I've connected to the internet - even for a few seconds - my phone is permanently able to track itself in that city, even after I've left and returned months later.
It's going to be unfortunate when I can't do this anymore because of people blowing this issue out of proportion. I hope Apple will at least provide the option of caching this data for longer than 7 days.
Well. If you are near an access point apple knows about or just by geolocating your IP address, the iPhone can still download datapoints from that central database that allow it to quickly locate you.
That file on the iphone is just a local copy of the relevant parts of the central database.
Sure. It might be 10 seconds instead of one second now, but that's a reasonable tradeoff compared to the huge log it currently makes. IMHO.
Point is that he's turning roaming off, and probably doesn't have access to WiFi in the foreign city. By having the database, you don't need a data connection at all, thus saving money.
Do you need to use AGPS? It only takes 12 minutes to download the ephemeris and almanac via the GPS satellite itself. So even without Internet connectivity, you'll eventually know where you are.
As far as I can tell, the iPhone cannot determine one's location solely from the GPS antenna. If you travel to a place where you haven't been before, location services simply won't work until you obtain internet connectivity for a few seconds.
I don't know if this is because the iPhone's GPS functionality is crippled, or if it's a software limitation. I'd imagine that if you wanted to overcome this limitation, you'd need to jailbreak your phone and use 3rd party mapping software at a minimum.
*Note: once it has located you, it will generally track you correctly while you're moving, even if you leave the area where you had internet connectivity.
Are you sure you've had 12 minutes with a clear view of the sky? Each GPS satellite carries the entire constellation's almanac. After downloading that (which is a 12.5 minute process), then you can download the ephemeris from each satellite, which takes 30 seconds. You need 4 satellites to get a location fix.
The almanac is valid for 180 days, so you only need to wait 12 minutes once. From then on, you only need the ephemeris from 4 visible satellites, which takes less than a minute to download.
It confuses me that the iPhone wouldn't be able to do this, because I can buy a $10 microchip that's the size of a dime that can do it. Give it electricity, wait 15 minutes, the location comes out the other side. I would be shocked if the iPhone were incapable of doing this.
> I can buy a $10 microchip that's the size of a dime that can do it. Give it electricity, wait 15 minutes, the location comes out the other side.
How do you know when the 15 minutes starts, though? Dedicated GPSs tell you things like how many satellites they have in view and how accurate their fix is, but dumbed-down devices like to pretend location is magic. I'd hope they'd at least provide the gritty details through CoreLocation so a user can buy an app if she wants to know which bench outside the train station to sit at sipping coffee while the phone orients itself.
You don't need to know "when it starts", it transmits in a loop, you need to collect ~12.5 minutes of that loop to get the entire almanac. (lousy software _might_ not understand unless it finds some particular preset mark in the loop, but it's not a GPS system architecture problem)
The user needs to know when the almanac is being received and when the whole thing is in when looking for a clear-view-of-sky spot to sit a while.
The best you can do with CoreLocation is set desiredAccuracy to kCLLocationAccuracyBest and wait for it to fall below 100 feet with no way to find out if it ever will.
It's a common scenario in Europe. It's not "exotic" to take a €39 train ride from Paris to Brussels to visit for the weekend.
I don't think it's a privacy concern to store such data locally on the phone. In any case, it should be resolved by letting the user decide how long to cache the data; that would make everyone happy.
How does data roaming work on European carriers? For someone traveling from the US, there could be a significant cost to using data in another country. If Europe's prices are more sane, it might not be an issue.
At the moment data roaming in Europe is still a nightmare, most providers make you pay ridiculous fees when crossing a border. The EU commissioner for IT & Telco (Nellie Kroes) recently threatened with legislation if things didn't improve and now several providers started offering some kind or "Euro roaming" subscription.
Even so, the data should not be stored in a plain text file. Doing so gives any iPhone application access to that location data. Apple claims that it manages location preferences by application, but that's not true as long as this file exists in a plain text format.
That is incorrect. The iPhone employs sandboxing, so most areas of the filesystem are not accessible to iOS applications, and this cache is in one of those restricted locations. An app on the phone cannot read this information.
However, it is included in the iTunes backups. Those can be read -- but only on your computer, not on the iPhone itself.
(An exception to the above would be a jailbroken phone: the packages installed via Cydia would not have the same restrictions, although the recent jailbreaks do not remove the restrictions on apps from the App Store.)
The location/timestamp concerns are only relevant when my phone has been stolen or somebody has unrestricted access to my computer. At that point, location tracking is only one of many many terrible things that can happen to me, and frankly it's nowhere near the most terrible. And if I'm concerned about somebody tracking me, I'm going to be most concerned about the last 7 days, not the past year. If you're concerned about the government tracking you for longer than a year, they easily have access to that data without your ever knowing they looked.
The solution is to properly protect your data on your phone and your computer.
Your solution is asinine, as I have little way to protect my "cache" of goods... it's unencrypted both on the device and in the backups (though you can encrypt backups now, there might be previous computer backups of mine that have unencrypted location data, now I have to go find and excise those).
Any malicious desktop tool can easily find the location cache in unencrypted backups. Modern Police Forensics tools (http://www.cellebrite.com/) can easily extract non-encrypted data from phones in minutes (see Michigan Police).
That Apple stored this growing set of user-data in cleartext on the device was as stupid as Sony storing their customer's personal information in cleartext (or weakly hashed) on their servers.
Either bit-recycle the information that's not immediately relevant, or strongly encrypt/sanitize it. This shit isn't rocket-science, folks. Otherwise it's a liability and potential PR nightmare in the making.
We're now still in the "wild west" of personal data records. Once these issues start to snowball and real-life consequences happen, people will clamor for litigation, which given politicians will be over-reaching and ham-fisted.
Corporations with hundreds of millions of users' personal data should stay in front of these issues unless they want to wade in a regulatory mess (see Google's mis-steps with wifi packet data).
As of right now, anyone with an iPhone can have their localization data ripped from their device in less than 5 minutes via cellebrite. It could be a coworker, police office, or immigration official.
It's going to be unfortunate when I can't do this anymore because of people blowing this issue out of proportion. I hope Apple will at least provide the option of caching this data for longer than 7 days.