Le document de définition de compatibilité (CDD) Android sur les logiciels pouvant être mis à jour exige que les appareils implémentent la classe SystemUpdatePolicy
. SystemUpdatePolicy
permet à l'application du propriétaire de l'appareil (DO), si elle est présente, de contrôler l'installation des mises à jour du système.
Envoyer une notification aux propriétaires des appareils
Le client OTA (Over-The-Air) doit informer les applications du propriétaire de l'appareil des mises à jour OTA entrantes à l'aide d'une API système. Le client OTA doit également inclure un code temporel indiquant la date et l'heure auxquelles la mise à jour OTA est devenue disponible pour la première fois. Les clients OTA peuvent appeler DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)
pour notifier les applications propriétaires de l'appareil. Si le client OTA ne sait pas si une mise à jour est un correctif de sécurité, il peut revenir à l'utilisation de DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
.
Si aucune mise à jour n'est 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 OTA est envoyée au client. Vous pouvez également envoyer des notifications plus fréquemment.
Règles relatives aux mises à jour du système
Android 9 permet aux propriétaires d'appareils de contrôler les mises à jour en leur donnant la possibilité de les différer jusqu'à 90 jours. En se concentrant sur les solutions pour appareils dédiés (anciennement appelés COSU), cette fonctionnalité permet aux propriétaires de suspendre la version de l'OS exécutée sur les appareils pendant les périodes critiques, comme les vacances.
Pour respecter le CDD, le client OTA doit implémenter des règles de comportement. L'administrateur de l'appareil 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 (dans Android 9 ou version ultérieure) qui bloquent la version de l'OS pendant les 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.