14

I have Android 4.4.4 Cyanogenmod 11. By its very nature, it is already rooted. Is there an integrated application that would allow me to set privileges per application? For example:

  • If an application wants to send an SMS, I want my phone to ask me if I want to allow this, but Hangouts are exception.
  • For the Internet connection: I want my browser to access it, but I don't really want a dice roller to do it when I'm not sharing my roll results with friends.
  • Image processing apps should have access to my images, but other apps should need a specific permission.

And so on. Basically, for every permission on the list, I want to be asked if I want to allow it once, allow always always, deny once or deny always, per application. With as much information (like phone number app is calling, filename of photo, or URL it is trying to access) as possible.

Is there any tool like that available? My friend suggested LBE Privacy Guard, and I tried it, but "tried" is a bit big word: It was crashing once every few seconds and I uninstalled it as fast as I managed.

List of things that can be controlled (tested)

To address answer below, I tested some things:

  • SMS Sending - control shipped with CyanogenMod works without breaking anything, I just can't find any per-app control
  • Making phone calls - nothing breaks when I'm in place with no gsm coverage, apps give up gracefuly
  • Making HTTP requests - Set up control on my proxy, apps can wait 20~30 seconds, if I fail to decide in that time they usually simply give up on this request and retry later - just like if phone was in aeroplane mode at that moment, it seems.
  • In-app shopping - with no credit card attached to any account, I'm asked to add one. Apps wait for my reaction. So waiting for user's response and handling no payment method situations is already implemented.

List of things that I'm sure could be controlled, but cannot reliably test

  • All kind of listeners - on the startup I could get notified what app wants to listen to, and if I decline, it's listener object should simply never get anything. If I don't want this particular app to know I got SMS, why not to make it think I never got any? Shouldn't break it more than simply being in aeroplane mode.

  • File access - Apps don't break if I su and chmod them out of my photos, for example. They simply display "could not open image", or "could not save image data". So at least keeping them out of my photos should be doable. Don't know what delays would apps accept, but I believe with most of them I could simply retry action after granting specific permission. Permissions could be timed, like Bluetooth sometimes is.

Lists' summary

Lists above cover all I really want from control app. And things on the first one may cost, so they are more important.

Official app

There was one, in Android 4.3 Jelly Bean.

Screenshot, copyright Google

Sadly, it was removed. So all I want is to go back to the "stone age" of 2012, not the one of first Nokia phones.

2
  • "My friend suggested LBE Privacy Guard, and I tried it, but "tried" is a bit big word: It was crashing once every few seconds and I uninstalled it as fast as I managed." On the app store it gets 2.7k 5 star votes & 2.9k 1 stars, a pretty mixed reaction. The German comments currently on the page also complain of crashes. If you don't find a real alternative, I would recommend contacting the developer and working with him to fix the problems. Jan 28, 2015 at 10:15
  • It seems like there are several App Ops replacements there on play store if you wanna give 'em a try I link you just a couple here: App Ops and AppOps
    – danicotra
    Oct 30, 2016 at 18:29

4 Answers 4

4

I would recommend using XPrivacy - while there are many apps based off of the google API for app-ops (like Cyanogenmod's own Privacy Gaurd), those have limitations (notably they can't restrict internet access), since Google never implemented that in app-ops to begin with. That said, this comes at a cost - mainly complexity as far as using the app, however based on the OP, I suspect you know this going in and are willing to learn/work with an app that gives you more flexibility because of that.

Other bonuses include that it's free* (paid version exists to support developer) and open source

cons: Requires root access (but probably anything that can restrict other apps will need this)

Requires xposed framework (which adds mostly unnecessary bloat for those already on custom roms like the OP)

I am not sure if it can hide a file directory from an app as you want, it's above beyond how much configuration I have done with it so far, but it seems like it can protect a specific external storage, and since those are really just mounted like any other folder, hiding a different folder should be possible.

I am also not sure if you will be able to see what sort of number a sms was attempted to be sent to, since it depends on the individual app to blindly attempt to send the message without first checking that it has the necessary permissions (seems like bad programming to me if such an app exists), so unless the app is sloppy, I don't think this will be easy to do. (of course, you could try and impersonate the telecom operator, but that would be quite difficult and likely involve hacking the sim card)

8
  • "Requires xposed framework (not exactly needed for OP" - well, it was needed. Or, at least, required.
    – Mołot
    Oct 8, 2014 at 9:51
  • @Mołot - that's what I meant by "Requires".. it would be needed for phones that are not already on a custom ROM. Oct 8, 2014 at 13:39
  • @user2813274 XPrivacy is an Xposed module, so it always requires Xposed. I don't know any ROM shipping with that by default. Maybe you confuse this a little with PDroid, which only works on certain custom ROMS?
    – Izzy
    Nov 7, 2014 at 15:07
  • @Izzy xposed is a framework for customizing the stock rom... but somewhat unnecessary once someone already has a custom rom since then they can already do whatever they want. That said, this particular piece (XPrivacy) only comes as an Xposed app, so there isn't much choice in the matter. Nov 7, 2014 at 15:23
  • Correct. Seems like I misinterpreted your sentence: "not exactly needed for OP, since they are already on a custom rom" is a little misleading in its context :)
    – Izzy
    Nov 7, 2014 at 15:57
1

After some trial and error, I found that Permission Manager - App ops works. It seems that Google indeed removed / put deeper the hidden feature, but left the API in place, so it was only a matter of time - GUI was bound to get written, or uncovered again.

So far, nothing seems broken. And now I know my dice rolling app never tried to send any SMS. And it never will, unless I want it to.

Of course the amount of data I'm presented when I have to decide (pretty much none) is not satisfying me fully, I would prefer to know phone number SMS is going to, for example, but it's way better than nothing.

1
  • To my knowledge, AppOps won't be available with Android versions 5+, unfortunately. It's functionality is very limited anyhow (you eg. cannot restrict Internet access with it) and is what "went official" as "runtime permissions" with Marshmallow (Android 6).
    – Izzy
    Oct 13, 2017 at 13:52
1

I was using LBE Privacy Guard for a long time (only works up to Android 4.0, but causes a boot-loop on higher versions), and for Android 4.1+ now switched to LBE Security Master1. The former originally was the "lite" variant doing about everything you're looking for, and the latter to me feels a little "bloated" with a bunch of additional features I don't want (but luckily was able to disable mostly). For most of the available/relevant permissions you can

  • generally allow an app to use it (e.g. accessing your location without explicit confirmation)
  • generally forbid it doint so (e.g. the app cannot access your location at all)
  • having the LBE asking you every time an app wants to use it (and decide "by call")

All this can be controlled/configured on a per-app basis. Whenever you install a new app, LBE adds a notification asking you to configure it, while applying a "default set" of rules (in most cases enforcing the third option from above).

That said, it applies to many, but not all permissions available. As the list of available permissions is quite long, it's hard to keep track of which ones are covered and which ones aren't – and the app is constantly updated (also the localized versions, even if a little delayed); so it doesn't make much sense to nail it here.

In addition to the localized versions I've mentioned, there's also an Xposed module named LBE Security Master - Translation International. This allows you to simply use the Chinese Playstore edition, and "overlays" translations. The advantage is clear (no more manual updates); but according to reports the translation here is not that complete.

To give you a better idea, here's a screenshot from configuring a single app:

LBE
LBE screenshot (click for larger variant)

LBE uses the "fake data" approach (e.g. if you reject an app to access internet, it just gets told you're in airplane mode; likewise your contact-list/calendar is empty, you've got no call history, and your IMEI is 12345) – which proves Menno's answer being simply wrong.


1 While on Google Play you only find the Chinese version, there are localized versions at XDA for e.g. EN | DE

1

As most solutions provided here are a bit outdated, let me add a fresh one:

PermissionManagerX is available at multiple places, including F-Droid (the most recommended source), IzzyOnDroid (my repo, for "early birds"), Google Play and Amazon. You can use this app to manage permissions either with root-powers, or by utilizing ADB.


PermissionManagerX (source: PermissionManagerX; click/tap images for larger variants)

The app lets you view, grant and revoke permissions (including AppOps), and gives you pretty fine-grained control. It is also fully open-source (else it would not be available at F-Droid), so you can investigate the source to enhance your trust. For a small fee to the developer, you can enable additional features like support for work profiles, scheduled checks and more.

Your Answer

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

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