I want to restrict the permissions of some apps on my rooted Android 4.1.2 phone.

Is there an open source app for this?

It would let me browse the list of installed apps, I would pick one and uncheck/re-check each permission as I want.


1 Answer 1


That's one of my favorite topics, so let me list some choices for you. But before I do, I need to point out some "gaps" in your question: not all solutions work on all Android versions:

  • Android 4.3/4.4: These two versions have built-in permission management (to a degree) – but it is hidden. You can select from a bunch of AppOps FrontEnds (again, considering your Android version: some only work with 4.3, others only with 4.4) to reveal the interface, and control your app's permissions. AFAIK you cannot restrict network access with them – but I must admit I've never tried those.
  • ROM-specific: There were two full-fledged permission managers working on CyanogenMod, both being free and open source: PDroid and PDroid Manager. But for both, development seems to have stopped: last releases were 2012 resp. 2013.

But now for the real stuff: I'd recommend taking a look at XPrivacy and DonkeyGuard. As "real permission/privacy managers" do, both require root – which you stated is no issue. The two additionally require the Xposed Framework to hook into system resources – and I can really recommend that framework for a lot of other things (not part of your question; but take a look at my Xposed resource collection for details).

The requirements you gave are pretty simple, and matched by all of the mentioned apps. But what makes the two last ones so special? For DonkeyGuard it's mostly the user-friendlyness and ease of operation: you won't need a big tutorial to use this (but on the con side, it additionally needs the Cydia Substrate for network stuff, which is npt really open source AFAIK) – while XPrivacy gives you a flexibility and granularity you find nowhere else: you can e.g. restrict network access, but still allow parts of it – see the 3rd screenshot below:

XPrivacy Symbols granularity
XPrivacy: Normal app view, legend of symbols, granularity (click images for larger variants)

This can of course be overwhelming, and you for sure will need some time to unleash XPrivacy's full potential on your device. Plus it comes with a minor restriction: as the name suggests, XPrivacy understands itself as privacy manager, not permission manager – so it doesn't cover all permissions (but everything privacy relevant – which should cover everything we're usually after). *XPrivacy" is definitely open source: find the code at Github.

As I also mentioned DonkeyGuard:

DonkeyGuard Applist Access Warning Permissions
DonkeyGuard: App list, Access warning, Permissions (click images for larger variants)

You will note that DonkeyGuard even rates your apps by "possible danger" (the more stars, the more potential danger). While DonkeyGuard can be found at Github, I'm not sure about its open-source-ness: the code there only holds its readmes.

Both apps support, additional to your requirements:

  • revoke a permission completely (might cause Force-Closes)
  • provide "null data" for a permission (e.g. empty address book/calendar)
  • provide (random) fake data for a permission (e.g. fake GPS coordinates, IMEI, etc.)
  • generally restrict the permission, or only "on demand"

Going by rating and community, you most likely will end up with Xprivacy – but you of course have the choice. If you're looking for more choices, take a look at my list of Permission Managers, and make your own pick :)

  • +1 I've been a user of XPrivacy and didn't think that it might be missing some permissions considering its goal. Anyhow, its GitHub page says: XPrivacy doesn't revoke or block permissions from an application while you've written "revoke a permission completely (might cause Force-Closes)". What I failed to understand is, when I check a permission in XPrivacy like the check-marks in 3rd screenshot, does it then provide fake data for those permissions or really restrict the app from using them? I know about faking IMEI, and others from Settings.
    – Firelord
    Jul 22, 2015 at 18:14
  • @Firelord it's quite a while ago I've tried it last (I'm a long-term LBE user and really loved the "light-weight international version" – which no longer works with JB+) – but I'm about to give it another try soon (the "full version" of LBE is a monster I'm using max 20% of, and it's closed source). So I'm not really sure how which behavior is achieved currently. There're a lot of places allowing for "fake data", almost all allow for "null" (aka "is empty/not available", "flight mode active", whatever). As for your quote: read the sentence following it :)
    – Izzy
    Jul 22, 2015 at 19:52
  • I didn't understand the part following the quote. Please consider helping this poor man. It's a query I neither asked to the developer itself nor on any forum or on Android Enthusiasts because I was waiting for someone to write on it and I just popup there for my query. :)
    – Firelord
    Jul 22, 2015 at 19:56
  • Btw: XPrivacy was using parts of Cydia in the past as well, as you can see in some commit messages – e.g. "Remove last remainder of Cydia substrate support" (e4ebb205). // Edit: As for your "query", I'm not sure. Have to check for myself to figure that out.
    – Izzy
    Jul 22, 2015 at 19:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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