Enlarge / Android 6.0 Marshmallow gets a nice new feature.
Google is coming for your unused Android crapware. The company announced on Friday that it will backport a privacy feature from Android 11 – automatic resetting of app permissions – to Android 6.
Auto-reset app permissions were introduced in Android 11 as part of an ever-expanding Android feature set that aims to automatically restrict apps that you don’t use. If you don’t use an app for a period of time, Android will automatically revoke the app’s permissions and prevent it from tracking you or accessing data in the background. It’s a nice feature for less tech-savvy folks who aren’t interested in manually organizing the insides of their phones. If you open the app again, it can request all of these permissions again.
As with most new Android features, the auto-reset permissions were exclusive to Android 11 when it came out last year – 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 Android 11 was released (update your chart, Google!). The last update we received said that OEMs were bringing Android 11 to market about as fast as they were introducing Android 10. Today, version 11 could crack 10 percent of Android devices.
Releasing the feature for Android 6 and above means it will reach billions of users. Even Google’s 18-month-old chart shows Android 6 on 84.9 percent of devices. Users will get the feature via a Google Play Services update starting December this year, with the rollout being completed sometime in the first quarter of 2022. Play Services is Google’s mega system-level app that will ship with every Google Play device for the next few months and the update will download automatically. As soon as you have the update, “a few weeks after the function has started on a device, the system will automatically reset the permissions of unused apps,” says Google.
Google app restriction features
Google’s first push on this idea came in Android 6 with Doze and App Standby, both of which restricted app background processing access based on usage. The privilege revocation of Android 11 was an extension of that idea, and Google is getting really serious with Android 12 where it adds “app hibernation”. A dormant app is optimized for memory size rather than speed, so its cache is cleared. The app does not get background access even when the phone is connected (App Standby only applies to use on battery power) and cannot receive any push notifications at all.
“Use” for all of Google’s app killing features means opening an app, tapping an app notification (which means something other than closing it), or interacting with a widget. If a user doesn’t do any of these things for a period of time, the app throttling features will be enabled. If a user makes one of the “usage” interactions with a restricted app, all app restrictions will be seamlessly removed and the app will function normally again. Users can also manually mark apps as immunity to the app-limiting features, even if they don’t get used to it. This is great for apps that you expect to only be running in the background, such as: B. Companion apps for smartwatches or data synchronization apps.
The type of permission that is automatically revoked if you’re not using an app.
If you never use an app, it’s best to uninstall it, but that requires user interaction, a desire for organization, and some level of technical know-how. Google’s app restriction features work automatically and intelligently redirect hardware resources to the apps you use, even for people who have virtually no knowledge of how their phones are working. For someone without a lot of know-how or organization – and a phone with a lot of crapware – this feature should clean up quite 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 seamlessly recover from that action.
All of Google’s app-limiting functions are tied to apps that “target” a specific Android version (so-called “API levels”, one for each Android version). For backward compatibility, apps on Android can indicate which version of Android they are compatible with so that a developer can indicate that the app has been tested with a particular Android feature set and that all features or limitations of newer versions of Android are not normally gained applied to the app.
Even if the auto-reset permissions feature is rolled out on Android 6 and above, it will only reset the permissions of apps that target Android 11 and above. Google doesn’t want to break something automatically, but the blog post points out that less cautious users can flip a switch and allow permission reset for any app targeting Android 6 and above.
Apps could theoretically target a very old version of Android and be free of many restrictions (side-loaded malware does this), but Google has a number of carrots and sticks to get developers targeting newer versions of Android. The biggest incentive is that the Play Store has a rolling minimum API level for apps, which usually requires developers to deliver an API level or two from the previous year in order to be listed in the store.
Android 12 is about to be released and new apps uploaded to the Play Store must target Android 11. In order for existing apps to deliver an app update, developers must currently target Android 10, but in November the minimum for updating apps will jump to Android 11. So in November, a developer’s options will be to “Target Android 11 or Go Demolition,” and around this time next year, Android 12 will be the required target.
Next year: Android 12’s app hibernation hits Android 6 and above?
Let’s make a bold prediction: Google will likely roll out Android 12’s app hibernation feature on older devices next year. All app-limiting functions – App Standy from Android 6, resetting of authorizations from Android 11 and App hibernation from Android 12 – are just more aggressive versions of the same idea and work via the same “usage mechanisms”. When you’re backporting one feature, it makes sense to port back the other at some point.
As part of today’s announcement, Google is delivering new APIs that apps can use to display an opt-out box for the feature to automatically reset permissions. Since auto-reset permissions work from Android 6 onwards, these APIs are part of a “Jetpack” library that developers can include in their app, so the feature is not tied to a specific version. Google helpfully notes that this new deactivation library “is also compatible with the app hibernation introduced by Android 12”. Google might only vaguely plan for a future on Android 12, but to me that sounds like a hint of another backport where Android 12’s app hibernation works on older versions of the operating system.
The Android team is very careful with its app platform and never wants to break anything. It is therefore very typical for the group not to publish all app-limiting functions at the same time. However, once the Android team sees this rollout of revoking permissions working on older versions, I wouldn’t be surprised to see the group take the next step with an app hibernation release. With the Play Store’s rolling API minimums, almost all apps will be declared for app hibernation compatibility by next year anyway. So why not benefit from it?