[Verizon HTC One (M8)] joelegs:
my method of successful HTC one M8 VZN to TMobile

I read a bunch of the tutorials and thread posts about how to do this. I'd rooted / jailbreak some devices (e.g., ipod) before, but mostly I'm a big noob. I tried to take good notes along the way so I know what I'd done. Here are my steps. I'm posting this mainly because I'm grateful to all the others who posted so that I could figure a way to do this. I also used this post (http://xdaforums.com/showpost.php?p=51995222&postcount=62) as a help to walk through some steps. My phone was purchased from Verizon back in August. But we needed to add another phone to our plan and the overall package was waaayyyy better with TMobile, so I went to the TMobile store to switch. My wife's iPhone 5S worked without a hitch. But when we put the TMobile sim into the Verizon HTC One, it worked initially but then was very erratic for phone and sms and you could not change the APN within the phone. I decided that most of those problems were likely related to Verizon specific settings within the phone. So, these are my notes.

Used this thread as a partial list to know what to install on my PC:

http://xdaforums.com/showthread.php?t=2757414

Having trouble rooting phone BC of locks from Verizon. At first, couldn't even get it to go to recovery or download. On my phone the only way to get it done was to press power to get the submenu, select restart, and then hold the volume down during restart.

Installed Android SDK, installed HTC synch and then removed it so that I had proper drivers on my PC.

Installed Java SDK on my pc - But also had to put an environment variable in “My Computer” settings to point to the Java files. (meaning had to put in a variable that pointed to the path of the installed java within the environment variables for my PC: variable = JAVA_HOME value = path of java jdk). Then things started to work

Also found that I had to add a value within my PATH environment variable to point to the android SDK. I'm not sure that these environment variable changes were critical, but several threads mentioned needing JDK and the Android SDK to work and doing the above helped get them to work as expected.

Next up was to try to root the phone.

Tried to use Weaksauce2, but no luck. Kept failing.

Then tried to purchase Sunshine (http://theroot.ninja/purchase.html)

Paid $25 and it rooted and made the phone s-off but did not appear to root the phone

things were weird at that point, but it did become s-off.

Followed this link to determine s-OFF http://www.android.gs/what-is-s-off-and-how-can-you-tell-if-your-phone-has-s-off-s-on/

and that allowed me to get to the boot menu. I confirmed that the phone was s-off (huge step in the right direction)

Only after Sunshine had run was I able to use weaksauce2 (which I’d already loaded) to enable root on each reboot.

Then,,,, I had to make sure ADB (Android debug bridge was loaded - it’s basically loading the Android SDK on my PC) and had to add a path for the environment variable (different from above) as described in the below tutorial (i'd mentioned this above as well)

http://www.droidviews.com/a-comprehensive-guide-to-adb-android-debug-bridge-and-commands/2/

Used the Super CID commands from a command line on my PC (using android bridge or ADB) to get the CID = 11111111 For a long time it was unclear to me that these commands were on a command line on my PC rather than on the phone. Guess I'm dense that way....

http://xdaforums.com/showthread.php?t=2708610

Next, used this link to try to load the TWRP recovery

http://xdaforums.com/showthread.php?t=2717932

Tried using TWRP manager, but that did not seem to really do what I wanted. It kept bombing. Not sure why

So… I loaded Flashify, as described in this video. Flashify had an option to download TWRP and so I did download it through Flashify and then flashed it. https://www.youtube.com/watch?v=6GhybCyd4Pg

Booted into recovery and used TWRP to backup the phone. Successful

Then used TWRP to flash the new ROM of Android revolution (http://android-revolution-hd.blogspot.com/p/android-revolution-hd-mirror-site-var.html) I tried Android Revolution HD 22.1. It loaded ok (although I was spooked when my phone was just a black screen for about 15 minutes). But WIFI was a bust. And I kept getting a "google play services have stopped" error message. I confirmed that I had the right firmware that folks were talking about in a bunch of posts. I then also flashed the elemental ROM kernel to try to fix the wifi issue, but no luck

http://xdaforums.com/showthread.php?t=2705613

Finally, flashed the ROM, from TWRP recovery, for Viper One, and all seems to work well !!!!!! I get wifi, mms, 4G, phone calls, etc. All with no error messages. Woo Hooo!!!!

http://venomroms.com/devices-downloads/

I probably spent about a full day of reading and figuring out what some of the terms meant. I practiced a bit on on old Galaxy S2 that I have as well. Problem is, each phone is slightly different. Anyway, hoping that posting some of my details helps someone else. Like I said, I'm no expert, just a noob trying to figure things out.