O Device Trust do Android Enterprise disponibiliza um conjunto de indicadores de postura do dispositivo
no Device que os aplicativos autorizados, incluindo os que estão na
lista de permissões e os que receberam o papel COMPANION_APP (consulte
Gerenciar papéis de aplicativos e
Configuração de políticas), podem acessar para calcular uma pontuação de confiança
para o dispositivo.
Cada campo de indicador em Device e as classes de modelo aninhadas incluem um
método get*Metadata() correspondente que retorna Metadata, que informa qualquer
Metadata.DataIssue encontrado ao recuperar o indicador (como permissões de manifesto
ausentes).
Para saber como integrar o SDK da API Android Management ao seu aplicativo, consulte Device Trust do Android Enterprise: guia de integração.
| Indicadores | |
|---|---|
| Versão do SO |
Device#getSoftwareInfo() retorna um objeto
SoftwareInfo com detalhes da versão do SO
(versões mais antigas geralmente têm mais vulnerabilidades):
|
| Versão do Android Device Policy |
SoftwareInfo#getAndroidDevicePolicyVersionCode() e
SoftwareInfo#getAndroidDevicePolicyVersionName() retornam
o código da versão e o nome da versão visível para o usuário do app Android Device
Policy no dispositivo.
|
| O dispositivo tem OTA pendente? |
SoftwareInfo#getSystemUpdateInfo() retorna um
SoftwareInfo.SystemUpdateInfo que indica se há
uma atualização pendente do SO para o dispositivo (um proxy para saber se o dispositivo está
vulnerável a exploits):
|
| Nível do patch de segurança do dispositivo |
SoftwareInfo#getDeviceSecurityPatchInfos() retorna uma
lista de objetos
SoftwareInfo.SecurityPatchInfo (com
getComponent() e
getSecurityPatchLevel() retornando uma lista de objetos
SecurityPatchLevel) para o nível do patch de segurança
atual do dispositivo em tipos de
SecurityPatchComponent atualizáveis:
|
| Nível do patch de segurança publicado |
SoftwareInfo#getPublishedSecurityPatchInfos() retorna uma
lista de objetos
SoftwareInfo.SecurityPatchInfo (com
getComponent() e
getSecurityPatchLevel() retornando uma lista de objetos
SecurityPatchLevel) para o nível do patch de segurança
publicado atual em todos os tipos de
SecurityPatchComponent atualizáveis:
|
| Detalhes do app |
Device#getApplicationReports() retorna detalhes sobre todos os
aplicativos instalados para apps de extensibilidade e aplicativos de chamada
com o papel
COMPANION_APP em um dispositivo gerenciado pela AMAPI (consulte
Gerenciar papéis de aplicativos e
Configuração
de política; quando chamados em um perfil de trabalho, os relatórios são
limitados aos apps instalados no perfil de trabalho). Para todos os outros autores de chamada
(como aplicativos na lista de permissões),
Device#getApplicationReports() retorna detalhes apenas sobre os
seguintes apps críticos:
Os detalhes são retornados como uma lista de objetos
ApplicationReport que expõem:
|
| Informações de hardware do dispositivo |
Device#getHardwareInfo() retorna um objeto
HardwareInfo que expõe:
|
| Complexidade do bloqueio de tela |
Device#getDeviceSettings() fornece
DeviceSettings#getScreenLockComplexity(), retornando um valor
DeviceSettings.ScreenLockComplexity que indica
a complexidade do bloqueio de tela do usuário ou perfil atual.
|
| Estado de gerenciamento (e app de gerenciamento) |
As informações retornadas dependem do perfil em que o aplicativo está sendo executado. Para mais detalhes, consulte a
tabela de estado de gerenciamento.
|
| Criptografia de disco |
DeviceSettings#getEncryptionStatus() retorna um valor
DeviceSettings.EncryptionStatus que indica
se o armazenamento do dispositivo está criptografado.
|
| Acesso ao estado da rede (estado da rede e estado do Wi-Fi) |
Device#getNetworkInfo() retorna um objeto
NetworkInfo, e
NetworkInfo#getNetworkParams() retorna uma lista de objetos
NetworkInfo.NetworkParams com detalhes sobre
todas as redes ativas no dispositivo:
|
| VerifyApps do Google Play Protect | |
| O DNS via TLS está ativado? |
NetworkParams#getPrivateDnsState() retorna um valor
PrivateDnsState que indica se o DNS particular é
usado na rede.
|
| Pacote WebView |
SoftwareInfo#getWebviewPackage() retorna o nome do
pacote atual do WebView.
|
| Nome legível por humanos da empresa do provedor de gerenciamento |
Em dispositivos gerenciados pela AMAPI,
Device#getManagementProviderInfo() retorna um objeto
ManagementProviderInfo, cujo método
getBusinessName() fornece o nome comercial legível por humanos
do provedor de gerenciamento. Esse campo não é definido em
dispositivos não gerenciados ou gerenciados por um DPC personalizado.
|
Estado de gerenciamento
Os valores retornados para os indicadores de gerenciamento dependem do perfil em que o
aplicativo está sendo executado. Para acessar indicadores no perfil pessoal,
em um dispositivo não gerenciado ou em um dispositivo gerenciado por um DPC personalizado, seu
aplicativo precisa estar na lista de permissões. Em um dispositivo totalmente gerenciado pela AMAPI ou
em um perfil de trabalho, os aplicativos com o papel
COMPANION_APP também podem acessar esses indicadores sem
estar na lista de permissões (limitado aos indicadores do perfil de trabalho quando chamados
em um perfil de trabalho).
| Estado de gerenciamento | Indicadores quando chamados no perfil pessoal | Indicadores quando chamados no perfil de trabalho |
|---|---|---|
| Dispositivo não gerenciado |
ownership:
PERSONALLY_OWNEDmanagementMode: UNMANAGEDmanagementAppPackageName: N/AworkProfileState:
|
N/A
|
| Perfil de trabalho em um dispositivo pessoal (BYOD) |
ownership:
PERSONALLY_OWNEDmanagementMode: UNMANAGEDmanagementAppPackageName: N/AworkProfileState:
|
ownership:
PERSONALLY_OWNEDmanagementMode: PROFILE_OWNERmanagementAppPackageName: Package name of the Profile Owner applicationworkProfileState:
|
| Perfil de trabalho em dispositivos corporativos |
ownership:
COMPANY_OWNEDmanagementMode: UNMANAGEDmanagementAppPackageName: N/AworkProfileState:
|
ownership:
COMPANY_OWNEDmanagementMode: PROFILE_OWNERmanagementAppPackageName: Package name of the Profile Owner applicationworkProfileState:
|
| Dispositivo totalmente gerenciado |
N/A
|
ownership:
COMPANY_OWNEDmanagementMode: DEVICE_OWNERmanagementAppPackageName: Package name of the Device Owner applicationworkProfileState:
|