With Android 8.0 Oreo, Google introduced Sony’s native theme framework called the Overlay Manager Service (OMS.) Overlays can be built to target the resources of any application, including the SystemUI and Android framework, and override them with their own values. This allows us to theme almost any part of Android to our liking on Android 8.0 Oreo and Android 8.1 Oreo. Unfortunately, Google blocked access to the OMS APIs in Android P, stating that OMS is only intended to be used by OEMs. However, if you have root access such as through Magisk, you can still install custom themes on Android P. A new app called “Pluvius” has just been released, and it uses OMS in a really clever way: Dynamically theming system UI and accent colors based on the current wallpaper. It requires root access to work, but if you pass that basic requirement then you can enjoy personalized themes on any Android 8.0 Oreo, Android 8.1 Oreo, or Android P device like the Google Pixel 2 or Essential Phone.
As you can see in the set of screenshots above, the System UI’s theme is based on the wallpaper that I chose. (The wallpapers I use here are the Google Pixel wallpapers which can be installed on any device through an unofficial port.) In my screenshots (the top row), I selected the “Light Vibrant” and “Dynamic Dark” options for the Adaptive System Accent and Adaptive SystemUI Theme respectively. There are more color options you can play around within the app to dynamically theme your Android device to your liking. Check out the video below by the developer for a demonstration of how quickly the app works.
The app uses the Android Palette API to choose colors from the wallpaper. The app’s logic for handling this can be found here. Unfortunately, there’s no unified API for fetching colors from live wallpapers, so the app can’t dynamically select a theme based on a live wallpaper.
For Android P support, the app functions just like Substratum in that it places the overlays in /system/app. Each overlay is about 5-6KB in size (the overlays only contain the manifest and colors.xml to theme the system and framework) so there shouldn’t be any concern over the system storage space running out. You can uninstall old overlays at any time from the app’s settings. The overlays installed by Pluvius contain custom metadata to make them be fetchable dynamically by the app so they can be added/removed/updated ad-hoc.
If you frequently change your wallpaper (perhaps you use an app like Muzei or Chainfire‘s 500 Firepaper), then you’ll certainly enjoy the extra customization this brilliant app brings to the table. I’ve already ditched my automatic dark theme triggered on Night Light script in favor of this.
- Standalone app that does not require Substratum or Andromeda to be installed.
- Dynamically themes the System UI (quick settings panel, volume panel, power menu, etc.) as well as the framework accent color (settings, sliders, buttons, toggles, etc.) based on the current wallpaper.
- Adaptive System Accent option: Vibrant, Light Vibrant, Dark Vibrant, or Custom Color
- Adaptive SystemUI theme: Dark, Black, Custom Color, Dynamic Light, Dynamic Dark
- Supports Android 8.0 Oreo, Android 8.1 Oreo, and Android P (all require root access) devices. May not work on some heavily modified OEM skins.
- Optional Magisk Module that’s only necessary for Android P users that want to pass SafetyNet. Android Oreo method (PackageManager) doesn’t modify /system thus it’ll pass SafetyNet.
- Dynamically theming notifications
- Rootless theming for Android 8.0 and Android 8.1 Oreo (will require an add-on app and ADB commands)
Download and Install Pluvius
You can download the application from the Google Play Store. There’s a 14-day free trial available after which you must unlock the app via an in-app purchase ($2.)
Pluvius Unlock Code Giveaway
The developer has graciously given XDA-Developers 100 unlock codes to give to users! I will be posting the codes randomly in the comments throughout the day, so even if you didn’t catch this post immediately you should still be able to claim a code!
Note: this article is not sponsored in any way by the developer of Pluvius. The developer is an active contributor on our forums and as a courtesy, we generally cover applications, modifications, or anything else made by active members that we think our readers might be interested in. If you have shared something on our forums that you think deserves a shout out on the Portal, send us a tip.