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.

A/B (seamless) system updates

Modern Android devices have two copies of each partition (A and B) and can apply an update to the currently unused partition while the system is running but idle. A/B devices do not need space to download the update package because they can apply the update as they read it from the network; this is known as streaming A/B. For more information about OTA updates for A/B devices, see 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).

Non-A/B system updates

Older Android devices have a dedicated recovery partition containing the software needed to unpack a downloaded update package and apply the update to the other partitions. 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.