Dokument definicji zgodności z Androidem (CDD) – oprogramowanie z możliwością aktualizacji wymaga, aby urządzenia implementowały klasę SystemUpdatePolicy
. SystemUpdatePolicy
umożliwia aplikacji właściciela urządzenia (DO), jeśli jest obecna, kontrolowanie instalacji aktualizacji systemu.
Powiadamianie właścicieli urządzeń
Klient OTA musi powiadamiać aplikacje właściciela urządzenia o przychodzących aktualizacjach OTA za pomocą interfejsu API systemu. Klient OTA musi też zawierać sygnaturę czasową rejestrującą, kiedy aktualizacja OTA stała się dostępna po raz pierwszy. Klienci OTA mogą wywoływać
DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)
, aby powiadamiać aplikacje właściciela urządzenia. Jeśli klient OTA nie wie, czy aktualizacja jest łatką zabezpieczeń, może użyć DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
.
Jeśli aktualizacja nie jest obecnie dostępna, klient OTA zgłasza to, ustawiając argument updateReceivedTime
na -1
.
Zalecamy wysyłanie powiadomień za każdym razem, gdy klient OTA wysyła zapytanie do serwera OTA lub gdy aktualizacja OTA jest przesyłana do klienta. Możesz też częściej wysyłać powiadomienia.
Zasady aktualizacji systemu
Android 9 zwiększa możliwości kontrolowania aktualizacji przez właścicieli urządzeń, ponieważ pozwala im odłożyć aktualizacje OTA nawet o 90 dni. Ta funkcja, która jest przeznaczona dla urządzeń specjalnych (wcześniej COSU), umożliwia właścicielom wstrzymywanie aktualizacji wersji systemu operacyjnego na urządzeniach w krytycznych okresach, np. podczas świąt.
Aby zachować zgodność z CDD, klient OTA musi wdrożyć zasady dotyczące zachowań. Właściciel urządzenia może ustawić te zasady, które muszą być respektowane przez podsystemy aktualizacji systemu urządzenia:
Właściciele urządzeń mogą też ustawiać okresy blokady (w Androidzie 9 lub nowszym), które blokują wersję systemu operacyjnego w krytycznych okresach, takich jak święta lub inne okresy wzmożonej aktywności. System nie instaluje aktualizacji OTA w okresie blokady. Zalecamy używanie SystemUpdatePolicy.InstallationOption
(patrz następna sekcja), ale klient OTA może też wywoływać SystemUpdatePolicy.getFreezePeriods()
, aby sprawdzić, czy urządzenie jest w okresie zamrożenia.