Announcements (DO NOT POST)  - 

Although we would love for everyone (users and themers) to read the whole non-TLDR edition of this post, we had to write a TLDR for this to summarize everything.

- Layers manager being deprecated after dev/themer beta of substratum.

- Layers themes will shift to compile-on-device format or will not work with substratum (Layers deprecation means no further updates will be pushed to the app such as bug fixes/ROM updates).

(This is because people try to use themes not updated in 2 years on the newest Android and cry about their device not being stable)

From the former Layers team and the newly formed Substratum team, written with love by +Syko Pompos​ and +Nicholas Chum​ (nicholaschum)


Been getting a lot of questions about substratum and layers lately so figured make a post answering them.

What is OMS? OMS stands for Overlay Manager Service and was developed by Sony, just like RRO - so overlays could be downloaded and managed through a client.

However, with the introduction of OMS, it uses the concept of a client to interact with the services and providers directly to dynamically control priorities and enabling/disabling overlays (of which only themers had full control in Layers)

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 is a client for OMS (a client doesn't need root if it has system permissions so substratum app built inline would not need root, however we want to make this app available to the majority as an OPTION, rather than requirement), that goes beyond just OMS and adds some improvements.

With Substratum we are going on a full compile on device system like CMTE, but to provide us with more abilities to make things easier for theme designers and users both.

Benefits of compile on device:

- Instead of a ton of different overlays needed to be created and layering overlays on top of each other, we can inject the change that the user wants with options that the designer gave to only have one overlay being created.

- We can maintain backwards compatibility across Android releases so a theme made for Marshmallow would still work for N and vice versa because it would convert the resources to what is needed by version the user is on. (e.g. dashboard_category_background -> N’s version of dashboard_category_background, as we WILL set v23 as the base API to build themes on)

- Will warn the user when a theme is outdated and horribly outdated which might cause it to be unstable but will try to convert it up to the latest. If the theme is outdated, a warning will be shown to the user that they are about to apply a theme built for an old Substratum build, and if they would like to continue, they do so at their own discretion without dragging the system’s name down. This is also an attention to ROM developers to keep up with commits posted under the Layers Development community (OMS commit review, or a universal OMS GitHub repository with up to date commits) so we hope the community would collaborate with us to make the system more advanced instead of having several forks of the same thing.

- The structure of the themes will be more similar to cmte making it more comfortable for themers to exist on both systems.

- During compilation, as this may take some time, you may suspend the app and switch to your other apps and continue your work. A notification will pop up at the end of the compilation informing you that the overlays have been successfully compiled, so that you may enable them either one by one or a batch enable.

- Anti-piracy features can be implemented for themes (seriously, people pirate $1 themes, wtf), however to put it simply (before the official release), it takes certain measures to make sure overlays created by Substratum will not be able to be used on other devices, and if it is detected, it will be removed as a “dangerous/unauthorized overlay” installed on your device (95% success at this alpha stage).

- Brand new interactive UI to make it a lot easier to use.

- We will be locking out vendor/overlay on Custom ROMs running on the OMS system, as it is unreliable and functions almost exactly the same as OMS, with more limitations.

- Profiling system that allows you to save your set up for quick changing and allowing you to create your perfect set up (as long as you have your overlays installed and verified by Substratum (checked automatically)) - WIP (Day/Night function soon?)

Layers manager will be deprecated in favor of Substratum and the compile on device system once it is out of dev/themer beta, it will not have support for premade overlays and will only work with compile on device themes

(It is very easy to convert over without any use of plugins and such, just a manifest tweak!)

The main difference between the legacy Layers system and Substratum OMS, is that the priorities system has changed, and the highest priority for non-system based apps (non vendor/overlay overlays) will be on the bottom of the list as it simulates (0-255), where 0 is the highest and 255 is the lowest, so in our Priorities section, the top item is the lowest object in the list. Check this video for a demonstration: https://plus.google.com/u/0/+NicholasChumCDT/posts/96A9sCj5HNY

Substratum is being specifically designed for Roms as a new system built on top of Layers.

Which means it will be eventually getting all the bells and whistles of an integrated theme system but also is open to rom specific features.

Substratum themes are meant specifically for Custom ROMs and for taking advantage of features brought in by it.

The OMS system with the Substratum engine makes this a full featured theming engine, based on RRO, but with the perks of no rebooting and on the fly, dynamic changes on the user interface and can completely be added to any AOSP/CAF ROM in a matter of 10-15 minutes (no squash commits needed!).

Substratum will be entering dev/themer beta soon and is subject to change based on feedback including commits for Roms.

Layers compile on device themes will be able to be used on Substratum Roms and also on stock but substratum themes will not be usable on stock/non substratum roms. However we will be considering keeping traditional Layers to their own corresponding features brought to you by Layers Manager back in the day, while Substratum will hold all the new features the team will bringup.

Themes for substratum should be for testing till out of beta so a separate play store listing won't be needed or having huge themes to support both layers and substratum.

Compiling and installing new overlays (or updating components that have changed) is rather slow (not as instant as just copying and pasting prebuilt APKs to vendor/overlay on Layers Manager) currently because of how long the signing and installing process takes (will work with rom devs for options to speed this process up) but once the themes are installed, you can swap themes or individual overlays, play with priorities in seconds
Tathagata Nandi's profile photoSyko Pompos's profile photoHoshang Govil's profile photoKarthik Babu K B's profile photo
I have been quite busy in the last months, and a lot of things have changed... who should I contact for helping me updating my themes? 
+Stefano Trevisani right now multi options are not implemented in the ui yet so you are gonna have to wait for the dev/themer beta till you can fully implement your whole theme but commute could be converted over already
+Stefano Trevisani for basic themes, just a modified manifest for your theme apk, and move your source files into the cmte format.
Options are gonna be handled differently for injection than having a ton of /res folders 
+Syko Pompos OK, understood. I liked the RRO format actually, CM one seemed to maneuver a Titanic while Layers was like a bunch of little ships.
I am contacting you on hangouts for more "technical" questions.
TL;DR*TL;DR 🏃🏃🏃🏃🏃🏃🏃
Char G
Awesome team 😂
Char G
I'm about halfway through 🤗
Char G
It might take me another day or 2 lol
+customworx damn it cw, if you are gonna be the publicist then you gotta remember to add the only $9.99 part to it
It needs a period! Not a comma! What is this the UK?

I'm not buying anymore...
Char G
It took me a bit to get used to it too lol
+Emil Mårtensson technically you still will have layers themes for stock, dev previews and will also work on substratum roms but themes taking advantage of rom specific features are substratum themes 
So, is the alpha or beta version of substratum available? Or can just another guy help out in testing?
+Nihal Rao It's only available to rom devs and themers right now so they can play with it and get familar with it plus give feedback.
Right now it is getting a massive ui overhaul from what was seen in the videos to make it more user friendly
+Syko Pompos Cool! If you guys start user testing please do let us know coz I am sure lot of people would like to help out :D
+Nihal Rao should be starting a more public beta in a week or two, though it is still meant for rom devs and themers, it is also for their testers too so it is up to the rom dev if they want to publicly test it and the themer if they want to provide their theme for testing
+Aashuk Mehta after dev/themer beta it will have support for vendor/overlay installs like layers manager so we can more cleanly manage those 
+Manuel Salcedo fonts, boot animations, icon packs, wallpapers, etc for Roms only, 95% sure we won't support the extra features on stock
Will this be compatible on ROMs that support cm engine but not layers?
+Syko Pompos. Even as I try to understand things after reading the post,what I still don't get is will there be a substratum app like the layers app? If yes how do We get it? I know it's a lame question though just that I am confused here.,I can.see more & more themers rolling out substratum themes every day. But I don't seem to understand.how they're been used.
I currently use the rro layers on my infinix hot 2 with Google stock marshmallow, don't knw if the would be any chance for me using the substratum themes on my device? And if possible how do I go about it? Thanks
+Nath vanderluv there already is a beta out for custom Roms, legacy has not been released yet and we can only guarantee that themes work for Nexus marshmallow stock and up
Thanks +Syko Pompos for the reply,but when you did say for custom roms do you mean substratum can work with "any" custom rom ranging from android lollipop up or exclusivel to marshmallow & later? Please make me understand better because I'm on stock marshmallow simply because of my love for layers & nothing more ,I can only find lollipop custom roms for my device at present 
+Nath vanderluv it would be for custom Roms marshmallow and up that have the commits for it.
Oms has a lot of dependency on code added for day/night by Google into marshmallow that did not exist in lollipop and would be a nightmare to back to lollipop.

As far as substratum legacy, that's what we are calling the function of layers on non oms/substratum compatible roms but with the new format introduced in substratum
+Syko Pompos thanks I now understand better I should hold on to layers a bit more till I finally lay hands on custom marshmallow roms
Are the layers themes I bought going to be compatible?
So would it be theoretically possible for someone to develop an Xposed module to get OMS on stock MM? I feel like this move loses the biggest advantage of Layers (not requiring a custom ROM).

Also, does this require touching the /system partition?

I want Layers/SubStratum and I want OTA updates to work! (I know, so needy...)
+Ryan Hayle you can use Substratum on legacy and it works just like layers without the need for a custom rom, you just won't get the extra features.

Substratum has two modes, oms or legacy and the themes work on both (until there is rom exclusive themes that take advantage of new features yet to come), you just won't have hot swapping, fonts, boot animations and so forth.

As far as /system, it is the same as layers just root and system/vendor/overlay (if on a newer nexus like 5x or 6p then system/overlay)
+Syko Pompos​ Right, I did know that, and it's awesome that you're maintaining that level of backward compatibility—very much appreciated! I was just wondering about the possibilities for the future. An Xposed module to enable hot swapping and all the other OMS features would be pretty sweet, I just suspect it might not be technically possible.

It does sound as if integration with systemless root to bind-mount /data/overlay to /system/vendor/overlay should be possible at least, no? Assuming it could be done early enough in the boot process.
+Ryan Hayle it might be possible to bind it like that BUT the /data support of loading overlays was removed from N which does work on marshmallow so it wouldn't load them up
I have a nexus 6 running pure, trying this but keep getting compile errors?? 
If the above has been answered I'm sorry I missed it
Will it work on samsung devices after rooting
+Tathagata Nandi no, it definitely will not work on cm13, not even in the slightest bit and don't even bother trying it because cmte directly conflicts with native rro
+Syko Pompos Does It Consume More RAM after applying layers?? As Each part of theme we wanna customise is compiled and Installed as Over Lay app. So Does Those Over lay consume more memory. I have Mokee ROM that has OMS7 Commit merged, but after applyng Theme, Phone System start consuming more memory and lags too on 1GB RAM devices. Like Moto G2 (Titan)
+Hoshang Govil if your phone can handle modern android then it can handle subs and low memory devices were stress tested to see if there was a issue.

Oms taps into native android code for day/night and taps into the multiwindow code were each activity is treated with a cached resource object that is on top of the regular resources, this is standard behaviour in how N works regardless if you are using oms or multiwindow and overlays just tap it there.

There is no additional strain added by subs except when actually compiling the overlays and installing them but once installed it just runs as normal with no overhead.
+Syko Pompos Ohkk. Because Titan and Falcon both have MSM8226 Quad 1.2Ghz CPU and run Nougat fine, but struggle with Multiwindow. BTW, Thanks for clearing my biggest confusion....

On old CM13 Roms it's possible to apply the themes without having the root capability. Will it be possible with substratum too?
Add a comment...