Lockdown in Android Enterprise (Android P DP1)

I’ve previously covered the BYOD experience in Android P, now let’s delve into corporate-owned scenarios. My attempt to cover everything in a single long post had failed, so I’m splitting this into a series. Today we’re covering lockdown.


Early Android ideology assumed that device lockdown should be impossible. After all, here’s how ransomware works 😊 User is King and should always be able to regain control of the device. Earlier versions of Compatibility Definition Document even mandated that Home button and Factory Reset were always available to the user. The closest one could get to a locked down (kiosk/single application mode) device was to write a custom launcher that would then auto-launch or provide access to a limited set of apps. But even then user could simply pull the notification share to access quick settings, use the Recents screen to switch between tasks etc. In general, lockdown was not possible unless one used undocumented APIs and hacks or had custom OS extensions and special tools such as Zebra MX combined with Zebra Enterprise Home Screen. Needless to say, such tools were vendor (and sometimes even OS build!) specific and had their limitations.

In Android 5 Google began addressing the issue by introducing two new modes.

Screen Pinning (Android L)

Screen Pinning (also sometimes called App Pinning in documentation) is a simpler “user-facing” and user-initiated scenario. This one enables you to give your phone to someone else, locked down to a single app (browser, game etc, but not your emails or phone book).

User enables screen pinning in settings, selects an app, performs a special gesture – voila! Similarly, to end the mode user performs a gesture, and there is an optional lock screen protection. There are countless tutorials in the Internet, and here’s a simple animated GIF I had created.

Screen Pinning example


Note, however, this is 100% user-controlled. How about Enterprise Admin?

Lock Task mode (Android L,M)

Another mode introduced in Android L was called Lock Task. This one allowed the app itself to enter a lockdown mode and control what user can or cannot do. Sounds like the right thing to do? There were, however, complications:

  • To avoid the ransomware threat, the app had to be first whitelisted by the Device Owner (i.e. your EMM agent). So the setup process was not that simple.
  • And yes, if your device was not enrolled into Device Owner (work-managed) mode (using old Device Administration API etc) – you could not use that feature.
  • The admin could not choose any app – the app had to be built with Lock Task support. Otherwise, you could not use that feature.
  • The app itself had to provide mechanism to end the Lock Task mode. If the app got frozen, you had to reboot the device.
  • Since Android L had very little in terms of UI control (Notifications, Recents, etc) the whole thing only made sense with Marshmallow or later.
From Google developer documentation

There were of course good things – you (well, the app) could quite precisely (well, in Android M+) control which UI elements to hide (well, only combined with other DPC features). Anyway, most importantly, this at least allowed the EMM vendors to finally write reliable lockdown plugins as part of their EMM suites (provided uses had work-managed devices).

Android N and O added a few bits here and there, but overall, the flexibility and ease of use were still quite far away from the aforementioned Zebra MX+EHS combination, for instance.

Until Google NAILED it in Android P!

Android P Enhancements

Android P adds a few missing pieces that finally complete the puzzle:

  • Admins can lock down any app to a device – no more the Admin depends on the Developer!
    • The app still has to be whitelisted, as a security precaution
    • Similarly, if the app is frozen or just has no “Exit” option, it can be terminated remotely (think kiosks)
  • Admins can choose which UI features to display: again, no Developer dependency and those restrictions are only for the duration on the Lock Task mode (previously they were very much global). Here are the features available:
    • LOCK_TASK_FEATURE_NONE (shortcut for “Disable everything”)
  • Error dialogs may be suppressed as well (think kiosks again). Those are, of course, system error messages, not what the app shows within itself.

Below are a few screenshots of Lock Task mode in Android P preview. Since there are no official EMM agents supporting P yet, I have been using the TestDPC app from the Google Android Enterprise team. Note that the Play Store version (at the time of writing this post) is still old – you’d have to download and sign the APK from GitHub instead.

LockTask general demo:

Kiosk features:


Screen Pinning

  • User-initiated
  • Simple and easy, no app support required
  • No admin control
  • Makes little sense w/o password

Lock Task (Android P)

  • Admin/app controlled (requires EMM support, also app support pre-P)
  • Admin/App-initiated
  • Much more flexible (especially in P)
  • Makes full sense for COSU

So I think that Google did indeed NAIL it firmly and decisively!

As a bonus, lockdown solution developers can focus on providing value-add (SSO etc) vs fighting the OS, especially when combined with ephemeral user support in P!

What are your thoughts? How do you like my blurry videos?


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at WordPress.com.

Up ↑

%d bloggers like this: