8

I have some apps that are asking for unnecessary permissions. I would like to revoke these, but I've read that this is not possible without rooting.

Is there any way to do this without having to root?

1 Answer 1

9

Yes there is, though it's not really elegant and it's a REALLY bad idea to do it.
The app that you do it to, will more than likely break if you revoked a permission and it tries to use it. If this wouldn't be enough you will lose your app data and you won't be able to update from the Play Store. With that said it's not that hard to do.

You need apktool. Refer to this guide on how to use it (you'll need the decompile and compile commands.) And this on signing the apk after you're done. You need to modify the AndroidManifest.xml file. Look for lines like this:

<uses-permission android:name="android.permission.CAMERA" />

and remove it if it bothers you.

After you're finished recompile the app than sign it. Now you can uninstall the original app and install the new one using a file manager or in adb using

adb install /local/path

To find out what each permission allows, you can refer to the incomplete documentation or try searching for it's name.

6
  • Great, thanks for your effort in writing this up. As a programmer, I'm suspicious of the idea that it's understandable that doing this will result in unhandled exceptions - an internet connection cannot always be available, and even system apps need to code around that potential failure. (To be fair, I suppose the API would raise a not-allowed-exception rather than a timeout-exception, which would have to be handled differently. But there should always be a catch-all exception for all unhandled types, imo).
    – halfer
    Commented Jun 12, 2012 at 9:38
  • When you say you won't be able to update from the Play Store, do you mean just apps that are updated in this way, or once this process is done to any one app, no apps can then be updated via the Store? I would presume that if a modified app needed updating, one could just uninstall it, download it afresh from the Store, then modify it with this tool again?
    – halfer
    Commented Jun 12, 2012 at 9:39
  • I suppose a good strategy to try this (especially on system apps like Calendar) is to remove one permission at a time, and then try the new binary for a couple of weeks, then rinse-n-repeat. One perhaps can get a feeling for which missing permissions cause the most trouble, and decide on a security/stability trade-off.
    – halfer
    Commented Jun 12, 2012 at 9:43
  • I have seen apps crash when permissions were removed. I think it was access contacts or something like that. This is primarily an issue with inexperienced developers - a large team with a QA team should handle this kinds of stuff. I meant that the particular app can't be updated because in the process of doing this you change the keys used to signing the app. You couldn't do this with the default calendar as you can't uninstall it as it's a system app. Also if you have a crash a lolcat would say what permission is missing (IIRC)
    – user13391
    Commented Jun 12, 2012 at 11:56
  • is it even possible to get the APK for an app you have installed from the market, if you are not rooted?
    – Kidburla
    Commented Jan 2, 2013 at 9:57

You must log in to answer this question.