1 # 11\. Updatable Software 2 3 * [C-0-1] Device implementations MUST include a mechanism to replace the 4 entirety of the system software. The mechanism need not perform live 5 upgradesthat is, a device restart MAY be required. 6 7 Any method can be used, provided that it can replace the entirety of the 8 software preinstalled on the device. For instance, any of the following 9 approaches will satisfy this requirement: 10 11 * Over-the-air (OTA) downloads with offline update via reboot. 12 * Tethered updates over USB from a host PC. 13 * Offline updates via a reboot and update from a file on removable storage. 14 15 * [C-0-2] The update mechanism used MUST support updates without wiping user 16 data. That is, the update mechanism MUST preserve application private data and 17 application shared data. Note that the upstream Android software includes an 18 update mechanism that satisfies this requirement. 19 20 If the device implementations includes support for an unmetered data 21 connection such as 802.11 or Bluetooth PAN (Personal Area Network) profile, 22 then, they: 23 24 * [C-1-1] MUST support OTA downloads with offline update via reboot. 25 26 For device implementations that are launching with Android 6.0 and 27 later, the update mechanism SHOULD support verifying that the system image is 28 binary identical to expected result following an OTA. The block-based OTA 29 implementation in the upstream Android Open Source Project, added since Android 30 5.1, satisfies this requirement. 31 32 Also, device implementations SHOULD support [A/B system updates](https://source.android.com/devices/tech/ota/ab_updates.html). 33 The AOSP implements this feature using the boot control HAL. 34 35 If an error is found in a device implementation after it has been released but 36 within its reasonable product lifetime that is determined in consultation with 37 the Android Compatibility Team to affect the compatibility of third-party 38 applications, then: 39 40 * [C-2-1] The device implementer MUST correct the error via a software 41 update available that can be applied per the mechanism just described. 42 43 Android includes features that allow the Device Owner app (if present) to 44 control the installation of system updates. If the system update subsystem 45 for devices report android.software.device_admin then, they: 46 47 * [C-3-1] MUST implement the behavior described in the [SystemUpdatePolicy](http://developer.android.com/reference/android/app/admin/SystemUpdatePolicy.html) 48 class. 49