Two years ago, I drew up a little comparison between the duration of software support for iOS and Nexus devices, and the differences were stark. Whereas Google only committed to 24 months of OS updates on its flagship phones, Apple typically updates their iPhones for up to 5 years after release. At the time, I was somewhat hopeful that things would improve gradually over time: Google had just formalized the 24-month update policy a few weeks prior, and we were already seeing a few devices like the Nexus 4 and the 2012 Nexus 7 that were being kept up-to-date for 34 or 38 months. Furthermore, the mere existence of a 5-year auto-update promise for Chromebooks showed that Google was at least willing to commit to the work involved in keeping devices up-to-date, provided the right circumstances were met.

So now that two years have gone by, how much have things improved — if at all?

Getting our definitions straight

Before jumping in, it's best if we first go over how I've measured the support life of each device and how I'm comparing them across two platforms. There's more than one way to skin a cat, and you're obviously free to disagree with the method used, but I feel this one most closely reflects what most people think of when talking about OS updates.

The OS support life metric should reflect the number of months during which a device was running the latest version of its operating system. A "version" of an OS can mean different things to different people, but we can be comfortable in defining it to be an integer version number on iOS and a new API level on Android.

Support life should reflect the number of months during which a device was running the latest OS version.

The case could be made for a finer (by considering updates within each API level) or coarser versioning (by bundling API levels with the same Android name) on Android, but things wouldn't look much different either way and — more importantly — it wouldn't portray as good a picture of reality.

If we were to use a finer versioning, things would remain identical for every Nexus and Pixel device except the Galaxy Nexus (which got 4.3 but didn't get 4.3.1 — a bugfix update exclusively for the LTE Nexus 7) and the Nexus One (which got 2.3.6 but didn't get 2.3.7; released just 20 days later). Apart from these two, all Nexus and Pixel devices got the latest minor update within the last API level they were updated to. On top of that, minor updates within an API level usually contain mostly bug and security fixes; we're looking for something a bit more substantial from a new Android version.

On the other hand, the only device that didn't get updated to the last API level of a named Android version was the Nexus S, which got updated to Android Jelly Bean 4.1.2 (API level 16) but not to Jelly Bean 4.3 (API level 18). Android 4.3 was released nine months later and was the last version the Galaxy Nexus got, and it would be unrealistic (and unfair to the Galaxy Nexus) to say that both these devices were updated to the same Android version.

With this in mind, and for all the reasons described in our previous post, I defined a device's OS support life as the number of months between the launch of the device and the launch of the first OS version it did not receive. As an example, the support life of the Nexus 4 was the length of 35 months between November of 2012, when Google launched the Nexus 4, and September 2015, which was the month before API level 23 (Android Marshmallow 6.0) was released. The table below presents the support life durations for several iOS and Android devices. (As before, I only considered Nexus — and now Pixel — devices as the data for these are more readily available and because they are generally the longest supported Android devices.)

Looking at the numbers

It's always hard to visually parse information that's laid out in a table format, so let's convert this data into a neat infographic instead.

Bars represent the months between the launch date of a device and the month prior to the first update the device does not receive. All data is current as of October 31, 2017.

Unlike with the graph from two years ago, I decided to group regular and 'Plus' iPhone versions into one bar to make things look cleaner. You'll also notice that Nexus tablets and iPads are also missing in this version — I did make a version that included them (see below), but Apple currently supports so many iPads that the graph just becomes a visual cacophony of colors and bars that's impossible to make heads or tails of. Even then I entirely gave up on trying to add any of the eight iPad Minis and iPad Pros Apple has in its lineup.

Adding in Nexus tablets and iPads makes the graph a tad overwhelming.

Looking at these graphs, it's clear that iPhones receive a lot more OS updates than Nexus or Pixel phones. Comparing the Nexus 4 with the iPhone 5 — both released in Q3 of 2012 — we see that the iPhone's bar stretches all the way until just before the launch of iOS 11 last month. The Nexus 4's bar ends a full two years earlier, despite the Nexus 4 being Google's longest supported phone ever.

