One of the many reasons I prefer the Android OS over iOS is customization. I can pretty heavily customize the EMUI 9 software running on my Huawei Mate 20 X. EMUI’s built-in theme engine makes it possible to customize the background color and accent colors of the SystemUI components, framework, and other system apps as well as the system font. Samsung also offers a comprehensive theming engine in Samsung Experience and One UI. Google doesn’t expose a theme engine to users in their Pixel software, even though the Pixels’ stock Android base does support theming. Stock Android first gained support for theming with Android 8.0 Oreo, and now it looks like Android Q is further expanding on that with support for additional themeable elements and possibly more built-in customization options for all users.

Google fully adopted Sony’s latest theming framework with the Android 8.0 Oreo release. Sony’s theming framework is centered around a class called the OverlayManagerService (OMS). OMS uses an “idmap” to link a resource defined in an “overlay” app with a resource defined in a target app. This allows a targeted app to be themed without needing the targeted app to be directly modified in any way. Sony recently submitted idmap2 upstream to AOSP, and it seems that Google has already merged these changes internally. The most notable change in idmap2 is the introduction of overlay categories. By grouping overlays together into categories based on what they target, the system will have an easier time automatically disabling other overlays targeting the same app when a new overlay is enabled. (Currently, overlays are enabled in order of priority.) With the introduction of categories in idmap2, we’ve spotted Google testing 3 overlay categories: fonts, icon shapes, and accent colors.

In the leaked Android Q build I flashed on a Google Pixel 3 XL, there were multiple pre-installed overlays that allowed me to change the font, icon shape, and accent color throughout the UI. OxygenOS from OnePlus allows you to change the accent color, while the aforementioned EMUI and One UI let you use custom fonts. Neither is possible on Pixel devices running Android 9 Pie without root access. It’s possible to change the icon shape in the stock Pixel Launcher, but that change only applies a mask to the icons shown in the launcher itself. The icon overlays in Android Q apply a mask anywhere the icon is shown—Settings, recent apps overview, app info pages, etc.

Here are the font, icon shape, and accent color overlays that were pre-installed on the early Android Q build I obtained:

  • Fonts
    • Arvolato
    • Rubik
  • Icons
    • Rounded Rectangle
    • Square
    • Squircle
    • Teardrop
  • Accent Colors
    • Black
    • Green
    • Purple

Granted, just like with Android 8.0/8.1 Oreo and Android 9 Pie, there’s no built-in option in the Settings app to switch between any of these overlays. Rather, I had to use the cmd overlay list command followed by cmd overlay enable {package} to enable my desired overlay(s). Before Android Q, however, the only pre-installed overlays on Pixel smartphones were the notch overlays for the display cutout Developer Option, the Pixel framework overlay, and the partial dark theme for SystemUI and the launcher. Google could easily add a new setting in Android Q’s Display Settings to let the user enable one of these font, icon, or accent color overlays, just as they’ve done with the display cutout emulation setting in Developer Options.

Android Q overlays
List of pre-installed overlays in Android Q.

Before you get your hopes up about Google opening up more theming capabilities in Android, keep in mind that there’s no guarantee that we’ll see any of these pre-installed overlays on a production build of Android Q. It’s possible that device makers, including Google themselves, will strip out these overlays before rolling out Android Q to devices. If they do leave these overlays pre-installed, there’s also no guarantee they’ll expose a setting to toggle them (in which case the cmd overlay ADB shell command might work.) Lastly, we caution against interpreting this change as a sign that Google will allow for custom fonts, accent colors, and icon shapes to be installed. For starters, the font overlays don’t actually contain the fonts themselves—the fonts are all pre-installed. The overlay just tells the framework which pre-installed font to use. More importantly, overlays that aren’t signed with the platform certificate (ie. by the OEM) still can’t be installed, leaving third-party overlays out of the equation. I hope I’m wrong about this and that these pre-installed font, icon shape, and accent color overlays are a sign that Google will allow for more customization in Android Q and beyond, but we’ve been burned before—just remember when custom overlays were blocked in Android 9 Pie!


More on Android Q: