Some major changes are coming to Android phones – any new device that wants to ship with the upcoming Android 11 and Googles own Play Services, needs to include what is known as a virtual A/B partition scheme. This means that the device should have two copies of some of its important system partitions, with one being actively used and the other one available to be updated, without leaving the Android environment. So no more waiting around in a recovery screen for Android to apply a major update to your system and optimize all the apps.
For some of you, this might already be a reality, since the idea of A/B virtual partitions has been around for quite some time and is already adopted by a number of Android device manufacturers. However, it’s only not that it is becoming mandatory. The news comes straight from a new commit to the testing procedure, inside Googles Vendor Test Suite or VTS.
VTS is a set of automated tests that validate whether a particular Android ROM and device are compatible with Project Treble. Starting from Android 11 or API level 30, both virtual partitions and an A/B partition setup are compulsory to pass. Only devices that pass VTS can get a Google Play Services certification. Simple as that.
If you find yourself wondering what exactly all this means and why Project Treble is involved here is some background. Googles Project Treble dates all the way back to Android Nougat. What that ambitious undertaking basically achieved and made universal in the Android realm, is the introduction and mass adoption of the so-called Vendor interface.
It sits between a low-level Android AOSP core and the vendor-specific customizations to the experience, as provided by your device manufacturer and its special features, launcher, UI and such. Before that the approach was to actually modify the AOSP core itself to achieve these customizations. That really increased difficulties in updating to a new core Android OS version as every new build would have to undergo the same per-device modifications.
With a proper VI in place, the underlying Android core can simply be swapped-out for a new one, leaving all the vendor customizations still perfectly functioning on top or only requiring minor modifications. This is the standard practice and has been for a while now. Compatibility for this is checked by the aforementioned Vendor Test Suite. After which Google can issue a GMS license.
What will change, starting with Android 11 and going forward are a couple of important flags within VTS – ro.virtual_ab.enabled = true and ro.virtual_ab.retrofit = false. What these mean is that the new Virtual A/B partitions, as introduced in Android 10, alongside dynamically resizable partitions must be present and must include a full A/B partition scheme. Instead of retrofitting a legacy single-partition install.
An A/B partition scheme has certain system partitions, like /system and /product copied into two instances. One being actively booted from and used, while the other – an exact replica, which can be used to apply system updated on top of, without shutting-down Android and the main partitions. Once the update is done, a restart is all that is needed to swap one partition for the other.
This approach saves on downtime between system updates, but there is also the ability to recover from a botched update, back into the old partitions and a functioning device. The downside is the loss of storage space that is reserved for a proper A/B setup requires. This is especially problematic for manufacturers employing heavier and more thorough Android customizations.
Regardless of the particulars, if a manufacturer wants GMS going forward, these requirements will have to be met. When combined with ongoing trends to simplify and decouple other, higher-level Android app and component updates in recent years, this will definitely result in a more seamless and quicker update experience all around.