Skip to main content

[New Features] Android Oreo Introduces Command Line Interface for Themes

https://www1-lw.xda-cdn.com/files/2017/05/Layer-Manager-810x298_c.jpg


With the launch of Android Oreo comes a lot of time spent searching for hidden goodies within the source code. In the past, the Android engineering team has talked about enabling theming in Android O. We knew that the second Developer Preview of Android O may have been a hint of Google supporting the Overlay Manager Service (OMS) and Runtime Resource Overlay (RRO), but now we know for certain it was. Android Oreo now, technically, supports both OMS/RRO theming and even provides an interface for enabling or disabling themes using the command line.

What are RRO and OMS?

RRO was developed internally by Sony for theme functionality on the Sony Xperia line. Developers who recognized its significance worked to extend its support to other ROMs, and with it came RRO theming across a multitude of devices- not just Sony devices. It ingeniously replaced resources at the app runtime, an ease of use unseen from other theming options at the time. This has evolved into OMS, which also was developed in-house by Sony. The famous Layers Manager used RRO theming originally, but OMS was later adapted into what is now known as Substratum and is the theming framework most familiar to users on our forums now. ROMs on our forums with OMS commits mean they support the standard theming engine of Substratum. “Legacy mode” within Substratum is using RRO theming.


Android Oreo Introduces Theme Commands

It seems Google now wishes to fully support this theme type in AOSP, possibly moving towards a full, system-supported theme manager. On the Android Gerrit, Google has made a number of changes in recent months (and with Android Oreo) which suggest moves to enable the theming engine system-wide. The changes are below, with links to their respective commits.
All of these changes signify a move by Google towards some form of system theming application to be included in the future. The permission listed above requires system privileges, and thus means that only a system application (or an application with root access) can invoke this permission. It’s interesting nonetheless, as it shows Google is finally working towards something.
So why only technically does Android Oreo support theming? Well, the simple answer is that while you can invoke the system method of installing themes, to do so would prove rather pointless. This is because, even though you can use the new command line interface to manage installed themes, you cannot actually install new themes without root access because the themes need to go into a directory that is restricted from user space. With root access you can simply enable a Substratum theme anyway, so there is no need to do it the new way. Google has not included a system application to theme the device, so until then there is no benefit whatsoever to trying to do it the newly included way.

The Command Line Theming Interface

The devs at XDA tested the command on a Google Pixel running the Android Oreo release. We decided to test some of the commands and firstly used

cmd overlays list

to view all pre-installed overlays. We noticed the existence of a “com.google.android.theme.pixel”, disabling it and instead enabling “android.auto_generated_rro__” by running the following commands.



As can be seen here, the standard overlay is disabled and the auto-generated one is enabled. Running our command to view our installed overlays again, we see the following output.


This results in a newly themed Android System settings application on our Google Pixel. Note that the above overlay list also includes themes installed using Substratum, and we were able to enable/disable these just as easily.



auto_generated_rro Theme

We also found another command when digging through the source. The command is as follows
 
cmd overlay dump --user 0
 
gives us the following output.
So as can be seen, Google has put a lot of work into the development of the theming engine and integrating it into AOSP source. It looks like if it were to be added system-wide, themes would be enabled within the System UI tuner. Google have also provided information for OEMs, so it’s possible that additional OEMs could enable theming support based on the AOSP version in the future on Android Oreo.
Overall, this is a very exciting development. Theming is one of the many parts that defines Android as a fully customizable operating system on your phone. In the future if it were enabled to work without root access, it would be a major step in the direction of user freedom. Of course, it might be locked away in System UI tuner for quite some time.


Install Android O Factory Images On Pixel, Pixel XL, Nexus 5X, Nexus 6P, Nexus Player, and Pixel C

 

 

Comments

Popular posts from this blog

[TechLeaks] Moto X4 image leaks showing off glass back, dual camera, thin side bezels

Update: The first image of the Moto X4 has leaked (see above). It was recently posted on Twitter by Evan Blass and shows the front as well as the back of the upcoming smartphone. The device looks a lot like the rest of the Moto lineup with its large circular camera housing on the rear and the fingerprint scanner positioned on the front, below the screen. The image shows the gold version of the Moto X4, although we do expect to see it in a few other color options once it’s officially released. One of the smartphones we’re really looking forward to from Motorola this year isn’t a refresh to the Moto Z , but rather the return of the Moto X lineup in the Moto X4. With specs and rumors flying around, Evan Blass has taken to Twitter to share the first good look at the upcoming device. The latest addition to the Moto X lineup, the Moto X4, is expected to be a return to the Motorola that once got us excited , at least to an extent. Whereas the Moto Z line focuses on premium sp...

[Phone Launch] Xiaomi launches its first Android One smartphone named Mi A1

Xiaomi unveiled the Mi A1 earlier today in New Delhi, and the phone marks a shift in strategy for the manufacturer. While all Xiaomi phones thus far have featured MIUI, the Mi A1 offers stock Android. The phone is the first in a new lineup of Android One devices, with Google looking to aggressively target the budget segment in emerging markets. The highlight of the Mi A1 is its dual camera setup at the back with a 12 MP wide-angle and a 12 MP telephoto lens. The 50 mm telephoto lens captures the main image and the wide-angle lens assists with the depth of field measurement, and the two lenses work together to create a bokeh. The telephoto lens enables up to 2x optical zoom and for even further shots, Mi A1 offers up to 10x digital zoom. Also, like the Pixel and Pixel XL by Google in the past, the Mi A1 offers unlimited high-quality photo storage on Google Photos. Xiaomi Mi A1 Specifications Operating System Android 7.1.2 Nougat Display 5.5-inch IPS LCD 192...

[Tech News] Google Chrome Canary and Dev Builds now have Built-In Ad Blocker

Google depends on advertising for its revenue. It is to serve this purpose that the company collects all relevant data across all of its users. Our browsing habits, our shopping-related searches, our weekly schedule — all of these are of interest to Google because they grant an insight into our lives, allowing Google to serve personalized ads that have a higher chance to resonate with viewers. So earlier this year, when reports emerged that Google was looking to incorporate an ad blocker in Google Chrome  – its main browser that serves millions of Android users – many people were initially surprised. After all, ads are Google’s forte, so blocking them natively seems like a strange idea. However, the reports clarified that even though the ad blocker would be turned on by default, it will only block out those specific types of ads that are deemed too intrusive and that negatively affect a user’s browsing experience. Some users on Google Chrome’s Canary and...