There is an extremely well-defined divide between phones from Google and phones from any other company when it comes to updates. While a few exceptions exist, you know that you can only expect a timely Android update if you're using a phone recently sold by Google. In short, unless your phone says Nexus or Pixel on the back of it, getting updates can be as random and unpredictable as rolling dice.

Whenever we start talking about the update situation, someone will mention that Google can do it faster because it isn't going through the carriers and the companies that make the phone hardware. There is a lot more at play here, but a look at how a Google Android update is born and delivered should make for a fun conversation!

Two misconceptions

Let's start by addressing two things most of us get wrong: 1) The number of devices sold makes a big difference. 2) Carriers and manufacturers aren't in the picture.

Building a software update for one phone is the same as building a software update for one million phones. There are differences in the deployment because more people are downloading it and more errors can happen, but changing the code and testing how everything works is completely independent of how many phones that will use it are in the wild.

Android on a Nexus 5X is the same as Android on a Nexus 6P or Pixel.

Android is not developed in a bubble and it isn't tested in one, either. A manufacturer is still involved in an update for a Pixel or Nexus phone. Someone works with the vendors that make the individual components and get everything working as expected and sort out the licensing, and then it's tested with input from a lot of other companies, like big software vendors and carriers. Verizon (for example) places a pretty high value on its network and would blacklist a particular phone quickly if it caused trouble. Google gets Verizon to have a look before that can happen even though the phone in question may not be branded specifically for Verizon.

What we really mean here is that Google is the only company writing the software for an Android update on a Nexus or Pixel phone. This isn't technically correct either, but it gets the message across. This is Android the way Google made it with no major changes.

The deployment

Google is pretty good at this internet stuff. It has built a FOTA update (Firmware Over The Air) system into Android that's simple and robust. An application in the system software pings a server, and if the response indicates that an update is available a special download manager service starts and grabs the file. The files are hosted by Google for almost every Android phone.

Your phone is assigned an update slot based on your unique device ID and a bit of random number generation. By not making the update files available to everyone at the same time, download servers aren't crushed by demand and if a critical error is uncovered the rollout can be stopped.

An update is deployed for almost every other phone this same way.

How an update is developed

This is the important part.

All updates, even Nexus or Pixel updates, have manufacturer and carrier involvement. They all get rolled out the same basic way through Google Android update servers. How the updated code is delivered by the people writing it to the people in charge of building software is where Google has a distinct advantage.

When an update is "finished" by Google it's still not finished for Samsung.

The people involved in building Android for a Nexus or Pixel phone basically use the Android code the way it is written. Building Android from the source code isn't difficult at all. A few commands given to a computer that's been properly set up to compile Android is all that's needed to build all the parts into software that can be copied to a phone. The "hard" work is done by the folks writing and changing the code itself.

Phones sold by Samsung or LG or any other company aren't using the code the way it is written. That means they can't just download the updated parts and build their software like Google can. This is especially apparent for those monthly Android security patches, which need to be adapted to work with the custom operating system companies build using Android as the base.

The way Google handles the source code and builds updated software for their own phones isn't drastically different from the way anyone else does it. Developers make changes and add features to the Android source. Google Hardware takes that code and works with the companies that make the parts inside the phones to get it running well on each model, then makes it available to the public through the beta program.

The step Google Hardware doesn't have to do — work these base layer changes into the code for a custom operating system — is what gives a Nexus or Pixel phone an edge when it comes to waiting for an update.

This is unavoidable when you have different companies building different software from the same base code. The goal is a rich ecosystem built from different companies that offer very different experiences while still being compatible with Android at the feature and app level. We wouldn't want it any other way.

Android Nougat