What is this?
These are two Magisk modules that adds the following cool features to any Pixel 3, 4, 5 and 6 device running Android 12:
- Enable/Disable Google Sans font system wide
- Adds Icon Styles and Icon Shapes overlays from Android 11
- Fonts options
- Enable/Disable Combined signal icons
- Pixel 6 Wallpapers
- Adds 2 button mode navigation (it was removed on Android 11 but I think some users like that navigation mode, so I add it)
- Adaptive sound options
- Navigation bar options (reduce keyboard bottom space size, completely remove NavBar)
- SystemUI Tuner options
- Enable Game Overlay for all Pixels by default (although, if something goes wrong while playing games, you can disable this feature)
- Enable/disable dual tone battery meter (it only works on icon portrait mode)
- Enable/disable showing the number of unread messages on status bar notifications
- Reduce Status bar height (and option to correct left padding on devices with the notch on the left)
- Option to enable/disable more themed icons on launcher (some apps don't have a themed icon so it won't work for all apps)
- Enable/Disable left shortcut on Lock screen
- Enable/Disable camera shortcut on Lock screen
- Enable/Disable Wifi + Cell QS Tiles instead of single Internet QS Tile *
- Battery Styles *
- Clock Customization *
- Network Traffic Indicators (on Pixel 5, Pixel 6 and Pixel 6 Pro devices they only work on QS Header) *
- QS Battery percentage independent options (show estimate time remaining or just percentage) *
- Dual tone Light/Dark themes for QuickSettings Panel and Power Menu *
- Album art on lock screen options *
- Music visualizer options (requires Visualizer fix module) *
- QS Quick pulldown with one finger (options are off, drag from the top left and drag from the top right) *
- Rom Control app (to setup all these options)
* -> These features are only available if "SystemUI module" is installed.
Addon_Features_for_Pixel_Visualizer_Fix.zip -> Install this module first (if you haven't installed it before). Afterwards, reboot your device and wait for about 1 minute before doing anything else. Really, I'm not joking, install, reboot and just wait. You see, this "Visualizer fix" module is only needed in order to add a missing permission to SystemUI. It only has to be installed once (obviously, if in the future you clean flash the ROM, you'll have to flash it again or you'll be missing that required permission). And, since it's only needed once, this module is deleted from the system after doing what it has to do. So, it's normal that you won't see it as installed after installing everything.
Android_12_Addon_Features_for_Pixel_V8.zip -> "Harmless" module that works on any Pixel device running on STOCK ROM, The features marked with an * above options, on Rom Control app, won't do anything if the SystemUI module, shared next, isn't installed.
Android_12_Pixel_3_SystemUI_for_Addon_Features_V7.zip -> This is "THE" module! This module adds all xml and smali changes into SystemUI and framework-res. Without this module the "exclusive features" won't work. Also, this module could be responsible for breaking boot if it fails to work at your end. I've ran several tests on my device (a Pixel 4a) and didn't face any issues but, since this module replaces stock SystemUI and framework-res for modded ones, you could run into problems if some other module tries to do the same or it's simply incompatible with it.
Android_12_Fixes_for_Pixel_3.zip -> This module is an extra and it's only for Pixel 3 devices. It enables the rounded corners on windows, as well as, AOD screen lights on/off animations.
Notes regarding the "exclusive version" for Pixel devices:
- DO NOT, I'll repeat, DO NOT flash "SystemUI module" zip on any other ROM besides stock Pixel. It won't work! If you want those extra features on your current ROM you will have to port them yourself. I explain how to later on this post.
- Make sure that you're able to run adb shell as root before rebooting your device.
- If something goes wrong after flashing "SystemUI module", like if your device doesn't boot or something stupid, connect your phone to your PC during boot and run this:
rm -rf /data/adb/modules/Modded_SystemUI && reboot
- If you forgot to enable the ability to run adb shell as root, and if your device is on a "non-boot" state, the only way you can fix that is to remove all Magisk modules you have installed. That can be achieved by running the following commands during boot:
- If none of the above methods work to get your device booting, then you have to boot into safe mode. By doing so, Magisk will disable all modules for you (it doesn't uninstall them, just disables them). To force a boot into safe mode all you need to do is to keep pressing volume down button during boot animation. After the system boots into safe mode you can reboot your device to boot up normally (since all modules will be disabled). If you get stuck during boot animation again, just force another reboot (I've had to do that during my tests).
- When a new OTA update comes please don't flash the "SystemUI module" until I say it's ok to do so. I mean, me or any other member who may have tested it. Why? Because Google may change things on stock SystemUI and/or framework-res between builds. When that happens, I have to recreate the module again to adapt those changes. Rest assured that I'll always test the module with new builds and update as necessary.
- The SystemUI module is different on Pixel 6 devices! For those I had to make a new module, since Pixel 6 SystemUI is different from all other Pixels.
- In case your device gets caught in a bootloop, please provide me a logcat so I may try and look if anything can be done about it. To do so, during boot connect your device to your PC and grab a logcat with this adb command:
adb logcat > log.txt
After grabbing the log, please open the txt file and search for "FATAL". Afterwards post here the lines where the "Fatal error occurred".
- I've made these modules for my personal use and just decided to share with all XDA community. Having this in mind, there's no need for donations (although I won't refuse them if you want to buy me a beer). As for requests or whatever, I can only add more stuff when, and if, I have time for it. I'm a really busy man in real life so I can't promise anything nor ETAs.
- Unlocked bootloader
- Magisk Root | Magisk Manager
- Uninstall all other modules you may have installed before installing SystemUI module zip. They could be incompatible with the "SystemUI module" thus making the device get caught in a bootloop. You may install them afterwards, one by one, just to make sure everything is ok.
- If you're up to it, instead of disabling/removing modules, I recommend you to flash latest stock build through fastboot using flash_all.bat. In order to retain your data, remove the "-w" flag from the update command on flash-all script.
How to install?
- Flash the "SytemUI" Magisk Module
- Reboot device
- If it booted ok, flash "Addon Features" Magisk Module
- Reboot device
- Have fun!
Faced a black screen after flashing the "SystemUI MOD"? Then try this:
(This usually happens when an error about "TensorFlow lib" is shown on the logcat, if it's any other error, don't do this. Share the log instead so I may take a look)
- Enable 2 button, or 3 button, navigation mode on System Settings
- Install "SytemUI" Magisk Module
- Reboot device
- Have fun!
If you're still having issues or if you want to fix that "TensorFlow lib stupid bug", which is responsible for not being able to use stock gestures navigation, then you'll have to do this:
- Uninstall all previous Magisk modules you had installed
- Completely uninstall Magisk (using the option on Magisk Manager app)
- Reboot device
- Flash latest stock ROM build through fastboot using flash_all.bat (remember to remove the -w flag inside the bat file if you want to keep your data)
- Root the device again using latest Magisk Canary (stable version works for the time being but latest Magisk Canary is more compatible with Android 12)
- Flash these two modules, and only these just to make sure no other module is causing conflicts
- Reboot device
- Hopefully it will work, so enjoy!
Check all Rom Control (with exclusive features) options HERE.
Note that this video was recorded when I've made this for Android 11. Some features may not be present (yet) for Android 12. The video is here only for those, who have never tried this on Android 11, may understand what to expect.
How's these "exclusive features" even possible?
All features that you see on Pixel Devices "SystemUI module" were reverse engineered from Proton AOSP and Evolution X ROM source code. The source code is available on the links bellow shown on the credits. This means that I've been practicing some hard core "old school" Android smali edition in order to get this working. So, yes, I have some credits about this but, if it weren't for the original developers and it's public source code, none of this would be possible. Thank them for this!
Smali, and xml, edition wasn't enough to get this working. After decompiling, changing/adapt the code and recompiling everything again, I had to find a way to make it bootable without messing with the original apk signature. And here is where VR Theme logic came in handy. So thanks for the original dev who brought us this feature.
As for ROM Control app....this was/is a project created by daxgirl and wubydax back in 2015! So yeah, I'm not bringing anything new here, I just followed their instructions in order to get the features working after editing smali/xml with the source code taken from PAOSP and Evolution X. The original app source code is also available on the link shared on the credits.
I've just combined all of the above into a Magisk Module and shared here so that we can get the best of both worlds....a stock ROM with custom features included.
Rom Control with "exclusive features" source code:
Want to port the "exclusive features" to your Pixel device running on other ROM? Here's how:
Proton AOSP ROM team, specially @kdrag0n for all his work on Dual tone light/dark themes and other Proton AOSP helpfull commits.
EvolutionX ROM team, specially @joeyhuab
@daxgirl and @Wuby986 for ROM Control project and source code.
@Tulsadiver for showing me how to adapt VR Theme logic originally used on 3Minit Battery Mod by @gharrington.
@Ticklefish for Tickle My Android
@topjohnwu for Magisk
@Freak07 for Adaptive Audio
@trzpro for More themed icons on launcher mod
Cheers and enjoy!