| <html devsite> |
| <head> |
| <title>OTA Updates</title> |
| <meta name="project_path" value="/_project.yaml" /> |
| <meta name="book_path" value="/_book.yaml" /> |
| </head> |
| <body> |
| <!-- |
| Copyright 2017 The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| |
| |
| <p> |
| 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. |
| </p> |
| |
| <p>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 <em>not</em> affect applications installed by the user |
| from Google Play. |
| </p> |
| |
| <h2 id="ab_updates">A/B (Seamless) system updates</h2> |
| <p> |
| 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 <em>streaming A/B</em>. For more information |
| about OTA updates for A/B devices, see |
| <a href="/devices/tech/ota/ab/index.html">A/B (Seamless) System |
| Updates</a>. For a sample app that provides examples on using Android |
| system update APIs (i.e., <code>update_engine</code>) to install A/B |
| updates, refer to |
| <a href="https://android.googlesource.com/platform/bootable/recovery/+/master/updater_sample/" |
| class="external">SystemUpdaterSample</a> (app details available in |
| <a href="https://android.googlesource.com/platform/bootable/recovery/+/master/updater_sample/README.md" |
| class="external"><code>updater_sample/README.md</code></a>). |
| </p> |
| |
| <h2 id="nonab_updates">Non-A/B system updates</h2> |
| <p> |
| 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 |
| <a href="/devices/tech/ota/nonab/index.html">Non-A/B System Updates</a>. |
| </p> |
| |
| <h2 id=time-zone-updates>Time zone rule updates</h2> |
| <p> |
| 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 |
| <a href="/devices/tech/config/timezone-rules">Time Zone Rules</a>. |
| </p> |
| |
| </body> |
| </html> |