Google is enhancing an update system for Android that will ensure devices can install new OS versions and critical patch updates even when there’s no storage space.
Ars Technica spotted the change in new Android documentation for Google’s A/B or Seamless System Updates, which Google introduced in the Pixel and Pixel XL. The system is borrowed from the update engine in ChromeOS.
This seamless system allows users to continue using the device during an update and doesn’t require the cache partition to store OTA update packages.
Android device makers can implement A/B on Android 7.1 and up, but it’s not clear any have. If they did, it could help Google improve Android’s historically poor patching record.
For example, Google notes seamless updates helped ensure Pixel owners install its monthly security updates faster. As of May, 95 percent of Pixel owners were running the latest security update after one month, compared with 87 percent of Nexus users.
Seamless uses two sets of bootable partitions — referred to as slot A and slot B — with one containing a set of active partitions and the other slot containing unused partitions to roll back from in the event of an error. All update activity takes place on partitions in the unused slot.
Though it enables a better update experience, seamless still requires user storage space for downloading the update packages.
In Android 8.0 Google is adding a ‘Streaming updates’ feature to the seamless update system, which will address scenarios where devices lack space in user /data storage and only requires a sliver of space in temporary storage.
“Users don’t always have enough space on /data to download the update package, and neither OEMs nor users want to waste space on a /cache partition; so some users go without updates because they have nowhere to store the update package,” Google notes.
“A/B updates have the option of streaming the update to address this issue: streaming writes blocks straight to the B partition as they are downloaded, without having to store them on /data. Therefore, streaming A/B updates need almost no temporary storage and need just enough for roughly 100kB of metadata.”