[Update: Issue Tracker] Android P Blocks Custom Overlays (Substratum Themes) From Being Installed
The first Android P Developer Preview has been released today for the Google Pixel, Google Pixel XL, Google Pixel 2, and Google Pixel 2 XL. There’s a massive amount of user interface and quality of life changes we’ve documented here, but there’s one under-the-hood change that will not make you happy: custom overlays can no longer be installed on Android P. That means no more rootless Substratum. No more custom themes. It’s all gone.
For those of you who aren’t aware, Android Oreo introduced Sony’s Overlay Manager Service (OMS) which can be controlled via an ADB command. Using a clever trick, the developers behind the popular Substratum theme engine app were able to develop an add-on called Andromeda that allows Substratum to apply themes without needing root access. It was an incredible achievement as it was the first time that Google’s Android could be themed without needing a custom ROM or root to replace system files. Using Andromeda, users could install a dark theme, change emojis in some apps, customize the navigation bar icons, lock screen, recent app thumbnails, quick settings, and much more.
Android P implements what we believe will be called Material Design 2, and it’s brighter than ever. We’re positive that a ton of people will be looking for ways to theme various aspects of it.
If you try to install a custom overlay in Android P, however, you will be met with the following message in logcat:
1239 W PackageManager: Package couldn't be installed in /data/app/com.dropbox.android.SwiftDark.Android81NexusorPixel-wb7JxFaAXaHgw7WkZFCvEQ==\n03-07 21:00:13.099 1179 1239 W PackageManager: com.android.server.pm.PackageManagerException: Overlay com.dropbox.android.SwiftDark.Android81NexusorPixel must be signed with the platform certificate.
This means that only overlays installed by the system will be allowed to run. This is similar behavior to the theme engine on the Razer Phone, and it’s incredibly disappointing to now see this happen in Android P.
I confirmed this behavior on my own device. Before I updated my Google Pixel 2 XL to Android P, I disabled all Substratum overlays in order to ensure the update would go through smoothly. When I updated, I noticed that all of my installed overlays were no longer being shown in the “
cmd overlay list” command. I spoke with the Substratum lead developers and confirmed that others were facing this same behavior. In other words, this seems to be an intentional change by Google.
Users with root access will also suffer from these changes, unfortunately. You can’t simply “force” install an overlay and expect it to work, because the platform certificate mismatch will still be an issue. It’s likely that framework.jar would need to be patched in order to get rid of this requirement. Custom ROMs would of course be able to make this kind of change, but unrooted users cannot.
For the paying customers of the Andromeda add-on for Substratum, the Substratum team states that the Andromeda framework is still in the works so your money won’t have been spent in vain. The team will try to get a petition going in hopes that the community will voice their strong dissatisfaction with this move, but ultimately the decision is up to Google whether or not to reverse this change.