Developer discovers how to turn on Android 8.0’s theme support without root, but it’s a bit janky
Big news today over on XDA. It would appear that the OMS support added to AOSP made its way into Android 8.0 Oreo, and the enterprising developers at XDA have figured out how to leverage the nascent theming system. That is to say, support for Substratum themes now exists in stock Android as of Oreo, and the Substratum developers have just found a way to leverage that without relying on root, via a bit of privilege escalation and ADB, resulting in an incoming root-less theme management system for phones on stock Oreo, and it could be released within the next week. There are a few drawbacks to the proposed implementation, though.
Outside of that immediate application, the current and future potential of theme support being built into stock Android is a big deal, too. Google's ultimate goals for it remain to be seen, but it could have a few different uses.
The introduction of the Overlay Manager Service (OMS) to AOSP makes sense, as it's a standardized means for manufacturers to do customization without having to muck about too deeply. Combined with Project Treble, it's another step that will make an OEM's job of delivering updates that much easier. But it's hard not to hope that Google might plan on implementing some kind of user-facing theme management at some point. I think it's incredibly unlikely that would be the case, as it would severely complicate even basic things like user support, but who knows? Google's done stranger things before, and we did notice some new theme options in earlier Oreo builds.
Screenshots of an AMOLED black theme on an unrooted pixel running 8.0/Oreo via XDA
I do recommend that interested parties read the full XDA post, as it's quite detailed. But the TL;DR is that the new theming system hidden in Android 8.0 Oreo comes indirectly from Sony's efforts with their Runtime Resource Overlay (RRO), which became the OMS upon which the famed Substratum theme system is based. OMS was later introduced into AOSP just after the release of 7.1, And, as of 8.0/Oreo, it is now a part of the current stock images for the Pixel phones.
Initially, the Substratum developers thought they needed root access to be able to get Substratum themes working in the stock images, but it turns out they're able to do it via a few simple ADB shell commands and a bit of privilege escalation. The only significant drawbacks of that implementation are that those elevated permissions are lost after a reboot. So if you do reboot, you'll either have to tether yourself to a computer to send the requisite ADB commands again, or you'll be stuck with the theme you have installed until you do. If you don't change themes a lot, that might not be much of a problem, but it is a limitation.
Some of the required ADB commands
XDA expects that the Substratum devs should have things ready for an Android 8.0 theme management app within one week. However, they also claim it's not guaranteed to be finished in that time. Even more unfortunate, it's likely to be a paid application even though Substratum's theming system is free when included in ROMs. Fortunately, we are guaranteed that the price will be "fair," so odds are it shouldn't cost us too much. Either way, we won't have long to wait.
Personally, I'm more interested in seeing if Google decides to use the OMS system themselves, or if they only introduced it for later OEM use. Who knows? Maybe someday we'll finally have a proper system-level AMOLED night theme. After all, we've only been asking for one since forever.
- XDA Developers