So if you wondered where I was yesterday, I was kind of busy playing with an HTC One M8. I’ll get into reviews of the thing later, since I honestly haven’t done enough non-root stuff to comment, but here’s how to root the Sprint version of the HTC One M8. Your carrier may be the same or might vary slightly, and I’m not going to trust that one thing works for all M8s until I see it.
A quick side note: Do not worry EVO users; you’re not abandoned. We’ll get into that at a later date.
Step 1: Unlock bootloader
You’ll need an unlocked bootloader in order to proceed. To do this, you’ll need to go over to HTCDev.com and follow the instructions there. It will involve the use of a computer and probably leave you cursing, but the instructions are sound.
You should be warned up front that unlocking the bootloader generally wipes out all the personal data on the phone. As I didn’t have anything on the phone when I unlocked, I can’t tell you if your photos would be preserved or if it’s changed from the EVO line and wipes out everything.
Just to be safe, back your stuff up. Assume you’re going to lose the phone.
Step 2: Find and flash an appropriate recovery
Currently the only recovery that I know that works with the One M8 is Team Win’s. The only officially supported version of this is for Sprint, as of this writing. If you have another carrier’s One M8, I encourage you to go to the device forums on XDA and look for your carrier and your specific version of recovery.
You will have to install the recovery from fastboot. While the site may direct you to an installer called GooManager, if you don’t have root you can’t install a recovery. At this point, you don’t have root because you need a recovery to install the superuser binaries.
Download the .img file for your recovery to your computer. Locate fastboot (should have been with the HTCDev unlock package), and copy the .img file to that directory. You’ll need to be in command/terminal mode to do this.
Turn off your HTC One M8. Press and hold the volume down button, press and hold the power. When the phone turns on, it should take you to a screen where you can select fastboot by using the up and down arrows. Select that.
On the computer, execute the command “fastboot flash recovery recoverynamehere” – if your recovery download was called twrp-recovery.img, you’ll put that in place of recoverynamehere.
Step 3: Download, push superuser binary
You’ll need a superuser application in order to execute root commands. For this example we’re going to use SuperSU, for which you can download the binary here. Make sure you get the right one for your device. Last I checked, we were ARM devices.
Your options at this point to get the superuser file off your computer are:
- Boot the phone up into running, copy the file over to the phone, turn the phone off, power on and boot into recovery.
- Boot into recovery, mount USB storage, copy from computer.
- “adb push downloadnameandpath /sdcard/”
Step 4: Go into recovery, make a backup
From an off phone, volume down + power. Choose recovery when the phone turns on.
I’m listing this as its own step because I want you to do something for me here. Please take five minutes and make a nandroid backup of your phone. If anything screws up from this point onward you’ll have a copy of the OS at this poitn available to recover.
In recovery, select backup, choose to compress backup – the phone is fast enough compressing speeds things up since the SD write is the slowest operation in this.
If you run into problems with it not completing, see the footnotes about early versions of M8 recovery
Step 5: Flash the superuser binary
In recovery, select to install and flash the superuser binary.
Step 6: Profit
You’re now rooted and can do most thigns within the limits of a bootloader unlocked environment.
Limitations of root on an HTC One M8
So far, what I have learned is that /system is unwritable in Running/Android mode. You can write to it in recovery. For most of you, this means you’re going to have to figure out some way to rig Busybox to work and I don’t have that for you yet. Maybe tomorrow I will.
Busybox is not needed for most root things, but it could be useful.
With the /system still locked, there are probably other things that will pop up. I’ll try to update this once I’ve got the list.
Footnote on problems with early recoveries
It appears the early versions of TWRP seem to have some issues where they will just ignore a command and blank screen. If you get this, just re-do the command. You may have to do this a few times, but it will eventually work. It took me five tries to get a nandroid backup to run and two to get SuperSU to start installing.
I’m guessing this will be fixed soon enough, but considering the phone has been out less than a month, you should expect bugs.