88

Occasionally I want to install an application which requires certain permissions that I feel it really shouldn't need. Can I install the app without giving it these permissions? For example, GPS location, phone state, internet connection, etc.

Is it possible to change the permissions of an application once it is installed?

30

Prior to Android 4.3 (Jelly Bean)

No. Without a custom ROM it's an all-or-nothing affair. Which is part of the reason Google encourages developers to ensure that they're asking for the absolute minimum permissions required for the app to work.

Short of getting the app code and modifying it, you either need to accept the access request or not use the app. Some alternatives exist if your device is rooted.

Android 4.3/4.4 (partly also 5.x)

There's a semi-hidden permissions manager (App Ops) that can be reached through a third-party app, but doesn't require root or a custom ROM. Android Police has covered it here.

Note, however, that Google has said that this was released in error, and newer versions of Android have once again disabled this.

Android 4.4+

Additionally to above mentioned App Ops, here you can also use the Xposed Framework (for Android 5+ see here) with modules like Xprivacy or Protect My Privacy. While this will require your device to be rooted, it offers additional functionality.

Android 6+

marcioggs outlined functionalities provided in Android M in a separate answer.

  • 3
    If you root, you can exclude network access with DroidWall, but that's a specific exception. – TREE Nov 24 '10 at 16:11
  • 8
    Unfortunately, Google decided to group things which a lot of entertainment applications need such as determining if there's call active, under the same permission as things which very few non-phone-functionality applications need, such as determining the phone number. – Chris Stratton May 14 '11 at 6:23
17

CyanogenMod 7 supports this. It activated by going to Settings->CyanogenMod Settings->Applications and checking "Permission management" as of the most recent build. You can then allow and disallow permissions by choosing an app from the app management list (Settings->Applications->Manage applications). There is an article on endgaget with a Youtube demonstration.

Disclaimer: This may be obvious to some, but denying permissions to an app could have fairly crash-tastic consequences. Nonetheless, if you have a device that is supported by CM and you are willing to root and install it, you can enjoy permission-by-permission control (and any hazards that come with it).

In fact, due to the crashes that the permission management implementation tended to cause, it was removed from the CyanogenMod codebase in version 9. However, the most recent nightly builds of CyanogenMod 10.1 now include a feature that has been dubbed "Privacy Guard". Instead of blocking apps from accessing data that they request, Privacy Guard will provide them with blank data.

As an example, if an app running under Privacy Guard requests your contacts list, CM will simply return an empty list, causing the app to functionally believe that you don't have any contacts stored on your phone.

  • 1
    Sadly, faking data is not considered for integration into CyanogenMod. – Denis Nikolaenko Jul 28 '11 at 19:53
7

There is an App Shield application. It essentially repackages .apk with permissions removed from manifest. Brilliant idea for stock, non rooted phones. Subject to crashes (force closes), though, as with CyanogenMod (as of version 7).


Update: App Shield seems no longer to be maintained. It currently can be found in some "personal Aptoide repositories", e.g. at Mixal and Karbyfio. It is recommended to rather use something more up-to-date now.

7

NOTE: LBE Privacy Guard is no longer maintained and only available for Android versions below 4.2.

Warning: if you are on Jelly Bean (Android 4.1+), be sure to check whether LBE has been updated for Jelley Bean yet. At the moment (July 27 2012) it is still incompatible, and it will cause your device to boot loop on Jelly Bean. That means you may have to factory-reset your device. Xprivacy is now recommended instead (root required).


LBE Privacy Guard can block specific permissions per application, both during installation and afterwards. This is the English version of an apparently Chinese application that has existed for a while (I am not in any way affiliated to them); it already has over 100,000 downloads. I haven't tried it yet, but I plan to do so tomorrow.

You can also set it to, say, have Facebook display a prompt (yes/no) when it wants to access your location, etc. A screenshot from the Play Store:

enter image description here

  • This is the best permissions management app in my opinion - I've been using it for a while and it is excellent. – Logos Jul 14 '12 at 14:31
  • @Logos: I have been using it for a few hours, and I agree! – Cerberus Jul 15 '12 at 2:35
  • Doesen't work on Xperia ray with CM 10.0. I just had to re-install my device! – rubo77 Oct 29 '13 at 19:25
  • @rubo77: Ouch, that sucks! (Did you read my warning at the top?) – Cerberus Oct 29 '13 at 23:42
  • Yes, but I thought I might get away with it ;) You should add, that there is no way to recover a bootloop and that it doesen't work on many devices. looking at the feedback in Play store, exactly half the votes are 5 and halv are 1, so I guess every second device will fail – rubo77 Oct 29 '13 at 23:47
6

The following functionalities will be provided in Android M:

  • Give specific permissions as needed during rutime;
  • Show an app's permission;
  • Show all apps that uses a specific permission.

Documentation for M preview:

https://developer.android.com/preview/features/runtime-permissions.html

Permissions screen:

(Click image to enlarge)

IMG:

3

You can use the Xposed Framework along with the App Settings Module to deny application permissions. You can also use it to change DPI settings allowing apps to run in tablet mode on phones and vice versa (along with changing the size of things in general). It works beautifully for me. You will need root to install it, though.

Thanks to Izzy for pointing out the need for a module. As per their comment you can also use Xprivacy or Protect My Privacy to achieve this control.

  • At the time this answer was written the app settings module came bundled with most xposed framework installations. That module supports this functionality. – Paarth Mar 26 '16 at 8:06
  • 1
    Thanks to you for still caring for your "old answers" – +1 for that :) So we shall cleanup (delete) our comments then :) PS: Please leave your first, it still makes sense :) – Izzy Mar 27 '16 at 13:19
0

I stumbled upon this app called Permission Remover that allows you to remove permissions from the APK package before installing it. Worked for both installed and downloaded APKs. This method is convenient as it does not require you to root your device.

0

Fine-grained app permissions are not present in stock builds of Android up to version 5.1.1. Google has introduced a new permissions model starting with 6.0 that includes fine-grained control. However, if you've gained root access on a device running version 5.1.1 or below, there are options for adding this feature to your device.

  1. Xposed Framework

Head over to xda-developers.com and search for "xposed framework" to get info on how to install the framework. After installing the framework, install either the XPrivacy or the App Settings modules to get more control over each app and their granted permissions.

  1. Install a Cyanogenmod-based ROM

Go to Cyanogenmod Downloads and see if your device is listed. If it isn't, head back to xda-developers.com and go to your devices forum page to find a list of ROMs for your device. Look for anything referring to "cyanogenmod" or "cm" in the original post of a ROM thread to find the right base to give permission control access.

Hope this helps.

0

A good app (which is not in in playstore anymore since 2016) by root uninstaller: To withdraw an app just the right to enter internet in CyanogenMod you can use Root Firewall (needs root).

It can block internet access for any apps.

The free version can already block either all apps or just block up to 7 distinct apps.

protected by Matthew Read Mar 24 '16 at 21:28

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

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