How /e/OS updates are rolled out
EditWhen a new /e/OS version is published, it is not offered to every device at the same time. It is released in waves: a small share of devices first, then more and more, until everyone can install it. This is called a staged rollout.
If your device does not show the update yet, nothing is wrong. Check again in a few days, the update will reach your device automatically.
Why
Every /e/OS release is downloaded by a large number of devices. Spreading these downloads over several days keeps the load on our servers reasonable and keeps the download fast for everyone. It also lets the team watch how the first waves behave before the update reaches all devices.
How it works
For each release, the team sets a rollout percentage: for example 25 % means that one device out of four is offered the update. The percentage is then raised step by step up to 100 %.
- The choice is stable: once your device is offered an update, it stays offered. Raising the percentage only adds devices, it never removes any.
- The choice is different for each release. Being among the first devices for version 4.2 does not mean being among the first for version 4.3, so the early updates are not always received by the same people.
- Pressing Check for updates again does not change the answer: your device is offered the update when its turn comes, not before.
- Devices connected to the test channel are not part of the rollout: they are offered every build as soon as it is published.
Get the update sooner
If you do not want to wait for your turn, you can connect your device to the test channel. It offers every build right away, without the rollout. Follow How to enable the OTA test channel server to switch it on, then check for updates in the Updater.
The test channel is mostly used by testers, and its builds are not meant to be used by default. You can leave it at any time, see How to disable the OTA test channel server.
What your device sends to the server
To split the devices in waves, the server needs something that tells two devices apart, without knowing who owns them. When the Updater asks if an update is available, the request contains:
- the device model (codename) and the version currently installed, which the server needs to find the right update;
- a random identifier, generated on your device the first time it boots (a random UUID prefixed with
anon), used to pick the wave.
About this identifier:
- it is random: it is not computed from the IMEI, the serial number, the MAC address, an account or any other data of your device or of you;
- it is not linked to any account: you do not need an account to use /e/OS and the Updater does not know about it;
- it is reset by a factory reset: after one, your device gets a new identifier and is considered a new device;
- it is used to pick the wave.
The Updater is open source: you can check in its code how the identifier is generated, in Utils.generateRandomID().
Frequently asked questions
My friend has the update and I do not. Is something broken? No, your devices are probably in different waves. Yours will get it automatically, without any action.
Can I get the update right now? Yes, by connecting your device to the test channel, see Get the update sooner. Otherwise, it will arrive on its own when your turn comes.
Is my device tracked? The identifier says nothing about who you are: it is random and tied to no account. See also Anonymous calls to Google servers for the other connections made by /e/OS.