Android 兼容性定义文档 (CDD) 可更新软件要求设备实现 SystemUpdatePolicy 类。SystemUpdatePolicy 可让设备所有者 (DO) 应用(如果存在)控制系统更新的安装。

Android 9 允许设备所有者推迟无线 (OTA) 更新最多 90 天,增强了设备所有者控制更新的能力。此功能专注于企业所有、单一用途 (COSU) 解决方案,可让所有者在重要时段(如节假日)暂停在设备上运行的操作系统版本。

系统更新政策

为遵守 CDD 的要求,OTA 客户端必须实施行为政策。DO 可以设置下列政策,设备系统更新子系统必须遵守这些政策:

实现安装选项

Android 9 引入了专为系统更新客户端设计的 @SystemApi SystemUpdatePolicy.InstallationOptionSystemUpdatePolicy.InstallationOption 会充当政策的封装容器类。根据当前系统更新政策,某个安装选项会告知客户端如何针对传入的系统更新执行操作,以及相应操作的有效时长。安装选项可以是下列项之一:

系统更新客户端可以使用 SystemUpdatePolicy.getInstallationOptionAt(long when) 查询 SystemUpdatePolicy.InstallationOption,其中“when”表示查询安装选项的时间(从公元纪年开始计算的毫秒数)。系统更新客户端可以使用 SystemUpdatePolicy.getInstallationOptionAt(long when) 方法,在有效时间结束前针对返回的选项执行操作。在返回的选项失效后,客户端可以使用新的时间戳为最近的选项执行另一次查询。

系统更新客户端必须监听 DevicePolicyManager.ACTION_SYSTEM_UPDATE_POLICY_CHANGED 广播,以随时了解整个政策的更新情况。

验证 TYPE_PAUSE 政策

您可以手动验证 TYPE_PAUSE 选项是否能在 OTA 系统上正常运行。

政策 TYPE_PAUSE 生效

要验证 TYPE_PAUSE 政策是否还能发挥作用,请执行以下操作:

  1. 设置自动政策并指定 TYPE_PAUSE
  2. 当系统时钟处于暂停期时,推送 OTA 更新。
  3. 确认设备未进行 OTA 更新,且用户无法手动安装更新。
  4. 如果设备为 A/B 设备,请重新启动设备,并确认重启操作不会触发自动安装更新的过程。

政策 TYPE_PAUSE 过期

要验证过期的 TYPE_PAUSE 政策是否还能发挥作用,请执行以下操作:

  1. 设置自动政策并指定 TYPE_PAUSE
  2. 当系统时钟处于暂停期时,推送 OTA 更新。
  3. 等待暂停期结束。
  4. 验证设备是否会自动重新启动,以及 OTA 更新是否会在设备重启后进行。