[Sprint HTC One (M8)] aprwx:
I wanted to follow up with a solution to a problem I've had for a long time that I finally resolved, in case others run into a similar issue.

Original symptoms:

- Roaming would transfer no data.

- Forcing to native CDMA 3G mode would not transfer data.

- 4G WOULD work just fine.

- Phone calls worked fine in all modes.

- Signal Check would never display the band like its advertised to do (originally thought it was fault of Signal Check, but its not)

- The Mobile Data screen only had 3 options listed, 4G Settings, Network Mode & Automatic Connections. It didn't list any options regarding roaming, domestic data, International Voice, etc.

- Hands-Free Activation would never work, nor would Update Profile or Update PRL

- Phone would rarely go off of band 25 (1900mhz) to one of the other Sprint bands (26 & 41)

- Popping the sim card in and out while in 3G mode WOULD temporarily fix the 3G data problem, but if I switched to automatic (4G) and back to CDMA (3G) it would stop data transfer on 3G again.

I had wiped, re-wiped, restored from RUU, restored from stock backup several times. Also tried updating radio firmware and PRL using ADB and MSL codes. All to no avail.

Then I did the following... I'm not entirely sure which of these steps actually made the difference, but the following process resolved all the problems above:

0) Did a Titanium Backup of all my apps, and booted into Recovery and did a Nandroid Backup.

1) Booted into Bootloader and ran Factory Reset from HBOOT (Bootloader). Since I have a custom recovery all this did was launch my custom recovery (TWRP), but perhaps it makes a difference going through the Bootloader rather than booting directly into Recovery?

2) Under wipe, ran Factory Reset.

3) After this ran, I went to advanced and wiped Cache and Dalvik again, even though this is already done once from point 2.

4) My backup of my stock image is actually in two parts. So I ran the first restore, then AGAIN cleared Cache and Dalvik.

5) Then I ran part 2 of my Stock backup, and AGAIN cleared Cache and Dalvik.

6) Reboot

7) This time, for the first time ever, when the phone booted the first time it ran hands free activation and was successful, as well as PRL update. Had the phone for several months and this is the first time since the original out of the box activation that it was successful.

At this stage I noticed all the new options under Mobile Data, and tested 3G and it worked! Woo hoo. unfortunately I run a custom ROM so I wanted to put that back on. So I went back from step 1 and did all the steps again but instead of restoring stock I restored my ViperOneM8 ROM. The results were still successful, so I then updated my PRL and Firmware to the latest stuff, forced roam, tested it, forced native 3G, tested it, everything works great. Also now Signal Check correctly displays the band I'm on, which it never did before. Also, my home tower always had me on band 25 before when I looked in the Engineering screen, but after fixing this I'm now on band 26 (800mhz), which is great.

SOOO.. I think from all the things I've tried in the past, the new things that might be making the difference is either:

- Factory Reset

initiated from Bootloader

- Cache & Dalvik wipe

before and after

any Restore.

I've installed ROMS, firmware, used ADB, used my MSL in with various resets, etc. So I figured I always knew what I was doing, but I think one of the very simple things above makes an important difference. Just not sure which step it is, but apparently the little things count.

A couple other related things that users with similar issues should try if this doesn't help:

- Make sure to Update Profile and reboot

- Start a web-chat or phone call with Sprint and ask them to force a Profile Update from their end. I've had success with issues with them initiating a profile update.

Hope this helps others!