We are providing one default app for our customers with android phone. Which user can not be uninstall. I have used Device Admin feature from this example But user can delet
I made custom Launcher, which can't be uninstalled.
/system/app
) from recovery mode
.I made archive, which can be installed from recovery mode
. Also my Launcher
requires custom Superuser
application (I don't want see notifications from Superuser
app, when my Launcher
runs root commands - silently give root access to my Launcher
).
What I have in result: Launcher
application, installed as system app (can't be removed). Also I blocked other launchers installation, added white list of allowed applications (don't install applications, which can manage file system and modify something important).
This solution full of tricks, but it's easier to implement than custom ROM.
If you customize the ROM, and install it to device somehow (contact device manufacturer from China for ex., request target device drivers and build the ROM on device), you can sign your application with system key, place it with other system apps, and then it can't be removed. In this case root not needed, but it requires much more time and power to implement.
If you will root device programmatically, than you should have exploit, which makes rooting. And different devices are rooted differently.
It's simple there is something like Device Administrator but please note that user will be prompted to enable admin mode on installed app.
HERE you can find quite good example description and tutorial - please try.