Meet Substratum, the Future of Theming That’ll Take over Layers
Layers has seen a gradual rise to power, becoming a feasible and potent replacement for the CyanogenMod Theme Engine. Layers builds up on the RRO framework developed by Sony as it allows more complex resource switching and the possibility to theme more elements than RRO originally did.
To further its own work on the RRO, Sony worked on OMS (which stands for Overlay Manager Service). As the name would imply, OMS is a client for managing overlays, allowing the providers to dynamically control priorities and enable/disable overlays. This causes a few conflicts with Layers, as traditionally these functions were under the control of the themer.
To work around the issues brought up by OMS, and to further the functionality of Layers, the developers behind Layers Managers have teamed up to create Substratum, which is a client with OMS functionality. In the words of Syko Pompos, the dev behind Layers Manger:
With the introduction of Substratum, overlays are downloaded, compiled, signed and installed just like third party apps installed to data/app. Once installed, they create a idmap file that creates the linkage, and if enabled, tells the system to refresh its resources and load the new ones in. A notification will notify the user that a new theme is able to be used, and that the package has been installed (“Beltz has been installed”)
Substratum tries to merge in the Layers functionality with some of the best parts of the CM Theme Engine, which includes a full compile-on-device system. Overlays will no longer be overlapped over each other to theme individual elements. Instead, the elements would be injected together to create a single overlay. Compile-on-device also enables the theme designer to maintain backwards compatibility (as base API is set at API version 23) and allow themes made for Marshmallow to continue to work for Android N. Plus, you can theme on-the-go, with no reboots needed between changes, and you can even use other apps while the theme is being compiled.
Further, Substratum would also work for the benefit of both the designer and the user. It warns users when themes are outdated (i.e. built for older Substratum builds) and still lets them proceed if they really wish to, as long as they recognize the instability issues that could arise. This would also work as an encouragement for ROM devs to ship with new Substratum builds, but still gives power to the users if this isn’t the case. A profiling system is also in the works, which should theoretically allow you to save entire setups and quickly change them as well, making preset automation a possibility for the future.
Substratum themes will be reportedly more similar to themes built for the CM Theme Engine, which should alleviate pains for the designer in co-existing on both the systems. In some more good news for theme designers, anti-piracy features can be implemented in Substratum, which would make it difficult to reuse overlays created on one device on another, and will remove the overlays if it detects the case to be as such.
The Layers Manager had a good run so far, but will soon be deprecated in favor of Substratum and the compile-on-device system as the focus for active development. Substratum though, will not have support for pre-made overlays, but the developers assure that it is very easy to convert over to compile-on-device themes for theme designers, as only a manifest tweak is needed for the same.
Head on over to the Google+ announcement post to learn more about Substratum.