I controlli degli aggiornamenti unificati (UUC) offrono agli amministratori IT un modo unico e coerente per controllare quando gli aggiornamenti software vengono scaricati e applicati sui dispositivi Android di proprietà dell'azienda, in modo che non interrompano le operazioni aziendali.
Con un criterio UUC, puoi controllare gli aggiornamenti dei seguenti componenti software:
- Aggiornamenti del sistema operativo rilasciati dal produttore del dispositivo (OEM), inclusi aggiornamenti principali del sistema operativo e aggiornamenti minori del sistema operativo e della sicurezza.
- Aggiornamenti di sistema Google Play (Mainline).
- Servizi di sistema Google, come Google Play Services e Android System WebView, come gruppo o un'app alla volta.
Le regole UUC vengono definite nel campo unifiedUpdatePolicy di una risorsa Policy. L'app Android Device Policy (ADP) è il punto decisionale centrale on-device per l'UUC.
Prerequisiti
Prima di configurare la funzionalità UUC, verifica i seguenti requisiti:
- La tua soluzione EMM può creare e aggiornare le policy per un'azienda.
- I dispositivi sono di proprietà dell'azienda e configurati come dispositivo completamente gestito o con un profilo di lavoro su un dispositivo di proprietà dell'azienda. La funzionalità UUC non è supportata sui dispositivi di proprietà personale.
- I dispositivi soddisfano la versione minima di Android supportata per ogni target di aggiornamento che vuoi controllare, come mostrato nella tabella seguente:
| Aggiorna target | Completamente gestito (proprietario del dispositivo) | Profilo di lavoro sui dispositivi di proprietà dell'azienda (COPE) |
|---|---|---|
Servizi di sistema di Google Play (GOOGLE_SYSTEM_SERVICES, SINGLE_APP) |
Android 13 (livello API 33) e versioni successive | Android 15 (livello API 35) e versioni successive |
Aggiornamenti di sistema Google Play/Mainline (GOOGLE_PLAY_SYSTEM_UPDATE) |
Android 13 (livello API 33) e versioni successive | Android 15 (livello API 35) e versioni successive |
Aggiornamenti del sistema operativo: OEM che utilizzano l'agente OTA di Google, ad esempio Google Pixel (OS_UPDATE_WITH_API_LEVEL_CHANGE, OS_UPDATE_WITHOUT_API_LEVEL_CHANGE) |
Android 13 (livello API 33) e versioni successive | Android 15 (livello API 35) e versioni successive |
Aggiornamenti del sistema operativo - Altri OEM (OS_UPDATE_WITH_API_LEVEL_CHANGE, OS_UPDATE_WITHOUT_API_LEVEL_CHANGE) |
Android 17 (livello API 37) e versioni successive | Android 17 (livello API 37) e versioni successive |
Considerazioni e limitazioni
Prima di pianificare l'integrazione di UUC, esamina le seguenti considerazioni e limitazioni:
- Configurazione guidata iniziale: i criteri UUC non vengono applicati mentre il dispositivo è nella configurazione guidata iniziale. Durante la configurazione del dispositivo possono verificarsi aggiornamenti critici da Google Play o dall'agente OTA dell'OEM.
- Aggiornamenti iniziali dopo la configurazione: le policy UUC potrebbero non essere applicate agli aggiornamenti automatici che iniziano immediatamente dopo la configurazione del dispositivo, ad esempio gli aggiornamenti iniziali di Google Play Services, prima che la policy raggiunga l'ADP.
- Moduli OTA in bundle: gli aggiornamenti OTA degli OEM possono contenere versioni aggiornate dei moduli Mainline e dei servizi di sistema Google. L'installazione di un aggiornamento OTA OEM aggiorna automaticamente i componenti in bundle.
- Aggiornamenti di sistema Google Play (Mainline): UUC controlla l'aggiornamento Mainline
come singola unità, pertanto i singoli pacchetti Mainline non possono essere controllati
in modo indipendente. UUC regola solo l'inizio della fase di download: una volta avviato, il download di Mainline non può essere interrotto. Se viene applicata una regola
BLOCKdopo l'inizio del download, l'aggiornamento viene comunque completato al successivo riavvio del dispositivo. - Aggiornamenti manuali durante i periodi di blocco: per gli aggiornamenti di sistema Google Play (Mainline) e i servizi di sistema di Google, una regola
BLOCKimpedisce solo gli aggiornamenti automatici. Gli utenti possono comunque aggiornare manualmente questi componenti anche quando è attiva una regolaBLOCK. Questo problema verrà risolto in una versione futura. - Applicazioni esenti: UUC non gestisce gli aggiornamenti per l'app Google Play Store o l'app ADP.
Informazioni sulle norme relative ai contenuti utili per gli utenti
Un UnifiedUpdatePolicy è costituito da un elenco ordinato di oggetti Rule. Ogni regola specifica:
- un identificatore (
id) definito dalla tua soluzione EMM - uno o più target di aggiornamento software
- fasi di valutazione facoltative
- uno o più predicati facoltativi contenenti condizioni basate sul tempo
- un risultato che determina come viene gestito l'aggiornamento
Valutazione delle regole
Quando valuta un aggiornamento in attesa, ADP prende in considerazione tutte le regole che si applicano alla destinazione e alla fase dell'aggiornamento, nell'ordine in cui vengono visualizzate in rules. ADP seleziona la prima regola il cui predicato restituisce true e applica il relativo risultato, come un'istruzione if-else concatenata. Se nessun predicato della regola restituisce true, il client di aggiornamento responsabile del componente gestisce l'aggiornamento normalmente.
Identificatori delle regole
Ogni regola richiede un id di massimo 64 caratteri definito dalla tua soluzione EMM. id non deve essere vuoto e deve essere univoco tra le regole di una policy.
Aggiorna i target
Ogni regola deve specificare un elenco non vuoto di targets senza duplicati.
Specificare più target in una singola regola equivale a definire più regole in sequenza, ciascuna con un singolo target, nello stesso ordine.
La tabella seguente descrive i valori targetType supportati:
Valore targetType |
Descrizione |
|---|---|
OS_UPDATE_WITH_API_LEVEL_CHANGE |
Un aggiornamento del sistema operativo rilasciato dall'OEM che modifica il livello API Android del dispositivo (aggiornamento principale del sistema operativo). |
OS_UPDATE_WITHOUT_API_LEVEL_CHANGE |
Un aggiornamento del sistema operativo rilasciato dall'OEM che non modifica il livello API Android del dispositivo (aggiornamenti minori del sistema operativo e della sicurezza). |
GOOGLE_PLAY_SYSTEM_UPDATE |
Aggiornamenti di sistema Google Play (Mainline). Controlla l'aggiornamento Mainline come singola entità. |
GOOGLE_SYSTEM_SERVICES |
Servizi di sistema Google aggiornati da Google Play, ad esempio Google Play Services e Android System WebView. |
SINGLE_APP |
Il nome del pacchetto di un servizio su Google Play che appartiene a GOOGLE_SYSTEM_SERVICES, ad esempio com.google.android.webview. Richiede l'impostazione di singleApp con packageName dell'app. |
Fasi di valutazione
Per i target OS_UPDATE_WITH_API_LEVEL_CHANGE e OS_UPDATE_WITHOUT_API_LEVEL_CHANGE, puoi facoltativamente specificare il stages in cui viene valutata una regola:
STAGE_DOWNLOAD: la regola viene valutata prima di scaricare l'aggiornamento.STAGE_APPLY: la regola viene valutata prima di intraprendere un'azione che applica l'aggiornamento, ad esempio l'attivazione di un riavvio automatico.
Se stages è vuoto, la regola viene valutata in tutte le fasi.
Nota: per i target GOOGLE_SYSTEM_SERVICES, SINGLE_APP e GOOGLE_PLAY_SYSTEM_UPDATE, le fasi vengono ignorate.
Predicati
Un predicate definisce le condizioni basate sul tempo in base alle quali una regola corrisponde, ad esempio i giorni della settimana, una finestra temporale (con granularità oraria), un intervallo di date del calendario nel fuso orario locale del dispositivo o il periodo di tempo in cui l'aggiornamento è stato disponibile per il dispositivo (in multipli di 24 ore).
Tutte le condizioni impostate all'interno di un singolo predicato vengono combinate utilizzando un operatore logico AND.
Un predicato vuoto o omesso restituisce sempre true. Per l'elenco completo dei campi dei predicati e dei relativi vincoli, consulta la documentazione di riferimento di Predicate.
Quando configuri le finestre di ora del giorno (timeOfDayLowerBound e timeOfDayUpperBound), tieni presente le seguenti regole di valutazione:
- Limiti di ora: i limiti di ora del giorno vengono valutati come
hh:00:00nel fuso orario locale del dispositivo.timeOfDayUpperBoundchiude la finestra all'ora specificata (ad esempio, un limite inferiore di9e un limite superiore di17coprono da09:00a17:00). - Ordinamento dei limiti valido: quando entrambi i limiti sono impostati nella stessa regola,
timeOfDayUpperBounddeve essere rigorosamente maggiore ditimeOfDayLowerBound. SetimeOfDayUpperBoundè inferiore o uguale atimeOfDayLowerBoundo è impostato su0(00:00), il predicato restituiscefalse. - Finestre di fine giornata e notturne: per estendere una finestra alla fine della giornata (
24:00), omettitimeOfDayUpperBound. Per definire una finestra notturna che si estende oltre la mezzanotte (ad esempio, dalle22:00alle04:00), suddividi la finestra in due regole sequenziali: una regola serale con solotimeOfDayLowerBoundimpostato ({ "hours": 22 }) e una regola mattutina con solotimeOfDayUpperBoundimpostato ({ "hours": 4 }, che ha come target il giorno successivo sedaysOfWeekè impostato).
Risultati
Un outcome specifica il modo in cui ADP indica all'agente di aggiornamento di procedere quando il predicato di una regola restituisce true. La tabella seguente descrive i valori outcomeType supportati:
Valore outcomeType |
Descrizione |
|---|---|
BLOCK |
Impedisce il download o l'applicazione dell'aggiornamento. Per gli aggiornamenti forniti tramite Google Play (GOOGLE_SYSTEM_SERVICES, SINGLE_APP, GOOGLE_PLAY_SYSTEM_UPDATE), BLOCK influisce solo sugli aggiornamenti automatici e non impedisce gli aggiornamenti manuali da parte dell'utente. Per gli aggiornamenti del sistema operativo OEM, BLOCK impedisce gli aggiornamenti manuali e automatici. |
USER_PROMPT |
Non esegue l'azione di aggiornamento senza il consenso dell'utente e lo invita a procedere con l'aggiornamento. |
FORCE |
Avvia immediatamente l'azione di aggiornamento senza il consenso dell'utente. Durante il download, FORCE scarica l'aggiornamento tramite la connessione di rete attiva (ad esempio Wi-Fi o dati mobili, anche in roaming). Per gli aggiornamenti del sistema operativo OEM (OS_UPDATE_WITH_API_LEVEL_CHANGE e OS_UPDATE_WITHOUT_API_LEVEL_CHANGE), quando vengono valutati alle ore STAGE_APPLY, FORCE installa l'aggiornamento e riavvia il dispositivo. |
Limiti massimi di rinvio
UUC consente di posticipare gli aggiornamenti con un risultato BLOCK o USER_PROMPT fino a un periodo di rinvio massimo per ogni target di aggiornamento. Una volta che un aggiornamento è stato disponibile per un periodo superiore al periodo di rinvio massimo, qualsiasi risultato BLOCK o USER_PROMPT viene sostituito con il valore predefinito e il client di aggiornamento gestisce l'aggiornamento normalmente.
La tabella seguente elenca i limiti massimi di rinvio per target e modalità di gestione:
| Gruppo target | Aggiorna target | Dispositivo completamente gestito | Profilo di lavoro su un dispositivo di proprietà dell'azienda |
|---|---|---|---|
| Aggiornamenti senza modifiche al livello API | Servizi di sistema di Google (come WebView) | 5 giorni | 5 giorni |
| Aggiornamenti senza modifiche al livello API | Aggiornamenti di sistema Google Play (Mainline) e aggiornamenti di sistema OTA OEM senza modifica del livello API (incluse le patch mensili critiche) | 25 giorni | 25 giorni |
| Aggiornamenti con modifiche al livello API | Aggiornamenti di sistema OTA dell'OEM con modifica del livello API | 180 giorni | 90 giorni |
Precedenza di systemUpdate
Prima di aggiungere unifiedUpdatePolicy a una policy esistente, esamina le impostazioni di systemUpdate e ricrea il comportamento necessario con le regole UUC. Ad esempio, per evitare che gli aggiornamenti del sistema operativo vengano eseguiti al di fuori dell'orario di apertura, utilizza una regola BLOCK come quella descritta in Blocca gli aggiornamenti principali del sistema operativo durante l'orario di apertura.
Questo comportamento di precedenza è diverso da quello dei DPC personalizzati che utilizzano l'SDK AMAPI, in cui
un SystemUpdatePolicy AOSP ha la precedenza su UUC per gli aggiornamenti OTA degli OEM.
Per maggiori dettagli, consulta la sezione
Precedenza di SystemUpdatePolicy di AOSP. Se sul dispositivo è attivo un servizio di gestione degli aggiornamenti specifico dell'OEM (ad esempio una soluzione OTA aziendale), questo servizio ha la precedenza su UUC anche per gli aggiornamenti del sistema operativo dell'OEM (OS_UPDATE_WITH_API_LEVEL_CHANGE e OS_UPDATE_WITHOUT_API_LEVEL_CHANGE).
Configura la policy UUC
Puoi impostare, recuperare e cancellare il campo unifiedUpdatePolicy in una risorsa policy e verificare la conformità dei dispositivi che utilizzano la policy.
Imposta la policy UUC
Per configurare l'UUC, aggiungi un oggetto unifiedUpdatePolicy alla policy. Per applicare la policy UUC senza modificare le altre impostazioni di una policy esistente, chiama enterprises.policies.patch con updateMask=unifiedUpdatePolicy:
PATCH https://androidmanagement.googleapis.com/v1/enterprises/{enterpriseId}/policies/{policyId}?updateMask=unifiedUpdatePolicy
{
"unifiedUpdatePolicy": {
"rules": [
{
"id": "Block Policy",
"targets": [
{
"targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE"
}
],
"predicate": {
"daysOfWeek": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY"
],
"timeOfDayLowerBound": { "hours": 9 },
"timeOfDayUpperBound": { "hours": 17 }
},
"outcome": {
"outcomeType": "BLOCK"
}
}
]
}
}
La policy aggiornata viene applicata a tutti i dispositivi che la utilizzano. ADP valuta le regole su ogni dispositivo ogni volta che è disponibile un aggiornamento per un componente controllato.
Recupera la policy UUC
Per leggere le regole UUC configurate, chiama enterprises.policies.get e controlla il campo unifiedUpdatePolicy della policy restituita:
GET https://androidmanagement.googleapis.com/v1/enterprises/{enterpriseId}/policies/{policyId}
Cancella la policy UUC
Per rimuovere tutte le regole UUC da una policy, chiama enterprises.policies.patch con updateMask=unifiedUpdatePolicy e un corpo della richiesta che non contiene unifiedUpdatePolicy:
PATCH https://androidmanagement.googleapis.com/v1/enterprises/{enterpriseId}/policies/{policyId}?updateMask=unifiedUpdatePolicy
{}
Esempi di configurazione delle policy
Gli esempi seguenti mostrano l'oggetto unifiedUpdatePolicy per scenari comuni. Applicale con enterprises.policies.patch come descritto in Imposta la policy UUC. Gli stessi scenari sono disponibili come codice Kotlin e Java in Configura i controlli degli aggiornamenti unificati con l'SDK AMAPI.
Blocca gli aggiornamenti principali del sistema operativo durante l'orario di apertura
La seguente regola blocca gli aggiornamenti principali del sistema operativo (OS_UPDATE_WITH_API_LEVEL_CHANGE)
dalle 09:00 alle 17:00, dal lunedì al venerdì:
{
"unifiedUpdatePolicy": {
"rules": [
{
"id": "Block Policy",
"targets": [
{
"targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE"
}
],
"predicate": {
"daysOfWeek": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY"
],
"timeOfDayLowerBound": { "hours": 9 },
"timeOfDayUpperBound": { "hours": 17 }
},
"outcome": {
"outcomeType": "BLOCK"
}
}
]
}
}
Forza gli aggiornamenti del sistema operativo in base alla data dell'aggiornamento
La seguente regola forza gli aggiornamenti principali del sistema operativo che sono stati disponibili per il dispositivo per un massimo di 7 giorni (604800s):
{
"unifiedUpdatePolicy": {
"rules": [
{
"id": "Force Policy",
"targets": [
{
"targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE"
}
],
"predicate": {
"updateAgeUpperBound": "604800s"
},
"outcome": {
"outcomeType": "FORCE"
}
}
]
}
}
Blocca gli aggiornamenti per una singola app di servizi di sistema Google
Per controllare un'app specifica che fa parte dei servizi di sistema di Google, ad esempio Android System WebView (com.google.android.webview), imposta targetType su SINGLE_APP e fornisci il valore packageName dell'app in singleApp. La seguente regola blocca gli aggiornamenti di WebView dalle 09:00 alle 17:00, dal lunedì al venerdì:
{
"unifiedUpdatePolicy": {
"rules": [
{
"id": "Block Webview Policy",
"targets": [
{
"targetType": "SINGLE_APP",
"singleApp": {
"packageName": "com.google.android.webview"
}
}
],
"predicate": {
"daysOfWeek": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY"
],
"timeOfDayLowerBound": { "hours": 9 },
"timeOfDayUpperBound": { "hours": 17 }
},
"outcome": {
"outcomeType": "BLOCK"
}
}
]
}
}
Combina più regole in tutti i target di aggiornamento
Poiché le regole vengono valutate in ordine, puoi combinare più regole per bloccare gli aggiornamenti durante finestre specifiche e forzarli al di fuori di queste finestre.
L'esempio seguente applica due regole sequenziali ai quattro target di categoria (OS_UPDATE_WITH_API_LEVEL_CHANGE, OS_UPDATE_WITHOUT_API_LEVEL_CHANGE, GOOGLE_SYSTEM_SERVICES e GOOGLE_PLAY_SYSTEM_UPDATE):
- Blocca tutti gli aggiornamenti durante l'orario di apertura (dal lunedì al venerdì, dalle 09:00 alle 17:00).
- Al di fuori dell'orario di apertura, forza gli aggiornamenti disponibili da un massimo di 7 giorni.
{
"unifiedUpdatePolicy": {
"rules": [
{
"id": "Block Policy - rule1",
"targets": [
{ "targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE" },
{ "targetType": "OS_UPDATE_WITHOUT_API_LEVEL_CHANGE" },
{ "targetType": "GOOGLE_SYSTEM_SERVICES" },
{ "targetType": "GOOGLE_PLAY_SYSTEM_UPDATE" }
],
"predicate": {
"daysOfWeek": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY"
],
"timeOfDayLowerBound": { "hours": 9 },
"timeOfDayUpperBound": { "hours": 17 }
},
"outcome": {
"outcomeType": "BLOCK"
}
},
{
"id": "Force Policy - rule2",
"targets": [
{ "targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE" },
{ "targetType": "OS_UPDATE_WITHOUT_API_LEVEL_CHANGE" },
{ "targetType": "GOOGLE_SYSTEM_SERVICES" },
{ "targetType": "GOOGLE_PLAY_SYSTEM_UPDATE" }
],
"predicate": {
"updateAgeUpperBound": "604800s"
},
"outcome": {
"outcomeType": "FORCE"
}
}
]
}
}
Limita gli aggiornamenti fino a una data del calendario
Puoi utilizzare dateLowerBound e dateUpperBound per limitare o consentire gli aggiornamenti
all'interno di un intervallo di date di calendario specifico nel fuso orario locale del dispositivo. La seguente regola blocca gli aggiornamenti per i quattro target di categoria fino al 14 marzo 2026:
{
"unifiedUpdatePolicy": {
"rules": [
{
"id": "block_until_date",
"targets": [
{ "targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE" },
{ "targetType": "OS_UPDATE_WITHOUT_API_LEVEL_CHANGE" },
{ "targetType": "GOOGLE_SYSTEM_SERVICES" },
{ "targetType": "GOOGLE_PLAY_SYSTEM_UPDATE" }
],
"predicate": {
"dateUpperBound": { "year": 2026, "month": 3, "day": 14 }
},
"outcome": {
"outcomeType": "BLOCK"
}
}
]
}
}