> [!IMPORTANT]
> **Important:** Accessing device trust signals from inside a personal profile or on a non-managed device requires your application to be on the allowlist. Applications assigned the [`COMPANION_APP`](https://developers.google.com/android/management/reference/rest/v1/enterprises.policies.md.txt#RoleType.ENUM_VALUES.COMPANION_APP) role on AMAPI-managed devices can access signals without being on the allowlist on fully managed devices or from inside a work profile (with access limited to the work profile). For details, see [Signals access](https://developers.google.com/android/management/device-trust-register.md.txt).

Device Trust from Android Enterprise makes available a set of device posture
signals on [`Device`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.md.txt) that authorized applications---including applications on the
allowlist and apps assigned the [`COMPANION_APP`](https://developers.google.com/android/management/reference/rest/v1/enterprises.policies.md.txt#RoleType.ENUM_VALUES.COMPANION_APP) role (see
[Manage application roles](https://developers.google.com/android/management/app-roles.md.txt) and
[Policy Configuration](https://developers.google.com/android/management/sdk-local-commands.md.txt#policy))---can access to compute a trust
score for the device.

Each signal field on [`Device`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.md.txt) and its nested model classes includes a
corresponding `get*Metadata()` method returning [`Metadata`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Metadata.md.txt), which reports any
[`Metadata.DataIssue`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Metadata.DataIssue.md.txt) encountered when retrieving the signal (such as missing
manifest permissions).

For information on how to integrate the Android Management API SDK in your
application, see
[Device Trust from Android Enterprise - Integration guide](https://developers.google.com/android/management/device-trust-api.md.txt).

| Signals ||
|---|---|
| OS Version | [`Device#getSoftwareInfo()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.md.txt#getSoftwareInfo()) returns a [`SoftwareInfo`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.md.txt) object containing OS version details (older OS versions typically have more vulnerabilities): - [`SoftwareInfo#getAndroidVersion()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.md.txt#getAndroidVersion()): user-visible Android version string. - [`SoftwareInfo#getAndroidSdkVersion()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.md.txt#getAndroidSdkVersion()): API level of the Android platform version running on the device. |
| Android Device Policy version | [`SoftwareInfo#getAndroidDevicePolicyVersionCode()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.md.txt#getAndroidDevicePolicyVersionCode()) and [`SoftwareInfo#getAndroidDevicePolicyVersionName()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.md.txt#getAndroidDevicePolicyVersionName()) return the version code and user-visible version name of the Android Device Policy app on the device. |
| Does the device have pending OTA | [`SoftwareInfo#getSystemUpdateInfo()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.md.txt#getSystemUpdateInfo()) returns a [`SoftwareInfo.SystemUpdateInfo`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SystemUpdateInfo.md.txt) indicating whether there is a pending OS update for the device (a proxy for whether the device is vulnerable to exploits): - [`SystemUpdateInfo#getUpdateStatus()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SystemUpdateInfo.md.txt#getUpdateStatus()) (an [`UpdateStatus`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SystemUpdateInfo.UpdateStatus.md.txt) value). - [`SystemUpdateInfo#getUpdateReceivedTime()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SystemUpdateInfo.md.txt#getUpdateReceivedTime()): when the update first became available. > [!IMPORTANT] > On Android 15 and higher, this signal is available in all scenarios. On Android 14 and lower, it is only available when the device is managed by the Android Device Policy app (not on non-managed devices or devices managed by a custom DPC). |
| Device Security Patch Level | [`SoftwareInfo#getDeviceSecurityPatchInfos()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.md.txt#getDeviceSecurityPatchInfos()) returns a list of [`SoftwareInfo.SecurityPatchInfo`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SecurityPatchInfo.md.txt) objects (with [`getComponent()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SecurityPatchInfo.md.txt#getComponent()) and [`getSecurityPatchLevel()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SecurityPatchInfo.md.txt#getSecurityPatchLevel()) returning a list of [`SecurityPatchLevel`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SecurityPatchInfo.SecurityPatchLevel.md.txt) objects) for the current security patch level of the device across updatable [`SecurityPatchComponent`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SecurityPatchInfo.SecurityPatchComponent.md.txt) types: - [`SYSTEM`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SecurityPatchInfo.SecurityPatchComponent.md.txt#SYSTEM) - [`KERNEL`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SecurityPatchInfo.SecurityPatchComponent.md.txt#KERNEL) - [`SYSTEM_MODULES`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SecurityPatchInfo.SecurityPatchComponent.md.txt#SYSTEM_MODULES) (also known as Android's [mainline modules](https://source.android.com/docs/core/ota/modular-system)) |
| Published Security Patch Level | [`SoftwareInfo#getPublishedSecurityPatchInfos()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.md.txt#getPublishedSecurityPatchInfos()) returns a list of [`SoftwareInfo.SecurityPatchInfo`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SecurityPatchInfo.md.txt) objects (with [`getComponent()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SecurityPatchInfo.md.txt#getComponent()) and [`getSecurityPatchLevel()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SecurityPatchInfo.md.txt#getSecurityPatchLevel()) returning a list of [`SecurityPatchLevel`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SecurityPatchInfo.SecurityPatchLevel.md.txt) objects) for the current published security patch level across updatable [`SecurityPatchComponent`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SecurityPatchInfo.SecurityPatchComponent.md.txt) types: - [`SYSTEM`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SecurityPatchInfo.SecurityPatchComponent.md.txt#SYSTEM) - [`KERNEL`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SecurityPatchInfo.SecurityPatchComponent.md.txt#KERNEL) - [`SYSTEM_MODULES`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.SecurityPatchInfo.SecurityPatchComponent.md.txt#SYSTEM_MODULES) (also known as Android's [mainline modules](https://source.android.com/docs/core/ota/modular-system)) |
| Critical App Details | [`Device#getApplicationReports()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.md.txt#getApplicationReports()) returns details on all installed applications to extensibility apps and calling applications with role [`COMPANION_APP`](https://developers.google.com/android/management/reference/rest/v1/enterprises.policies.md.txt#RoleType.ENUM_VALUES.COMPANION_APP) on an AMAPI-managed device (see [Manage application roles](https://developers.google.com/android/management/app-roles.md.txt) and [Policy Configuration](https://developers.google.com/android/management/sdk-local-commands.md.txt#policy); when called inside a work profile, reports are limited to apps installed in the work profile). For all other callers (such as applications on the allowlist), `Device#getApplicationReports()` returns details only on the following critical apps: - `com.android.chrome` - `com.google.android.gms` - `com.google.android.apps.work.clouddpc` - `com.android.vending` - The device's current WebView package (such as `com.google.android.webview`) Details are returned as a list of [`ApplicationReport`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/ApplicationReport.md.txt) objects exposing: - [`getPackageName()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/ApplicationReport.md.txt#getPackageName()) - [`getVersionName()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/ApplicationReport.md.txt#getVersionName()) and [`getLongVersionCode()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/ApplicationReport.md.txt#getLongVersionCode()) - [`getSigningKeyCertSha256Fingerprints()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/ApplicationReport.md.txt#getSigningKeyCertSha256Fingerprints()) - [`getApplicationSource()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/ApplicationReport.md.txt#getApplicationSource()) (an [`ApplicationSource`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/ApplicationReport.ApplicationSource.md.txt) value) and [`getInstallerPackageName()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/ApplicationReport.md.txt#getInstallerPackageName()) > [!IMPORTANT] > These fields are only populated on AMAPI-managed devices (fully managed devices and work profiles). On non-managed devices, personal profiles, or custom-DPC devices, these fields may not be populated: `getInstallerPackageName()` returns an empty string (`""`) and `getApplicationSource()` returns `APPLICATION_SOURCE_UNSPECIFIED`. Callers in those environments shouldn't treat `APPLICATION_SOURCE_UNSPECIFIED` as indicating a sideloaded app. - [`getLastUpdateTime()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/ApplicationReport.md.txt#getLastUpdateTime()) |
| Device Hardware Info | [`Device#getHardwareInfo()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.md.txt#getHardwareInfo()) returns a [`HardwareInfo`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/HardwareInfo.md.txt) object exposing: - [`HardwareInfo#getModel()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/HardwareInfo.md.txt#getModel()): device model. - [`HardwareInfo#getBrand()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/HardwareInfo.md.txt#getBrand()): device brand. - [`HardwareInfo#getManufacturer()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/HardwareInfo.md.txt#getManufacturer()): device manufacturer. - [`HardwareInfo#getHardware()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/HardwareInfo.md.txt#getHardware()): hardware name. - [`HardwareInfo#getDevice()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/HardwareInfo.md.txt#getDevice()): industrial design name. - [`HardwareInfo#getProduct()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/HardwareInfo.md.txt#getProduct()): overall product name. |
| Screen lock complexity | [`Device#getDeviceSettings()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.md.txt#getDeviceSettings()) provides [`DeviceSettings#getScreenLockComplexity()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/DeviceSettings.md.txt#getScreenLockComplexity()), returning a [`DeviceSettings.ScreenLockComplexity`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/DeviceSettings.ScreenLockComplexity.md.txt) value indicating how complex the current user's or profile's screen lock is. > [!IMPORTANT] > Requires the [`REQUEST_PASSWORD_COMPLEXITY`](https://developer.android.com/reference/android/Manifest.permission#REQUEST_PASSWORD_COMPLEXITY) permission in the calling app's manifest for all callers. |
| Management State (and managing app) | - [`Device#getOwnership()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.md.txt#getOwnership()) returns a [`Device.Ownership`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.Ownership.md.txt) value. - [`Device#getManagementMode()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.md.txt#getManagementMode()) returns a [`Device.ManagementMode`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.ManagementMode.md.txt) value. - [`Device#getManagementAppPackageName()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.md.txt#getManagementAppPackageName()) returns the package name of the managing app. - [`Device#getWorkProfileState()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.md.txt#getWorkProfileState()) returns a [`Device.WorkProfileState`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.WorkProfileState.md.txt) value. The returned information depends on the profile the application is running in. For details, see the [Management state table](https://developers.google.com/android/management/device-trust-signals.md.txt#management-state). |
| Disk encryption | [`DeviceSettings#getEncryptionStatus()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/DeviceSettings.md.txt#getEncryptionStatus()) returns a [`DeviceSettings.EncryptionStatus`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/DeviceSettings.EncryptionStatus.md.txt) value indicating whether the device's storage is encrypted. |
| Access Network State (Network state and Wi-Fi state) | [`Device#getNetworkInfo()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.md.txt#getNetworkInfo()) returns a [`NetworkInfo`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/NetworkInfo.md.txt) object, and [`NetworkInfo#getNetworkParams()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/NetworkInfo.md.txt#getNetworkParams()) returns a list of [`NetworkInfo.NetworkParams`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/NetworkInfo.NetworkParams.md.txt) objects with details about all active networks on the device: - [`getNetworkTransport()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/NetworkInfo.NetworkParams.md.txt#getNetworkTransport()) (a list of [`NetworkTransport`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/NetworkInfo.NetworkParams.NetworkTransport.md.txt) values, such as cellular or Wi-Fi) - [`getWifiSecurityLevel()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/NetworkInfo.NetworkParams.md.txt#getWifiSecurityLevel()) ([`WifiSecurityLevel`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/NetworkInfo.NetworkParams.WifiSecurityLevel.md.txt): [`OPEN`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/NetworkInfo.NetworkParams.WifiSecurityLevel.md.txt#OPEN), [`PERSONAL`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/NetworkInfo.NetworkParams.WifiSecurityLevel.md.txt#PERSONAL), [`ENTERPRISE_EAP`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/NetworkInfo.NetworkParams.WifiSecurityLevel.md.txt#ENTERPRISE_EAP), [`ENTERPRISE_192`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/NetworkInfo.NetworkParams.WifiSecurityLevel.md.txt#ENTERPRISE_192)) - [`getPrivateDnsState()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/NetworkInfo.NetworkParams.md.txt#getPrivateDnsState()) ([`PrivateDnsState`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/NetworkInfo.NetworkParams.PrivateDnsState.md.txt)) > [!IMPORTANT] > Requires the [`ACCESS_NETWORK_STATE`](https://developer.android.com/reference/android/Manifest.permission#ACCESS_NETWORK_STATE) permission in the calling app's manifest for all callers. |
| Google Play Protect VerifyApps | [`DeviceSettings#getGooglePlayProtectVerifyAppsState()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/DeviceSettings.md.txt#getGooglePlayProtectVerifyAppsState()) returns the current [`GooglePlayProtectVerifyAppsState`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/DeviceSettings.GooglePlayProtectVerifyAppsState.md.txt). |
| Is DNS over TLS enabled | [`NetworkParams#getPrivateDnsState()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/NetworkInfo.NetworkParams.md.txt#getPrivateDnsState()) returns a [`PrivateDnsState`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/NetworkInfo.NetworkParams.PrivateDnsState.md.txt) value indicating whether private DNS is used on the network. |
| WebView package | [`SoftwareInfo#getWebviewPackage()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/SoftwareInfo.md.txt#getWebviewPackage()) returns the name of the current WebView package. |
| Human-readable business name of the management provider | On AMAPI-managed devices, [`Device#getManagementProviderInfo()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.md.txt#getManagementProviderInfo()) returns a [`ManagementProviderInfo`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/ManagementProviderInfo.md.txt) object whose [`getBusinessName()`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/ManagementProviderInfo.md.txt#getBusinessName()) method provides the human-readable business name of the management provider. This field isn't set on non-managed devices or devices managed by a custom DPC. > [!IMPORTANT] > This signal is available starting from AMAPI SDK v1.7.0-rc01. |

### Management state

The values returned for the management signals depend on the profile that your
application is running in. Accessing signals from within the Personal Profile,
on a non-managed device, or on a device managed by a custom DPC requires your
application to be on the allowlist. On an AMAPI-managed fully managed device or
from within a Work Profile, applications assigned the
[`COMPANION_APP`](https://developers.google.com/android/management/reference/rest/v1/enterprises.policies.md.txt#RoleType.ENUM_VALUES.COMPANION_APP) role can also access these signals without
being on the allowlist (limited to signals from the work profile when called
inside a work profile).

> [!IMPORTANT]
> **Key Point:** [`Device.WorkProfileState`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.WorkProfileState.md.txt) signal is available starting from AMAPI SDK v1.4.0-rc01.

| Management state | Signals when called from within the Personal Profile | Signals when called from within the Work Profile |
|---|---|---|
| Non-managed device | **ownership:** [`PERSONALLY_OWNED`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.Ownership.md.txt#PERSONALLY_OWNED) **managementMode:** [`UNMANAGED`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.ManagementMode.md.txt#UNMANAGED) **managementAppPackageName:** `N/A` **workProfileState:** - A13+: [`WORK_PROFILE_NOT_PRESENT`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.WorkProfileState.md.txt#WORK_PROFILE_NOT_PRESENT) - A9-12: [`WORK_PROFILE_STATE_UNSPECIFIED`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.WorkProfileState.md.txt#WORK_PROFILE_STATE_UNSPECIFIED) | `N/A` |
| Work Profile on personally-owned device (BYOD) | **ownership:** [`PERSONALLY_OWNED`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.Ownership.md.txt#PERSONALLY_OWNED) **managementMode:** [`UNMANAGED`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.ManagementMode.md.txt#UNMANAGED) **managementAppPackageName:** `N/A` **workProfileState:** - A13+: [`WORK_PROFILE_PRESENT`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.WorkProfileState.md.txt#WORK_PROFILE_PRESENT) - A9-12 (AMAPI): [`WORK_PROFILE_PRESENT`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.WorkProfileState.md.txt#WORK_PROFILE_PRESENT) - A9-12 (CustomDPC): [`WORK_PROFILE_STATE_UNSPECIFIED`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.WorkProfileState.md.txt#WORK_PROFILE_STATE_UNSPECIFIED) | **ownership:** [`PERSONALLY_OWNED`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.Ownership.md.txt#PERSONALLY_OWNED) **managementMode:** [`PROFILE_OWNER`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.ManagementMode.md.txt#PROFILE_OWNER) **managementAppPackageName:** `Package name of the Profile Owner application` **workProfileState:** - A9+: [`WORK_PROFILE_PRESENT`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.WorkProfileState.md.txt#WORK_PROFILE_PRESENT) |
| Work Profile on company-owned device | **ownership:** [`COMPANY_OWNED`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.Ownership.md.txt#COMPANY_OWNED) **managementMode:** [`UNMANAGED`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.ManagementMode.md.txt#UNMANAGED) **managementAppPackageName:** `N/A` **workProfileState:** - A13+: [`WORK_PROFILE_PRESENT`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.WorkProfileState.md.txt#WORK_PROFILE_PRESENT) - A9-12 (AMAPI): [`WORK_PROFILE_PRESENT`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.WorkProfileState.md.txt#WORK_PROFILE_PRESENT) - A9-12 (CustomDPC): [`WORK_PROFILE_STATE_UNSPECIFIED`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.WorkProfileState.md.txt#WORK_PROFILE_STATE_UNSPECIFIED) | **ownership:** [`COMPANY_OWNED`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.Ownership.md.txt#COMPANY_OWNED) **managementMode:** [`PROFILE_OWNER`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.ManagementMode.md.txt#PROFILE_OWNER) **managementAppPackageName:** `Package name of the Profile Owner application` **workProfileState:** - A9+: [`WORK_PROFILE_PRESENT`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.WorkProfileState.md.txt#WORK_PROFILE_PRESENT) |
| Fully managed device | `N/A` | **ownership:** [`COMPANY_OWNED`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.Ownership.md.txt#COMPANY_OWNED) **managementMode:** [`DEVICE_OWNER`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.ManagementMode.md.txt#DEVICE_OWNER) **managementAppPackageName:** `Package name of the Device Owner application` **workProfileState:** - A11+: [`WORK_PROFILE_NOT_PRESENT`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.WorkProfileState.md.txt#WORK_PROFILE_NOT_PRESENT) - A9-10: [`WORK_PROFILE_STATE_UNSPECIFIED`](https://developers.google.com/android/management/reference/amapi/com/google/android/managementapi/device/model/Device.WorkProfileState.md.txt#WORK_PROFILE_STATE_UNSPECIFIED) |