Automation Apps Are Broken By Android 13's Privacy Push That's Working As Intended

automation apps broken android 13 privacy push news
Android 13 is currently rolling out to Pixel devices. Google is pushing privacy and security more strongly with this new version of Android, and this push extends to the clipboard as users often copy sensitive information. As a means to prevent exposure of this sensitive information, the clipboard will now automatically clear itself after an hour. Beyond direct changes to the clipboard, Android 13 modifies a permission that has been used in the past to access clipboard contents in a roundabout way. However, it seems that the days of this clipboard hack may be over.

Starting with Android 10, most apps can no longer read the clipboard contents in the background. Excepting the Android System Intelligence component and apps signed with the platform certificate, apps are required to be in the foreground to access the clipboard. However, some app developers wanted the functionality of automatically reading the keyboard whenever its contents change in order to sync keyboard contents across devices or trigger automatic processes. Thus, the developer of the automation app Tasker created Join.

Join offers a way to automatically pull clipboard updates by relying on system log updates. Join taps into the API that watches for clipboard changes, but anytime the clipboard changes the system denies apps access to this API if they are not in the foreground. Importantly, every time the system denies access to this API it writes a log entry indicating that this permission was denied. Join takes advantage of this log entry, though users must grant the app the READ_LOGS permission using the Android Debug Bridge (ADB) command line utility. Using this permission, Join watches the system logs for entries denying access to the clipboard change API, which indicate that the clipboard has changed. Whenever Join detects this log entry, it renders an invisible overlay in the foreground and reads the clipboard contents.

allow tasker one time access device logs
Tasker asking for one-time access to device logs in Android 13 (source: Mishaal Rahman)

Android 13 breaks this roundabout way to automatically read updated clipboard contents by changing the log access permission. Un-whitelisted apps must now be granted one-time access to system logs, meaning that Join cannot continually sit in the background monitoring for particular log entries. Technically minded users could grant Join shell level privileges using the Shizuku library to give the app persistent log access, but that adds another layer of complication to this already complex way of reading clipboard updates.

Google has indicated in an Issue Tracker thread that it won’t be fixing its breakage of Join’s clipboard reading function. The company explains its stance as follows, “Disallowing background access is working-as-intended. We would discourage any type of automation testing relying on logcat. Trying to communicate with logcat without an interaction with the developer/users are not intended use case.” While Join provided a way for Android to sync clipboard contents across devices, Google has introduced new clipboard sharing features in Android 13 that could replace some of this functionality. However, Join users should be aware that the update to Android 13 is a one-way trip, so users won’t be able to fix Join by rolling back to Android 12.