Il
software aggiornabile del Compatibility Definition Document (CDD) Android
richiede che i dispositivi implementino la
classe
SystemUpdatePolicy
. SystemUpdatePolicy
consente all'app del proprietario del dispositivo (DO) se
presenti, controllare l'installazione degli aggiornamenti di sistema.
Inviare una notifica ai proprietari dei dispositivi
Il client over-the-air (OTA) deve notificare alle app proprietario del dispositivo gli aggiornamenti OTA in arrivo utilizzando un'API di sistema. Il client OTA deve inoltre
includere un timestamp con la registrazione iniziale dell'aggiornamento OTA
disponibili. I client OTA possono chiamare
DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)
per notificare le app del proprietario del dispositivo. Se il client OTA non sa se un aggiornamento
è una patch di sicurezza, può ricorrere all'utilizzo di
DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
.
Se al momento non è disponibile un aggiornamento, il client OTA lo segnala impostando
l'argomento updateReceivedTime
su -1
.
Ti consigliamo di inviare notifiche ogni volta che il client OTA
server OTA o quando viene eseguito il push di una OTA al client. Puoi anche inviare
le notifiche con maggiore frequenza.
Criterio di aggiornamento di sistema
Android 9 migliora la funzionalità proprietari a controllo aggiornamenti consentendo ai proprietari dei dispositivi di posticipare gli aggiornamenti OTA fino al per 90 giorni. Attenzione mirata a un dispositivo dedicato (precedentemente noto come COSU) di Google Cloud, questa funzionalità consente ai proprietari di mettere in pausa la versione del sistema operativo dispositivi in periodi critici, ad esempio le festività.
Per rispettare il CDD, il cliente OTA deve implementare le norme sul comportamento. Il DO può impostare i seguenti criteri, che devono essere rispettati dai sottosistemi di aggiornamento di sistema del dispositivo:
I proprietari dei dispositivi possono inoltre
imposta
periodi di blocco (in Android 9 o versioni successive) che bloccano la versione del sistema operativo.
in periodi critici, come festività o altri periodi di punta. Il sistema
non installa gli aggiornamenti OTA durante un periodo di blocco. Ti consigliamo di utilizzare
SystemUpdatePolicy.InstallationOption
(vedi
sezione successiva), ma il client OTA può anche chiamare
SystemUpdatePolicy.getFreezePeriods()
per controllare se il dispositivo si trova in un periodo di blocco.
Implementa le opzioni di installazione
Android 9 introduce un @SystemApi
SystemUpdatePolicy.InstallationOption
, che è progettato
per i client di aggiornamento di sistema.
SystemUpdatePolicy.InstallationOption
funge da wrapper
per i criteri e i periodi di blocco. Un'opzione di installazione indica
ai client come intervenire sugli aggiornamenti di sistema in arrivo e per quanto tempo
sia valida, in base al criterio di aggiornamento del sistema corrente o a eventuali blocchi
che potrebbe essere impostato. Un'opzione di installazione può essere una delle seguenti:
-
TYPE_INSTALL_AUTOMATIC
- Installazione degli aggiornamenti di sistema in arrivo immediatamente e senza l'intervento dell'utente, non appena si disponibili. Il dispositivo si riavvia automaticamente. -
TYPE_POSTPONE
: gli aggiornamenti di sistema in arrivo possono essere ritardati per un massimo di 30 giorni. Gli utenti non possono installare un aggiornamento manualmente. I produttori di dispositivi possono scegliere se bloccare o meno la sicurezza patch. -
TYPE_PAUSE
: gli aggiornamenti di sistema in arrivo possono essere ritardati a tempo indeterminato fino a nuova comunicazione. Gli utenti non possono installare un aggiornamento manualmente.TYPE_PAUSE
ritarda tutti gli aggiornamenti, incluse le patch di sicurezza.
I client degli aggiornamenti di sistema possono eseguire query
SystemUpdatePolicy.InstallationOption
con
SystemUpdatePolicy.getInstallationOptionAt(long when)
,
dove when rappresenta il tempo in cui l'opzione di installazione è
la query viene eseguita in numero di millisecondi dall'epoca. L'utilizzo del
SystemUpdatePolicy.getInstallationOptionAt(long when)
, i client di aggiornamento di sistema possono agire sull'opzione restituita fino a quando
e time-lapse efficaci. Quando l'opzione restituita non è più disponibile, il client può
creare un'altra query, utilizzando un nuovo timestamp, per l'opzione più recente.
Il client di aggiornamento del sistema deve ascoltare
DevicePolicyManager.ACTION_SYSTEM_UPDATE_POLICY_CHANGED
le trasmissioni nel caso in cui l'intero criterio venga aggiornato.
Convalida il criterio TYPE_PAUSE
Puoi convalidare manualmente il funzionamento dell'opzione TYPE_PAUSE
su un sistema OTA.
Il criterio TYPE_PAUSE è in vigore
Per verificare che un criterio TYPE_PAUSE
funzioni:
-
Imposta un criterio automatico e specifica
TYPE_PAUSE
. - Mentre l'orologio di sistema è in pausa, invia un aggiornamento OTA.
- Verifica che il dispositivo non accetti l'aggiornamento OTA e che l'utente non possa installarlo manualmente.
- Se si tratta di un dispositivo A/B, riavvia il dispositivo e verifica il riavvio non ha attivato un'installazione automatica dell'aggiornamento.
Il criterio TYPE_PAUSE è scaduto
Per convalidare il funzionamento di un criterio TYPE_PAUSE
scaduto:
-
Imposta un criterio automatico e specifica
TYPE_PAUSE
. - Mentre l'orologio di sistema è nel periodo di pausa, premi un aggiornamento OTA.
- Attendi che scada il periodo di pausa.
- Verifica che il dispositivo si riavvii automaticamente e che l'aggiornamento OTA venga eseguito dopo il riavvio.