In December, Google plans to have app runtime permissions expire on older versions of Android for apps that haven't been opened for several months, extending the availability of a privacy protection feature introduced in Android 11.
"In Android 11, we introduced the permission auto-reset feature," explained Google software engineers Peter Visontay and Bessie Jiang in a blog post on Friday. "This feature helps protect user privacy by automatically resetting an app’s runtime permissions – which are permissions that display a prompt to the user when requested – if the app isn’t used for a few months."
That behavior is the default in Android 11 and in Android 12, expected in a few weeks. Come December, it will become the default in older versions of Android that rely on Google Play services, specifically Android 6 (API level 23) through Android 10 (API level 29).
The behavior change is likely to affect about 2bn devices, given that only about 25 per cent of the 3bn active Android devices run Android 11 (API level 30) or greater, and a relatively tiny number run something older than Android 6.
It means that dormant apps will lose access to runtime permissions, also known as "dangerous permissions," that were previously granted and might pose privacy problems if forgotten. These include permissions like READ_PHONE_NUMBERS, READ_SMS, RECORD_AUDIO, ACCESS_COARSE_LOCATION, CAMERA, and other similar settings that provide access to sensitive data.
Google has anticipated that this might cause problems in some cases, so it will exempt Device Administrator apps and the like that are used by large organizations and have permissions set via enterprise policy.
- Upcoming Android privacy changes include ability to blank advertising ID, and 'safety section' in Play store
- Samsung commits to 5 years of Android updates... for its enterprise smartphone users at least
The Chocolate Factory has also provided a way for developers to request that Android device owners disable permission revocation. The rationale for doing so would be for apps that work mainly in the background – it wouldn't be ideal, for example, if a child safety app that relies on location data suddenly stopped working.
The Register has asked whether anyone at Google would define "a few months" more precisely or whether the fuzzy time frame was a deliberate attempt to avoid providing a specific value that could be used to game the system. A company spokesperson confirmed it was the latter.
However, Android provides developers running Android 12 with a way to check and set the default permission reset time in milliseconds on their own devices using the Android Debug Bridge (adb) command line tool.
adb shell device_config get permissions auto_revoke_unused_threshold_millis2
Android 12 takes permission revocation further still. It includes a feature called Hibernation that "not only revokes permissions granted previously by the user, but it also force-stops the app and reclaims memory, storage and other temporary resources."
Hibernating apps can't run in the background or receive push notifications. This too can be disabled via Settings if necessary.
Google intends to begin a gradual rollout of its permission auto-reset feature in December, on devices with Android 6 through 10 and Google Play Services. Users should be able to access the auto-reset settings page to configure this feature for specific apps. Thereafter, the Android system will start counting down to a permission reset. The rollout is expected to reach all affected devices at some point in Q1 2022. ®