It’s a miracle “Mango” rolled out as smoothly as it did

Since the launch of ChevronWP7 Labs – run by Chris Walsh, Long Zheng, and myself – the service has been collecting various bits of phone telemetry for reporting purposes. With a little under 5,000 phones now in its database, I wanted to share some insight into the variances of make and model names – enough to make you truly appreciate how smoothly that Windows Phone (Mango) update went out.

The ChevronWP7 Labs Unlock Client – Loading screen

The ChevronWP7 Labs Unlock Client – Loading screen

The unlock client users download and run gathers a few bits of phone data, including (but not limited to) the make and model of the device and version of running OS. You may remember the screen above – this is the step in which the client gets this data and packages it up for transmission to our service. For the techies out there, this is done via the Microsoft.WindowsMobile.DeviceUpdate component that comes bundled with with the Windows Phone Support Tool. It does a decent job at managing connected devices and grabbing data.

Anyway – let’s get to the more interesting stuff.

Going by a list of Windows Phones on Wikipedia, you’d expect to see a maximum of 20 distinct phone types in our database. (I made a tweak to this list, separating the US-based and EU-based Samsung Focus Flash.) I mean, why would I expect otherwise, right? A phone should report its make and model accurately. But a quick look in the database shows otherwise. The database contains 50 distinct phones and that only represents a tiny group of devices in the wild.

Here’s an example: Samsung currently has 5 phones in the market – the Focus, Focus S, Focus Flash, Omnia 7, and Omnia W. But looking at our database, I saw 10. Here’s a table showing what I expected and then what was actually reported via our software:

Samsung devices on the market vs. actual telemetry data

Samsung devices on the market vs. actual telemetry data

You may recall that the Samsung Focus was the cause of February update headaches, which becomes clearer with this data in hand. Word on the street is that there were undocumented differences between Samsung’s 1.3 and 1.4 revisions of the phone that Microsoft didn’t account for. Okay, creating a fix is easy enough but from an update perspective – how the hell do you identify and target in this diverse group of phones? I’m not sure how Microsoft pulled it off, but I suspect they re-engineered the February update to look for the critical differences at install time, rather than try to selectively deliver updates based on the phone’s report of its make/model – because it’s unreliable and thus useless. Not the ideal solution but from where I stand – it was their only choice.

Whom to blame is tricky – from this data, it appears while OEMs define one name, mobile operators can define another (or have the ability to change it). This theory is supported via the data. For example, Rogers – a mobile operator in Canada – does just this. Their Samsung Focus phones report a customized model name, including the letter R (for Rogers) at the end of their model name. Cute.

Samsung isn’t alone here, of course. Some interesting tidbits:

  • HTC has 7 devices on market, but our data shows 28 actual configurations (plus a bonus HTC Leo configuration missing a manufacturer tag altogether)
  • LG has 2 devices on market, but our data shows 7 actual configurations
  • Dell has 1 device on market, but our data shows 2 actual configurations
  • Nokia and Fujitsu are being good partners with 1 device on market with just 1 actual configuration.

Looking at just a tiny subset of phones in the homebrew community, it is miraculous to me that Microsoft was able to deliver an update like Mango in such a timely and orderly fashion. Major kudos.