Note: if you’re not running a custom ROM – i.e. you’re running stock TouchWiz – and need to do this, see Phase 4 only. You’ll need to be rooted.
If you’re running a custom ROM on your S5 and GPS can’t get a fix despite rebooting, battery pulling, flashing new builds, and using all of GPS Status & Toolbox‘s tricks, chances are you’ll need to do rebuild the GPS NVRAM. Here’s how.
Phase 1: Backup your current custom ROM installation.
Instructions (which assume you use TWRP) in Phase 9 here.
Phase 2: Wipe the phone in TWRP.
- Boot into TWRP.
- Tap Wipe.
- Swipe to wipe using the default settings.
Phase 2: Flash the latest baseband in Odin.
- Find the latest baseband under the “Odin” heading here. If the files there are .tar archives, you’ll need to extract the .bin baseband files (usually called modem.bin and/or NON-HLOS.bin) from them.
- Flash it using instructions in Phase 3 here. You will need to do perform this for modem.bin and NON-HLOS.bin separately as ODIN reboots the phone after each individual flash.
Phase 3: Restore your rooted TouchWiz ROM.
If you don’t already have one of those, here’s how to get one. If you’re setting up a rooted TouchWiz ROM for the 1st time then you don’t have to restore anything because it’ll already be running, so you can proceed to the next phase.
- Boot into TWRP.
- Tap Restore.
- Tap Select Storage.
- Select the folder containing the backup.
- Swipe to restore.
Phase 4: Rebuild the GPS NVRAM.
- Boot into TouchWiz.
- Install Shotcut Master (Lite).
- Follow these instructions starting from “Open ‘Secret Explorer’ menu” onward onto the 3rd to last sentence.
Phase 3: Wipe the phone in TWRP.
Same process as Phase 2.
Phase 4: Restore the backup you made in Phase 1.
Same process as Phase 3, but with the custom ROM backup instead.
GPS should be back to working now. I have no idea what causes this problem, but so far this is the most involved custom ROM-related fix I’ve had to do.