If you've used any custom ROMs based on stock Android, you must be familiar with the various levels of customization built right into these ROMs. These also include some pretty cool and useful nav bar customization. There have been various apps too that have offered such customization provided you have root access. Recently, some apps (Nav Bar Apps) have also popped up that allowed nav bar customization without root, albeit, not to the level that root players are used to. And yet, stock Android has lacked way behind all of that. Google seems to be doing something about it now, what with the nav bar customization in the earlier Developer Previews of Android Nougat and now in Android O. For some reason, Google scrapped the nav bar customization feature in the official Nougat release. However, the code was still there. It was thought that the only way to get it working was to modify the System UI apk which was a bit off-putting. For one, it needed root, and decompiling, then compiling the System UI. Also, that had to be done after each update. Turns out though that customizing the nav bar is much easier on Android Nougat and without root too.
How to Customize Android Nougat Nav Bar Without RootThe new method is the same method used to customize the nav bar on the Android O Developer Preview. It works on any device too that runs either stock or a very close to stock Android 7.x ROM. Also read: Android O: 14 Best New Features You Should Checkout A user can either send an ADB shell command to modify the particular setting or grant the WRITE_SECURE_SETTINGS permission to an application such as SecureTask or AutoTools (Tasker Plugins). This lets the apps control and modify the required Settings. If issuing commands isn't your thing, don't be disappointed because XDA member paphonb has an easier solution for you. We'll get to that in a bit. Tasker can help you modify the navigation bar contextually. Say, you can program it to add a menu button while you're using a certain app and add arrow keys when the keyboard app is in use. Here are the commands you can use for the above-mentioned tasker plugins. For SecureTask:
adb shell pm grant com.balda.securetask android.permission.WRITE_SECURE_SETTINGS
The syntax to modify the nav bar is as follows:
adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS
There are a lot of settings to play around with. These include, but are not limited to, rearranging the buttons, adding spaces (typing
settings put secure sysui_nav_bar "key(82:file:///storage/emulated/0/NavIcons/menu.png),back;home;recent,key(125:file:///storage/emulated/0/NavIcons/forward.png)"
spacewherever you want to put a blank space) and change icons. Must read: Get Floating Audio Visualization on Android Nav Bar with MUVIZ
Custom Navigation Bar AppAs mentioned before, if commands aren't your thing, you can use an application called Custom Navigation Bar developed by paphonb. It does all of the hard work for you thus making nav bar customization on Android Nougat a much easier affair. You will still need to use at least one command if your device is not rooted. Just download and install the app and then grant it WRITE_SECURE_SETTINGS permissions with the following ADB command.
adb shell pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGSThe app is based off of Android O's navigation bar customizer and is, hence, quite simple to use. It is, however, not limited to the customization offered in Android O. The app has been coded to allow you to use custom icons and has profiles feature too, letting you switch between a set of settings quickly. It also has Tasker support, meaning you can still make the navigation bar to change contextually. Don't miss: Get Galaxy S8-Like Rounded Display on Any Android Device The app is free as long as you don't need to use more than two profiles. To use more than a couple of profiles you will need to buy the pro version. The app does offer a ton of customization options and, in our opinion, is worth every penny. That is if you are as passionate about customization as us.