We have an application that we want to run in kiosk mode (as a dedicated device) on a phone that we fully control. Our product is ready and works, but the end user can disable kiosk mode if they want.
The app can automatically update itself by downloading the latest APK from our server, but this requires user consent. We need to do this in the background. The phone is not used by a regular consumer, but is a device we own for managing an IoT device.
The end user must not be able to disable kiosk mode, and updates should not require user interaction. We also don’t want to root the device. It won’t be used with Google Play.
Is it possible to do this without using MDM/EMM tools? For example, can we grant device admin rights ourselves using adb before the phone goes to the customer?
It’s a very niche topic, and I’ve read the Android documentation, but there are a lot of details and I’m not sure what can be done and to what extent.
From what I’ve researched, it seems we need to use Google Play to implement device policy, so DPC is not an option. MDM tools are also not a perfect fit for us. They are expensive and offer limited API support. It’s very hard to find information on how to write our own MDM tool and what the process would be like.
Yes it is possible and it is called a device owner app. Here is a great article that describes how you can achieve that.