UPDATE: One of our readers, Everett, posted a comment detailing what looks to be a simpler solution. He apparently tracked down a reliable way to flash only the modem.
The caveat is: you need access to a Linux machine to use his technique. If you aren’t a Linux user, you could always gather the necessary files and then boot to an Ubuntu Live DVD / USB stick to make this work.
As always, your mileage may vary. I look forward to hearing from you in the comments!
Recently, my SGS3 (Samsung Galaxy S III) suddenly lost its mobile internet connection. As a Sprint user, I’m accustomed to reasonably fast mobile internet speeds all the time, but I noticed that my device’s connection indicator simply wasn’t lighting up.
What wasn’t immediately obvious to me was that this change was connected to the decision I made to allow Cyanogenmod to update to the latest version.
The reason it didn’t occur to me right away was because I was at home, pleasantly connected to my home WiFi and therefore finding no need to connect to mobile data through my cellular carrier. It wasn’t until a day or two later that I noticed the lack of data when I left the house for an errand.
So disconnected were the two events (the Cyanogenmod upgrade and the lack of data) that I suspected at first that Sprint was experiencing an outage.
In any event, on a second trip away from the house—one that took me far enough away that I knew a localized outage could not explain my lack of data—it occurred to me that the two might be connected. Thus began my search for a solution.
The Issue: Outdated Modem Software
The last time I had flashed any type of official Sprint upgrade to my Samsung Galaxy S3 had been when the so-called “MD4” update came out… roughly April, 2013. I knew that I’d probably missed out on an OTA (over-the-air) update or two, especially since I’d bumped to KitKat way ahead of the official Sprint schedule. I’ve been running custom ROMs exclusively for some time.
It hadn’t occurred to me that one of those updates might be useful.
Checking around a little bit, I found on a reference on the Known Issues for d2lte page of the Cyanogenmod wiki to a loss of mobile data on some phones after upgrading to the Cyanogenmod M11 release. Since the “d2lte” designation applies to the Samsung Galaxy S III device on a variety of carriers, a solution specifically for the Sprint device (which carries the “d2spr” designation) wasn’t forthcoming. The “known issues” page referenced a forum thread with posts from mostly AT&T and T-Mobile customers. The consensus among them was that upgrading the “modem” software did the trick.
Additionally, the forum posters referenced a page in the Cyanogenmod bug tracker that specifically dealt with this issue. The issue had been marked “resolved” since it seemed that a modem upgrade eliminated the trouble.
And Down the Rabbit Hole We Go…
Without getting bogged down in the details, I chased down a number of forum threads on xda-developers.com and other places in order to figure out what the latest modem software is for the Sprint SGS3 device.
The bottom line: the “Baseband” (modem) that was pushed out by Sprint most recently is the ND8 version. Its full designation is L710VPUDND8, to be more precise.
Here’s the bummer: the only way to get this modem software is to wipe your Sprint Samsung Galaxy SIII and flash the full Sprint update.
The good news is: rooting your device again is easy enough. Within an hour of making the discovery, I had re-rooted and re-flashed the Cyanogenmod M11 release and was back to where I started… with working mobile data this time.
I wish that researching the problem and the solution had only taken an hour or so, but that’s another story.
I guess this is the price we pay for using custom ROMs and letting months and months go by without bothering to stay up to date on what’s going on with development. For me, I find it necessary to stay out of the fray for months at a time (or longer, if possible) just because I don’t have the time to devote to Android development or even constantly reading about it.
Here’s How I Fixed My Sprint SGS3 and Got Mobile Data Working Again
As I mentioned earlier, the first step is to flash the Sprint update that includes the ND8 modem. (From what I read, apparently if you’re on some other carriers, you may be able to just flash the modem by itself. A number of people bricked their phones trying to do this with Sprint, so… don’t bother. Just bite the bullet and wipe your device and flash the stock ROM.)
Before you proceed: remember that your device is about to be wiped.
I performed a full Nandroid backup (I had been running the Clockworkmod recovery prior to this incident), which meant that my device could be restored to its current state if necessary.
Other Important Backup Notes:
- You’re going to lose everything on your internal storage with this process. A Nandroid backup gets all of the system components and everything you need to get your device up and running should something go sideways and you need to restore. It will not, however, save your photos, documents, and anything else you might not want to do without. If you aren’t already automatically backing that stuff up to a cloud service or routinely copying it elsewhere, you’re going to lose it. So… make a copy. I hooked my device up to my laptop and went through the device’s internal storage one folder at a time to selectively copy important stuff. You could conceivably just get every folder and stash it away somewhere. This would save time and would be a good idea if you’re not sure what folders are for what purpose.
- Even with a Nandroid backup at your disposal, sometimes another backup is helpful for other purposes. I like Titanium Backup with root… the Pro version is $5.99 and is totally worth it.
- Specifically, use Titanium to backup your apps and your app data. It’s not always a good idea to restore app data for a variety of reasons, but for some apps, it’s just worth it. For example, I don’t trust the Facebook app any longer. I “froze” it with Titanium backup almost a year ago because the update was requesting permissions I didn’t want to give. Without a Titanium Backup of the app and data, I’d be forced to download the latest version of the Facebook app after wiping my device… or else just never use the Facebook app again. In fact, the Facebook app and its (mis-)behavior was one of the big reasons I chose Cyanogenmod in the first place: it’s Privacy Guard provides granular controls over what each app can actually do on your device. If you guys ever read this post: thank you, Cyanogenmod devs.
Once I made it through the wiping and re-flashing of my device, Titanium’s backup data proved invaluable to me. It’s worth the money. Buy it.
Just remember: store your Nandroid and Titanium backup data on your SD card—not your internal storage. In Android (read: Linux) parlance, that means you’re storing your stuff on SD Card 1 (not SD Card or SD Card 0) in most instances. Double check to make sure you can find your backup files if you aren’t sure.
Also: you run your Nandroid backup from recovery. You will need Clockworkmod or a similar recovery on your device in order to do this.
Once you’ve backed up with Nandroid and Titanium: download the stuff you’ll need.
Here’s where I found the components I used:
- rwilco12 posted this thread on xda-developers.com which contains a nicely summarized set of instructions for flashing the “stock” (read: Sprint) ROM which includes the baseband (modem) you need. It would be wise to at least read the OP on that thread.
- Did you read that thread yet? Here’s the direct download link (which could change over time… I suspect the above-referenced thread will be more likely to stay updated if anything changes) to the full stock ROM (note: this will wipe all user data on your internal storage) including the Bootloader, ND8 modem, updated kernel and a nifty ready-to-go Odin flash tool all wrapped up in a nice .exe file.
- Since your device will no longer be rooted after you flash the above ROM, you’ll need to re-root. After digging around a bit, I decided that the CF Auto Root tool was the shortest route to re-rooting the device. (Locate your device on their home page. My SPH-L710 carries the “d2spr” designation there as well.) Their download also comes with a handy-dandy version of Odin (mine had 3.07 in it) for flashing. Here’s a convenient thread on xda-developers that explains more about the CF Auto Root tool and process.
- After rooting your device again, you’re probably going to want to install a new recovery. My version of Clockworkmod was outdated, and I read enough in the threads on xda-developers about the ND8 flash to know that some people had problems with their recoveries after installing ND8. The recovery of choice seems to be Philz recovery, which is hosted here. Locate your device by name. I found a “d2lte” (which is the unified device name at Cyanogenmod for all LTE SGS3 devices), but I also found a “d2spr” (specific to Sprint’s Galaxy S3), so I downloaded one of those. There were several version number and file format options. I found that the .md5 file was easiest to flash and I chose the latest version. Your mileage may vary. (Incidentally, after using Philz, I’m a big fan. He improved upon what was already a great recovery by adding enhancements to clockworkmod.)
- To install your new recovery, you’re going to need to use Odin to flash it to your device. The pre-configured Odin tools packaged with the downloads I referenced previously didn’t work well for flashing Philz recovery, so I reverted back to a copy of Odin 3.04 that I had on my laptop from working on this stuff previously. Since I had it already, I didn’t need to download it, but I found several current versions available in this thread if you don’t already have one laying around.
- Assuming you’re going back to Cyanogenmod, you’ll need to download the latest release for your device. Don’t forget the Google apps package if you plan (like I did) to reconnect to Google services.
As I mentioned, gathering the materials and executing this upgrade took no more than an hour or so. Take the usual precautions: make sure you have power to your laptop (not running on battery, for example). Don’t bump your USB cable while pushing updates to your device. Don’t sneeze. You know… the usual stuff.
Many Thanks
Without the countless contributors to the xda-developers.com threads, the Cyanogenmod forums, wiki, and bug tracker, and especially all the devs who write tools from recoveries to custom ROMs (like Cyanogenmod) and other great tools, having real control over your mobile device simply wouldn’t be possible. I shudder to think what life would be like if we were all completely at the mercy of the carriers and the manufacturers.
If you’ve written as much as a line of code, designed a UI component, or ever posted or replied on one of the boards above, I salute you. You make modern mobile technology awesome.
Exactly what I was looking for. Thanks!
Awesome. Glad to “pay it forward” here. Hope everything comes together nicely for you!
You say you have data back now but do you have LTE?
Yes… I have LTE data where I am accustomed to having it, and 3G service in areas (like my house) where Sprint has yet to make LTE service available.
I’m wondering if it makes sense to Titanium Backup any tools/utilities from the Sprint Stock ND8 ROM like the dialer codes and “device self service” that can update the PRL prior to blowing away ND8 Thoughts?
Hi Scott,
I didn’t find any value in saving anything from the stock ROM. The ND8 software itself survives the flash, of course, and there was nothing from Touchwiz or Sprint that I cared about. I use Google Voice for voicemail, though. As Mike mentioned below, the Sprint Visual Voicemail app might be worth grabbing if you use Sprint’s voicemail service. I’ve found the community is often able to supply something if you realize there was something else you wanted, however.
Thanks for this great post!
One comment I’ll make that makes it even easier to get back to where you were (assuming you’re already on the latest version of CM11), take a Nandroid before you start, and after installing ND8, booting it, and then installing Philz recovery, you can just restore your Nandroid backup instead of installing CM11 over again from scratch.
Restoring the Nandroid backup does NOT restore the old modem software, and it eliminates the hassle of needing to restore all your apps and settings.
@Scott – The only app I’ve kept from the stock ROM is the Voicemail app. I suspect that many of the other stock apps may be dependent on TouchWiz and wouldn’t run on an AOSP ROM (but it wouldn’t hurt to try).
You’re welcome, Mike.
I thought about just restoring the Nandroid backup as you mentioned, but I was a bit awestruck by the amount of free space on my device and I got started thinking that a clean install might be advantageous. I have nothing to compare it to, really, so I don’t know if that made any difference whatsoever, but it didn’t cost me a great deal of time to start from scratch. (It may have added some unnecessary aggravation to the process, though.)
Thanks for contributing your thoughts here!
After running my phone for a few days, I’ve determined one extra bonus to add: Despite the fact that the current versions of Android are supposed to support TRIM to keep the internal storage performing well, after this wipe and restore operation, I’m seeing HUGE speed improvements, most noticeably in the time needed to install new apps, which is going well over twice as fast as before.
Wow! Nice bonus! I haven’t particularly noticed this, but I haven’t really been looking for it either. I was just thrilled about how much free space I had on my internal storage!
I’ll keep an eye on the speed a little more closely and see what I can discover.
This writeup has helped me SO much. I commend your time and effort it took to research the problem and then make a detailed guide to help everyone out. Seriously, I don’t usually comment on these types of posts, but I felt the need to in this case. I can’t imagine the hours it would have taken me to solve this issue (and I probably would have bricked my phone in the process).
I’m just like you David, in the sense that I don’t follow the Android development scene too closely and I recently decided to update to m11 after months of not updating the firmware. My knowledge of this kind of stuff is limited, yet your guide helped me tremendously.
Thanks YOU. I hope you realize you have also aided so many others who probably don’t comment!
Hey Jay,
Thanks for your note. It’s a thrill for me to be able to share what I’ve learned, especially since I’ve benefited so much from others in the Android (and more recently, Cyanogenmod) community who have spent enormous amounts of time either creating ROMs or troubleshooting or even documenting.
In any event, I’m really glad this was helpful for you! And I very much appreciate you taking a moment to comment here. Thanks!
I just wanted you to know that I created a CWM flashable ND8 zipfile.
Link: www . filedropper . com/sprintgalaxys3nd8modem
Mirror: www . mediafire . com/download/sahh6c3vbaa1h42/SprintGalaxyS3ND8Modem.zip
MD5SUM: 3941c28523a57dbe7243e1a549dd8faf
Worked great on both of my Sprint S3 Phones
Hi @magnavoid,
I added some spaces to these just so we avoid anyone clicking them and inadvertently bricking their phones.
To other readers: Flashing the entire stock ROM is the safest way, because under certain conditions, flashing just the ND8 modem will brick the device.
If you’re certain that your phone won’t get bricked because you’ve done your research, then you can paste the URLs in magnavoid’s comment (above) into your browser and pull out the spaces to go get the modem download.
To stay up on this, you can check out this thread on the Cyanogenmod forum where we’re currently discussing this issue.
Just curious, can one just update the baseband version on their phone without having to wipe it and install the stock OS and then reinstall cyanogenmod? I found the update needed for my SGH-T999 and it supposedly will flash from within CWM. Is there really a need to wipe the phone and put the stock t-mobile provided OS on it before I boot into CWM and flash the modem?
Hi Chris,
My understanding is that the need to wipe and flash a complete stock ROM was unique to the Sprint device ( d2spr / SPH-L710). From what I’ve read, other carriers’ devices didn’t have the issue with bricking that some of the Sprint devices had.
That said, I haven’t specifically checked out the T-Mobile device, so please don’t take my word as Gospel on this. If you found the new modem for your device out in the wild without lots of warnings about bricking, then you’re probably OK. (I say this with the utmost caution!)
The instructions for restoring the stock Sprint ROM use an .exe file. I am using Linux Mint. Does that file work with Wine or is there another way to do it without the .exe file?
Hi Daniel,
That .exe file is the only way I’ve found the stock ROM being distributed. It’s actually a self-unzipping .zip archive that contains a one-click Odin file (also an .exe file). I’ve not attempted this, but it may be possible to open the .exe with Heimdall on linux.
Sorry I don’t have more info for you on this. I’m teetering on the edge of a complete transition to Linux, but Android is (ironically, I realize) one of the areas I still use Windows for due to the broad community support.
If you try it under Wine (it may work — I just don’t have any info about it one way or the other), please let us know if it works for you!
Best of luck!
Thanks for the reply, David. I didn’t try very hard, but I was not successful at extracting from that .exe on Linux Mint. I’m considering taking my phone to the Sprint store and asking them to reset it, then taking it home and rooting it again.
Yikes! That’s a bummer. No Windows box around at all, eh? If you were local, I’d hook you up to mine rather than let you go to the Sprint store. Bummer!
I’m hearing that VirtualBox may be an option in situations like this. Did you already take yours to the Sprint store?
Hi, David. I was able to get into the self-extracting .exe file using p7zip-full on Linux. Inside I found another .exe file. I am reading now to see if Heimdall can do something with that in Linux. I will report my findings later.
One other thing I’m wondering about: Will the next snapshot of Cyanogenmod have this issue fixed? If so, I will probably just wait until then because that would be much easier.
Hey Daniel,
Thanks for the update. I don’t think that Cyanogenmod will “fix” this as it appears to be an issue that only occurs with outdated baseband software on these devices. They officially consider it “Not a Bug” (from their bug tracker post for this issue). My suspicion is that this same type of issue will pop up on more and more custom ROMs as everyone builds around the latest Sprint radios. You could certainly try switching to another ROM that isn’t based on Cyanogenmod and see how things go. Personally, I got a little tired of hopping from one ROM dev to another and wanted to stick with Cyanogenmod, which is why I decided to take the one-way plunge into updating the modem/radio/baseband on my SGS3.
Would love to hear about your findings with Heimdall and/or VirtualBox (if you go that far).
Hi David, I happened to be looking at the backups I had made before ever flashing CM and I found one that I could use, so I flashed back to it and then the phone went through two Android updates, unrooted itself, and now it’s showing the ND8 baseband. I think I might just leave it as is for now since I have data back and everything is working fine. I will probably wait until I upgrade to a new phone before I try rooting again. I’m just a very casual rooter and not very knowledgeable about it, so I feel lucky that I didn’t brick it. Thanks for your post and all your help. Sorry for my anticlimactic results, haha!
Hey Daniel,
What?! Giving up now that you’re halfway there? 😀
I’m teasing (a little). Glad to hear your mobile data is working. That was actually not a bad way to get the stock ROM back onto your device!
Seriously, though, I completely understand where you’re coming from. You’re more than welcome… sorry we couldn’t be more help!
All the Best,
David
I have followed this twice, and the best I seem to be able to get is 3g back in CM11. 4g works great in the stock ROM, but for some reason it refuses to go into 4g mode. I am beginning to wonder if the 11/12 snapshot is bugged… I doubt it is but I am wondering. While I am thinking 3g is better than n0g I am currently debating if I like CM11 enough to give up 4g access, or if I want to just chill back with the stock rom. I like CM11 a lot, but I like speed more. I am going through the rebuild process again. I have even gone so far as saving the APN file and trying to use the stock ones on CM11. It says that I am using Baseband Version l710VPUDND8 which I assume is the *ND8 that you speak of… Maybe I should try to flash a new version of the Rom one of the nightlys… Any thoughts on what my problem could be?
I think it should be said that I am using Virgin Mobile and I switched the APN to Virgin mobile instead of sprint, both seem to get 3g to work just fine, but the speed is 1/3rd what it is when the stock rom says it is in 4g mode… then again maybe this area is 3g and it is just being identified as Lte by the stock rom… I am not sure that is possible but… when I look at the map it says that the little pocket were my house is doesnt have lte even though eVERYTHING around me does … /sigh…
Thanks, David. I was in the exact same boat. My LTE went away as soon as I switched from Sprint to Ting, but it was probably coincident with my recent update to CM11. Reverting to Stock for access codes has always been so simple, but the ND8 switchover really confused things (online advice and me, in particular). After going through all of your notes, I was finally able to complete the transition to Ting’s 4G/LTE on the stock ROM. It still wasn’t working on CM11 (but APNs were finally visible again). I had to fix the APN for CM11 using notes I found in the Ting forums, and — finally — my LTE radio began working again!
hi, I just wanted to post what ended up working for me. I found this page while googling around and it was really helpful, thank you. I use arch linux and I was able to flash JUST THE MODEM with heimdall using this command line:
heimdall flash –MODEM NON-HLOS.bin
The key thing was finding the sprint rom which was not made into an Odin executable, extracting it, and figuring out which of the .img/.bin files were the one I needed. The sprint rom is a tar file and I found a copy by searching google with:
L710VPUCND8_L710SPRCND8_L710VPUCND8_HOME.tar.md5
after figuring out that that was its name, on one of the many forums I searched. Extract that and you find NON-HLOS.bin among other things.
For heimdall to work you need to get your phone into “download mode” which is done by powering it off and then doing power+volume down+home all together, then pressing volume up at the prompt. I read and kind-of understood the heimdall Linux README and I recommend that. Of course do a nandroid backup first and if you brick your phone you can use heimdall to flash philz recovery as long as you can still get into download mode:
heimdall flash –RECOVERY recovery.img
I did a lot of sweating over this and tried a lot of stuff. I can promise that this worked on my CREDO (Sprint) Galaxy S3 and it left the running system (latest CM11) intact. Mobile Data APNs may need some tweaking, I had to rename the MMSC to plspictures.com, whatever, that may not be needed and I’m sick of typing so I hope that helps somebody. Thanks again David.
Everett —
Great solution!!
Thanks for sharing what you learned and what worked for you. I know this was a heckuva lot of work. Since I’ve already (obviously) flashed the OTA Sprint update that contained the ND8 modem, there’s no going back for me.
However… for anyone still looking to solve this problem, this looks like a much more advantageous way to go. I’m going to add an update to my post referencing your comment. Are you game to tackle a question or two if they come up?
Thanks again!
Yeah, for sure.. I used an email that I don’t check too often but I will keep a lookout. Once I got it working I wrote down what I did so that I could remember it in case something went wrong.
For your e-mail, why not create a filter so any e-mail with keywords or e-mail addresses related to this website are forwarded to your primary e-mail?
So just to make what I said a little clearer: if you are running Linux on your computer, and you want to get LTE working on your Sprint G3 with CM11, you will need a)Heimdall. b) a copy of The Sprint Rom (search for the name in my first post) c) Philz recovery, or CWM recovery, something to flash in case all’s lost and something crashes and a gremlin interferes. Make a Nandroid backup! (gremlin! all’s lost!) then flash just the modem according to my first post.
I believe there is a version of Heimdall that works on windows. Use your gumption and intelligence to find it and get it working. Good luck. Thanks again. E
Your method of flashing just the kernel using Heimdall worked perfectly for me.
*modem
Thanks for reporting back! That’s great news!
I totally forgot to respond to your question on the CM Forums though! It was reverting to the older LG2/LG8 modems that resolved the data issue without having to upgrade to ND8.
this command seems to work
sudo heimdall flash –1 NON-HLOS.bin
I don’t quite understand how reinstalling the sprint ROM works with a reinstall of cyanogen. Data worked before I installed cyanogen so I must have had the correct modern sw. Am I missing something?
Hi Joe… it’s just that the latest versions of Cyanogenmod require the newer Sprint modem software. By flashing the Sprint ROM, you’re moving your phone’s modem to a more recent version, which is then compatible with Cyanogenmod.
It’s a good idea to update the modem regardless… it just so happens that the Cyanogenmod folks ended up bringing our attention to it.
Hope this helps!