Gemäß dem Android Compatibility Definition Document (CDD) für aktualisierbare Software müssen Geräte die Klasse SystemUpdatePolicy
implementieren. Mit SystemUpdatePolicy
kann die App des Geräteeigentümers (Device Owner, DO), falls vorhanden, die Installation von Systemupdates steuern.
Geräteeigentümer benachrichtigen
Der Over-the-Air-Client (OTA-Client) muss Geräteeigentümer-Apps über eingehende OTA-Updates mithilfe einer System-API benachrichtigen. Der OTA-Client muss außerdem einen Zeitstempel enthalten, der angibt, wann das OTA-Update zum ersten Mal verfügbar war. OTA-Clients können DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)
aufrufen, um Geräteeigentümer-Apps zu benachrichtigen. Wenn der OTA-Client nicht weiß, ob ein Update ein Sicherheitspatch ist, kann er auf DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
zurückgreifen.
Wenn derzeit kein Update verfügbar ist, meldet der OTA-Client dies, indem er das Argument updateReceivedTime
auf -1
setzt.
Wir empfehlen, Benachrichtigungen zu senden, wenn der OTA-Client den OTA-Server abfragt oder wenn ein OTA an den Client gesendet wird. Sie können Benachrichtigungen auch häufiger senden.
Richtlinie für Systemupdates
Unter Android 9 können Geräteeigentümer Updates steuern, indem sie OTA-Updates bis zu 90 Tage lang verschieben. Diese Funktion ist auf Lösungen für zweckbestimmte Geräte (früher COSU) ausgerichtet. Mit ihr können Eigentümer die auf Geräten ausgeführte Betriebssystemversion während kritischer Zeiträume wie Feiertagen pausieren.
Um die CDD einzuhalten, muss der OTA-Client Verhaltensrichtlinien implementieren. Der Dienstanbieter kann die folgenden Richtlinien festlegen, die von den Subsystemen für die Gerätesystemupdates eingehalten werden müssen:
Geräteeigentümer können auch Zeiträume festlegen (unter Android 9 oder höher), in denen die Betriebssystemversion während kritischer Zeiträume wie Feiertagen oder anderen geschäftigen Zeiten eingefroren wird. Während einer Sperrzeit werden keine OTA-Updates installiert. Wir empfehlen die Verwendung von SystemUpdatePolicy.InstallationOption
(siehe folgender Abschnitt). Der OTA-Client kann jedoch auch SystemUpdatePolicy.getFreezePeriods()
aufrufen, um zu prüfen, ob sich das Gerät in einer Sperrzeit befindet.