Le document de définition de compatibilité Android (CDD) sur les logiciels pouvant être mis à jour exige que les appareils implémentent la classe SystemUpdatePolicy
. SystemUpdatePolicy
permet à l'application propriétaire de l'appareil (DO), le cas échéant, de contrôler l'installation des mises à jour du système.
Informer les propriétaires de l'appareil
Le client OTA doit informer les applications appartenant au propriétaire de l'appareil des mises à jour OTA entrantes à l'aide d'une API système. Le client OTA doit également inclure un enregistrement de code temporel lorsque la mise à jour OTA est disponible pour la première fois. Les clients OTA peuvent appeler DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)
pour informer les applications du propriétaire de l'appareil. Si le client OTA ne sait pas si une mise à jour est un correctif de sécurité, il peut utiliser DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
.
Si aucune mise à jour n'est actuellement disponible, le client OTA le signale en définissant l'argument updateReceivedTime
sur -1
.
Nous vous recommandons d'envoyer des notifications chaque fois que le client OTA interroge le serveur OTA ou qu'une mise à jour OTA est transmise au client. Vous pouvez également envoyer des notifications plus fréquemment.
Règle de mise à jour du système
Android 9 permet aux propriétaires d'appareils de contrôler les mises à jour en différant les mises à jour OTA jusqu'à 90 jours. Cette fonctionnalité, axée sur les solutions pour appareils dédiés (anciennement appelées COSU), permet aux propriétaires de suspendre la version de l'OS exécutée sur les appareils pendant des périodes critiques, comme les vacances.
Pour respecter le CDD, le client OTA doit implémenter des règles de comportement. Le DO peut définir les règles suivantes, qui doivent être respectées par les sous-systèmes de mise à jour du système de l'appareil:
Les propriétaires d'appareils peuvent également définir des périodes de blocage (sous Android 9 ou version ultérieure) qui bloquent la version de l'OS pendant des périodes critiques, comme les vacances ou d'autres périodes chargées. Le système n'installe pas les mises à jour OTA pendant une période de blocage. Nous vous recommandons d'utiliser SystemUpdatePolicy.InstallationOption
(voir la section suivante). Toutefois, le client OTA peut également appeler SystemUpdatePolicy.getFreezePeriods()
pour vérifier si l'appareil est en période de blocage.