90

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?

3

9 Answers 9

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.

2
  • 3
    If you root, you can exclude network access with DroidWall, but that's a specific exception.
    – TREE
    Nov 24, 2010 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. May 14, 2011 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
  • 1
    Sadly, faking data is not considered for integration into CyanogenMod. Jul 28, 2011 at 19:53
8

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.

0
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

8
  • Doesen't work on Xperia ray with CM 10.0. I just had to re-install my device!
    – rubo77
    Oct 29, 2013 at 19:25
  • @rubo77: Ouch, that sucks! (Did you read my warning at the top?)
    – Cerberus
    Oct 29, 2013 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, 2013 at 23:47
  • @rubo77: So it hasn't been updated for more than a year, then? I haven't used it since I made that edit...I now use Xprivacy. As to recovering from a boot loop, there are ways. You could for example boot into recovery and remove the application through a file manager / your PC. Maybe then reflash your ROM.
    – Cerberus
    Oct 29, 2013 at 23:54
  • Sure, I meant "no way to recover a bootloop without loosing all your settings". I will try Xprivacy now, sounds promising
    – rubo77
    Oct 30, 2013 at 6:19
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.

2
  • 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, 2016 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, 2016 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

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.

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 some control based on permission groups. 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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .