Device Trust от Android Enterprise предоставляет набор сигналов о состоянии устройства на Device, к которым могут обращаться авторизованные приложения, в том числе приложения из белого списка и приложения с назначенной ролью COMPANION_APP (см. Как управлять ролями приложений и Настройка правил), чтобы рассчитать оценку доверия для устройства.
Каждое поле сигнала в Device и его вложенных классах модели включает соответствующий метод get*Metadata(), возвращающий Metadata, который сообщает о любых Metadata.DataIssue, возникших при получении сигнала (например, об отсутствии разрешений манифеста).
Инструкции по интеграции Android Management API SDK в приложение можно найти в руководстве по интеграции Device Trust от Android Enterprise.
| Сигналы | |
|---|---|
| Версия ОС |
Device#getSoftwareInfo() возвращает объект
SoftwareInfo, содержащий сведения о версии ОС
(в более старых версиях ОС обычно больше уязвимостей):
|
| Версия Android Device Policy |
SoftwareInfo#getAndroidDevicePolicyVersionCode() и
SoftwareInfo#getAndroidDevicePolicyVersionName() возвращают
код версии и видимое пользователю название версии приложения Android Device
Policy на устройстве.
|
| Есть ли на устройстве ожидающее беспроводное обновление |
SoftwareInfo#getSystemUpdateInfo() возвращает
SoftwareInfo.SystemUpdateInfo, указывающий, есть ли для устройства ожидающее обновление ОС (прокси-сервер, определяющий, уязвимо ли устройство для эксплойтов):
|
| Уровень исправления системы безопасности |
SoftwareInfo#getDeviceSecurityPatchInfos() возвращает список объектов SoftwareInfo.SecurityPatchInfo (а getComponent() и getSecurityPatchLevel() – список объектов SecurityPatchLevel) для текущего уровня исправления системы безопасности на устройстве по обновляемым типам SecurityPatchComponent:
|
| Опубликованный уровень исправления системы безопасности |
SoftwareInfo#getPublishedSecurityPatchInfos() возвращает список объектов SoftwareInfo.SecurityPatchInfo (а getComponent() и getSecurityPatchLevel() – список объектов SecurityPatchLevel) для текущего опубликованного уровня исправления системы безопасности по обновляемым типам SecurityPatchComponent:
|
| Важные сведения о приложении |
Device#getApplicationReports() возвращает сведения обо всех установленных приложениях приложениям расширяемости и вызывающим приложениям с ролью COMPANION_APP на устройстве, управляемом AMAPI (см. разделы Управление ролями приложений и Настройка правил; при вызове в рабочем профиле отчеты ограничиваются приложениями, установленными в рабочем профиле). Для всех остальных вызывающих объектов (например, приложений из белого списка) Device#getApplicationReports() возвращает сведения только о следующих критически важных приложениях:
Сведения возвращаются в виде списка объектов
ApplicationReport, которые содержат:
|
| Информация об аппаратном обеспечении устройства |
Device#getHardwareInfo() возвращает объект HardwareInfo, который содержит:
|
| Сложность блокировки экрана |
Device#getDeviceSettings() предоставляет
DeviceSettings#getScreenLockComplexity(), возвращая значение
DeviceSettings.ScreenLockComplexity, которое указывает,
насколько сложна блокировка экрана текущего пользователя или профиля.
|
| Статус управления (и управляющее приложение) |
Возвращаемая информация зависит от профиля, в котором запущено приложение. Подробные сведения приведены в таблице статусов управления.
|
| Шифрование диска |
DeviceSettings#getEncryptionStatus() возвращает значение
DeviceSettings.EncryptionStatus, указывающее, зашифровано ли хранилище устройства.
|
| Доступ к состоянию сети (состояние сети и Wi-Fi) |
Device#getNetworkInfo() возвращает объект NetworkInfo, а NetworkInfo#getNetworkParams() – список объектов NetworkInfo.NetworkParams с информацией обо всех активных сетях на устройстве:
|
| Проверка приложений в Google Play Защите |
DeviceSettings#getGooglePlayProtectVerifyAppsState() возвращает текущий объект GooglePlayProtectVerifyAppsState.
|
| Включен ли протокол DNS-over-TLS |
NetworkParams#getPrivateDnsState() возвращает значение
PrivateDnsState, указывающее, используется ли в сети частный DNS-сервер.
|
| Пакет WebView |
SoftwareInfo#getWebviewPackage() возвращает название текущего пакета WebView.
|
| Человекочитаемое название компании поставщика услуг по управлению. |
На устройствах, управляемых с помощью AMAPI, метод
Device#getManagementProviderInfo() возвращает объект ManagementProviderInfo, метод getBusinessName() которого предоставляет человекочитаемое название поставщика услуг управления. Это поле не задано на неуправляемых устройствах или устройствах, управляемых специальным контроллером политики устройств.
|
Статус управления
Значения, возвращаемые для сигналов управления, зависят от профиля, в котором запущено приложение. Чтобы получить доступ к сигналам из личного профиля на неуправляемом устройстве или на устройстве, управляемом пользовательским контроллером политики устройств, ваше приложение должно быть в белом списке. На полностью управляемом устройстве, управляемом AMAPI, или в рабочем профиле приложения, которым назначена роль COMPANION_APP, также могут получать доступ к этим сигналам, не находясь в белом списке (ограничено сигналами из рабочего профиля при вызове внутри рабочего профиля).
| Статус управления | Сигналы при вызове из личного профиля | Сигналы при вызове из рабочего профиля |
|---|---|---|
| Неуправляемое устройство |
ownership:
PERSONALLY_OWNEDmanagementMode: UNMANAGEDmanagementAppPackageName: N/AworkProfileState:
|
N/A
|
| Рабочий профиль на личном устройстве (BYOD) |
ownership:
PERSONALLY_OWNEDmanagementMode: UNMANAGEDmanagementAppPackageName: N/AworkProfileState:
|
ownership:
PERSONALLY_OWNEDmanagementMode: PROFILE_OWNERmanagementAppPackageName: Package name of the Profile Owner applicationworkProfileState:
|
| Рабочий профиль на корпоративном устройстве |
ownership:
COMPANY_OWNEDmanagementMode: UNMANAGEDmanagementAppPackageName: N/AworkProfileState:
|
ownership:
COMPANY_OWNEDmanagementMode: PROFILE_OWNERmanagementAppPackageName: Package name of the Profile Owner applicationworkProfileState:
|
| Полностью управляемое устройство |
N/A
|
ownership:
COMPANY_OWNEDmanagementMode: DEVICE_OWNERmanagementAppPackageName: Package name of the Device Owner applicationworkProfileState:
|