If we analyze the numbers for currently obsolete devices, we see that the average lifespan of a Nexus device (including phones and tablets) is 31.2 months. If we only consider phones, that figure goes down to just 28 months. This is much less than the equivalent numbers on iOS, which are 50.1 months for iPhones and iPads and 49.1 months for iPhones only — over 18 months difference.

On top of that, the numbers aren't much better today than they were in 2015. For Nexus devices, the average support life of all phones and tablets up until the Nexus 10 was 28.2 months — an improvement of just three months over the past two years. The divide between Android and iOS has actually widened: back then, the average support life for all iPhones up to the iPhone 4S and iPads up to the iPad 2 was only 43.9 months.

Both these phones were released in Q3 2012, but one of them only became obsolete in September

It is worth noting that averages don't necessarily give a complete picture since more recent trends tend to become more diluted. On iOS, both the iPhone 4S (2011) and the iPhone 5 (2012) received five years of OS updates, and there's no reason to assume that every iPhone released since then won't get the same treatment. The only notable exception is the iPhone 5C, which was essentially just a year-old iPhone 5 with a fresh coat of paint, and was only kept up-to-date for four years.

On the Android front, things have also improved. Using our metric, every end-of-life'd device since the 2012 Nexus 7 has gotten at least 33 months of OS support, with the Nexus 7 itself even reaching 39 months. This is actually more than Google has promised on any Android device until this year's Pixel 2 — even though users are only guaranteed two years of support, we've come to expect something closer to three. It seems like Google likes to set low expectations, which is why the Nexus 4 — which was only guaranteed updates until November 2014 — ended up being updated to Android 5.1.1, released in April 2015. (We'll have to wait to see if Google's new policy means we can expect to see devices with four years of OS support or if it is just a mere formalization of what already happens in practice.)

The fine print

Of course, in many ways, comparing OS updates on iOS to those on Android is, for the lack of a better expression, like comparing apples to oranges. I dove into these caveats in a little more detail back in 2015, and most of what was true back then still holds today.

OS updates on Android are less relevant than on iOS since systems apps are updated independently of the operating system.

First of all, we have to take into account that Android is exceptionally modular — leaps and bounds above iOS, in fact. This modularity arguably makes OS updates much less relevant on Android than they are on iOS since systems apps like the Play Store, Gmail, Maps, Calendar — and even ones like Google Play services or WebView — are all updated independently of the operating system. Not only does this mean that system apps can be updated regularly and independently of the OS, it also means that being stuck on an old OS version doesn't equate to being stuck with outdated system apps like on iOS.

On the other hand, it can take much longer for Android devices to receive an OS update compared to iOS devices. The situation is particularly dire for non-Google devices — which are typically left waiting for multiple months after a new OS version is released until an update arrives — but even on Google's phones and tablets, it will usually take days to several weeks for an upgrade to roll out to everyone. On iOS, you can expect a new iOS version to start downloading to your phone just minutes after hitting the "Check for updates" button.

Finally, it's worth noting that not all iOS updates are equal across all devices, and newer devices get a better treatment than older ones. A notable example was the iPad 2, which never got Siri support (released with iOS 5), even though it continued to get upgraded all the way to iOS 9.3.5. Generally speaking, iOS devices tend to lose features from each new iOS upgrade, whereas Android devices usually get the entire featureset. (Google has recently started making a habit of reserving some exclusive features for the latest phones in its lineup, but I'd say this is still a point in Android's favor.)

There still remains a lot to be done regarding OS support on Android, and on non-Google devices in particular. With flagship Android phones now reaching prices of almost $1000, it's not sustainable for most people to buy a new one every couple of years just to keep running the latest version of Android. Hopefully, with new developments such as Project Treble and Google's 3-year software support promise on the Pixel 2, it's possible we might finally see an Android device hit four years of OS updates in the not-too-distant future.