[Desire 816 Original Android Development] wxppro:
Sprint HTC Desire 816 + CM 12.1-20151027-unofficial: Data works with APN fix

I did and mine does the same thing, they disappear but I still have internet .[/QUOTE]

OK, I think I figured it out. Both LTE and 3G now work on my Sprint HTC Desire 816 with CM 12.1 the unofficial build 20151027 (available at www.letschat.pro/download). The solution is to patch the system with the right APN.

I am using RingPlus, a Sprint MVNO. APN for RingPlus is not included in the list provided by /system/etc/apns-conf.xml. As a result, LTE works but 3G does not work. This apparently limits the usability of the phone. When I say 3G does not work, the symptom is that the phone shows a signal triangle with an "R" and an exclamation mark. In About phone/Status, no IP address is available. So, the phone found the 3G network, but could not connect. The reason, as I researched and speculated, is related to APN. If there is not a right APN, there is no connectivity.

Generally, one can add an APN to make things work, but it failed this time. I suspect that the write protection of the system partition on HTC phones is the reason? Anyway, I need the right APN to be in place. Thoctor referred me to the Virgin Mobile APN fix and I later found a Sprint Data fix zip file. They pretty much do the same thing - replaced the original apns-conf.xml file.

I customized the Virgin Mobile APN fix zip file to suite my needs. It solved my problem and I assume others can do similar things if they are using Sprint, Sprint Prepaid, or a Sprint MVNO such as Virgin Mobile or Boost Mobile.

The APN fix zip file replaces the original /system/etc/apns-conf.xml with the one I need. Since I only use RingPlus, so I just need one APN in the file:

<?xml version="1.0" encoding="utf-8"?>

<apns version="8">

<!-- RingPlus -->

<apn carrier="RingPlus" mcc="310" mnc="120" apn="n.r5.ispsn" type="default,internet,mms,dun,supl,hipri" mmsc="http://mms.sprintpcs.com" mmsproxy="68.28.31.7" mmsport="80" protocol="IPV4V6" roaming_protocol="IPV4V6" />

<!-- END RingPlus -->

</apns>

In revising this apns-conf.xml, I discovered some caveats. First, APN is not accessible when the phone is in 3G mode. But it seems that the APN chosen in LTE mode is still used. So, I guess it is a good idea to have the bearer as "unspecified" to prevent any issues. In other words, do not specify bearer in the file. Then, the parameter protocol, if set to "IPV4," which is what RingPlus really uses, does not work. In the APN, it just shows no protocol specified. I will have to manually choose it and save the file. But if set to "IPV4V6," it will work.

Once this new apns-conf.xml replaces the original one, in Settings --> Mobile networks --> Preferred network type, choose LTE, then tap Access Point Names, I found this APN. If it is not chosen, tap it, LTE works. If I then set the network mode to 3G, it also works, although the APN disappears.

The VM APN fix zip file also includes patching /system/build.prop file with four lines. I am not sure whether it is really required or not. But since this set up works. It does not hurt to do it.

There is still an issue. With a reboot, LTE may not work. Just go into Mobile networks, turn it on/off, or tap the APN, or something like that. It will work then. When the phone disconnects Wi-Fi, LTE/3G will automatically kick in. I do not like this LTE not working upon reboot behavior, but I can tolerate this inconvenience.