{"package_name":"com.google.android.devicelockcontroller","label":"DeviceLockController","device_count":19,"observation_count":61,"user_facing_count":0,"first_seen":"2025-05-05T17:12:44Z","last_seen":"2026-11-02T22:09:52Z","guidance":{"summary":"Labelled \"DeviceLockController\", this appears to be Google's own build of the AOSP Device Lock Controller (com.android.devicelockcontroller, documented separately on this site). Tooling maintained by the LineageOS and GrapheneOS projects maps com.google.android.devicelockcontroller to com.android.devicelockcontroller, in the same lists that pair other Google-named packages such as com.google.android.documentsui with their AOSP names. If it is that build, it is the on-device side of Android's device lock feature: Google's DeviceLockManager reference describes a feature used by special \"kiosk apps\", downloaded and installed by a device lock solution, to lock and unlock a device, with a financed device as the typical use case, where the financing entity can lock the device after a missed payment and only a limited set of interactions (for example, placing emergency calls) remains allowed. Note that \"kiosk app\" here means the device lock solution's app, not an EMM kiosk or dedicated-device setup.\n\nIn our sample it is recorded on Google, Motorola, Xiaomi, TCL, vivo and Infinix devices. Where this site holds signer data, which is 5 of those 6 makes (all but Infinix), it is signed by a key this site classifies as Google's, not one that also signs the Android framework. It requests, among others, INTERNET, com.google.android.c2dm.permission.RECEIVE, INSTALL_PACKAGES, MASTER_CLEAR and several MANAGE_DEVICE_POLICY permissions including MANAGE_DEVICE_POLICY_LOCK_TASK. This site aggregates permissions across observations rather than per build, so which builds request which permissions cannot be established.\n\nVersion note: DeviceLockManager is documented as added in API level 34 (Android 14), and this site has only observed this package on devices reporting API 34 to 37, consistent with that. This site's roll-up reports version strings from \"16\" to \"17\" and target SDKs from 35 to 37. One Motorola firmware dump in a third-party GitHub repository ships an enable-disable-packages file that sets this package's default action to \"disable\", with a criterion to enable it when the system property ro.mot.gms.dlc2 is true, so on that build its default state depends on that property. The property's value on shipping devices, and whether other makers do the same, could not be established.\n\nFor Android Enterprise, EMM and kiosk use, no enrolment or management role is identified in the sources cited here; the typical use case Google documents for the device lock feature is a financed device. No role for it outside such a programme is documented in these sources, but if a device genuinely is financed, interfering with it could matter. Treat it with caution rather than disabling it by default.","safe_to_disable":"caution","sources":[{"title":"DeviceLockManager - API reference - Android Developers","url":"https://developer.android.com/reference/android/devicelock/DeviceLockManager"},{"title":"android.devicelock - API reference - Android Developers","url":"https://developer.android.com/reference/android/devicelock/package-summary"},{"title":"dev/rro/target_package.py - LineageOS/scripts - GitHub","url":"https://github.com/LineageOS/scripts/blob/main/dev/rro/target_package.py"},{"title":"arsclib Constants.java - GrapheneOS/platform_tools_arsclib - GitHub","url":"https://github.com/GrapheneOS/platform_tools_arsclib/blob/17/java/org/grapheneos/arsclib/Constants.java"},{"title":"enable-disable-com.google.android.devicelockcontroller.xml - Motorola firmware dump (RandomPush/motorola_vienna_dump) - GitHub","url":"https://github.com/RandomPush/motorola_vienna_dump/blob/user-15-V1UI35H.11-39-5-V1UI35H.11-39-5-6f9ea7-6f9ea7-release-keys-/product/etc/enable-disable-packages/enable-disable-com.google.android.devicelockcontroller.xml"},{"title":"Package provenance for com.google.android.devicelockcontroller - Android System App Database","url":"https://sysapps.bayton.org/api/packages/com.google.android.devicelockcontroller"}],"last_verified":"2026-09-29T00:00:00Z"},"labels":[{"label":"DeviceLockController","locale":"en-us","count":23},{"label":"DeviceLockController","locale":"nl-NL","count":21},{"label":"DeviceLockController","locale":"en-gb","count":16},{"label":"DeviceLockController","locale":"de-at","count":10},{"label":"DeviceLockController","locale":"en","count":4},{"label":"DeviceLockController","locale":"","count":2},{"label":"DeviceLockController","locale":"en-mt","count":2},{"label":"DeviceLockController","locale":"es-us","count":2},{"label":"DeviceLockController","locale":"vi-VN","count":2},{"label":"DeviceLockController","locale":"vi-vn","count":2},{"label":"DeviceLockController","locale":"cs-cz","count":1},{"label":"DeviceLockController","locale":"en-BD","count":1},{"label":"DeviceLockController","locale":"en-GB","count":1},{"label":"DeviceLockController","locale":"en-bd","count":1},{"label":"DeviceLockController","locale":"es-US","count":1},{"label":"DeviceLockController","locale":"nl-nl","count":1},{"label":"DeviceLockController","locale":"ru-ru","count":1}],"seen_on_pagination":{"paging_mode":"complete","limit":19,"offset":0,"has_more":false,"next_offset":null,"after":null,"next_after":null,"total":19},"seen_on":[{"device_id":180,"make":"Google","model":"GMS on ARM64","os_api":"34","observation_count":1,"user_facing_count":0,"last_seen":"2025-09-16T10:29:35Z"},{"device_id":358,"make":"Google","model":"Pixel 10 Pro","os_api":"37","observation_count":1,"user_facing_count":0,"last_seen":"2026-11-02T22:09:52Z","provenance":{"classification":"google","sha256":"d6e317de316fb6f005d7befc70077097d0e175f2a95135ee13c371cfd0f50b71"}},{"device_id":9,"make":"Google","model":"Pixel 6 Pro","os_api":"35","observation_count":9,"user_facing_count":0,"last_seen":"2025-06-23T14:09:38Z"},{"device_id":198,"make":"Google","model":"Pixel 8a","os_api":"35","observation_count":1,"user_facing_count":0,"last_seen":"2025-10-05T18:31:57Z"},{"device_id":47,"make":"Google","model":"Pixel 9a","os_api":"35","observation_count":1,"user_facing_count":0,"last_seen":"2025-06-15T16:13:40Z"},{"device_id":108,"make":"Google","model":"Pixel 9a","os_api":"36","observation_count":6,"user_facing_count":0,"last_seen":"2026-06-02T15:57:40Z","provenance":{"classification":"google","sha256":"d6e317de316fb6f005d7befc70077097d0e175f2a95135ee13c371cfd0f50b71"}},{"device_id":3574,"make":"Google","model":"Pixel 9a","os_api":"37","observation_count":1,"user_facing_count":0,"last_seen":"2026-07-16T23:51:20Z"},{"device_id":31,"make":"INFINIX","model":"Infinix X6871","os_api":"34","observation_count":1,"user_facing_count":0,"last_seen":"2025-05-21T20:01:57Z"},{"device_id":217,"make":"motorola","model":"moto g05","os_api":"35","observation_count":2,"user_facing_count":0,"last_seen":"2026-04-15T10:34:13Z","provenance":{"classification":"google","sha256":"d6e317de316fb6f005d7befc70077097d0e175f2a95135ee13c371cfd0f50b71"}},{"device_id":231,"make":"motorola","model":"moto g15","os_api":"35","observation_count":10,"user_facing_count":0,"last_seen":"2025-11-27T12:45:18Z"},{"device_id":117,"make":"motorola","model":"motorola edge 50 fusion","os_api":"35","observation_count":12,"user_facing_count":0,"last_seen":"2026-06-09T01:11:42Z","provenance":{"classification":"google","sha256":"d6e317de316fb6f005d7befc70077097d0e175f2a95135ee13c371cfd0f50b71"}},{"device_id":200,"make":"motorola","model":"ThinkPhone by motorola","os_api":"35","observation_count":1,"user_facing_count":0,"last_seen":"2025-10-11T18:14:41Z"},{"device_id":4978,"make":"TCL","model":"T517F","os_api":"36","observation_count":2,"user_facing_count":0,"last_seen":"2026-08-10T02:29:04Z","provenance":{"classification":"google","sha256":"d6e317de316fb6f005d7befc70077097d0e175f2a95135ee13c371cfd0f50b71"}},{"device_id":201,"make":"TCL","model":"T951K","os_api":"35","observation_count":8,"user_facing_count":0,"last_seen":"2026-01-08T12:16:46Z","provenance":{"classification":"google","sha256":"d6e317de316fb6f005d7befc70077097d0e175f2a95135ee13c371cfd0f50b71"}},{"device_id":3853,"make":"vivo","model":"V2550","os_api":"36","observation_count":1,"user_facing_count":0,"last_seen":"2026-07-21T15:30:55Z","provenance":{"classification":"google","sha256":"d6e317de316fb6f005d7befc70077097d0e175f2a95135ee13c371cfd0f50b71"}},{"device_id":32,"make":"Xiaomi","model":"23106RN0DA","os_api":"35","observation_count":1,"user_facing_count":0,"last_seen":"2025-05-22T18:36:34Z"},{"device_id":53,"make":"Xiaomi","model":"23124RA7EO","os_api":"35","observation_count":1,"user_facing_count":0,"last_seen":"2025-06-17T14:24:51Z"},{"device_id":279,"make":"Xiaomi","model":"24117RN76O","os_api":"35","observation_count":1,"user_facing_count":0,"last_seen":"2025-12-28T15:32:14Z","provenance":{"classification":"google","sha256":"d6e317de316fb6f005d7befc70077097d0e175f2a95135ee13c371cfd0f50b71"}},{"device_id":323,"make":"Xiaomi","model":"24117RN76O","os_api":"36","observation_count":1,"user_facing_count":0,"last_seen":"2026-03-20T13:27:25Z","provenance":{"classification":"google","sha256":"d6e317de316fb6f005d7befc70077097d0e175f2a95135ee13c371cfd0f50b71"}}],"intelligence":{"insights":["Signed by Google's own signing key (the same key Google uses across devices), so it is a Google-provided preinstall that updates independently of the system image, and that single certificate is consistent across all 10 device profiles. This certificate spans 5 device makes - the hallmark of a globally distributed Google key.","Its largest observed manifest declares 31 permissions: 1 runtime (user-granted), 14 signature or system-level, 7 install-time and 9 vendor or uncatalogued.","Never reported as user-facing, so it runs as a background or system component rather than an app the user opens."],"device_profiles":10,"signer_count":1,"signer_consistent":true,"max_permission_count":31,"min_size_bytes":7219162,"max_size_bytes":7622498,"min_target_sdk":35,"max_target_sdk":37,"oldest_version":"16","newest_version":"17","has_third_party_preinstall":false,"genuine_third_party":false,"play_eligible_count":0,"signers":[{"sha256":"d6e317de316fb6f005d7befc70077097d0e175f2a95135ee13c371cfd0f50b71","classification":"google","observation_count":30,"makes":["Google","TCL","Xiaomi","motorola","vivo"],"signs_framework":false,"global_make_count":5,"global_package_count":1,"global_observation_count":30}],"permissions":[{"permission":"android.permission.ACCESS_LOCAL_NETWORK","official":false},{"permission":"android.permission.ACCESS_NETWORK_STATE","description":"Allows the app to view information about network connections such as which networks exist and are connected.","official":true},{"permission":"android.permission.CHANGE_COMPONENT_ENABLED_STATE","description":"Signature or privileged system permission.","official":false},{"permission":"android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS","description":"Signature or privileged system permission.","official":false},{"permission":"android.permission.FOREGROUND_SERVICE","description":"Allows the app to make use of foreground services.","official":true},{"permission":"android.permission.INSTALL_EXISTING_PACKAGES","official":false},{"permission":"android.permission.INSTALL_PACKAGES","description":"Signature or privileged system permission.","official":false},{"permission":"android.permission.INTERACT_ACROSS_USERS","description":"Signature or privileged system permission.","official":false},{"permission":"android.permission.INTERNET","description":"Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.","official":true},{"permission":"android.permission.MANAGE_DEVICE_POLICY_APPS_CONTROL","description":"Internal platform permission, granted only by the system.","official":false},{"permission":"android.permission.MANAGE_DEVICE_POLICY_CALLS","description":"Internal platform permission, granted only by the system.","official":false},{"permission":"android.permission.MANAGE_DEVICE_POLICY_DEBUGGING_FEATURES","description":"Internal platform permission, granted only by the system.","official":false},{"permission":"android.permission.MANAGE_DEVICE_POLICY_INSTALL_UNKNOWN_SOURCES","description":"Internal platform permission, granted only by the system.","official":false},{"permission":"android.permission.MANAGE_DEVICE_POLICY_LOCK_TASK","description":"Internal platform permission, granted only by the system.","official":false},{"permission":"android.permission.MANAGE_DEVICE_POLICY_SAFE_BOOT","description":"Internal platform permission, granted only by the system.","official":false},{"permission":"android.permission.MANAGE_DEVICE_POLICY_TIME","description":"Internal platform permission, granted only by the system.","official":false},{"permission":"android.permission.MASTER_CLEAR","description":"Signature or privileged system permission.","official":false},{"permission":"android.permission.POST_NOTIFICATIONS","description":"Allows the app to show notifications","official":true},{"permission":"android.permission.QUERY_ALL_PACKAGES","description":"Allows an app to see all installed packages.","official":true},{"permission":"android.permission.READ_DEVICE_CONFIG","description":"Signature-level system permission, for platform-signed apps.","official":false},{"permission":"android.permission.READ_PRIVILEGED_PHONE_STATE","description":"Signature or privileged system permission.","official":false,"doc":{"title":"User Data Identifiers","url":"https://developer.android.com/identity/user-data-ids"}},{"permission":"android.permission.RECEIVE_BOOT_COMPLETED","description":"Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.","official":true},{"permission":"android.permission.USE_EXACT_ALARM","description":"This app can schedule actions like alarms and reminders to notify you at a desired time in the future.","official":true},{"permission":"android.permission.WAKE_LOCK","description":"Allows the app to prevent the phone from going to sleep.","official":true},{"permission":"com.android.devicelock.permission.START_KIOSK_SETUP_ACTIVITY","official":false},{"permission":"com.android.devicelockcontroller.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION","official":false},{"permission":"com.android.devicelockcontroller.permission.MANAGE_DEVICE_LOCK_SERVICE_FROM_CONTROLLER","official":false},{"permission":"com.google.android.c2dm.permission.RECEIVE","official":false},{"permission":"com.google.android.devicelockcontroller.permission.C2D_MESSAGE","official":false},{"permission":"com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE","official":false},{"permission":"com.google.android.gms.permission.AD_ID","official":false}]},"previews":{"labels":{"kind":"preview","limit":60,"total":17,"truncated":false,"collection_url":"/api/packages/com.google.android.devicelockcontroller/labels"}},"collections":{"labels":"/api/packages/com.google.android.devicelockcontroller/labels","seen_on":"/api/packages/com.google.android.devicelockcontroller/seen_on"}}
