Los controles de actualización unificados (UUC) les brindan a los administradores de TI una forma única y coherente de controlar cuándo se descargan y aplican las actualizaciones de software en los dispositivos Android de la empresa, de modo que las actualizaciones no interrumpan las operaciones comerciales.
Con una política de UUC, puedes controlar las actualizaciones de los siguientes componentes de software:
- Son las actualizaciones del SO que emite el fabricante del dispositivo (OEM), incluidas las actualizaciones principales y secundarias del SO, y las actualizaciones de seguridad.
- Actualizaciones del sistema de Google Play (Mainline)
- Servicios del sistema de Google, como los Servicios de Google Play y Android System WebView, ya sea como un grupo o una app a la vez
Las reglas de UUC se definen en el campo unifiedUpdatePolicy de un recurso
Policy. La app de Android Device Policy (ADP) es el
punto de decisión central en el dispositivo para el UUC.
Requisitos previos
Antes de configurar la UUC, verifica los siguientes requisitos:
- Tu solución de EMM puede crear y actualizar políticas para una empresa.
- Los dispositivos son propiedad de la empresa y están configurados como un dispositivo completamente administrado o con un perfil de trabajo en un dispositivo de la empresa. El UUC no se admite en dispositivos de propiedad personal.
- Los dispositivos cumplen con la versión mínima de Android compatible para cada objetivo de actualización que quieras controlar, como se muestra en la siguiente tabla:
| Actualizar objetivo | Completamente administrado (propietario del dispositivo) | Perfil de trabajo en dispositivos de la empresa (COPE) |
|---|---|---|
Servicios del sistema de Google Play (GOOGLE_SYSTEM_SERVICES, SINGLE_APP) |
Android 13 (nivel de API 33) y versiones posteriores | Android 15 (nivel de API 35) y versiones posteriores |
Actualizaciones del sistema de Google Play/Mainline (GOOGLE_PLAY_SYSTEM_UPDATE) |
Android 13 (nivel de API 33) y versiones posteriores | Android 15 (nivel de API 35) y versiones posteriores |
Actualizaciones del SO: OEM que usan el agente de OTA de Google, como Google Pixel (OS_UPDATE_WITH_API_LEVEL_CHANGE, OS_UPDATE_WITHOUT_API_LEVEL_CHANGE) |
Android 13 (nivel de API 33) y versiones posteriores | Android 15 (nivel de API 35) y versiones posteriores |
Actualizaciones del SO: otros OEM (OS_UPDATE_WITH_API_LEVEL_CHANGE, OS_UPDATE_WITHOUT_API_LEVEL_CHANGE) |
Android 17 (nivel de API 37) y versiones posteriores | Android 17 (nivel de API 37) y versiones posteriores |
Consideraciones y limitaciones
Revisa las siguientes consideraciones y limitaciones antes de planificar tu integración de UUC:
- Asistente de configuración inicial: Las políticas de UUC no se aplican mientras el dispositivo está en el asistente de configuración inicial. Durante la configuración del dispositivo, pueden producirse actualizaciones críticas de Google Play o del agente de OTA del OEM.
- Actualizaciones tempranas después de la configuración: Es posible que las políticas de UUC no se apliquen a las actualizaciones automáticas que se inician inmediatamente después de la configuración del dispositivo, como las actualizaciones tempranas de los Servicios de Google Play, antes de que la política llegue al ADP.
- Módulos OTA empaquetados: Las actualizaciones OTA de OEM pueden contener versiones actualizadas de los módulos de Mainline y los servicios del sistema de Google. Cuando se instala una actualización OTA de OEM, se actualizan automáticamente esos componentes empaquetados.
- Actualizaciones del sistema de Google Play (Mainline): El UUC controla la actualización de Mainline como una sola unidad, por lo que los paquetes individuales de Mainline no se pueden controlar de forma independiente. UUC solo rige el inicio de la fase de descarga: una vez que comienza una descarga de Mainline, no se puede detener. Si se aplica una regla
BLOCKdespués de que se inicia la descarga, la actualización se completará en el próximo reinicio del dispositivo. - Actualizaciones manuales durante los períodos de bloqueo: En el caso de las actualizaciones del sistema de Google Play
(Mainline) y los servicios del sistema de Google, una regla
BLOCKsolo impide las actualizaciones automáticas. Los usuarios pueden actualizar estos componentes de forma manual, incluso cuando una reglaBLOCKestá activa. Esto se abordará en una versión futura. - Aplicaciones exentas: El UUC no administra las actualizaciones de la app de Google Play Store ni de la app de ADP.
Comprende las políticas de UUC
Un UnifiedUpdatePolicy consiste en una lista ordenada de objetos Rule. Cada regla especifica lo siguiente:
- un identificador (
id) definido por tu solución de EMM - uno o más destinos de actualización de software
- etapas de evaluación opcionales.
- uno o más predicados opcionales que contienen condiciones basadas en el tiempo
- un resultado que determina cómo se controla la actualización
Evaluación de reglas
Cuando se evalúa una actualización pendiente, ADP considera todas las reglas que se aplican al
destino y a la etapa de esa actualización, en el orden en que aparecen en rules. ADP selecciona la
primera regla cuyo predicado se evalúa como true y aplica su resultado, como una
declaración if-else encadenada. Si ningún predicado de regla se evalúa como true, el
cliente de actualización responsable del componente administra la actualización con normalidad.
Identificadores de reglas
Cada regla requiere un id de hasta 64 caracteres que define tu solución de EMM. El id no debe estar vacío y debe ser único entre las reglas de una
política.
Actualiza los objetivos
Cada regla debe especificar una lista no vacía de targets sin duplicados.
Especificar varios destinos en una sola regla equivale a definir varias reglas en secuencia, cada una con un solo destino, en el mismo orden.
En la siguiente tabla, se describen los valores de targetType admitidos:
Valor targetType |
Descripción |
|---|---|
OS_UPDATE_WITH_API_LEVEL_CHANGE |
Una actualización del SO emitida por el OEM que cambia el nivel de API de Android del dispositivo (actualización importante del SO) |
OS_UPDATE_WITHOUT_API_LEVEL_CHANGE |
Es una actualización del SO que emite el OEM y que no cambia el nivel de API de Android del dispositivo (actualizaciones de seguridad y del SO menores). |
GOOGLE_PLAY_SYSTEM_UPDATE |
Actualizaciones del sistema de Google Play (Mainline) Controla la actualización de Mainline como una sola entidad. |
GOOGLE_SYSTEM_SERVICES |
Servicios del sistema de Google actualizados desde Google Play, como los Servicios de Google Play y Android System WebView. |
SINGLE_APP |
Un nombre de paquete de un servicio en Google Play que pertenece a GOOGLE_SYSTEM_SERVICES, como com.google.android.webview. Requiere configurar singleApp con el packageName de la app. |
Etapas de evaluación
Para los destinos OS_UPDATE_WITH_API_LEVEL_CHANGE y OS_UPDATE_WITHOUT_API_LEVEL_CHANGE,
puedes especificar de forma opcional la stages en la que se evalúa una regla:
STAGE_DOWNLOAD: La regla se evalúa antes de descargar la actualización.STAGE_APPLY: La regla se evalúa antes de realizar una acción que aplique la actualización, como activar un reinicio automático.
Si stages está vacío, la regla se evalúa en todas las etapas.
Nota: Para los destinos GOOGLE_SYSTEM_SERVICES, SINGLE_APP y
GOOGLE_PLAY_SYSTEM_UPDATE, se ignoran las etapas.
Predicados
Un predicate define las condiciones basadas en el tiempo en las que coincide una regla, como
los días de la semana, un período del día (con un nivel de detalle de horas), un rango de fechas
del calendario en la zona horaria local del dispositivo o el tiempo que la actualización estuvo
disponible para el dispositivo (en múltiplos de 24 horas).
Todas las condiciones establecidas en un solo predicado se combinan con un AND lógico.
Un predicado vacío o que se omite siempre se evalúa como true. Para obtener la lista completa de los campos de predicado y sus restricciones, consulta la documentación de referencia de Predicate.
Resultados
Un outcome especifica cómo ADP indica al agente de actualización que proceda cuando el predicado de una regla se evalúa como true. En la siguiente tabla, se describen los valores de outcomeType admitidos:
Valor outcomeType |
Descripción |
|---|---|
BLOCK |
Impide que se descargue o aplique la actualización. En el caso de las actualizaciones que se entregan a través de Google Play (GOOGLE_SYSTEM_SERVICES, SINGLE_APP, GOOGLE_PLAY_SYSTEM_UPDATE), BLOCK solo afecta a las actualizaciones automáticas y no impide que el usuario realice actualizaciones manuales. En el caso de las actualizaciones del SO del OEM, BLOCK impide las actualizaciones manuales y automáticas. |
USER_PROMPT |
No realiza la acción de actualización sin el consentimiento del usuario y le solicita que continúe con la actualización. |
FORCE |
Inicia de inmediato la acción para la etapa evaluada, como descargar la actualización o reiniciar el dispositivo para aplicarla. |
Límites máximos de aplazamiento
La UUC permite aplazar las actualizaciones con un resultado BLOCK o USER_PROMPT hasta un
período de aplazamiento máximo para cada destino de actualización. Una vez que una actualización haya estado disponible por más tiempo que su período máximo de aplazamiento, cualquier resultado de BLOCK o USER_PROMPT se anulará de forma predeterminada, y el cliente de actualización administrará la actualización con normalidad.
En la siguiente tabla, se enumeran los límites máximos de aplazamiento por destino y modo de administración:
| Grupo objetivo | Actualizar objetivo | Dispositivo completamente administrado | Perfil de trabajo en un dispositivo de la empresa |
|---|---|---|---|
| Actualizaciones sin cambios en el nivel de API | Servicios del sistema de Google (como WebView) | 5 días | 5 días |
| Actualizaciones sin cambios en el nivel de API | Actualizaciones del sistema de Google Play (Mainline) y actualizaciones del sistema OTA de OEM sin cambio de nivel de API (incluidos los parches mensuales críticos) | 25 días | 25 días |
| Actualizaciones con cambios en el nivel de API | Actualizaciones del sistema de OTA de OEM con cambio de nivel de API | 180 días | 90 días |
Prioridad de systemUpdate
Antes de agregar unifiedUpdatePolicy a una política existente, revisa su
configuración de systemUpdate y vuelve a crear el comportamiento que necesitas con las reglas de UUC. Por ejemplo, para mantener las actualizaciones del SO fuera del horario de atención, usa una regla BLOCK como la que se muestra en Bloquea las actualizaciones importantes del SO durante el horario de atención.
Este comportamiento de prioridad difiere de los DPC personalizados que usan el SDK de AMAPI, en los que
un SystemUpdatePolicy de AOSP tiene prioridad sobre el UUC para las actualizaciones OTA de OEM.
Para obtener más detalles, consulta
Prioridad de SystemUpdatePolicy del AOSP.
Configura la política de UUC
Puedes establecer, recuperar y borrar el campo unifiedUpdatePolicy en un recurso de política,
y verificar el cumplimiento de los dispositivos que usan la política.
Establece la política de UUC
Para configurar el UUC, agrega un objeto unifiedUpdatePolicy a la
política. Para aplicar la política de UUC sin cambiar los otros parámetros de configuración de una
política existente, llama a 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 política actualizada se aplica a todos los dispositivos que la usan. ADP evalúa las reglas en cada dispositivo cada vez que hay una actualización disponible para un componente controlado.
Recupera la política de UUC
Para leer las reglas de UUC configuradas, llama a
enterprises.policies.get y, luego, inspecciona el
campo unifiedUpdatePolicy de la política que se muestra:
GET https://androidmanagement.googleapis.com/v1/enterprises/{enterpriseId}/policies/{policyId}
Borra la política de UUC
Para quitar todas las reglas de UUC de una política, llama a
enterprises.policies.patch con
updateMask=unifiedUpdatePolicy y un cuerpo de solicitud que no contenga
unifiedUpdatePolicy:
PATCH https://androidmanagement.googleapis.com/v1/enterprises/{enterpriseId}/policies/{policyId}?updateMask=unifiedUpdatePolicy
{}
Ejemplos de configuración de políticas
En los siguientes ejemplos, se muestra el objeto unifiedUpdatePolicy para situaciones
comunes. Aplícalas con
enterprises.policies.patch como se describe en
Establece la política de UUC. Las mismas situaciones están disponibles como código de Kotlin y Java en Configura controles de actualización unificados con el SDK de AMAPI.
Bloquea las actualizaciones importantes del SO durante el horario de atención
La siguiente regla bloquea las actualizaciones principales del SO (OS_UPDATE_WITH_API_LEVEL_CHANGE)
de 9:00 a 17:00, de lunes a viernes:
{
"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"
}
}
]
}
}
Forzar actualizaciones del SO según la antigüedad de la actualización
La siguiente regla fuerza las actualizaciones importantes del SO que estuvieron disponibles para el
dispositivo durante un máximo de 7 días (604800s):
{
"unifiedUpdatePolicy": {
"rules": [
{
"id": "Force Policy",
"targets": [
{
"targetType": "OS_UPDATE_WITH_API_LEVEL_CHANGE"
}
],
"predicate": {
"updateAgeUpperBound": "604800s"
},
"outcome": {
"outcomeType": "FORCE"
}
}
]
}
}
Cómo bloquear las actualizaciones de una sola app de servicios del sistema de Google
Para controlar una app específica que forma parte de los servicios del sistema de Google, como Android System WebView (com.google.android.webview), establece targetType en SINGLE_APP y proporciona el packageName de la app en singleApp. La siguiente regla bloquea las actualizaciones de WebView de lunes a viernes de 9:00 a.m. a 5:00 p.m.:
{
"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 varias reglas en todos los destinos de actualización
Como las reglas se evalúan en orden, puedes combinar varias reglas para bloquear las actualizaciones durante períodos específicos y forzarlas fuera de esos períodos.
En el siguiente ejemplo, se aplican dos reglas secuenciales en los cuatro objetivos de categoría (OS_UPDATE_WITH_API_LEVEL_CHANGE,
OS_UPDATE_WITHOUT_API_LEVEL_CHANGE, GOOGLE_SYSTEM_SERVICES y
GOOGLE_PLAY_SYSTEM_UPDATE):
- Bloquea todas las actualizaciones durante el horario de atención (de lunes a viernes, de 9:00 a.m. a 5:00 p.m.).
- Fuera del horario de atención, fuerza las actualizaciones que hayan estado disponibles durante un máximo de 7 días.
{
"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"
}
}
]
}
}
Restringe las actualizaciones hasta una fecha del calendario
Puedes usar dateLowerBound y dateUpperBound para restringir o permitir actualizaciones
dentro de un rango de fechas de calendario específico en la zona horaria local del dispositivo. La siguiente regla bloquea las actualizaciones de la segmentación por categoría de los cuatro destinos hasta el 14 de marzo de 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"
}
}
]
}
}