Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

In our organisation, we are providing Android tablets to some users. There is an app we have installed on the devices that we don't want users to be able to remove.

I have searched for "app lock" in the Play Store, and tried the various 'app lockers' which password protect the apps I choose.

If I then use the Android menu to try to uninstall an app that I have protected with the app locker app, it prompts for a password - which is good.

But, if I go into the Play store app and try to uninstall through there, it removes it straight. And I don't want to password protect the Play store. Is there any way to prevent uninstallation of certain apps in a foolproof way?

share|improve this question
1  
Even if you disable the Play Store, if debugging is enabled on the device, adb uninstall the.interesting.app will still remove the app. –  Dan Hulme Jun 19 '13 at 8:28
1  
Or maybe treat your users like adults and just tell them, "Don't uninstall this," and trust your fellow coworkers instead of trying to come up with "clever" technological solutions to a policy problem? –  Greg Bair Jun 25 '13 at 14:54
    
@GregBair I definitely agree with your approach. And you're right in putting it in a comment as opposed to an answer. –  Ben Jul 8 '13 at 18:14

3 Answers 3

One way to achieve what you want would include the following steps:

  1. (temporarily) the device
  2. converting the app in question into a system app (e.g. using Titanium Backup ★ root, but there are also other apps helping you with this step)
  3. unroot the device again

As the app now resides in read-only space (/system), the user cannot delete it without either rooting the device or flashing a ROM -- which of course could be done, but it's a higher inhibition threshold at least.

share|improve this answer

Izzy's method works just fine, but if you don't want to temporarily root your device(s), you could make an update script which copies your app to the root of the device, so that it's been recognised as a stock app.

Take a look at the following tutorial: http://www.londatiga.net/it/how-to-create-android-update-zip-package/

share|improve this answer
1  
This might work for some, but in many cases requires a custom recovery to be installed. I played with this in the past, and several devices did not accept the update.zip as it was not signed with the manufacturer's key (which you cannot do as you don't have it). If this were not the case, rooting would be quite easy, as one could simply push the required files to the /system partition this way :) –  Izzy Jun 26 '13 at 6:45

Is the app developed by your organisation?

If you can control the source code of the app, you may prevent users accidentally uninstalling your app with the help of DevicePolicyManager. The advantage is that you don't need to convert the app in every tablet to be an system app. Once the app is installed from Google Play, it can not be uninstalled unless users disable the DevicePolicyManager in security settings.

If you can't change the app, then convertit to a system app. Because there are many devices to handle, you should write a script to do the job.

In both ways, if the users really want to uninstall your app, they can always find a way. So make sure your user do not hate your app.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.