Search code examples
androidkiosk-modeandroid-enterpriseandroid-enterprise-features

Can we use 'dpm set-owner' on Android for production devices on Rooted/Non-rooted Android


Plot

Android has an option for single-purpose devices to be managed using Device Owner Kiosk Applications. Now there are various Device provisioning ways to make a Kiosk app Device Owner. One of the ways is to use the official Android EMM solution and enroll devices.

The other simple and quick-to-use method is using dpm set-owner command for rooted and non-rooted devices. Rooted Devices can run this command with su rights and make the desired Kiosk App a Device Owner and Non-rooted devices can also be made device owner using adb command.

As asked and answered in following question.

How to make my app a device owner?

Now having such a simple way to provision device and app to be Device Owner is very useful where Kiosk devices are to be placed and used on large scale without depending upon Android Enterprise or EMM. But I have few questions about this.

Questions:

Is provisioning app to be device owner using dpm set-owner logical and safe to use for long-term production devices and at volume?

Are there any potential downsides of using this approch?



Solution

  • No, this is not viable as the command is meant only for testing of features.

    1. Not all devices have a full implementation of device owner
    2. Most devices have to be wiped in order to activated device owner and this is not possible as the setup process in most cases provision some hidden accounts (can be the Agenda and even OEM apps)
    3. The app cannot be shared through Google Play Store

    In case you do manage to get it running on some devices, you need to make sure you implement policies as it can easily be removed.

    And on a positive side, yes, once its activated it works exactly as it was intended.

    If you can and if the project allows, you are better of with activating over NFC at setup or by building a custom rom for that particular device and adding your package name as device owner on the system partition.