We've long pondered what it might look like if Google decided to implement something that gave users more control over what individual apps are allowed to access on our devices, and at I/O this year it all became clear. Android M is going to allow users quite a bit of control over what information and hardware each app is allowed access to, and this new setup even includes a simplification of permission types into a few convenient categories.
While we know nothing about Android M is set in stone, a quick walkthrough of this new permission setup gives a reasonable look at what is coming in the next version of Android.
We're all used to getting that prompt right after tapping install in the Google Play Store that tells you what permissions the app is expecting when it lands on your device. Those days are over in Android M, or at least they are over for apps that update to support this new permission system. All apps are going to be forced into disabling whatever permissions you tell them to either way, but apps updated to the most recent API target will be able to do so gracefully. Everything else will have an increased risk of breaking the app when you remove the permission, and in our testing that can happen quite frequently if you aren't careful. The hope is Google have given developers plenty of warning and all of the tools needed to make these changes and ensure their apps play nice with these new rules, but it's entirely up to the developer to actually implement the changes and update their app.
When you install an app that follows the new API targets, you will no longer see that permissions prompt at the beginning of the install process. Instead, the app will have to ask for permissions when the app actually needs that resource, and it will be up to the user to approve or deny that access. Users can also look at the total list of permissions each app has access to in a new permissions tab in the apps section of settings, but more importantly users can head to the advanced tab in this same view and look at the all of the apps and services that request access to specific kinds of permissions.
In our testing, catastrophic failure when permissions were denied was quite rare.
Disabling permissions in an app that isn't written to function around that ability introduces variables the app may not be able to work around. Android M warns you of exactly this when you try to disable permissions in an app that hasn't been updated to the latest APIs, but doesn't stop you from pulling the lever. Instead, you get to explore the app yourself and see if everything still works without that permission. In a worst case scenario, the app will crash immediately and return you to the home screen, but in most cases the app will just fail to access the information and inform you of the failure. It's going to vary quite a bit from app to app, but in our testing catastrophic failure was quite rare.
Given the lead time before Android M is officially launched, it's likely most of your favorite apps will support this new system without issue. On the other hand, if you take a look at which apps on your phone haven't been updated in quite a while, you've probably got a decent indicator of which apps are going to run into the occasional problem when you do eventually make the switch to M. In the mean time, you can rest assured that a better way to handle apps is on the way.