[Android, Root Required] Control the system access apps have with Permissions Denied

Although I really like how Apple vets all apps before allowing them in the Apple App Store, I appreciate that Google forces Android app developers to attain explicit permission from users to give apps access to different parts of their phones. The only issue, however, is that this ask-for-permissions gig is not perfect:

  • Users may not always know why an app is asking for a specific permission.
  • Users have no way of denying apps from specific permissions – it is an all or no deal. In other words, users may want the app, they may like the app, but there is one specific permission (e.g. being able to send SMS/text messages) that users dislike and there is no way of getting that app without allowing the app to access the specific permission.

The former problem can only be addressed at the developer/Google level. Google must force developers to explain why they need the permissions ask for. The later, problem, however can be addressed with an app called Permissions Denied.

What Is Permissions Denied?

Permissions Denied is a new Android app (free and open source) by Stephen (Stericson), the developer who brought the much-loved BusyBox to Android. Simply put, it allows users to pick and chose what permissions an app has and what it doesn’t. It is an after-market solution to the I-don’t-want-that-app-to-have-this-permission-problem. [See DroidWall if you want to specifically block apps from accessing the Internet or AdFree Android if you want to block advertisements on your phone.]

Please note your Android smartphone must be rooted in order to use Permissions Denied.

Using Permissions Denied

Using Permissions Denied is very easy. You run Permissions Denied, click on the app who’s permissions you want to modify, click on the permission you want to disable, give Permissions Denied root access (if you have not given it already), wait for the permission to be changed, and reboot your phone. Take note that you must reboot your phone by pressing the menu key on your phone and clicking on Reboot. If you reboot your phone any other way the permissions may not properly apply upon reboot. Restoring denied permissions is as easy as repeating the same process, except this time you need to click on the permission you want to re-enable.

The following is an example of how I removed the Read Phone State permission from Advanced Task Killer Free:

After I rebooted my phone, the permission was Read Phone State permission was successfully denied to Advanced Task Killer Free:

Advanced Features

While in Permissions Denied’s main screen (the one that lists all the apps), pressing the menu key and tapping Advanced Features will give you access to four advanced features:

Restore All Permissions restores all the default permissions for all apps.

Master Control allows users to disable specific permissions system-wide (i.e. all installed apps are denied the disabled permission; apps installed after Master Control has been run are not denied the permission(s) in question).

Fix Permissions allows users to fix the permissions for specific apps (i.e. if the permissions of an app have been messed up, such as they are not showing up properly). Fix Permissions is different than Restore All Permissions in the way that it fixes broken permissions whereas Restore All Permissions only restores the permissions to default. You must be in debug mode to use Fix Permissions.

I am not 100% sure what Backup does and couldn’t find any documentation to help me either. It either backs up all your apps, or it backs up your Permission Denied settings (i.e. the permissions that you have denied). I am leaning more towards the latter than the former.

Not All Is Well In A Post-Jobs World

One of the biggest reasons why Android does not have the native capabilities of Permissions Denied is because apps will not function properly if they are not given the permissions they ask for. How an app reacts to not having a permission it needs will vary from app to app. Some apps will crash and burn, being totally unusable until they have access to all the permissions they asked for (regardless of if which permission you denied them access to). Other apps will function properly (i.e. you will be able to use them) but the feature of the app that depends on the permission you denied will be unusable (duh).

Furthermore, Permissions Denied literally circumvents basic Android functionality. That in of itself has consequences. While there is no proof of malicious behavior yet, it wouldn’t be surprising if some malicious prick decided to use Permissions Denied functionality to their advantage. Similarly, there is a level of trust put into the developer of Permissions Denied that the app is indeed only doing what you tell it to, and not modifying app permissions behind you back. (On the brightside, as I already mentioned, Stephen is a big name around these ‘Droid parts, so there shouldn’t be too much to worry about on that front.)

Lastly, Permissions Denied is a new app. Therefore, it still has bugs: Permissions Denied may not always properly detect all the permissions an app has (contact the developer of Permissions Denied if this is the case – he will look into it), sometimes Permissions Denied cannot sustain the permission-blocking after a reboot and you may need to re-apply the blocks after a reboot, Permissions Denied may not work with all phones, Permissions Denied may not work with all apps, and Permissions Denied may crash/force reboot some phones. These last five points are just the price you pay for bleeding-edge tech, but they are important points one should note nonetheless. Be sure to make a backup of your phone if you are concerned about losing data. For what it is worth, Permissions Denied works fine on my Nexus S (Android v2.3.3). Ashraf, dotTech, and anyone else is not responsible to what happens to your device. You install and use Permissions Denied of your own free will and you are responsible for any positive or negative consequences.

Conclusion and Download Links

Permissions Denied is a new app; it does not provide 100% service level: You will find bugs and it may not always properly work for you. However, it is a much-needed app that I am confident will be improved with more testing and feedback from users. At this point I would recommend newbies stay away from Permissions Denied, until it matures a bit more. On the other hand, if you consider yourself Android-savvy, you may want to give this app a go. You can grab Permissions Denied from the following links and/or QR codes:

Version reviewed: v1.3

Price: Free, with a $2.99 donate version

Permissions Denied [Free]

Permissions Denied [Donate Edition, $2.99]

Share this post

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

10 comments

  1. Jyo

    @Davo: I found out shortly after that there is an “unofficial version” of Cyanogen for it (by Mik), but the current Rom Void that I use has just been awesome and I’m too lazy to flash another version. If it ain’t broke, don’t fix it. On top of that, I feel like Gingerbread’s layout is… meh… I like Froyo…

    But yea, the LG stock rom was really bloated and junk-infested, so flashing is definitely a no brainer for this phone.

  2. Davo

    @Jyo:

    I came to view Permissions Denied but as it happens I have an Optimus V running Cyanogen. After rooting with Gingerbreak I found a kernel (aospCMod-vm670) which I flashed using ClockWorkMod. Then install CM7, enjoy! I have been running smooth since June (^^)

  3. Jyo

    I got a LG Optimus One, which is kinda low-end, but there aren’t many ROMS for it. I would’ve used Cyanogen except it’s not supported.

    You should also do an article on how to remove those pre-installed apps that just won’t go away; I remember you wrote an article on that (with Android Mate), but it didn’t work T_T

  4. Ashraf
    Author/Mr. Boss

    @Raven: I really should get an article out about rooting phones. Problem is there is no one-size-fits-all although there are some tools out there that root a lot of phones

    @Jyo: No, with Nexus S there is no need for a custom ROM. Stock vanilla + fast updates + Samsung hardware = win. Plus I’m not one for trusting custom ROMs. Would you install a “custom” Windows on your comp? Probably not… so why do the same for your phone? The only one I trust is Cyanogen because it has some sort of code review/oversight.

  5. Raven

    Welcome back Ashraf!!! :-)))) Any sign of rooting software or a kit of apps to root froyo 2.2 as both HTC Desires I have came with 2.2 installed so I don’t have much control over either yet.

  6. Ashraf
    Author/Mr. Boss

    @Toast: Hello there!

    @Tonyo: Off the top of my head, in terms of “contacting the outside world”, there are three main permissions one should be worried about: Internet access, ability to send messages (SMS/MMS), and ability to make outgoing phone calls. There is also that permission to access your location (GPS or WiFi location) but afaik if an app doesnt have Internet access it can’t do anything with the location data it has on you.

    Using DroidWall to block apps from Internet access is a good way to keep your data from being stolen (I do the samething), but Permissions Denied allows users to block apps from the ability to send messages and make phone calls which can be useful because I have seen many apps that request these two permissions although it is never very apparent why they need it.