My Hackergotchi

Updated: Never — Philip's Blog

Now featuring regular updates!

Fri, 20 Nov 2009

14:36 – When location detection goes very wrong

Android-based phones use a lot of databases in the sky to determine where people are. Not only does it use tower information, it also uses information from nearby access points. Presumably, Google has a small army driving around all over the world, noting access points it finds. Maybe they're the same people who also take pictures of every building they see?

Today, my phone suddenly decided that I was in Beijing. Strange, I thought. I had no recollection of getting on a plane, the air was breathable and the people around me didn't look particularly Chinese. Indeed, there was overwhelming evidence that I was not in Beijing.

A short while later, my phone decided that I was in Brest. The one in Belarus, on the border with Poland not the one in France, or the one in Germany, both of which are at least in the same timezone as where I really am.

From Beijing to Brest in under ten minutes and yet, I don't think I went through any wormholes. In fact, I was quietly sitting at my desk near Antwerp.

Highly entertaining.

Of course, the building I'm sitting in contains an unusually high number of access points. Usually more than fifty, sometimes more than a hundred. Have Google's location soldiers been a bit too thorough collecting data near factories where wireless access points are built? Or do the databases get confused when you give them too much data? No idea. I don't think the databases or the source code used for location are publically available.

There are a number of interesting drawbacks to the phone thinking it's in the wrong location. It gets the weather (very) wrong, but I can look outside to know what the weather is like. It also helpfully adjusts the clock to its perception of local time. This would be annoying if I used Google Calendar or a similar application which (stupidly) keeps times for events local to where you add the event to your calendar, rather than local to where the event will take place. Certain websites also feel they should speak to me in a different language (and in this case, different scripts too).

Unfortunately, while you can tell the phone not to use wireless location at all, you can't tell it that you want GSM location but not WiFi location. While WiFi access points move around (possibly quite a bit) between manufacture and deployment, GSM location is a bit more deterministic.

Because the access points may move again, there's probably not much point in reporting the access points and their real location to Google. It would be much more useful to have the option to selectively disable sources of location information with more granularity.

I am realistic (cynical?) enough to know that turning location detection off probably adds zero privacy benefit to compensate for the reduced functionality (getting the right time as soon as you get off a plane, for instance) that I just leave it on.

If you're on the run for agents of an Evil Repressive Government, the first thing you need to do is ditch your mobile phone. Buy a new one (cash) if you really need to call someone. Or use a pay phone.

I think you went off on a bit of a paranoid tangent here. My Latitude currently has me right at home on the map, but in the Brussels South train station two days ago in the status info. My profile picture has gone missing apparently.
And you're still in Brest. :)
I think that the whole thing can be attributed to service malfunction.

Posted by Zombie at Sat Nov 21 01:35:04 2009
Your assumption about MAC-address-based geolocation seems to be correct.
See http://www.theinquirer.net/inquirer/feature/1563440/skyhook-web-map

Posted by florisl at Thu Nov 26 13:49:01 2009
I'm surprised Android uses WiFi MAC addresses for geo-location. Surely it's not considered a reliable source of information -- given that access-points can be easily moved around. It's obviously more reliable to use GSM/UMTS cell information.

I can't be sure but I assume the iPhone relies only on GSM/UMTS cell information for its geo-location function. Seems to work somewhat reliably (if only accurate to the nearest block) from my observation of other people's iPhones.

The common sense solution would be for Android devices to use GSM/UMTS cell information first and fall back to WiFi only if there are no GSM/UMTS signal available.

Posted by James Pole at Wed Dec 16 03:49:27 2009
James: while WiFi access points can certainly move around, the fact is that very few of them do.  Based on my casual observation of access points, I would say they're pretty much as stationary as GSM poles.

Also take into account the fact that you're not limited to "just one" access point when making a location decision.  While you're only using a single access point at a time, you can see maybe six or seven or many more in a busy street.  Any one of those may move around, but you can be reasonably sure that they won't all move at the same time.  Instead of deciding your location based on a single access point, you decide based on a set of access points you see at the same time.

Since WiFi access points are a lot more deeply deployed, they also give you a much higher resolution location.

Posted by Philip Paeps at Wed Dec 16 08:57:50 2009

Name:

Email:

URL:

Comment:


Prove that you are not a spammer: