Here are all the hidden changes in Android 11 we learned from source code
Shortly after releasing the first stable build of Android 11 for its range of Pixel devices, Google started uploading the Android 11 source code to AOSP. We’ve been digging around in the code to find hidden features that we may have missed in our previous coverage, and here’s what we found:
New volume stream for virtual assistants
Andriod 11 introduces a new stream type for virtual assistants: AUDIO_STREAM_ASSISTANT. The new stream is “intended to be used by a virtual assistant like Google Assistant, Bixby, etc. The audio stream has own volume alias and the volume does not change by volume changes of other streams.”
Currently, virtual assistant apps typically send audio over the media volume stream, which is shared by other media apps. With the new stream, Android 11 should allow developers of virtual assistant apps to send audio over this new stream, letting users set the assistant volume independently of other media apps.
Clock Plugins in Android 11
In Android 10 we spotted work on lockscreen clock customization that provided 3 different options: default, text, bubble, and analog. This feature would have been available in the Pixel Themes app (“Styles & Wallpapers”) as a separate tab called “Clock,” however, it didn’t make it to the final Android 10 release.
While the feature is still not available in the Android 11 stable release, Google has re-enabled the custom clock feature. But since Google removed the text clock in Android 10 and removed the analog and bubble clocks in Android 11, there are currently no other clock options available.
We suspect that Google has either enabled the feature for OEMs only or the company could be working on new custom clocks to launch alongside the updated Pixel Themes app on the Pixel 5 and Pixel 4a 5G.
Freezing Cached Apps
In Android 11 Beta 2, we spotted a new in-development feature titled “suspend execution for cached apps.” At the time, we learned that the feature would reside in Developer Options but we didn’t have enough information on how it worked or how to enable it.
From the source code, though, we can see that the feature is intended to “freeze apps when cached and unfreeze them once removed from the cache or killed. Frozen apps won’t use any CPU cycles, reducing power consumption for misbehaving processes which might attempt to run while cached.”
XDA Recognized Developer luca020400 says that this feature needs updated cgroups (a Linux kernel feature), so it doesn’t work on current devices. It could be a feature aimed at OEMs or it may be implemented on the Pixel 5.
Blur for notification shade
In Android 11 Developer Preview 3, we managed to enable a hidden toggle to enable window blurs. However, the toggle didn’t work at the time. XDA Recognized Developer luca020400 has now managed to get it working.
— Luca Stefani (@luca020400) September 9, 2020
He flashed the Android 11 GSI on his ASUS ZenFone 6 and enabled the feature by changing a system property. The feature enables a Kawase blur effect, which is an approximation of Gaussian blur, behind the notification panel when it’s pulled down.
Deep Press support for expanding notifications in Android 11
In the second Pixel Feature Drop, Google added “improved long press options” that let you firmly press on the screen in the Pixel Launcher, Google Photos, and Google Drive to show the context menu. It’s an alternative way to access the context menu which is designed for people who may not be aware that they can access it by long-pressing the screen.
The feature makes use of the Deep Press API that uses an ML model to infer when a user is pressing more forcefully on the screen. In Android 11, you can now do a deep press on notifications in the notification panel to expand them.
What is Gabeldorsche?
Android 11’s Developer Options has a toggle called “Enable Gabeldorsche” with the description “enables the Bluetooth Gabeldorsche feature stack.” Google has finally published documentation of Gabeldorsche, and it appears to be a complete rewrite of Android’s Bluetooth stack. Hopefully, the rewrite will result in lower latency and more stability. If you’re interested in learning more, you can view the Gabeldorsche Bluetooth stack architecture and style guide now. Just note that the GD Bluetooth stack is not yet ready for prime time and is likely intended for launch in Android 12 or later.
What is enhanced connectivity?
Android 11 Developer Preview 2 added another mysterious Developer Option called “enhanced connectivity” without any description of what it does. Thanks to the source code, we’ve now learned that the feature will “allow the connectivity thermal power manager to actively shutoff 5G in order to save power when cellular throughput is below the set threshold.”
Multi Audio focus
Back in May, we covered a root app called App Volume Control that lets you control the individual volume levels of Android apps. This is needed because Android doesn’t have a native volume mixer like Windows, so you can’t mix the volume levels for multiple apps playing audio simultaneously. Android has the concept of “audio focus,” and only one app can have focus at a time.
The app that has audio focus decides what happens to other apps playing audio — either ducking (lowering the volume) or pausing it. This means that users can’t control whether or not their favorite music app always plays in whatever app they have open, if that app takes audio focus away and chooses to pause playback. In Android 11, it looks like Google is working on a multi-audio focus feature, which will allow apps to simultaneously play audio without pausing or ducking one another.
Faster share sheet
Adding on to the enhancements made in Android 10, Google has made some improvements to the share sheet in Android 11. For example, the loading of icons is now cached, which means that they appear faster. Scroll jankiness has also been reduced by caching the itemViewType in the ViewHolder, caching the result of shouldDisplayLandscape to reduce the number of IPC calls while scrolling, and caching the work profile user handle.
Better memory management
Google has introduced a new OOM Adjuster design (OOM = out-of-memory, i.e., what should the system do when the amount of free memory is close to depleted). There are 3 factors for OOM Adjuster tweaks: Process State (determine if a process is in the foreground versus background), OOM Adj score (used by the low memory killer daemon, or lmkd, to determine which process should be killed when low on memory), and the Scheduler Group (which tweaks the CPU process group and thread priorities).
The system server adjusts these 3 factors for 4 types of different Android processes: Activity, Service, Content Provider, and Broadcast Receiver. OOM Adjuster is designed to avoid killing a process if “it would result [in a] user-perceptible interruption of service.”
Android 11 Go Edition improvements
Low RAM devices (read: Android Go Edition) can now support multiple users, managed profiles, and notification listeners. For multiple users and managed profiles, Google has only removed runtime restrictions that prevented these from working on low RAM devices, so OEMs will still need to make some configuration changes to get them working. Notification listeners (apps that have been granted permission to intercept notifications, like Pushbullet) should just work without input from OEMs, though.
WCG wallpaper support
10-bit (wide color) images can now be set as wallpapers in Android 11. Previously, applying such wallpapers would always get them converted to sRGB. A bug in the conversion process is what interestingly caused the infamous cursed wallpaper crashes earlier this year.
Volume key customization
It seems like Google is working on an API for detecting single press, double tap, or triple taps of the volume keys. We’ve discovered two commits titled “support customization of volume keys” and “support customization of single/double/triple clicks,” which point towards this undocumented change in Android 11. To enable the feature, long/single/double/triple key presses will be differentiated by the length of time and patterns of KeyEvents.
Apps using an Accessibility Service, such as flar2’s ButtonMapper app, can already intercept the KeyEvent for volume button presses and use their own logic to determine what kind of press was done by the user. It looks like Google is now writing native support for such customizations, but we’re not sure if it will be used to power a feature on Pixel devices or it’s only being written with OEMs in mind. There’s no evidence to suggest that the feature will be used to change music tracks and it could just be used for safety-related features, like, for example, detecting when a triple tap of the volume down key is done to send an SOS. Interestingly, Android already has a hidden API for detecting long-presses of the volume keys.
Automatic unlocking of work profile by Digital Wellbeing
In Digital Wellbeing 1.0.327635162, we spotted strings for a new work scheduler feature that will automatically disable the work profile when the scheduled time is reached. In Android 11, Digital Wellbeing can now automatically unlock the work profile, paving the way for this feature to arrive.
If you wish to learn more about all the changes introduced in Android 11, check out our posts on the first Android 11 stable release and developer-focused changes. To install the latest update on your device, you can check out our Android 11 update trackers linked below.