[Sprint Samsung Galaxy S 4 Q&A, Help & Troubleshoot] mitch10102000:
Thanks to [MENTION=549639]digiblur[/MENTION] and [MENTION=1042140]tdunham[/MENTION] for their guides on modifying the HiddenMenu.apk! With these guides, I was able to create a HiddenMenu.apk that will enable the PRL Write function on the L720T (Triband) model of the Samsung Galaxy S4.

Prerequisites:

1.) You must be at NG5 for this to work.

2.) You must be rooted for this to work.

3.) You must have a recovery where you can clear cache and Dalvik Cache (such as TWRP or philz)

4.) You must have RootExplorer installed. I will try to create a .zip file for installation via recovery, but for now, you will have to do things a little manually.

5.) You may have to be on a stock-based ROM. AOSP ROMs will NOT work due to the libraries needed. I performed this on the HiddenMenu.apk that was NOT odexed...so if you look at /system/app and find HiddenMenu.apk AND HiddenMenu.odex, this will NOT work. The stock NG5 ROM does NOT have this HiddenMenu.apk odexed, so if you have an unmodified stock ROM, the below directions will work for you.

Directions:

Assuming you are using Root Explorer:

1.) Start by downloading the HiddenMenu.apk attached.

2.) First, backup your current HiddenMenu.apk, just in case you need to go back to it. Do this by copying /system/app/HiddenMenu.apk to your /sdcard directory somewhere.

3.) Copy the attached HiddenMenu.apk into your /system/app directory. It will overwrite the one that is currently there.

4.) Long hold the modified HiddenMenu.apk and select "Permissions". Change the permissions to rw-r--r-- (0644). This will be Owner (check on Read/Write); Group (Check on Read); Others (Check on Read).

5.) We will need to modify one more file under /system/csc. Go into this directory and long hold on sales_code.dat. Open in Text Editor. Change the value in the file from "XAS" to "SPR".

6.) Reboot the phone into TWRP or philz recovery OR turn off the phone and start it by pushing the volume up+home key at the same time until you see text on the screen.

7.) Clear the Dalvik Cache and the Cache on the phone.

8.) Boot the phone and wait for the apps to optimize.

To use the new HiddenMenu:

1.) You need to find a PRL and put that PRL into your /sdcard directory.

2.) Rename the PRL file TEST.prl.

3.) Turn off the mobile data -- Settings/More Networks/Mobile Networks -- uncheck "Mobile Data"

4.) Go into the dialer and dial ##3282# (##DATA#).

5.) Go to the View option

6.) At the bottom will be PRL Write. Select this. Select it again on the next screen.

The phone will reboot and your new PRL will be installed! Make sure you turn back on mobile data.

Notes:

Preferred Roaming Lists (PRL) tells the 1x/3G (CDMA) portion of the phone which networks it can use. The file is just a priority list...the actual "initialization" onto a network is based on agreements with Sprint and that network...so for example, when Verizon and Sprint roaming agreements go away, the priority list for Verizon will discontinue to work (the phone will fail the authorization and go onto the next network in the list). While PRL's work great for areas that have poor Sprint coverage and great coverage with another provider, be aware that Sprint does track roaming and if you abuse this, they could kick you off the network. I do not condone abusing PRLs...use this with care! I use this to force roam the phone if I'm in an area that has very limited Sprint coverage and my phone bounces between Sprint and another carrier. I find a PRL that takes Sprint off the list and the phone automatically finds the other network to lock onto.

THIS WILL NOT WORK WITH LTE...LTE uses a whole method for roaming and to be honest, once the CCA Data Access Hub is completed next year, roaming may hopefully become a thing of the past (Google search for CCA Data Access Hub Sprint).

Hope this helps out some people! I know the L720T has been forgotten by devs. Unfortunately, I'm not at dev state yet, so I can't post in that forum.

The MD5 of the file attached is 7b63ce7c9dcb37c433fc88963520cc2b. Make sure this matches what you download!