Aktualizacje OTA dla przedsiębiorstw

Oprogramowanie z możliwością aktualizacji w dokumencie definicji zgodności systemu Android (CDD) wymaga, aby urządzenia implementowały klasę SystemUpdatePolicy . SystemUpdatePolicy umożliwia aplikacji właściciela urządzenia (DO), jeśli jest dostępna, kontrolowanie instalacji aktualizacji systemu.

Powiadamianie właścicieli urządzeń

Klient bezprzewodowy (OTA) musi powiadamiać aplikacje właściciela urządzenia o przychodzących aktualizacjach OTA za pomocą systemowego interfejsu API. Klient OTA musi także zawierać zapis znacznika czasu, kiedy aktualizacja OTA stała się dostępna po raz pierwszy. Klienci OTA mogą wywołać DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch) , aby powiadomić aplikacje właściciela urządzenia. Jeśli klient OTA nie wie, czy aktualizacja jest poprawką zabezpieczeń, może wrócić do korzystania z 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 odpytuje serwer OTA lub gdy OTA jest przesyłany do klienta. Możesz także częściej wysyłać powiadomienia.

Polityka aktualizacji systemu

Android 9 zwiększa możliwości właścicieli urządzeń w zakresie kontrolowania aktualizacji , umożliwiając właścicielom urządzeń odroczenie aktualizacji OTA nawet o 90 dni. Koncentrując się na rozwiązaniach dla urządzeń dedykowanych (wcześniej nazywanych COSU), funkcja ta umożliwia właścicielom wstrzymywanie wersji systemu operacyjnego działającej na urządzeniach w krytycznych okresach, takich jak święta.

Aby zachować zgodność z CDD, klient OTA musi wdrożyć zasady behawioralne. DO może ustawić następujące zasady, których muszą przestrzegać podsystemy aktualizacji systemu urządzenia:

Właściciele urządzeń mogą również ustawić okresy blokowania (w systemie Android 9 lub nowszym), które blokują wersję systemu operacyjnego w krytycznych okresach, takich jak święta lub inne pracowite okresy. System nie instaluje aktualizacji OTA podczas okresu zamrożenia. Zalecamy użycie SystemUpdatePolicy.InstallationOption (patrz następna sekcja), jednak klient OTA może również wywołać SystemUpdatePolicy.getFreezePeriods() , aby sprawdzić, czy urządzenie nie znajduje się w okresie zawieszenia.

Implementacja opcji instalacji

W systemie Android 9 wprowadzono @SystemApi, SystemUpdatePolicy.InstallationOption , który jest przeznaczony dla klientów aktualizacji systemu. SystemUpdatePolicy.InstallationOption służy jako klasa otoki dla zasad i okresów zamrożenia. Opcja instalacji informuje klientów, jak postępować w przypadku przychodzących aktualizacji systemu i jak długo to działanie jest ważne, biorąc pod uwagę bieżące zasady aktualizacji systemu lub ustawiony okres zamrożenia. Opcja instalacji może być jedną z następujących opcji:

  • TYPE_INSTALL_AUTOMATIC — Przychodzące aktualizacje systemu instalują się natychmiast i bez interwencji użytkownika, gdy tylko staną się dostępne. Urządzenie uruchomi się ponownie automatycznie.
  • TYPE_POSTPONE — Przychodzące aktualizacje systemu mogą być opóźnione maksymalnie o 30 dni. Użytkownicy nie mogą ręcznie zainstalować aktualizacji. Producenci urządzeń mogą zdecydować, czy mają blokować poprawki zabezpieczeń.
  • TYPE_PAUSE — Przychodzące aktualizacje systemu mogą być opóźniane na czas nieokreślony, aż do odwołania. Użytkownicy nie mogą ręcznie zainstalować aktualizacji. TYPE_PAUSE opóźnia wszystkie aktualizacje, w tym poprawki zabezpieczeń.

Klienci aktualizacji systemu mogą wysyłać zapytania SystemUpdatePolicy.InstallationOption przy użyciu SystemUpdatePolicy.getInstallationOptionAt(long when ) , gdzie when oznacza czas, w którym opcja instalacji jest sprawdzana, wyrażona w milisekundach od epoki. Korzystając z metody SystemUpdatePolicy.getInstallationOptionAt(long when ) , klienci aktualizacji systemu mogą wykonywać działania zgodnie ze zwróconą opcją do momentu upłynięcia efektywnego czasu. Po wygaśnięciu zwróconej opcji klient może wykonać kolejne zapytanie, używając nowego znacznika czasu, dla najnowszej opcji.

Klient aktualizacji systemu musi nasłuchiwać emisji DevicePolicyManager.ACTION_SYSTEM_UPDATE_POLICY_CHANGED w przypadku aktualizacji całej polityki.

Sprawdzanie zasad TYPE_PAUSE

Możesz ręcznie sprawdzić, czy opcja TYPE_PAUSE działa w systemie OTA.

Obowiązuje zasada TYPE_PAUSE

Aby sprawdzić, czy zasada TYPE_PAUSE działa:

  1. Ustaw automatyczną politykę i określ TYPE_PAUSE .
  2. Gdy zegar systemowy znajduje się w fazie pauzy, wypchnij aktualizację OTA.
  3. Sprawdź, czy urządzenie nie przyjmuje aktualizacji OTA i użytkownik nie może ręcznie zainstalować aktualizacji.
  4. Jeśli urządzenie jest urządzeniem A/B, uruchom je ponownie i sprawdź, czy ponowne uruchomienie nie spowodowało automatycznej instalacji aktualizacji.

Polityka TYPE_PAUSE wygasła

Aby sprawdzić, czy wygasła polityka TYPE_PAUSE działa:

  1. Ustaw automatyczną politykę i określ TYPE_PAUSE .
  2. Gdy zegar systemowy znajduje się w fazie pauzy, wypchnij aktualizację OTA.
  3. Poczekaj, aż upłynie okres przerwy.
  4. Sprawdź, czy urządzenie automatycznie uruchomi się ponownie, a aktualizacja OTA zostanie pobrana po ponownym uruchomieniu.