Android 兼容性定义文档 (CDD) 可更新软件要求设备实现 SystemUpdatePolicy
类。SystemUpdatePolicy
让设备所有者 (DO) 应用(如果存在)控制系统更新的安装。
通知设备所有者
无线 (OTA) 客户端必须使用系统 API 向设备所有者应用通知即将到来的 OTA 更新。OTA 客户端还必须包含一个时间戳,记录 OTA 更新首次可用的时间。OTA 客户端可以调用 DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)
以通知设备所有者应用。如果 OTA 客户端不知道更新是否为安全补丁,则 OTA 客户端可以回退到使用 DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
。
如果当前没有可用更新,OTA 客户端会将 updateReceivedTime
参数设置为 -1
来报告此情况。我们建议每当 OTA 客户端轮询 OTA 服务器时,或者当 OTA 推送到客户端时,都发送通知。您也可以更频繁地发送通知。
系统更新策略
Android 9 增强了设备所有者控制更新的能力,允许设备所有者将 OTA 更新推迟最多 90 天。着眼于专用设备(以前称为 COSU)解决方案,此功能让所有者可以在关键时期(如节假日)暂停设备上运行的操作系统版本。
为了符合 CDD,OTA 客户端必须实施行为策略。DO 可以设置以下策略,设备系统更新子系统必须遵守这些策略
设备所有者还可以设置冻结期(在 Android 9 或更高版本中),在关键时期(如节假日或其他繁忙时段)冻结操作系统版本。系统在冻结期内不会安装 OTA 更新。我们建议使用 SystemUpdatePolicy.InstallationOption
(请参阅以下部分),但 OTA 客户端也可以调用 SystemUpdatePolicy.getFreezePeriods()
以检查设备是否处于冻结期。