At Google I/O, Android M was announced with a revamped permission system. Instead of being told what an app can access up front, Google has switched to an as needed system similar to what is found in iOS.
This is a welcome addition to the Android operating system. They started to offer something similar back with Jelly Bean (4.3) called App ops, but they pulled it with KitKat (4.4.2). Head of Android and Chrome OS development, Hiroshi Lockheimer, gave the Guardian some insight about why this was and what took Google so long to implement this new system.
[blockquote author=”Hiroshi Lockheimer”]App ops was launched somewhat out of context; we really needed to solve the whole story, not just launch App ops without moving apps from install time to run time permission requests[/blockquote]
Lockheimer informed Guardian that apps “were not built with the notion that certain functionality could be turned off behind their backs”. If a user were to deny permission to a certain aspect of an app without the app developer being prepared for the permission to be denied, the app would not be able to handle the denial.
[blockquote author=”Hiroshi Lockheimer”]The way Android works is that there is no advantage we can give to Google’s applications, everyone operates on a level playing field[/blockquote]
Lockheimer claims that Google’s apps are subject to all of the rules that all other third-party apps are. In this regard, Google is a third-party developer in its own right. Basically, all this means to users is that you can deny Google apps permissions just like any other app. They are not above the rule.
The video segment from I/O explains how Android M’s new permission system will work.
For apps targeting APIs below 22, turning off permissions in the settings app will feed the app blank data in place of the data from your device that they would expect. This way, the app still functions (sort of) without any critical failures.
Developers can continue to target APIs corresponding to Lollipop (5.1) and bellow, but they won’t be able to implement features from Android M and other features in the future.
Our friends over at Google hope that the new features that come with APIs 23 and over will be enough to get developers to jump onto the new permission system bandwagon.
I am not to hopeful since fragmentation forces a lot of developers to stay on Ice Cream Sandwich APIs (level 14) in order to reach a decent amount of users.
If Google really hopes to get everyone working out of newer APIs, they are going to have to do something to fix fragmentation, but that is another story for another time.