Device Trust de Android Enterprise: Indicadores disponibles

Device Trust de Android Enterprise pone a disposición un conjunto de indicadores de postura del dispositivo en Device a los que pueden acceder las aplicaciones autorizadas, incluidas las aplicaciones de la lista de entidades permitidas y las apps a las que se les asignó el rol COMPANION_APP (consulta Administra roles de aplicaciones y Configuración de políticas), para calcular una puntuación de confianza para el dispositivo.

Cada campo de indicador en Device y sus clases de modelo anidadas incluyen un método get*Metadata() correspondiente que devuelve Metadata, que informa cualquier Metadata.DataIssue que se encuentre cuando se recupera el indicador (como permisos de manifiesto faltantes).

Para obtener información sobre cómo integrar el SDK de la API de Android Management en tu aplicación, consulta Device Trust de Android Enterprise: Guía de integración.

Indicadores
Versión del SO
Device#getSoftwareInfo() devuelve un objeto SoftwareInfo que contiene detalles de la versión del SO (las versiones anteriores del SO suelen tener más vulnerabilidades):
Versión de Android Device Policy
SoftwareInfo#getAndroidDevicePolicyVersionCode() y SoftwareInfo#getAndroidDevicePolicyVersionName() devuelven el código de versión y el nombre de la versión visible para el usuario de la app de política de dispositivo Android en el dispositivo.
¿El dispositivo tiene actualizaciones OTA pendientes?
SoftwareInfo#getSystemUpdateInfo() devuelve un SoftwareInfo.SystemUpdateInfo que indica si hay una actualización del SO pendiente para el dispositivo (un proxy que indica si el dispositivo es vulnerable a exploits):
Nivel de parche de seguridad del dispositivo
SoftwareInfo#getDeviceSecurityPatchInfos() devuelve una lista de objetos SoftwareInfo.SecurityPatchInfo (con getComponent() y getSecurityPatchLevel() que devuelven una lista de objetos SecurityPatchLevel) para el nivel de parche de seguridad actual del dispositivo en los tipos de SecurityPatchComponent actualizables:
Nivel de parche de seguridad publicado
SoftwareInfo#getPublishedSecurityPatchInfos() devuelve una lista de objetos SoftwareInfo.SecurityPatchInfo (con getComponent() y getSecurityPatchLevel() que devuelven una lista de objetos SecurityPatchLevel) para el nivel de parche de seguridad publicado actual en los tipos de SecurityPatchComponent actualizables:
Detalles de la app
Device#getApplicationReports() devuelve detalles sobre todas las aplicaciones instaladas a las apps de extensibilidad y las aplicaciones de llamada con el rol COMPANION_APP en un dispositivo administrado por AMAPI (consulta Administra roles de aplicaciones y Configuración de políticas; cuando se llama dentro de un perfil de trabajo, los informes se limitan a las apps instaladas en el perfil de trabajo). Para todos los demás emisores de llamadas (como las aplicaciones de la lista de entidades permitidas), Device#getApplicationReports() devuelve detalles solo de las siguientes apps fundamentales:
  • com.android.chrome
  • com.google.android.gms
  • com.google.android.apps.work.clouddpc
  • com.android.vending
  • El paquete de WebView actual del dispositivo (como com.google.android.webview)
Los detalles se devuelven como una lista de objetos ApplicationReport que exponen lo siguiente:
Información del hardware del dispositivo
Device#getHardwareInfo() devuelve un objeto HardwareInfo que expone lo siguiente:
Complejidad del bloqueo de pantalla
Device#getDeviceSettings() proporciona DeviceSettings#getScreenLockComplexity(), que devuelve un valor DeviceSettings.ScreenLockComplexity que indica la complejidad del bloqueo de pantalla del usuario o perfil actual.
Estado de administración (y app de administración)
La información que se devuelve depende del perfil en el que se ejecuta la aplicación. Para obtener más información, consulta la tabla de estados de administración.
Encriptación de los discos
DeviceSettings#getEncryptionStatus() devuelve un valor DeviceSettings.EncryptionStatus que indica si el almacenamiento del dispositivo está encriptado.
Acceso al estado de la red (estado de la red y estado de la conexión Wi-Fi)
Device#getNetworkInfo() devuelve un objeto NetworkInfo, y NetworkInfo#getNetworkParams() devuelve una lista de objetos NetworkInfo.NetworkParams con detalles sobre todas las redes activas en el dispositivo:
VerifyApps de Google Play Protect
¿Está habilitado el DNS-over-TLS?
NetworkParams#getPrivateDnsState() devuelve un valor PrivateDnsState que indica si se usa un DNS privado en la red.
Paquete de WebView
SoftwareInfo#getWebviewPackage() devuelve el nombre del paquete de WebView actual.
Nombre de la empresa del proveedor de administración legible por humanos
En los dispositivos administrados por AMAPI, Device#getManagementProviderInfo() devuelve un objeto ManagementProviderInfo cuyo método getBusinessName() proporciona el nombre comercial legible por humanos del proveedor de administración. Este campo no se establece en dispositivos no administrados o administrados por un DPC personalizado.

Estado de administración

Los valores que se devuelven para los indicadores de administración dependen del perfil en el que se ejecuta tu aplicación. Para acceder a los indicadores desde el perfil personal, en un dispositivo no administrado o en un dispositivo administrado por un DPC personalizado, tu aplicación debe estar en la lista de entidades permitidas. En un dispositivo completamente administrado por AMAPI o desde un perfil de trabajo, las aplicaciones a las que se les asigna el rol COMPANION_APP también pueden acceder a estos indicadores sin estar en la lista de entidades permitidas (limitado a los indicadores del perfil de trabajo cuando se llama dentro de un perfil de trabajo).

Estado de administración Indicadores cuando se llama desde el perfil personal Indicadores cuando se llama desde el perfil de trabajo
Dispositivo no administrado ownership: PERSONALLY_OWNED
managementMode: UNMANAGED
managementAppPackageName: N/A
workProfileState:
N/A
Perfil de trabajo en un dispositivo personal (BYOD) ownership: PERSONALLY_OWNED
managementMode: UNMANAGED
managementAppPackageName: N/A
workProfileState:
ownership: PERSONALLY_OWNED
managementMode: PROFILE_OWNER
managementAppPackageName: Package name of the Profile Owner application
workProfileState:
Perfil de trabajo en un dispositivo de la empresa ownership: COMPANY_OWNED
managementMode: UNMANAGED
managementAppPackageName:N/A
workProfileState:
ownership: COMPANY_OWNED
managementMode: PROFILE_OWNER
managementAppPackageName: Package name of the Profile Owner application
workProfileState:
Dispositivo completamente administrado N/A ownership: COMPANY_OWNED
managementMode: DEVICE_OWNER
managementAppPackageName: Package name of the Device Owner application
workProfileState: