The updated firmware file is a file, which contains two files: for the 3g modem in your phone, and for the LTE modem in your phone. Apparently if you’re on Windows you can use Odin which will let you send both those files at once by choosing the combined file. I used the excellent, open source, cross-platform tool Heimdall, which has a great, easy command line interface.
Download and install, and unpack that file somewhere convenient. For the Samsung Galaxy S4, this means: 1) Power off by holding the power button. Then in the Terminal, run: (do not include the ~$ in your typing!
There are a bunch of posts like this one with download links to tons of different firmwares. If there isn’t a build for exactly the same version of Android that you have, it’s OK to use one a little bit behind.
Over time however, if you’re updating your OS but not your firmware, your cellular modem is getting gradually more and more out of sync with what the driver in the OS expects of it. Updating your modem firmware doesn’t touch the rest of the operating system, and it doesn’t touch your data.
In my case, I had a recent build of Cyanogenmod based on Android 4.4.4, last updated in March 2015, and a modem firmware that was based on 4.2.2, last updated in May 2013. It’s always a good idea to take a backup, but this is not a high risk operation for your data.
If you’re not careful you might make your signal situation even worse, but at least your photos and contacts will be OK!
That could leave you in a situation like this; If your phone is a GT-I9505 from T-Mobile Germany, you can shortcut this process and get the same download I did]( If you have any other device or are from any other region or phone company, .
Double check it, you can really mess up your phone if you do this wrong.