Google Pixel 2’s Always On Ambient Display can be Enabled Right Now on your Android Oreo ROM
The latest update to Google’s Android, the tasty Android Oreo, has a lot to offer to users. From integrating password managers with the new Autofill API to more lower level changes such as Project Treble, this next update has understandable excited many users on our forums. But sometimes, Google likes to withhold certain features from the initial update, whether it’s because the feature is incomplete or intended to launch with the next generation devices. One such feature is the Always On Ambient Display mode which we first discovered in a disabled state on the first generation Google Pixel, and presumably launching with the Google Pixel 2 and Pixel 2 XL.
Since we initially covered the existence of this feature, some users have been speculating that always on display mode may only ship with the second generation Google devices next month (though not with the Qualcomm Snapdragon 836 as initially reported). That may very well be the case, since we don’t know exact details about Google’s plans for this feature. However, unlike the rumored squeezable frame, the always on ambient display appears to be already fully functional – provided you know how to enable it in AOSP.
You can chalk up the poor quality photos to my incompetence with photography.
The new ambient display setting works pretty similarly to all of those other “always on display” modes from the likes of Samsung or LG. When you turn off your screen, you will see a clock stay on the device’s screen. When you receive a notification, you will see the full contents of the notification for a few seconds before it fades away into showing just the app’s icon underneath the clock.
The test device I am showing off this ambient display mode is a Google Nexus 6 running on an unofficial port of Android 8.0 Oreo. This is one of many unofficial ports of Android Oreo already available thanks to the awesome work of developers on our forums. In the ROM that I tested, the always on ambient display option was already enabled in System UI Tuner.
After some unsuccessful attempts at trying to bring back navigation bar and lock screen shortcut customization to System UI Tuner by using rootless Substratum overlays (unfortunately impossible without root since it requires the system property
ro.debuggable to be set to 1), I dug through the source code and also discovered the method that determines whether or not always on ambient display will be shown in System UI Tuner.
It appears that there is a method in
AmbientDisplayConfiguration called “
alwaysOnAvailable” that currently is hard coded to always return “false.” There’s a comment there stating why it does this, as it “does not work properly yet.” Perhaps not, but without further elaboration as to why it doesn’t work, I’m not inclined to see why we shouldn’t let users play around with it if they want to.
So to actually make always on ambient display work, all you have to do is modify this method to always return “true” instead. This is exactly what SiXROM does, which borrowed the commit from XDA Senior Member WelcomeToTheSkye of Vanilla, a ROM for the Nexus 6P.
I don’t really use the Nexus 6 as a daily driver, but merely as a test device which I quickly brought back to life to do Substratum tutorials. Thus, I can’t tell you how well it works in practice right now as I haven’t used it for more than a few days. But if you are running on an unofficial port of Android Oreo (and presumably have an OLED display), then you may be interested in trying this out.
Of course, most of us aren’t custom ROM developers so making this change is a bit out of our reach. Any ROM developers reading this that want to incorporate this feature, well hopefully you can do so quite easily now. It might even be worth it to enable ambient display burn in protection in the Android Framework while you’re at it.