Rootless custom themes on Android P are over as Google confirms restrictions are intended
Android P (Android 9.0) is an exciting release for Android enthusiasts because of the many changes it’s bringing to the user interface and user experience. Thanks to Google’s work on Project Treble, the latest Android release is available in beta for not only the Google Pixel and Google Pixel 2 devices but also phones like the OnePlus 6, Xiaomi Mi Mix 2S, Sony Xperia XZ2, Essential Phone, and more. One not-so-exciting change in Android P, however, is the restriction the OS places on installing custom overlays. Overlays are used to modify the resources of an app and they’re what the Substratum Theme Manager uses to make rootless custom themes possible on Android Oreo. Now, Google has confirmed that the restrictions are intended behavior, which means that rootless, system-wide custom themes will no longer be possible on Google smartphones and smartphones without existing theme engines moving forward.
System-wide dark theme on Android 8.0 Oreo without root
In the Google Issue Tracker, a Googler left the following comment and marked the issue as “Won’t Fix (Intended Behavior)”:
We appreciate the feedback and would like to share some background information and clarifications.
The Overlay Manager Service (OMS) is intended for device manufacturer’s use. OMS, in its current form, is not designed to be a generic theming feature — more design considerations will need to be put into it in order to uphold Android platform’s security and product standards for users. Accordingly, OMS has never been advocated as a public developer feature.
Earlier this year a security patch (CVE-2017-13263) was released to OEMs for Android Oreo devices. The patch restricts the installation of overlays to pre-installed or system-signed apps, in response to a legitimate security issue raised in Android Oreo. Android P also includes this critical security patch, so it restricts overlays in the same way as does Android Oreo.
We understand that custom theming is an important capability for some users. We will take your feedback into consideration with any future work in this area.
We’ve talked about the Overlay Manager Service (OMS) before. It’s Sony’s theme framework that was contributed to the Android Open Source Project. Commands to interface with OMS became accessible via ADB starting in Android 8.0 Oreo which is how the Andromeda add-on for Substratum brought rootless custom themes to Android Oreo. Google realized that the community was using these ADB commands in an unintended way (as ADB commands are meant for developers to debug), and so they implemented a new check which prevents any non-system overlays from being installed.
This is a disappointing, but ultimately predictable change by Google. Third-party overlays could easily break due to a resource conflict with their target applications, so Andromeda’s method of theming was certainly not ideal. We’re hoping that Google implements an API for theme developers to hook into apps so there isn’t constant breakage. For now, it’s a shame that custom themes won’t be available for all users of Google-made phones. Devices from manufacturers like Razer, Huawei, Xiaomi, and Samsung will still have their own theme engine and theme store, but for many devices, OMS was the only way to get a native, system-wide dark theme. At least a future Android P update might bring a manual toggle for the partial dark theme in the Pixel Launcher.