自 2025 年 3 月 27 日起,我们建议您使用 android-latest-release
而非 aosp-main
构建 AOSP 并为其做出贡献。如需了解详情,请参阅 AOSP 的变更。
企业 OTA 更新
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
Android 兼容性定义文档 (CDD) 可更新软件要求设备实现 SystemUpdatePolicy
类。SystemUpdatePolicy
可让设备所有者 (DO) 应用(如果存在)控制系统更新的安装。
通知设备所有者
无线下载 (OTA) 客户端必须使用系统 API 将传入的 OTA 更新通知给设备所有者应用。OTA 客户端还必须包含时间戳,记录 OTA 更新何时开始可用。OTA 客户端可以调用 DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)
来通知设备所有者应用。如果 OTA 客户端不知道更新是否为安全补丁,则可回退至使用 DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
。
如果当前没有可用的更新,OTA 客户端可通过将 updateReceivedTime
参数设置为 -1
来报告此情况。我们建议每当 OTA 客户端对 OTA 服务器进行轮询或有 OTA 推送到客户端时都发送通知。您还可以更频繁地发送通知。
系统更新政策
Android 9 允许设备所有者将 OTA 更新推迟长达 90 天,增强了设备所有者控制更新的能力。此功能主要适用于专用设备(之前称为 COSU)解决方案,可让所有者在重要时段(如节假日)暂停在设备上运行的操作系统版本更新。
为遵守 CDD 的要求,OTA 客户端必须实施行为政策。设备所有者可以设置下列政策,设备系统更新子系统必须遵守这些政策:
设备所有者还可以通过设置冻结时段(在 Android 9 或更高版本中),在重要时段(如节假日或其他繁忙时段)冻结操作系统版本。系统在冻结时段不会安装 OTA 更新。我们建议使用 SystemUpdatePolicy.InstallationOption
(请参见下一部分);不过,OTA 客户端还可以调用 SystemUpdatePolicy.getFreezePeriods()
来检查设备是否处于冻结时段。
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-03-26。
[null,null,["最后更新时间 (UTC):2025-03-26。"],[],[],null,["# Enterprise OTA updates\n\nThe\n[Android\nCompatibility Definition Document (CDD) Updatable Software](/compatibility/android-cdd#11_updatable_software)\nrequires devices to implement the\n[`SystemUpdatePolicy`](https://developer.android.com/reference/android/app/admin/SystemUpdatePolicy.html)\nclass. `SystemUpdatePolicy` lets the device owner (DO) app, if\npresent, control the installation of system updates.\n\nNotify device owners\n--------------------\n\n\nThe over-the-air (OTA) client must notify device owner apps about\nincoming OTA updates using a system API. The OTA client must also\ninclude a timestamp recording when the OTA update first became\navailable. OTA clients can call\n`DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)`\nto notify device owner apps. If the OTA client doesn't know if an update\nis a security patch, the OTA client can fall back to using\n`DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)`.\n\n\nIf an update isn't currently available, the OTA client reports this by\nsetting the `updateReceivedTime` argument to `-1`.\nWe recommend sending notifications whenever the OTA client polls the\nOTA server, or when an OTA is pushed to the client. You can also send\nout notifications more frequently.\n\nSystem update policy\n--------------------\n\n\nAndroid 9 enhances the ability for device\nowners to\n[control\nupdates](https://developer.android.com/work/dpc/system-updates) by allowing device owners to postpone OTA updates for up to\n90 days. Focusing on dedicated device (previously called COSU)\nsolutions, this feature lets owners pause the OS version running on\ndevices over critical periods, such as holidays.\n\n\nTo comply with the CDD, the OTA client must implement behavioral\npolicies. The DO can set the following policies, which must be\nrespected by the device system update subsystems:\n\n- [`TYPE_INSTALL_AUTOMATIC`](https://developer.android.com/reference/android/app/admin/SystemUpdatePolicy.html#TYPE_INSTALL_AUTOMATIC)\n- [`TYPE_INSTALL_WINDOWED`](https://developer.android.com/reference/android/app/admin/SystemUpdatePolicy.html#TYPE_INSTALL_WINDOWED)\n- [`TYPE_POSTPONE`](https://developer.android.com/reference/android/app/admin/SystemUpdatePolicy.html#TYPE_POSTPONE)\n\n\nDevice owners can also\n[set\nfreeze periods](https://developer.android.com/work/dpc/system-updates#freeze-periods) (in Android 9 or later) that freeze the OS version\nover critical periods, such as holidays or other busy times. The system\ndoesn't install OTA updates during a freeze period. We recommend using\n`SystemUpdatePolicy.InstallationOption` (see\nfollowing section), however the OTA client can also call\n[`SystemUpdatePolicy.getFreezePeriods()`](https://developer.android.com/reference/android/app/admin/SystemUpdatePolicy#getFreezePeriods())\nto check if the device is in a freeze period."]]