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