Android devices in the field can receive and install over-the-air (OTA) updates to the system, application 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/or time zone rules; these updates do not affect applications 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 (i.e., 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.