OTA updates

Android devices in the field can receive and install over-the-air (OTA) updates to the system, app software, and time zone rules. This section describes the structure of update packages and the tools provided to build them. It is intended for developers who want to make OTA updates work on new Android devices and those who want to build update packages for released devices.

OTA updates are designed to upgrade the underlying operating system, the read-only apps installed on the system partition, and time zone rules; these updates do not affect apps installed by the user from Google Play.

Virtual A/B (seamless) system updates

Modern Android devices (Android 11 and after) maintain two copies of each partition (A and B) during an update. This update mechanism is called Virtual A/B with compression. While legacy A/B updates (Android 10 and earlier) kept two copies for every single partition, Virtual A/B only keeps two physical slots for boot critical partitions. The unused slot is written to directly for bootcritical partitions. Dynamic partitions have new operating system data written as compressed snapshots since their image size tends to be much larger. Compressed snapshots allows a device to simulate the experience of having two slots, while reducing space requirements. For more information about Virtual A/B OTA updates, see Virtual A/B (seamless) system updates. For a sample app that provides examples on using Android system update APIs (that is, update_engine) to install A/B updates, refer to SystemUpdaterSample (app details available in updater_sample/README.md).

Legacy A/B updates and Non-A/B system updates

Legacy A/B updates were the first version of A/B updates in Android. This update mechanism kept two slots of every single partition, but had the drawback of needing twice the storage for each partition. For more information see, A/B system updates. As of Android 15, non A/B updates are deprecated. For more information, see Non-A/B system updates.

Time zone rule updates

As of Android 8.1, OEMs can push updated time zone rules data to devices without requiring a system update. This mechanism enables users to receive timely updates (thus extending the useful lifetime of an Android device) and OEMs to test time zone updates independently of system image updates. For details, see Time zone rules.