Is it possible to build a DPC without enroling with EMM Community?

2k Views Asked by At

Since the process of applying for EMM integration takes an unjustifiably big amount of time and the whole process is described as "incredibly painful" by those lucky ones that went through it, I want to know whether is it absolutely needed to become an EMM in order to have a working Device Policy Controller app (DPC).

If you faced this problem, please share the experience.

I am developing for COSU devices and want to go into a kiosk mode. I am aware of existence of ways of how to do it, but they all implement a bunch of workarounds - this is not an option - I want a controllable, safe and robust way of doing this. I don't care about not having the ability for remote managing also.

3

There are 3 best solutions below

3
On BEST ANSWER

You just want to write an app that uses Device Policy Owner? That's fairly simple, assuming you own the devices. Just install your app, adb shell in, and run the dpm command to set your app as owner. If you're buying in bulk from a manufacturer you can get them to do it for you in the custom image you install (although you may need to explain what you want, it isn't a common usecase).

Of course everything has its limits. This will work, unless the user manages to do a factory reset. Which you can prevent via the UI, but can generally be reached from recovery modes or from unlocking the bootloader. So its safe from casual intrusion, but if someone really wants to get at your device and they have physical access and time, they can.

0
On

It is definitely possible to write your own DPC without registering with the EMM community.

The most convenient option for provisioning the devices is via NFC. for example using a second device, as it is quite simple to write a provisioning application.

See Implementing Kiosk Mode in Android (part 3 and 4) for a good example.

I had a few problems with some Android 5 devices, but since 6.0 it works quite well.

4
On

You can use Google's new Android Management API to manage Android devices without building a DPC or registering as an EMM.