An Interview with some of the Team Behind the Substratum Theme Engine
Android Nougat-based custom ROMs have become commonplace for many devices in the months since its first public release for Nexus devices.
Due to the myriad of changes that are made in each new version of Android, it takes some time for development teams to refactor their existing work into the new version of Android.
So while some devices quickly receive functional versions of Nougat, it might take a few weeks or even months for their favorite feature from back in the Marshmallow days to make its way into a Nougat build. One such feature that has been missing in Nougat builds for many months is the CyanogenMod Theme Engine.
Users have been waiting for months for CMTE to make its debut with Nougat, but the response from its developers has been minimal. Something seemed off, as CMTE was usually given high priority by the development team. Little did we know that the very project itself, CyanogenMod, would eventually cease to exist.
Fortunately, Substratum, a theme engine based on Sony’s Overlay Manager Service (OMS), lead by XDA Recognized Developers Nicholas Chum and Sykopompos, was already making waves as an increasingly popular alternative to CMTE. At first even I, like many addicted to the CyanogenMod Theme Engine, was skeptical of Substratum and its theming capabilities, but as soon as I used it I realized it felt completely different than what all the critics and reviews said.
With talented themers already showing off their work in the Substratum scene, themes like Domination, Mono/Art, Compound, Spectrum, and Swift Black impressed me a lot. What is even more interesting about substratum is that it’s still in development and themers like Per Lycke (Swift Dark & Swift Black) and moelle (Deep Darkness) are already making the switch over to Substratum.
Today, I wanted to interview the people responsible for Substratum to get their perspective on theming and its current state. Without further ado, let’s get started with the interview.
Hello, Nicholas and Mike! It’s good to have you with us. Can you please give our readers a brief introduction of who you are and what you’ve accomplished?
“Well I’m sykopompos and after getting the feel of the community and learning how to handle large projects with layers I partnered up with Nick to implement what we learned from layers and to make a much more powerful easier system called substratum.“
“I’m nicholaschum and I started off as a themer to create Dark Material for CM12 to CM13. As I transitioned over from theming to development, I realized I found my true calling at development and wrote my first application, dashboard, to hotswap colors of a theme on the fly. A few months later, I started talking about the app with sykopompos – he wanted to create a successor of his previous theme manager implementation Layers.
The project is still in active development today with a strong and dedicated team that wants to create what we truly wanted from the very beginning – a community based theming solution that will work on the many Android versions to come.“
That’s brilliant! However, what made you feel that there was a need to introduce substratum with something like CMTE already present. I’m sure CMTE was still considered to make its way to N when you first started your development.
“There was never an idea to use CMTE (from my prospective) since Lollipop since we wanted to do our own way to theme and wasn’t trying to compete or replace CMTE. Sure there is tons of preconceptions making a new theme system and everyone wants to compare it to other ones. CMTE expanded out from T-Mobile theme engine and stayed for the most part staying with their feature set and the way it worked. We worked for a way with no preconceptions and just did what we wanted and how we wanted with different goals.“
“Ever since I wrote dashboard, I always wanted to “hack” the system to test it’s full potential. We always wanted to have CMTE there as our opposing force but did not expect them to hit a roadblock after Cyngn kicked CyanogenMod off their payroll.
We wanted to create something new and fresh, that would work on many Android versions including previews and betas. By utilizing a hybrid system that bridges the RRO and OMS system, we are able to create themes that are compatible with both. What we created was something I always wanted, a theme engine that incorporates the multiple configurations of a true multi-state theme (for example, Reverie with red or pink accents, changeable without installing a whole new theme).
This brings into the equation of Arcus, a brilliant multi theme installation app written by Dicken Christian, that allowed CMTE themers to include multiple configurations in one APK – but required compiling the entire theme from the original theme’s raw folder. With Substratum, multiple configurations are stored within the assets folder of each overlay, and hotswappable within seconds by the user. Substratum also incorporates multi configurations for bootanimations, fonts and system sounds, of which CMTE limited us from doing.“
That’s really nice. There are a lot of debates with regards to CMTE versus Substratum as the agenda, and the topic most commonly seen is the lack of free themes for Substratum. Can you both, for once, please explain the reason?
“Substratum is still under heavy development and themers sometimes have to do some heavy changes during the course of development so investing in a heavy in development system costs a large amount of time. But when it comes to theme developers we don’t get to set the prices, we have no involvement when it comes to any of that, we just create the system that it works on.“
“As a theme engine progresses, a lot of the themers begin adapting. Most of our themers are adapting for the latest and greatest of Android versions. When Android O preview comes out, they also have the capability of adapting their themes to that version immediately.
Paid themes nowadays are pretty much a small gratuity to pay for the themer’s dedication to theming. There are more and more free themes available in the Play Store as time goes by, usually themers test the waters of theming against the Android resource lookup system (without self referencing) and it gets quite complex and time consuming, but with a benefit that things are not hacked together with dangerous possibilities that layouts would be tampered with to look like something else, where banking apps could completely steal your data and such.“
How do you think Lineage OS Theme Engine (LOSTE) (if it comes out) will affect Substratum? All the themers and ROMs have evidently made their choice to go with Substratum by merging in OMS. What if LOSTE comes out in near future?
“The ROMs that want it will go to it and go about doing their thing, some ROMs might do split builds and offer a option to have their ROM with what theme system a user chooses. Some might drop their CMTE or Substratum themes, they might focus on one theme or another. We don’t know what they will do.“
“Regarding the themers, as Substratum themes use the proper Android referencing system, their Substratum themes will immediately work on LOSTE, minus Substratum’s own features like type1-3’s and multiple boot animations/fonts set up. Themers would think of just tossing their theme over to LOSTE, and update their Substratum themes. As we work directly with themers, we do not worry about CMTE/LOSTE as they have their own game going on. As we listen to what our themers want, we add those features and it overall gets more interesting.“
What’s the story behind the name?
“Originally, Substratum was meant to be a prototype name. Layers and Substratum are two closely related words, as they meant layered material on top of each other (overlays on top of target projects). The name was never planned to be used as the final name, but Layers OMS sounded like we were building upon the past – when we wanted to start something completely new.“
“I like to think since Substratum means a underlaying layer and we were taking layers into deeper parts of the system.“
How does Substratum work in the background?
“It doesn’t really run in the background other than the occasional small checks for theme installs. When people think background, they would think masquerade (as I heard from someone, they believed because it doesn’t have a UI and it runs in the background, it drains battery – which is false). Masquerade is a broadcast receiver which is only used when Substratum tells it to use it.“
What are you planning to implement into your application in the future against piracy?
“Piracy is unstoppable, we don’t ever plan to “stop it” but we will do our best to keep our themers satisfied by making piracy a bit more complicated “to do.” Overall, piracy is an inevitable realization, whether they are actually pirating because they are unable to purchase a theme, or they want to do it for fun. The whole antipiracy regarding it is interesting to implement.
We have open sourced every single part of Substratum, and our “blobs” for substrate is easily reverse engineerable. Honestly, all I care about is improve the Android ecosystem where piracy is no longer the main issue for people. People constantly ask me why I would approach a person in attempt to get them to switch over to a non-pirate life, then they will say he’s only one person, where the rest of the Android ecosystem pirates too. While that is true, I believe that if people slowly move over and actually pay for their apps, they would convince others to do it too.
The quality of apps on the Play Store for free apps decreased amongst the years of the Android Market/Google Play. As paid apps usually consist of many hours of work…maybe even tens of thousands of hours! As I said before, piracy is unstoppable. The only thing we can do is workaround the most easy ways to pirate themes, such as refunding a theme after purchasing it. As long as themers are protected in this case, we are satisfied. I’d also like to add that we have no plans to make it unethical. We will do as much as Google allows us to do. With SOME sliver of antipiracy is better than none.“
“The one thing I do want to point out is that people are getting a bit confused on OMS, OMS was designed by Sony and is largely modified on how it functions by us to make it work better or more inline with how we want it to work while Sony has the goal of actively pursuing getting it into AOSP and staying within Google’s stricter guidelines. Our OMS in this case is based on Sony’s and if Google decided to add OMS it would not function like ours so there will always be a feature and function shift between Sony’s and ours.
I’d like to add to that, Nick started the work on it because he was frustrated that CMTE did nothing to hinder piracy at all. We know we can’t beat piracy but we try to do as much as we can to make it as much of a pain in the ass and obvious that someone pirated when they try to ask for support. It makes it a lot easier on the themer instead of wasting time trying to help someone that didn’t even purchase their theme and is using a cracked theme to spend that time troubleshooting and offering support for someone that isn’t supporting them. People always forget about the support cost of a app or theme and how much time is spent providing support in the cost of those apps.“
That’s really nice, and honestly, well said. As Syko pointed out, there are certain general misconceptions and confusions the users have regarding RRO, OMS and the whole shift from Layers to Substratum. I request both of you to explain OMS, RRO and the shift from Layers to Substratum to the layman.
“RRO is actually RRO2 and the second version that Google adopted. What most people don’t know is that there was another RRO2 originally years ago that was more like what you see in CMTE and most likely the base of it while OMS is a updated much superior version of that original design. OMS actually works on the back of several things that Google added like multi window and day/night to provide the ability of resources to be changed during runtime.“
“To put it simply, RRO is a 5 year old system of which is the basis of TmoTE/CMTE/LOSTE, as well as most of the OEM’s theme engines such as Samsung and LG. RRO is merged in upstream AOSP and originally does not support dynamic on-the-fly theming (reboot required). OMS is an addition to RRO where on-the-fly theming is allowed, both systems by Sony.“
“I would say it was intended but getting Google to even start down that road required them to have the basis of it first before they could move to dynamic.“
“I always thought of overlays intending to be something not theming. Such as changing resources for what Sony wanted it to be – like maybe booleans and such.
Because if it was all about theming, they would do more commits regarding drawables and refreshing.“
“Yes I agree, I don’t think they ever had the intent to use it as a theme system until they saw others using it as one. My intention wasn’t even originally for theming either and there is a lot of potential in the system beyond theming. True, you don’t see Sony doing those types of changes it is mostly Google doing them for other things they work on that benefit us theming.“
How easy is it for Roms to merge OMS if they wish to do so?
“We try to keep it as easy as possible but also try to avoid squashed commit to make it easier for someone to read what each commit adds and how to follow it.“
“All you have to do is merge our OMS7-N branch commits from our gerrit. If you need a guide, we have one written by The Flash here.“
“As far as rootless, we actively try to separate OMS add ins and what subs needs as much as possible for ease of future portability for the system and try to keep how everything works as transparent as possible.“
What are you planning to do with this project in the upcoming months or years?
“With the project, we have incorporated many features that CMTE/LOSTE does not have, all in one app – buildable by AOSP. Including a built in showcase, a search system, advanced manager, priorities and dynamic profiles based on the time of day.
Upcoming would be rootless, then icon packs. As icon packs are fully supported on our test devices, we have experienced many small bugs that would raise a TON of bug reports, so to avoid this, icon pack studio is only available to themers and testers at the current time – until the system is revamped.“
Nick, when can we expect your theme to transition over to Substratum?
“Chummy development team, my small team created for a few themers that includes Fahad, Khizar, myself and Aditya, will be looking to working on porting our theme over to Substratum soon. There will not be any ETAs about Dark Material/Blacked Out!/akZent/blakZent, but I might personally revive my clear theme I teased many months ago.“
Who would you like to thank in the project?
“I would like to thank all of the contributors to the project, from our development team to the hundreds of translators on CrowdIn, everyone put their hearts into this project and we are very grateful!“
“I’d like to thank all the developers, users and themers that have supported and worked with us over the years!“
If you’ve made it this far, thank you for reading this interview! We hope you have enjoyed reading about the team behind Substratum. Consider showing your support for the project and its themers by purchasing the donation versions of some of your favorite themes. Developers can contribute by submitting code to the team’s Gerrit page. XDA will return in the future with more interviews in this vein, so stay tuned!