Aggiornamenti OTA aziendali

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:

  1. Imposta un criterio automatico e specifica TYPE_PAUSE.
  2. Mentre l'orologio di sistema è in pausa, invia un aggiornamento OTA.
  3. Verifica che il dispositivo non accetti l'aggiornamento OTA e che l'utente non possa installarlo manualmente.
  4. 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:

  1. Imposta un criterio automatico e specifica TYPE_PAUSE.
  2. Mentre l'orologio di sistema è nel periodo di pausa, premi un aggiornamento OTA.
  3. Attendi che scada il periodo di pausa.
  4. Verifica che il dispositivo si riavvii automaticamente e che l'aggiornamento OTA venga eseguito dopo il riavvio.