Great article here about the Google v Skyhook lawsuit. Tons of interesting information about the relationship between Google and Android Handset makers.
Plenty of others will write about the heavy-handed approach that Google is taking with handset makers, and how it doesn’t feel very “open” for a company that touts it’s openness that over and over.
What I want to talk about is an interesting technical explanation for the problems Google was having, and potentially part of their motivation for throwing down the hammer on Motorola.
A central point that Google kept making in these documents is the concern about contaminating their own location database with information from Skyhook. Here’s why I think their concern is legitimate.
Any modern smartphone uses typically 3 different methods (or a combination of these) to determine your location:
1) The location of the cell towers
This differs between CDMA and GSM, but the basic idea is that the cell phone can know where the cell towers that it’s taking to are, and use those locations to determine it’s approximate position.
2) Wifi Access Points
This method, made popular by Skyhook, uses your wifi antenna to “see” which wifi access points are visible, and at what signal strength. That data is sent to the wifi location database (Skyhook or Google) and a location is returned. This location is approximate, and relies on the service provider collecting massive amounts of data with GPS and wifi antennas, typically by driving around or using cell phones as data collection devices.
3) GPS
By using a GPS receiver in the phone, the phone can get it’s exact location on earth, typically within a few meters.
There are lots of reason to pick one method over another. The most common is battery requirements. Using a cell tower uses the least battery because that radio is always on anyway. You don’t have to use extra power. Wifi is used because it’s faster to get a location and typically uses less power than GPS. It’s also typically more accurate than cell tower triangulation (much more so on CDMA). Finally, GPS will always give you the most accurate location, but it uses the most battery power, takes the longest time to get a location (usually), and doesn’t work well (if at all) if you don’t have a clear view of the sky.
The problem that Google seems to have had with Motorola using Skyhook in their phones is that the Skyhook locations were being reported as a GPS location by the phone.
Now, it’s important to realize that Google uses their phones as a wifi location database collection tool (well documented in the lawsuit documentation, above). Here’s how that process works:
- First, get a GPS fix that’s accurate
- Second, take a look at all the wifi access points you can see, and their signal strengths.
- Finally, send that signal data, along with the GPS fix, to Google.
The problem that Google was having was that the phone could think that it had a GPS fix when in fact all it had was a Skyhook location approximation. This means that Google would be populating it’s own wifi location database with Skyhook locations. This would be both potentially inaccurate and potentially lawsuit inducing if Skyhook thought that it was intentional or through fairly obvious negligence.
You can argue about whether or not Google should be building it’s database through all these Android phones or not. But it seems pretty clear that from a technical perspective there were some good reasons to not let Skyhook be used in this way. Whether they decided to throw down the hammer on Motorola about this was based on this technical reason or more nefarious intents someone else will have to decide.
Either way I wouldn’t be surprised if future versions of Android ship with Skyhook’s wifi location service built in, but without sending that data back to Google and instead working in tandem with Google’s own location database building desires.