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.

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?

share|improve this question
    
Here's a related question worth keeping an eye on: android.stackexchange.com/questions/3294 –  Matt Dec 2 '10 at 1:53
    
another related question stackoverflow.com/questions/1836155/… –  ccpizza Jan 6 '13 at 1:12
    
Related: Revoke App Permissions Without Root? –  GAThrawn Apr 16 '13 at 12:17
    
FWIW, there's a rumor that Google is looking into "optional" app permissions. –  Al E. May 21 '13 at 13:36

9 Answers 9

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.

Android 4.3

There's a semi-hidden permissions manager that can be reached through a third-party app, but doesn't require root or a custom ROM. FuzzyQ has detailed that in his answer.

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

share|improve this 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
7  
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
    
This no longer is true for 4.3 Jelly Bean. There's now an fully integrated, yet hidden, App Permission Manager which can be unlocked by an third-party-app. Please see my answer for details. –  FuzzyQ Oct 2 '13 at 7:27
1  
@FuzzyQ: I'll tweak my answer. –  Al E. Oct 2 '13 at 12:12
1  
You can root your phone and use Xprivacy (free, uses Xposed), which is in my opinion the best permission manager at the moment. It has a ton of permissions it can block. It can even spoof your location, contacts and such, so that the application won't crash if you deny those permissions (it will just think you're at a weird location and have an empty contact list; you can also show only specific contacts to an application, etc.). play.google.com/store/apps/… –  Cerberus Oct 29 '13 at 23:40

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.

share|improve this answer
1  
Sadly, faking data is not considered for integration into CyanogenMod. –  Denis Nikolaenko Jul 28 '11 at 19:53
    
What about the LBE Privacy Guard? –  rubo77 Oct 29 '13 at 17:32
    
@rubo77: What about it? My answer is not about that piece of software. I have never used it and I know nothing about it. Perhaps you should post a comment on the answer that suggests it. –  eldarerathis Oct 29 '13 at 17:39
    
I see, I posted this comment before I read the whole thread. And it seems like that LBE-App is really buggy and everyone that has not a confirmed device where it should work has to re-flash his device if it doesen't work (like I had to ;) ) –  rubo77 Oct 29 '13 at 19:20

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 current CyanogenMod approach.

share|improve this answer

There is a Privacy Blocker (paid) and Privacy Inspector (free) applications. Privacy Blocker does a static analysis of applications for sensitive API calls and rewrites these calls into stub ones which return fake data. As a result a new .apk with rewritten application is generated and installed. Privacy Inspector is an app which only reports the use of sensitive API calls.

share|improve this answer
    
I wonder is there an off-the-phone variation of such an app, i.e. a PC application which would repackage an apk prior to transferring it to a phone? –  Alexander Shcheblikin Sep 24 at 0:17

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

share|improve this answer
    
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

Since permissions are assumed to be given when the app is installed, manipulating the permissions afterwards might cause it to crash when trying to access something because it assumes it has permission.

So, I don't think it's possible (or with a complicated mock-up of the resources, maybe...).

share|improve this answer
    
Ummm...what? Can you please clarify your answer? –  Al E. Nov 24 '10 at 14:14
5  
My "English words but not English"-to-English translation: Since permissions are assumed to be given when the app is installed, manipulating the permissions afterwards might cause it to crash when trying to access something because it assumes it has permission. –  DarthNoodles Nov 24 '10 at 16:08
    
@DarthNoodles: Thank you for your help, it's exactly that ^^. Sorry for the difficulties I can have with English :-( –  Pascal Qyy Nov 24 '10 at 18:27
    
hey, you (or a mod) can edit the post to improve the wording. –  Louis Rhys Nov 25 '10 at 3:56
1  
Recent versions of cyanogen do exactly just that - revoke permissions. As a result, applications just crash. –  Denis Nikolaenko Jul 5 '11 at 13:03

The answer 'no' holds no longer true for Android 4.3 Jelly Bean. There is a new Hidden App Permission Manager feature which can be unlocked using the third-party app App Ops Starter.

Since the necessary interface is already implemented in Android itself, you don't need root for this app to do its magic. And it's free.

You simply have to install the App Ops Starter application from the Play Store. After that, you can selectively disable single permissions of any app on your device.

I've tested this on a SGS2 with CM 10.2 (Android 4.3) and it's working fine.

original screenshot from my own device showing the permission management tab of a specific app

Sorry that this screenshot is in German; it basically shows the permission tab of WhatsApp.

As you can see, everything is very intuitive, you simply use the slider to the right to (de-)activate a specific permission of an app. In this example, the app 'needs' the following permissions: location, read contacts, change contacts, receive SMS/MMS, send SMS/MMS, notify with vibration.

App Ops Starter even tells if the permission in question has ever been used by the app.

Changes should work instantly without reboot. I've not had any force closes so far, but pay attention to what you turn off. Some (should be all IMHO!) permissions may actually be needed for an app to work, e.g., turning off WhatApp's ability to read your contacts wouldn't be very helpful.

share|improve this answer
1  
Android Police have an article about it, including some screen shots in English. –  Al E. Oct 2 '13 at 13:30
1  
Permission Manager is another app which will give you access to these settings. –  Al E. Oct 2 '13 at 13:30

You can use the Xposed Framework 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.

share|improve this answer

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.

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.