AI-generated Key Takeaways
- 
          Device Trust from Android Enterprise provides device posture signals to registered applications for computing a device trust score. 
- 
          Access to device trust signals is restricted via an allowlist, requiring registration. 
- 
          Available signals include OS version, pending updates, security patch levels, critical app details, device model/brand, screen lock complexity, management state, disk encryption, network state, Google Play Protect status, DNS over TLS status, and WebView package. 
- 
          The management state signals vary depending on whether the application is running within the personal or work profile and the device ownership type. 
- 
          Specific management state signals like Device.WorkProfileStateare available starting from particular AMAPI SDK versions.
Device Trust from Android Enterprise makes available a set of device posture signals that registered application can access to compute a trust score of the device.
For information on how to integrate the Android Management API SDK in your application see Device Trust from Android Enterprise - Integration guide.
| Signals | |
|---|---|
| OS Version | SoftwareInfoincludes the OS version of the device.
        Older OS versions typically have more vulnerabilities. | 
| Does the device have pending OTA | SoftwareInfo.SystemUpdateInforeturns if there is a
        pending OS update for the device. Proxy for if the device is vulnerable
        to exploits. | 
| Device Security Patch Level | SoftwareInfo#getDeviceSecurityPatchInfos()returns the
        current security patch level of the device for different updatable
        components:
 | 
| Published Security Patch Level | SoftwareInfo#getPublishedSecurityPatchInfos()returns
        the current published security patch level of the device for different
        updatable components:
 | 
| Critical App Details | Device#getApplicationReports()returns details on all
        installed applications to extensibility apps and calling application
        with roleCOMPANION_APPon a managed device. For all other use
        casesDevice#getApplicationReports()returns details on the
        following critical apps:
 The provided details are shared with a list of
        
         ApplicationReport. | 
| Device Model / Brand | HardwareInfo#getModel()returns the device model andHardwareInfo#getBrand()returns the device brand. | 
| Screen lock complexity | DeviceSettings#getScreenLockComplexity()returns how
        complex the current user's screen lock is. | 
| Management State (and managing app) | Device#getManagementMode()returns the management state
        andDevice#getManagementAppPackageName()returns the
        management app.
        The returned information depends on the profile the application is
        running in. For details see the
        Management state table.
       | 
| Disk encryption | DeviceSettings#getEncryptionStatus()returns if the
        device's storage is encrypted. | 
| Access Network State (Network state and Wi-Fi state) | 
        You can use
        
         Device#getNetworkInfo()to get details about all active
        networks on the device:
 | 
| Google Play Protect VerifyApps | DeviceSettings#getGooglePlayProtectVerifyAppsState()returns the currentGooglePlayProtectVerifyAppsState. | 
| Is DNS over TLS enabled | NetworkParams#getPrivateDnsState()returns whether
        private DNS is used on the network. | 
| WebView package | SoftwareInfo#getWebviewPackage()returns the name of
        the current WebView package. | 
| Human-readable business name of the management provider | 
        On AMAPI-managed device,
        
         ManagementProviderInfocan be used to retrieve the
        human-readable business name of the management provider. | 
Management state
The values returned for the management signals depends on the profile that your application is running in.
| Management state | Signals when called from within the Personal Profile | Signals when called from within the Work Profile | 
|---|---|---|
| Non-managed device | ownership: PERSONALLY_OWNEDmanagementMode: UNMANAGEDmanagementAppPackageName: N/AworkProfileState: 
 | N/A | 
| Work Profile on personally-owned device (BYOD) | ownership: PERSONALLY_OWNEDmanagementMode: UNMANAGEDmanagementAppPackageName: N/AworkProfileState: 
 | ownership: PERSONALLY_OWNEDmanagementMode: PROFILE_OWNERmanagementAppPackageName: Package name of the Profile Owner applicationworkProfileState: 
 | 
| Work Profile on company-owned device | ownership: COMPANY_OWNEDmanagementMode: UNMANAGEDmanagementAppPackageName: N/AworkProfileState: 
 | ownership: COMPANY_OWNEDmanagementMode: PROFILE_OWNERmanagementAppPackageName: Package name of the Profile Owner applicationworkProfileState: 
 | 
| Fully managed device | N/A | ownership: COMPANY_OWNEDmanagementMode: DEVICE_OWNERmanagementAppPackageName: Package name of the Device Owner applicationworkProfileState: 
 | 
