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.