[Sprint Samsung Galaxy S 4 Original Android Develop] eduncan911:
Got MMS Working

Ok, I had the same MMS issues after flashing June 29th's nightly in that I couldn't receive MMS.

DISCLAIMER: My service provider is Ting - which is a Sprint MVNO (a hell of a lot cheaper, see sig). There are known problems of running custom firmwares on Ting because the provisioning doesn't get set right from Sprint. Because of this, we custom-ROMers have to edit our APNs to make MMS work.

With that that said, I had to edit the APN file and select the correct one in the APN settings. Once i did that, BAM, I could send and receive MMS from other Ting users as well as verified from Verizon and AT&T. The only thing I haven't verified is MMS from other Sprint users, since I have changed the APNs (will do that later today).

NOTE: The instructions below is to get MMS working on the Galaxy S4 with CM10.1 Nightly build June 29th. You may ignore the mms.plspictures.com settings, and it may work for normal Sprint users. Or hell, try to use the mms.plspictures.com anyways to see if it works on Sprint. mms.plspictures.com seems to be an open gateway for any carrier, as it is specified as the Roaming option in stock ROMs.

Step 1: The apn.conf.xml file...

First thing I noticed when starting to flux with my APNs is that CM10.1 includes a butt-load in their drops - that every variant gets (Verizon, AT&T, T-Mobile, Boost, Sprint, etc etc). Nothing about Ting in here. It seems to be a one-size fits all.

Someone that has the time to research what each specific setting is, and the codes, might be able to clean up CM10.1's APN file to match/get updated to match the Samsung oem one for Sprint variants. But I don't have that time.

At first, I tried to edit the CM10.1 file for

Ting-specific requirements: replace all instances of mms.sprintpcs.com with mms.plspictures.com

. This did not work, though I forgot about Step 2 below so it may have worked.

What I did was to copy the Sprint Samsung Galaxy S4's stock/oem apns-conf.xml file off before I threw CM10.1 onto the phone. This file is attached as:

// original Sprint Galaxy S4's APN file attached
//
apns-conf.xml.gs4-oem.zip

// rename it to apns-conf.xml if you plan to use it.
//

// this file exists in /system/etc/
// you must mount as read/write to copy the file
// (or use root explorer, es file explorer, etc).
//

You'll notice it is a hell of a lot smaller than the CM10.1 version. Again, I think the CM10.1 version is a one-size-fits-all approach. How about we just use the Spring version, since that is our variant? See attached gs4-oem file.

Now, this still did not work on the S4 with CM10.1 6/29/2013 nightly. So I edited the file to match the Ting specifics outlined above, with mms.plspictures.com. Still didn't work.

Finally, I forgot one last step...

Step 2: Specify which "APN to use", whatever that means...

There is one last step you must do when editing this APN file: you have to "edit and select it" elsewhere in the UI. For some reason, while this does list the the APNs in your config file, the settings are still wrong. You have to change them as well.

With CM10.1, there is a "Voice Dialer" app. You must use this app to access the APNs to edit and select as I have no idea how to get to this edit screen without that Voie Dialer app. On Samsung's S4 stock ROM, there is a ##....# combination to enter to get to a similar menu - but still different.

1) Open Voice Dialer and say, "Open A P Ns", just like that.

2) Once open, you'll have to go into each APN and see if it lists mms.sprintpcs.com. If it does, change it to mms.plspictures.com. Change each and every one you see.

2b) If you edit, REMEMBER TO SAVE IT! This is so cumbersome, but after you edit a field, make sure to click the Menu button, and there is the hidden option to "Save" it. If you just click back, you'll loose your changes.

3) lastly, you'll need to select/click on the bullet-point to select the one you edited. If you are using the CM10.1 apn-conf.xml file, it's your best guess as to which one to select - I can't help you there. Using the attached apn-conf.xml.gs4-oem.zip, you only have 1 to select that had mms.sprintpcs.com.

4) Reboot.

A note on step 2 above, I was using the oem Sprint Samsung Galaxy S4 apn-conf.xml that I attached to this post. So I only had 3 listed, and only 1 had the mms.sprintpcs.com. If you don't use the oem Sprint apn.conf.xml and want to try using the CM10.1 version, you'll be editing 4 or 6 of them! Yes, there's a lot more to edit. Make sure to edit each and every one though, because that's the only way I got my Galaxy Nexus to work on Ting as well. But now my Galaxy Nexus is using this same apn-conf.xml.gs4-oem.zip that I attached, only 1 to edit now.

OT: MMS over WIFI: the holy grail for us Ting users is getting MMS working over WIFI with AOSP-based ROMs (so we can limit our data usage). I've tried dozens of combinations and have come to the conclusion that the stock Messaging app in AOSP (and any AOSP-based ROM across several devices) is somehow hardcoded to use only a specific mobile-specific APN for sending and receiving MMS. If I ever get the time, among my dozens of other projects (building a house, by hand!), I would grab a dump of the AOSP, looking for how a text message is received and determined to be an MMS message, and see how it accesses which APN/network device to send/receive with. I would then compare it by decompiling the oem Samsung Galaxy S4's Messenger APK (if it is not obfuscated) - because the stock Samsung Galaxy S4 DOES SEND OVER WIFI! I verified this with Ting billing, as well as leaving Mobile Data off all of the time as well as with BetterBatteryStats (after I rooted the stock S4) and looked at what was using network bandwidth. Samsung's stock (and really sh1tty / non-Emoji-compatible / non-Japanese friendly / compresses images too small - all compared to AOSP's original Messaging app) Messaging app was listed as using Wifi for the size of the pictures I was sending!

Such a PITA...