{
	"id": "94006816-7738-4aea-8092-250d129ff570",
	"created_at": "2026-04-06T00:07:28.751878Z",
	"updated_at": "2026-04-10T03:22:00.972635Z",
	"deleted_at": null,
	"sha1_hash": "f03bc0dade3a8fcb7a49da9fa1ae1775ffba5513",
	"title": "DeviceAdminInfo  |  API reference  |  Android Developers",
	"llm_title": "",
	"authors": "",
	"file_creation_date": "0001-01-01T00:00:00Z",
	"file_modification_date": "0001-01-01T00:00:00Z",
	"file_size": 190055,
	"plain_text": "DeviceAdminInfo  |  API reference  |  Android Developers\r\nArchived: 2026-04-05 23:22:34 UTC\r\nDeviceAdminInfo Stay organized with collections Save and categorize content\r\nbased on your preferences.\r\npublic final class DeviceAdminInfo\r\nextends Object implements Parcelable\r\nThis class is used to specify meta information of a device administrator component.\r\nSummary\r\nConstants\r\nint\r\nHEADLESS_DEVICE_OWNER_MODE_AFFILIATED\r\nValue for getHeadlessDeviceOwnerMode() which indicates that this DPC should be provisioned into\r\n\"affiliated\" mode when on a Headless System User Mode device.\r\nint\r\nHEADLESS_DEVICE_OWNER_MODE_SINGLE_USER\r\nValue for getHeadlessDeviceOwnerMode() which indicates that this DPC should be provisioned into\r\nthe first secondary user when on a Headless System User Mode device.\r\nint\r\nHEADLESS_DEVICE_OWNER_MODE_UNSUPPORTED\r\nValue for getHeadlessDeviceOwnerMode() which indicates that this DPC should not be provisioned\r\ninto Device Owner mode on a Headless System User Mode device.\r\nint\r\nUSES_ENCRYPTED_STORAGE\r\nA type of policy that this device admin can use: require encryption of stored data.\r\nhttps://developer.android.com/reference/android/app/admin/DeviceAdminInfo\r\nPage 1 of 15\n\nint\r\nUSES_POLICY_DISABLE_CAMERA\r\nA type of policy that this device admin can use: disables use of all device cameras.\r\nint\r\nUSES_POLICY_DISABLE_KEYGUARD_FEATURES\r\nA type of policy that this device admin can use: disables use of keyguard features.\r\nint\r\nUSES_POLICY_EXPIRE_PASSWORD\r\nA type of policy that this device admin can use: force the user to change their password after an\r\nadministrator-defined time limit.\r\nint\r\nUSES_POLICY_FORCE_LOCK\r\nA type of policy that this device admin can use: able to force the device to lock\r\nvia DevicePolicyManager.lockNow or limit the maximum lock timeout for the device via\r\nDevicePolicyManager.setMaximumTimeToLock .\r\nint\r\nUSES_POLICY_LIMIT_PASSWORD\r\nA type of policy that this device admin can use: limit the passwords that the user can select, via\r\nDevicePolicyManager.setPasswordQuality and\r\nDevicePolicyManager.setPasswordMinimumLength .\r\nint\r\nUSES_POLICY_RESET_PASSWORD\r\nA type of policy that this device admin can use: able to reset the user's password via\r\nDevicePolicyManager.resetPassword .\r\nint\r\nUSES_POLICY_WATCH_LOGIN\r\nA type of policy that this device admin can use: able to watch login attempts from the user, via\r\nDeviceAdminReceiver.ACTION_PASSWORD_FAILED ,\r\nDeviceAdminReceiver.ACTION_PASSWORD_SUCCEEDED , and\r\nDevicePolicyManager.getCurrentFailedPasswordAttempts .\r\nint\r\nUSES_POLICY_WIPE_DATA\r\nA type of policy that this device admin can use: able to factory reset the device, erasing all of the\r\nuser's data, via DevicePolicyManager.wipeData .\r\nhttps://developer.android.com/reference/android/app/admin/DeviceAdminInfo\r\nPage 2 of 15\n\nInherited constants\r\nFrom interface android.os.Parcelable\r\nint\r\nCONTENTS_FILE_DESCRIPTOR\r\nDescriptor bit used with describeContents() : indicates that the Parcelable object's flattened\r\nrepresentation includes a file descriptor.\r\nint\r\nPARCELABLE_WRITE_RETURN_VALUE\r\nFlag for use with writeToParcel(Parcel, int) : the object being written is a return value, that\r\nis the result of a function such as \" Parcelable someFunction() \", \" void someFunction(out\r\nParcelable) \", or \" void someFunction(inout Parcelable) \".\r\nFields\r\npublic static final Creator\u003cDeviceAdminInfo\u003e\r\nCREATOR\r\nUsed to make this class parcelable.\r\nPublic constructors\r\nDeviceAdminInfo(Context context, ResolveInfo resolveInfo)\r\nConstructor.\r\nPublic methods\r\nint\r\ndescribeContents()\r\nDescribe the kinds of special objects contained in this Parcelable instance's marshaled\r\nrepresentation.\r\nvoid dump(Printer pw, String prefix)\r\nActivityInfo\r\ngetActivityInfo()\r\nReturn the raw information about the receiver implementing this device admin.\r\nhttps://developer.android.com/reference/android/app/admin/DeviceAdminInfo\r\nPage 3 of 15\n\nComponentName\r\ngetComponent()\r\nReturn the component of the receiver that implements this device admin.\r\nint\r\ngetHeadlessDeviceOwnerMode()\r\nReturns the mode this DeviceAdmin wishes to use if provisioned as a Device Owner on a\r\nheadless system user mode device.\r\nString\r\ngetPackageName()\r\nReturn the .apk package that implements this device admin.\r\nString\r\ngetReceiverName()\r\nReturn the class name of the receiver component that implements this device admin.\r\nString\r\ngetTagForPolicy(int policyIdent)\r\nReturn the XML tag name for the given policy identifier.\r\nboolean\r\nisVisible()\r\nReturns whether this device admin would like to be visible to the user, even when it is not\r\nenabled.\r\nCharSequence\r\nloadDescription(PackageManager pm)\r\nLoad user-visible description associated with this device admin.\r\nDrawable\r\nloadIcon(PackageManager pm)\r\nLoad the user-displayed icon for this device admin.\r\nCharSequence\r\nloadLabel(PackageManager pm)\r\nLoad the user-displayed label for this device admin.\r\nboolean\r\nsupportsTransferOwnership()\r\nReturn true if this administrator can be a target in an ownership transfer.\r\nString toString()\r\nhttps://developer.android.com/reference/android/app/admin/DeviceAdminInfo\r\nPage 4 of 15\n\nReturns a string representation of the object.\r\nboolean\r\nusesPolicy(int policyIdent)\r\nReturn true if the device admin has requested that it be able to use the given policy\r\ncontrol.\r\nvoid\r\nwriteToParcel(Parcel dest, int flags)\r\nUsed to package this object into a Parcel .\r\nInherited methods\r\nFrom class java.lang.Object\r\nObject\r\nclone()\r\nCreates and returns a copy of this object.\r\nboolean\r\nequals(Object obj)\r\nIndicates whether some other object is \"equal to\" this one.\r\nvoid\r\nfinalize()\r\nCalled by the garbage collector on an object when garbage collection determines that\r\nthere are no more references to the object.\r\nfinal\r\nClass\u003c?\u003e\r\ngetClass()\r\nReturns the runtime class of this Object .\r\nint\r\nhashCode()\r\nReturns a hash code value for the object.\r\nfinal void\r\nnotify()\r\nWakes up a single thread that is waiting on this object's monitor.\r\nhttps://developer.android.com/reference/android/app/admin/DeviceAdminInfo\r\nPage 5 of 15\n\nfinal void\r\nnotifyAll()\r\nWakes up all threads that are waiting on this object's monitor.\r\nString\r\ntoString()\r\nReturns a string representation of the object.\r\nfinal void\r\nwait(long timeoutMillis, int nanos)\r\nCauses the current thread to wait until it is awakened, typically by being notified or\r\ninterrupted, or until a certain amount of real time has elapsed.\r\nfinal void\r\nwait(long timeoutMillis)\r\nCauses the current thread to wait until it is awakened, typically by being notified or\r\ninterrupted, or until a certain amount of real time has elapsed.\r\nfinal void\r\nwait()\r\nCauses the current thread to wait until it is awakened, typically by being notified or\r\ninterrupted.\r\nFrom interface android.os.Parcelable\r\nabstract\r\nint\r\ndescribeContents()\r\nDescribe the kinds of special objects contained in this Parcelable instance's marshaled\r\nrepresentation.\r\nabstract\r\nvoid\r\nwriteToParcel(Parcel dest, int flags)\r\nFlatten this object in to a Parcel.\r\nConstants\r\nHEADLESS_DEVICE_OWNER_MODE_AFFILIATED\r\npublic static final int HEADLESS_DEVICE_OWNER_MODE_AFFILIATED\r\nValue for getHeadlessDeviceOwnerMode() which indicates that this DPC should be provisioned into \"affiliated\"\r\nmode when on a Headless System User Mode device.\r\nhttps://developer.android.com/reference/android/app/admin/DeviceAdminInfo\r\nPage 6 of 15\n\nThis mode adds a Profile Owner to all users other than the user the Device Owner is on.\r\nStarting from Android version Build.VERSION_CODES.VANILLA_ICE_CREAM , DPCs should set the value of attribute\r\n\"headless-device-owner-mode\" inside the \"headless-system-user\" tag as \"affiliated\".\r\nConstant Value: 1 (0x00000001)\r\nHEADLESS_DEVICE_OWNER_MODE_SINGLE_USER\r\npublic static final int HEADLESS_DEVICE_OWNER_MODE_SINGLE_USER\r\nValue for getHeadlessDeviceOwnerMode() which indicates that this DPC should be provisioned into the first\r\nsecondary user when on a Headless System User Mode device.\r\nThis mode only allows a single secondary user on the device blocking the creation of additional secondary users.\r\nStarting from Android version Build.VERSION_CODES.VANILLA_ICE_CREAM , DPCs should set the value of attribute\r\n\"headless-device-owner-mode\" inside the \"headless-system-user\" tag as \"single_user\".\r\nConstant Value: 2 (0x00000002)\r\nHEADLESS_DEVICE_OWNER_MODE_UNSUPPORTED\r\npublic static final int HEADLESS_DEVICE_OWNER_MODE_UNSUPPORTED\r\nValue for getHeadlessDeviceOwnerMode() which indicates that this DPC should not be provisioned into Device\r\nOwner mode on a Headless System User Mode device.\r\nConstant Value: 0 (0x00000000)\r\nUSES_ENCRYPTED_STORAGE\r\npublic static final int USES_ENCRYPTED_STORAGE\r\nA type of policy that this device admin can use: require encryption of stored data.\r\nTo control this policy, the device admin must have a \"encrypted-storage\" tag in the \"uses-policies\" section of its\r\nmeta-data.\r\nConstant Value: 7 (0x00000007)\r\nUSES_POLICY_DISABLE_CAMERA\r\npublic static final int USES_POLICY_DISABLE_CAMERA\r\nhttps://developer.android.com/reference/android/app/admin/DeviceAdminInfo\r\nPage 7 of 15\n\nA type of policy that this device admin can use: disables use of all device cameras.\r\nTo control this policy, the device admin must be a device owner or profile owner, and must have a \"disable-camera\" tag in the \"uses-policies\" section of its meta-data. If used by a device owner, the policy affects all users\r\non the device.\r\nConstant Value: 8 (0x00000008)\r\nUSES_POLICY_DISABLE_KEYGUARD_FEATURES\r\npublic static final int USES_POLICY_DISABLE_KEYGUARD_FEATURES\r\nA type of policy that this device admin can use: disables use of keyguard features.\r\nTo control this policy, the device admin must be a device owner or profile owner, and must have a \"disable-keyguard-features\" tag in the \"uses-policies\" section of its meta-data. If used by a device owner, the policy only\r\naffects the primary user and its profiles, but not any secondary users on the device.\r\nConstant Value: 9 (0x00000009)\r\nUSES_POLICY_EXPIRE_PASSWORD\r\npublic static final int USES_POLICY_EXPIRE_PASSWORD\r\nA type of policy that this device admin can use: force the user to change their password after an administrator-defined time limit.\r\nTo control this policy, the device admin must be a device owner or profile owner, and must have an \"expire-password\" tag in the \"uses-policies\" section of its meta-data. If used by a device owner, the policy only affects the\r\nprimary user and its profiles, but not any secondary users on the device.\r\nConstant Value: 6 (0x00000006)\r\nUSES_POLICY_FORCE_LOCK\r\npublic static final int USES_POLICY_FORCE_LOCK\r\nA type of policy that this device admin can use: able to force the device to lock\r\nvia DevicePolicyManager.lockNow or limit the maximum lock timeout for the device via\r\nDevicePolicyManager.setMaximumTimeToLock .\r\nTo control this policy, the device admin must have a \"force-lock\" tag in the \"uses-policies\" section of its meta-data.\r\nConstant Value: 3 (0x00000003)\r\nhttps://developer.android.com/reference/android/app/admin/DeviceAdminInfo\r\nPage 8 of 15\n\nUSES_POLICY_LIMIT_PASSWORD\r\npublic static final int USES_POLICY_LIMIT_PASSWORD\r\nA type of policy that this device admin can use: limit the passwords that the user can select, via\r\nDevicePolicyManager.setPasswordQuality and DevicePolicyManager.setPasswordMinimumLength .\r\nTo control this policy, the device admin must be a device owner or profile owner, and must have a \"limit-password\" tag in the \"uses-policies\" section of its meta-data. If used by a device owner, the policy only affects the\r\nprimary user and its profiles, but not any secondary users on the device.\r\nConstant Value: 0 (0x00000000)\r\nUSES_POLICY_RESET_PASSWORD\r\npublic static final int USES_POLICY_RESET_PASSWORD\r\nA type of policy that this device admin can use: able to reset the user's password via\r\nDevicePolicyManager.resetPassword .\r\nTo control this policy, the device admin must have a \"reset-password\" tag in the \"uses-policies\" section of its\r\nmeta-data.\r\nConstant Value: 2 (0x00000002)\r\nUSES_POLICY_WIPE_DATA\r\npublic static final int USES_POLICY_WIPE_DATA\r\nA type of policy that this device admin can use: able to factory reset the device, erasing all of the user's data, via\r\nDevicePolicyManager.wipeData .\r\nTo control this policy, the device admin must have a \"wipe-data\" tag in the \"uses-policies\" section of its meta-data.\r\nConstant Value: 4 (0x00000004)\r\nFields\r\nPublic constructors\r\nDeviceAdminInfo\r\nhttps://developer.android.com/reference/android/app/admin/DeviceAdminInfo\r\nPage 9 of 15\n\npublic DeviceAdminInfo (Context context,\r\n ResolveInfo resolveInfo)\r\nConstructor.\r\nParameters\r\ncontext Context : The Context in which we are parsing the device admin.\r\nresolveInfo\r\nResolveInfo : The ResolveInfo returned from the package manager about this device\r\nadmin's component.\r\nThrows\r\nIOException\r\nXmlPullParserException\r\nPublic methods\r\ndescribeContents\r\npublic int describeContents ()\r\nDescribe the kinds of special objects contained in this Parcelable instance's marshaled representation. For\r\nexample, if the object will include a file descriptor in the output of writeToParcel(Parcel,int) , the return value\r\nof this method must include the CONTENTS_FILE_DESCRIPTOR bit.\r\nReturns\r\nint\r\na bitmask indicating the set of special object types marshaled by this Parcelable object instance.\r\nValue is either 0 or\r\nCONTENTS_FILE_DESCRIPTOR\r\ndump\r\npublic void dump (Printer pw,\r\n String prefix)\r\nParameters\r\npw Printer\r\nhttps://developer.android.com/reference/android/app/admin/DeviceAdminInfo\r\nPage 10 of 15\n\nprefix String\r\ngetActivityInfo\r\npublic ActivityInfo getActivityInfo ()\r\nReturn the raw information about the receiver implementing this device admin. Do not modify the returned object.\r\nReturns\r\nActivityInfo\r\ngetComponent\r\npublic ComponentName getComponent ()\r\nReturn the component of the receiver that implements this device admin.\r\nReturns\r\nComponentName This value cannot be null .\r\ngetHeadlessDeviceOwnerMode\r\npublic int getHeadlessDeviceOwnerMode ()\r\nReturns the mode this DeviceAdmin wishes to use if provisioned as a Device Owner on a headless system user\r\nmode device.\r\nReturns\r\nint\r\nValue is one of the following:\r\nHEADLESS_DEVICE_OWNER_MODE_UNSUPPORTED\r\nHEADLESS_DEVICE_OWNER_MODE_AFFILIATED\r\nHEADLESS_DEVICE_OWNER_MODE_SINGLE_USER\r\ngetPackageName\r\npublic String getPackageName ()\r\nReturn the .apk package that implements this device admin.\r\nhttps://developer.android.com/reference/android/app/admin/DeviceAdminInfo\r\nPage 11 of 15\n\nReturns\r\nString\r\ngetReceiverName\r\npublic String getReceiverName ()\r\nReturn the class name of the receiver component that implements this device admin.\r\nReturns\r\nString\r\ngetTagForPolicy\r\npublic String getTagForPolicy (int policyIdent)\r\nReturn the XML tag name for the given policy identifier. Valid identifiers are as per usesPolicy(int) . If the\r\ngiven identifier is not known, null is returned.\r\nParameters\r\npolicyIdent int\r\nReturns\r\nString\r\nisVisible\r\npublic boolean isVisible ()\r\nReturns whether this device admin would like to be visible to the user, even when it is not enabled.\r\nReturns\r\nboolean\r\nloadDescription\r\npublic CharSequence loadDescription (PackageManager pm)\r\nhttps://developer.android.com/reference/android/app/admin/DeviceAdminInfo\r\nPage 12 of 15\n\nLoad user-visible description associated with this device admin.\r\nParameters\r\npm PackageManager : Supply a PackageManager used to load the device admin's resources.\r\nReturns\r\nCharSequence\r\nThrows\r\nResources.NotFoundException\r\nloadIcon\r\npublic Drawable loadIcon (PackageManager pm)\r\nLoad the user-displayed icon for this device admin.\r\nParameters\r\npm PackageManager : Supply a PackageManager used to load the device admin's resources.\r\nReturns\r\nDrawable\r\nloadLabel\r\npublic CharSequence loadLabel (PackageManager pm)\r\nLoad the user-displayed label for this device admin.\r\nParameters\r\npm PackageManager : Supply a PackageManager used to load the device admin's resources.\r\nReturns\r\nCharSequence\r\nsupportsTransferOwnership\r\npublic boolean supportsTransferOwnership ()\r\nhttps://developer.android.com/reference/android/app/admin/DeviceAdminInfo\r\nPage 13 of 15\n\nReturn true if this administrator can be a target in an ownership transfer.\r\nReturns\r\nboolean\r\ntoString\r\npublic String toString ()\r\nReturns a string representation of the object.\r\nReturns\r\nString a string representation of the object.\r\nusesPolicy\r\npublic boolean usesPolicy (int policyIdent)\r\nReturn true if the device admin has requested that it be able to use the given policy control. The possible policy\r\nidentifier inputs are: USES_POLICY_LIMIT_PASSWORD , USES_POLICY_WATCH_LOGIN , USES_POLICY_RESET_PASSWORD ,\r\nUSES_POLICY_FORCE_LOCK , USES_POLICY_WIPE_DATA , USES_POLICY_EXPIRE_PASSWORD ,\r\nUSES_ENCRYPTED_STORAGE , USES_POLICY_DISABLE_CAMERA .\r\nParameters\r\npolicyIdent int\r\nReturns\r\nboolean\r\nwriteToParcel\r\npublic void writeToParcel (Parcel dest,\r\n int flags)\r\nUsed to package this object into a Parcel .\r\nParameters\r\ndest Parcel : The Parcel to be written.\r\nhttps://developer.android.com/reference/android/app/admin/DeviceAdminInfo\r\nPage 14 of 15\n\nflags int : The flags used for parceling.\r\nSource: https://developer.android.com/reference/android/app/admin/DeviceAdminInfo\r\nhttps://developer.android.com/reference/android/app/admin/DeviceAdminInfo\r\nPage 15 of 15",
	"extraction_quality": 1,
	"language": "EN",
	"sources": [
		"MITRE"
	],
	"references": [
		"https://developer.android.com/reference/android/app/admin/DeviceAdminInfo"
	],
	"report_names": [
		"DeviceAdminInfo"
	],
	"threat_actors": [],
	"ts_created_at": 1775434048,
	"ts_updated_at": 1775791320,
	"ts_creation_date": 0,
	"ts_modification_date": 0,
	"files": {
		"pdf": "https://archive.orkl.eu/f03bc0dade3a8fcb7a49da9fa1ae1775ffba5513.pdf",
		"text": "https://archive.orkl.eu/f03bc0dade3a8fcb7a49da9fa1ae1775ffba5513.txt",
		"img": "https://archive.orkl.eu/f03bc0dade3a8fcb7a49da9fa1ae1775ffba5513.jpg"
	}
}