The best way to Theme Stock Android using Substratum Theme Engine which completely revamp the look and feel of your device.
Customization has always been one of the greatest features of Android. If you're a tinkerer just like me, you'd know how important it is to revamp the look and feel of your device at least once in a while. The CyanogenMod custom ROMs where Integreted with a powerful theme engine "CM theme engine" which has the capability to revamp your device, however since CyanogenMod is dead this feature isn't to be expected on the new Lineage OS ROMs since the developers might come up with something more robust and better. Apart from the CM theme engine, you can take advantage of the "Substratum Theme Engine" to theme your Stock Android without the need for a custom ROM.
What is Substratum?
Substratum is an app, that utilizes all of Sony's Overlay Manager Service (OMS), found on the official AOSP code review. This is similar to "Layers" in terms of stability and customization as it runs off an upgraded version of the Resource Runtime Overlay system, with the added benefit of running up-to-date Sony code on a customized ROM.Substratum which was formerly known as "Layers" activates a hidden theme engine in Stock Android running on 6.0 marshmallow and above, and this let you change the look and feel of almost any app or element. So if you've been using other layers on your Marshmallow or Nougat device, then Subtranum is worth revisiting. As usual you'll need to be rooted in other to enable Substranum to apply overlay themes on your Stock Android. Also you need to be running on Android 6.0 or higher. In addition to that, Substratum will probably not work on manufacturer-skinned versions of Android, so for best results, you'll need to be running Stock Android or an AOSP-based custom ROM.
Install Substratum Theme Engine
To begin with, head over to the Google Play Store and install Substranum Theme Engine. It's a Free app, so you don't need to pay a dime. Now from your app drawer locate and open Substratum, then grant the app root access. Next tap "Allow" if Subtranum prompts you with further permissions.Install a Theme
Next you'll need to install a Substranum theme. So once you're on the app main interface, tap on the three-dot menu button in the top-right corner of the substranum app, then select "Play Store Themes". Alternatively you can as well search for a theme on the Google Play Store by typing in "Substranum Themes". From here you'll be listed with all of the Substratum-compatible themes on the Play Store, so browse through these and find at least one that suits your tastes and then install it.Apply Your Theme
Now once you've installed any of your preferred Substratum theme, head back to the main Substratum app, then pull down to refresh. From here, select the theme you want to apply. Then toggle the switch to select all overlays included in the theme at once or you can manually select each overlay if you don’t want to theme all the elements or apps. Once you're selected the elements you'd like to theme, tap the floating action button in the bottom-right corner, then choose "Install Selected". If your Stock Android has support for Substratum, then all overlays will be applied without a reboot. But if not, then the app will ask you to reboot your phone to apply selected overlays. Simply tap "OK" from the pop-up and wait till the rebooting process is done then enjoy the new look.Revert to Stock Android Theme
The Substranum Theme Engine is no doubt powerful, but at times we'd like to revert every tinkering we've apply on our stock Android. Thus if perhaps you want to go back or revert to the original stock Android Theme of your device, then Substranum has an option that will help you on that. To get this one going, locate and open "Substratum Theme Engine" from your app drawer, then tap on the hamburger menu situated on top-left corner of the Substranum main interface. Now select the "Defaults Manager" option and then tap on "Restore System Theme". Simply reboot your device if you're prompted and that's it.Apply Font Pack With Substranum Theme Engine
One of the spontaneous robust features Substranum Theme Engine unravels with it is none other than the ability to apply or change Font packs. This option has been one of the features i love about the Substranum app and i guess a ton of dudes are with me on this one. Thus here's the perfect procedure to apply Font packs using Substranum Theme Engine. First download a Substratum Themes which has fonts included in theme. Example we’ll be using the Mono/Art Substratum Theme since it contains a reasonable amount of fonts.Now open the Substratum Theme Engine app from your device app drawer & then choose SubFont Theme. Select any one of the font packs you would like in that theme, After selecting your preferred font, tap on the tick mark. A new window will appear and asking you to allow or deny substratum to modify system settings. Simply allow Substratum to modify system settings. Then head back and press the tick mark again. The toast message "Font pack is processing" should appear here followed by a soft SystemUI reboot which will apply your selected Font pack.