Back to home
HTC M7, M8, M9 viperone ROM This is not a complete install guide, but simply a quick couple of pointers how to get viperone on HTC one M<x> devices.
Downloads ADB and fastboot
fastboot_adb(1.0.39)_190417_r26.0_rc1.rar

Supersu
SR1-SuperSU-v2.78-SR1-20160915123031.zip

TWRP
TWRP M7
TWRP M8
TWRP M9

ROM files
ViperOneM7.zip, latest version for the M7
ViperOneM8_6.1.0.zip, latest version for the M8
ViperOneM9_6.2.0.zip, latest version for the M9

pre-installation Before installation, make sure the device is rooted and download adb/fastboot, the correct twrp image and the correct viperone zipfile for the phone.
It's easiest to just put it all in one folder so no entering long foldernames!
Extract adb/fastboot in a folder and note down the foldername.
Next, open a commandprompt in administrator mode.
Last, attach the phone to the USB port on the pc.
Once that is done, you can verify that the phone is actually responding to ADB:
cd (folder where all the files are.. i.e. c:/phone)
adb devices
			
You should see something like:
List of devices attached
HT.... device
			
If not, it is likely that usb debugging is not activated.
You activate this by first activating the developer options in the settings menu by going to settings -> about -> software info and tap the build number option 7 times.
Then go back to settings top menu, find developer options and activate usb debugging.

Once adb seems to work, run the following commands:
cd (folder where all the files are.. i.e. c:/phone)
adb reboot bootloader
(wait until the phone reboots and windows again detects a usb device)
fastboot flash recovery (twrp filename)
			
If this is succesfull, it will tell you. If not, check the command you typed.
Now disconnect the phone, use the volume up/down to select hboot and press power.
Now, select recovery and klick power again.
TWRP should now boot and show up.
Install with the device working The first boot can take a long while (10 minutes at most) so be patient.
Install with the device NOT working Now TWRP should be able to install the files as usual.
Modify the navigation bar The navigation bar can be modified in 2 ways:
Setting string for the navigation bar
This string defines 3 'zones' on the navigation bar: left, center and right.
These are set in the string using ; as seperators. (i.e.: left;center;right).
Each zone can have multiple buttons defined, each seperated with a , (comma).
Each button has a define name to use for easy access.

An example is: spaces,back;home,spacer;recent,spacer

A customized button can be defined also by using the format: key(<keycode>:file:///sdcard/Navicons/(filename png))
Again, download an icon from https://www.iconsdb.com/icon-sets/snow-icons/ and save it on the sdcard.

As an example, to simulate a powerbutton press from the navigation bar: key(26:file:///sdcard/Navicons/power.png)

a complete setting command could be for example:

settings put secure sysui_nav_bar "back;recent;key(26:file:///sdcard/Navicons/power.png),home"
(yes, that triple slash is mandatory!!)

If for some reason you messed things up, the UI will crash on you...!!!
The thing to do to restore the UI to a working state:
adb shell
settings delete secure sysui_nav_bar
			
with that, the navigation bar is reset to it's default setting (and for some reason.. your background is cleared also..).

Finding the correct keycode
This is easiest to find using method one, using the system ui tuner and defining a key. By using the adb list command you can see the setting for sysui_nav_bar in key(..)
If you can't find it, there is a list on elementalx.org, keycodes