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:
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:
Price: Free, with a $2.99 donate version
Permissions Denied  [Free]
Permissions Denied  [Donate Edition, $2.99]