В соответствии с документом определения совместимости Android (CDD) обновляемое программное обеспечение требует, чтобы устройства реализовали класс SystemUpdatePolicy
. SystemUpdatePolicy
позволяет приложению владельца устройства (DO), если оно установлено, управлять установкой обновлений системы.
Уведомить владельцев устройств
Беспроводной (OTA) клиент должен уведомлять приложения владельца устройства о входящих OTA-обновлениях через системный API. 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 должен реализовать поведенческие политики. DO может установить следующие политики, которые должны соблюдаться подсистемами обновления системы устройства:
Владельцы устройств также могут устанавливать периоды заморозки (в Android 9 и более поздних версиях), которые фиксируют версию ОС в критические периоды, такие как праздники или другие периоды высокой нагрузки. Система не устанавливает обновления OTA во время периода заморозки. Мы рекомендуем использовать SystemUpdatePolicy.InstallationOption
(см. следующий раздел), однако клиент OTA также может вызвать SystemUpdatePolicy.getFreezePeriods()
, чтобы проверить, находится ли устройство в периоде заморозки.