Das Android Compatibility Definition Document (CDD) Updatable Software erfordert, dass Geräte die Klasse SystemUpdatePolicy
implementieren. Mit SystemUpdatePolicy
kann die App des Geräteinhabers (Device Owner, DO), sofern vorhanden, die Installation von Systemupdates steuern.
Geräteinhaber benachrichtigen
Der OTA-Client (Over-the-Air) muss Geräteinhaber-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äteinhaber-Apps zu benachrichtigen. Wenn der OTA-Client nicht weiß, ob es sich bei einem Update um einen Sicherheitspatch handelt, kann er auf DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
zurückgreifen.
Wenn derzeit kein Update verfügbar ist, meldet der OTA-Client dies, indem er das updateReceivedTime
-Argument auf -1
setzt.
Wir empfehlen, Benachrichtigungen zu senden, wenn der OTA-Client den OTA-Server abfragt oder wenn ein OTA-Update an den Client gesendet wird. Sie können auch häufiger Benachrichtigungen senden.
Richtlinie für Systemupdates
Unter Android 9 haben Geräteinhaber mehr Kontrolle über Updates, da sie OTA-Updates um bis zu 90 Tage verschieben können. Diese Funktion konzentriert sich auf Lösungen für zweckbestimmte Geräte (früher COSU genannt) und ermöglicht es Eigentümern, die auf Geräten ausgeführte Betriebssystemversion in kritischen Zeiträumen wie Feiertagen zu pausieren.
Zur Einhaltung der CDD muss der OTA-Client Verhaltensrichtlinien implementieren. Das DO kann die folgenden Richtlinien festlegen, die von den Subsystemen für Systemupdates des Geräts eingehalten werden müssen:
Geräteinhaber können auch Zeiträume festlegen (unter Android 9 oder höher), in denen die Betriebssystemversion in kritischen Zeiträumen wie Feiertagen oder anderen arbeitsreichen Zeiten eingefroren wird. Das System installiert während eines Zeitraums, in dem keine Updates erfolgen sollen, keine OTA-Updates. Wir empfehlen die Verwendung von SystemUpdatePolicy.InstallationOption
(siehe folgenden Abschnitt). Der OTA-Client kann jedoch auch SystemUpdatePolicy.getFreezePeriods()
aufrufen, um zu prüfen, ob sich das Gerät in einem Sperrzeitraum befindet.