LineageOS 15.1 now supports A/B devices starting with the Motorola Moto Z2 Force
One of the more exciting changes that Android Nougat 7.0 brought was the introduction of A/B dual partition scheme for devices launched with this OS version. This change tackled how Android system updates are applied to devices, with the aim to provide a seamless upgrade experience to the user where a simple and quick reboot brings them into the updated OS. This change also added the benefit of a failsafe which ensured that at least one workable booting system remains on the device during an OTA update, allowing devices to “rollback” to the older system if an OTA fails to boot.
Unfortunately, not every device that has received Android 7.0 supports this A/B dual partition scheme. This A/B partition scheme is mostly seen on devices that originally shipped with Android Nougat 7.0+, as updating a device to Nougat and then supporting this change would require a repartitioning, which was considered a risky proposition by many OEMs. Here is a list of devices that support A/B seamless updates. Alternatively, you can also manually check whether your device supports seamless updates.
While the A/B dual partition scheme is largely well received, it did pose a challenge for the custom ROM community. A/B devices did not come with a recovery partition as the Android system did not have a need for these partitions, so the community had to adapt its ways. TWRP v3.1.0 was released with support for A/B devices, while Magisk brought support for A/B devices with version 14.1.
Now, LineageOS 15.1 is adding in support for A/B devices. Support was delayed on 15.1 as the LineageOS team was working to fix their addon.d script. This script is responsible for backing up GApps and Lineage’s SU addon, and it needed modifications to properly work with A/B devices. The following people were involved in making this development happen (apologies if we missed anyone.)
Contributions to making A/B support possible for LineageOS 15.1
- XDA Recognized Developer invisiblek – Wrote addon.d-v2/backuptool_ab and contributed original patches to for the A/B updater
- XDA Senior Member npjohnson – Maintained addon.d-v2/backuptool_ab and implemented some fixes. Worked with external projects (OpenGApps/Magisk) to help get them compatible with the new tool.
- XDA Senior Member abhishek987 – Maintained addon.d-v2/backuptool_ab, helped debug/fix it along the way,
- gmrt – Set up the A/B seamless updater, added support for a variety of A/B functions in Updater, build.prop exposure to start releasetools for A/B, switch to unresttrict update_engine (WIP)
- XDA Recognized Developer tdm – Brought Lineage recovery up, the platform to ship on A/B as the built-in recovery
- XDA Recognized Developer raymanfx – various recovery patches to allow for installing old style zips and newer payload style zips, some AVB tool work, making addonsu A/B compatible
- XDA Senior Member intervigil – Android Verified Boot logic, and tool to disable/deal with it
- XDA Inactive Recognized Developer Rashed97 – addon.d contributions and platform login
Initially, only the Motorola Moto Z2 Force (nash) has been added to the roster, with support expected for more devices in the future. The Moto Z2 Force’s build will roll out tomorrow. The Z2 Force’s build is being maintained by XDA Senior Member npjohnson.
We expect the following devices to soon receive support once all of the device-specific bugs have been fixed:
In fact, we expect the Xiaomi Mi A1 to receive support very soon given the comments here. Likewise, a bug related to the Bluetooth MAC needs to be fixed before the build for the Essential Phone will land. We’ll keep you updated once the official LineageOS 15.1 builds for the other A/B devices start to roll out.