Home | History | Annotate | Download | only in 11_updatable-software
      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