Oprogramowanie aktualizowane w dokumencie definicji zgodności z Androidem (CDD) wymaga od urządzeń zaimplementowania klasy SystemUpdatePolicy
. SystemUpdatePolicy
pozwala aplikacji właściciela urządzenia (DO), jeśli jest obecna, kontrolować instalację aktualizacji systemu.
Powiadom właścicieli urządzenia
Klient bezprzewodowy (OTA) musi za pomocą systemowego interfejsu API powiadamiać aplikacje właściciela urządzenia o przychodzących aktualizacjach OTA. Klient OTA musi też zawierać sygnaturę czasową z datą, kiedy aktualizacja OTA była po raz pierwszy dostępna. Klienty 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 poprawką 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 sprawdza serwer OTA lub gdy OTA jest przesyłane do klienta. Możesz też wysyłać powiadomienia częściej.
Zasady aktualizacji systemu
Android 9 zwiększa możliwości kontrolowania aktualizacji przez właścicieli urządzeń, umożliwiając im opóźnianie aktualizacji OTA nawet o 90 dni. Ta funkcja umożliwia właścicielom wstrzymanie wersji systemu operacyjnego na urządzeniach w krytycznych okresach, takich jak święta.
Aby spełnić wymagania dotyczące ochrony danych klientów, klient OTA musi wdrożyć zasady dotyczące zachowań. DO może ustawić te zasady, które muszą być przestrzegane przez podsystemy aktualizacji systemu urządzenia:
Właściciele urządzeń mogą też ustawić okresy blokady (w Androidzie 9 i nowszych), które powodują zablokowanie wersji systemu operacyjnego w krytycznych okresach, takich jak święta lub inne dni o dużym natężeniu ruchu. Podczas okresu blokady system nie instaluje aktualizacji OTA. Zalecamy używanie interfejsu SystemUpdatePolicy.InstallationOption
(patrz następna sekcja), ale klient OTA może też wywoływać interfejs SystemUpdatePolicy.getFreezePeriods()
, aby sprawdzić, czy urządzenie znajduje się w okresie blokady.
Wdrażanie opcji instalacji
Android 9 wprowadza interfejs @SystemApiSystemUpdatePolicy.InstallationOption
, który jest przeznaczony dla klientów aktualizacji systemu.
SystemUpdatePolicy.InstallationOption
służy jako klasa kodu na potrzeby zasad i okresów blokady. Opcja instalacji informuje klientów, jak postępować w przypadku otrzymywanych aktualizacji systemu i jak długo to działanie jest ważne, biorąc pod uwagę bieżące zasady aktualizacji systemu lub ewentualny okres zamrożenia. Opcja instalacji może być jedną z tych opcji:
-
TYPE_INSTALL_AUTOMATIC
– nowe aktualizacje systemu są instalowane natychmiast i bez udziału użytkownika, gdy tylko staną się dostępne. Urządzenie automatycznie się uruchomi. -
TYPE_POSTPONE
– nadchodzące aktualizacje systemu mogą zostać opóźnione maksymalnie o 30 dni. Użytkownicy nie mogą ręcznie instalować aktualizacji. Producenci urządzeń mogą zdecydować, czy blokować poprawki zabezpieczeń. -
TYPE_PAUSE
– przychodzące aktualizacje systemu mogą być opóźniane na czas nieokreślony do odwołania. Użytkownicy nie mogą instalować aktualizacji ręcznie.TYPE_PAUSE
opóźnia wszystkie aktualizacje, w tym łaty zabezpieczeń.
Klienty aktualizacji systemu mogą wysyłać zapytania do SystemUpdatePolicy.InstallationOption
za pomocą SystemUpdatePolicy.getInstallationOptionAt(long when)
, gdzie when reprezentuje czas wykonania zapytania do opcji instalacji wyrażony w milisekundach od początku epoki. Za pomocą metody SystemUpdatePolicy.getInstallationOptionAt(long when)
klienci mogą aktualizować system, dopóki nie upłynie czas skuteczności. Gdy zwrócona opcja wygaśnie, klient może przesłać kolejne zapytanie, używając nowej sygnatury czasowej, dla najnowszej opcji.
Klient aktualizacji systemu musi nasłuchiwać
DevicePolicyManager.ACTION_SYSTEM_UPDATE_POLICY_CHANGED
transmisji na wypadek, gdyby zaktualizowano całą zasadę.
Zweryfikuj zasadę TYPE_PAUSE
Możesz ręcznie sprawdzić, czy opcja TYPE_PAUSE
działa w systemie OTA.
Zasada TYPE_PAUSE jest aktywna
Aby sprawdzić, czy zasady TYPE_PAUSE
działają prawidłowo:
-
Ustaw zasadę automatyczną i wskaż
TYPE_PAUSE
. - Podczas wstrzymania zegara systemowego prześlij aktualizację OTA.
- Sprawdź, czy urządzenie nie przyjmuje aktualizacji OTA i czy użytkownik nie może ręcznie zainstalować aktualizacji.
- Jeśli urządzenie jest urządzeniem A/B, uruchom je ponownie i sprawdź, czy ponowne uruchomienie nie spowodowało automatycznej instalacji aktualizacji.
Zasada TYPE_PAUSE straciła ważność
Aby sprawdzić, czy zasady, które wygasły, działają:TYPE_PAUSE
-
Ustaw zasadę automatyczną i wskaż
TYPE_PAUSE
. - Podczas wstrzymania zegara systemowego prześlij aktualizację OTA.
- Poczekaj na zakończenie okresu wstrzymania.
- Sprawdź, czy urządzenie automatycznie się restartuje i czy po ponownym uruchomieniu zostanie przeprowadzona aktualizacja OTA.