Xiaomi Mi A1 Utilizes Android Nougat’s A/B Partitioning to Provide Seamless Updates
The new Xiaomi Android One device, the Mi A1, is turning out to be a very interesting device. This is the first device from Xiaomi that does not run MIUI out of the box. Instead, the device runs stock Android with Google Apps and a few Xiaomi add-ons, providing a Pixel-like experience at a price range and hardware package that ordinarily should not expect the same.
One of the perks of running stock Android and not MIUI is that the Mi A1 behaves much more predictably, benefiting from the several feature additions that have yet to make their way onto MIUI. One of these is Android 7.1 Nougat’s Seamless Update functionality that featured on the Google Pixel and Google Pixel XL and on later devices like the Moto Z2 Force. We’re yet to see widespread adoption of this functionality, but with more Android One devices on the way, that could soon change for the better.
What this means is that the Xiaomi Mi A1 comes with two set of partitions, where one set is utilized when the device is active, while the other set comes into play whenever a new update is to be applied. New updates are downloaded and installed onto the inactive slots while the active slots continue to do their work in keeping the phone switched on and working. When the update is finished installing, the device reboots to switch the active slot with the inactive-but-updated slot to give the user a seamless upgrade experience with little to no device downtime except a simple reboot. Since the userdata partition is shared across the slots, all downloaded apps and other personal user data remain available for either slot to use.
A/B partitions have their own set of pros and cons. Having an extra set of partitions acts as a backup in case things go wrong during an update. If the device is unable to boot into an updated slot within a few attempts, it will reboot into the older slot and the user can continue using his device while the update is retried. The seamless update experience also benefits end users who no longer have to stare at the “Android is Upgrading” screen for minutes as they wait for the update to apply.
On the other hand, A/B partitions are essentially two sets of partitions that exist when only one is really needed most of the time. As a result, the end user gets a lower amount of storage since an additional part of the phone storage is reserved for these extra partitions. This may not be a problem on devices with a large amount of internal memory as A/B partition changes need only some extra space (as the need for more space gets adjusted against the removal of the now-obsolete cache and recovery partitions).
Further, A/B partitions combined with the switch to file based encryption did pose several technical hurdles when it came to custom ROM and kernel development on the Pixel and Pixel XL. Magisk still does not provide official support to the Google Pixel and Google Pixel XL, though work is on to remedy this and users can install an unofficial build. A/B partitions even continue to work against the community as far as rooting the Moto Z2 Force is concerned.
Additionally, if you are curious to see the changes the Xiaomi Mi A1 brings to the table, Xiaomi has posted the full system image for the device on its website. The system image available is for version N2G47H.7.8.23 (Android N) and comes in at 1.28GB in size.
The Xiaomi Mi A1 goes on its first sale on 12th September in India.
What are your thoughts on the Xiaomi Mi A1 and its use of Nougat’s A/B partitioning layout for seamless updates? Let us know your thoughts in the comments below!