Android 6 and above will start removing permissions from unused apps
Google is coming for your unused Android crapware. The company announced on Friday that it would backport a privacy feature from Android 11 – the auto-reset app permissions – to Android 6.
Auto-reset app permissions were introduced in Android 11 as part of an ever-expanding Android feature set aimed at automatically limiting the apps you don’t use. When you don’t use an app for a set period of time, Android automatically removes the app of any permissions it has been granted, preventing it from following you in the background or accessing data. This is a great feature for less tech-savvy people who don’t want to manually organize the inner workings of their phones. If you open the app again, it can request all of these permissions again.
Like most new Android features, Auto Reset permissions were exclusive to Android 11 when it was released last year, making up a very small number of Android’s 3 billion active devices. Google’s official Android Studio stats have Android 11 at 0 percent market share, but this chart hasn’t been updated since the release of Android 11 (update your chart, Google!). The last update we received indicated that OEMs were pushing Android 11 about as quickly as they rolled out Android 10, so today version 11 could crack 10 percent of Android devices.
The release of the feature on Android 6 and later means it will reach billions of users. Even Google’s 18-month chart shows Android 6 at 84.9% of devices. Users will get the functionality from December via an update to Google Play Services, with rollout ending in Q1 2022. Play Services is Google’s system-level mega app that ships with every Google Play device, so just visit the play store in the next month or so, and the update will automatically download. Once you have the update, “the system will begin to automatically reset permissions for unused apps a few weeks after the feature launches on a device,” Google says.
Google app limitation features
Google’s first push to this idea came in Android 6 with Doze and App Standby, both of which limited access to background processing of apps based on usage. Android 11’s permission revocation was an extension of that idea, and Google is getting really serious in Android 12, where it adds âapp hibernationâ. A hibernating application will be optimized for storage size rather than speed, so its cache will be deleted. The app will have no background access, even when the phone is plugged in (App Standby only applies to battery use), and it will not be able to receive push notifications at all.
âUseâ for all of Google’s app removal features means opening an app, tapping an app notification (which means something other than dismissing it), or interacting with a widget. If a user does not do any of these things for a set period of time, app throttling features come into play. If a user performs any of the “use” interactions with a throttled app, all limitations of the app apply. application will be lifted transparently. , and the application will resume working normally. Users can also manually flag apps for immunity from app throttling features, even if they are not in use. This is ideal for apps that you plan to run only in the background, like companion apps for smartwatches or data sync apps.
If you never use an app, the best thing you can do is uninstall it, but it does require user interaction, a desire to organize, and some mastery of technology. Google’s app throttling features work automatically and will intelligently direct hardware resources to the apps you use, even for people who have virtually no knowledge of how their phones work. For someone without a lot of know-how or desire to organize – and a phone with a ton of crapware – this feature should help clean things up a bit. The nuclear option would be to completely disable an unused app, but that would remove it from the app drawer and you wouldn’t be able to recover from that action seamlessly.
All of Google’s app throttling features relate to apps that âtargetâ a certain version of Android (called âAPI levels,â one for each version of Android). For backward compatibility, apps on Android can indicate which version of Android they are compatible with, which allows a developer to specify that the app has been tested against a certain set of Android features, and that all features or restrictions of newer versions of Android generally won will not be applied to the app.
Even when the auto reset permissions feature is rolled out to Android 6 and later, it will still only reset permissions for apps targeting Android 11 and later. Google doesn’t want to break anything automatically, but the blog post notes that less careful users will be able to flip a switch and let the permissions reset happen for any app targeting Android 6 and later.
Apps could theoretically target a very old version of Android and be free from a lot of restrictions (downloaded malware does), but Google has a number of carrots and sticks to get developers to target newer versions of Android. . The biggest incentive is that the Play Store has a minimum API level for apps, which typically requires developers to provide an API level of the previous year or two in order to be listed on the store.
Android 12 is about to be released, and new apps downloaded from the Play Store must target Android 11. For existing apps to send an app update, developers currently need to target Android 10, but in November the minimum for updating apps will be upgraded to Android 11. So in November a developer’s options will be “target Android 11 or become abandonware”, and at that time next year Android 12 will be the required target. .
Next year: Android 12 app hibernation coming to Android 6 and later?
Let’s make a bold prediction: Google will likely roll out Android 12’s app hibernation feature to older devices next year. All of the app-limiting features – App Standy from Android 6, permissions reset from Android 11, and app hibernation from Android 12 – are just more aggressive versions of the same idea and operate through the same “use” mechanisms. If you are backporting one feature, it makes sense to backport the other at some point.
As part of today’s announcement, Google is offering new APIs that will allow apps to display a disable box for the auto-reset permission feature. Since auto-reset permissions will work on Android 6 and later, these APIs are part of a “Jetpack” library that developers can include in their app, so the functionality is not tied to a specific version. . Google helpfully notes that this new deactivation library is “also compatible with the hibernation of applications introduced by Android 12”. Google might just vaguely plan for a future on Android 12, but to me that sounds like a hint of a future backport, where Android 12 app hibernation will start working on older versions of the operating system.
The Android team takes a very careful approach to their app platform and never wants to break anything, so it is very appropriate for the group not to release all app-limiting features at the same time. Once the Android team sees how this revocation of permissions rollout works on older versions, it wouldn’t surprise me to see the group take the next step with a hibernating version of apps. With the Play Store slippery API minimums, almost any app will have declared app hibernation compatible by next year anyway, so why not take advantage of that?