Flashing modems/baseband for SGS4 and OnePlus One from Linux/MacOSX

After a while of having “one the edge” releases of CyanogenMod on both my and my wife’s phones our phones started… acting up. So common suggestion was to bum baseband release as it is most likely not providing functions required by newer OS. So I set out to do so with some stumbling along the way.

Get the modem (extracted from full firmware – waste of bandwidth, but I don’t care for stock OS) for SGS4:

$ sudo heimdall flash --MDM modem.bin --no-reboot

ran above code several times, manually rebooting right back into download mode (VolDown+Home+Pwr) and eventually it stuck with the phone (do it “not enough” times and you’ll get phone in it’s original state).

Note: heimdall print-pit was instrumental in figuring out the --MDM option as it listed proper partition.

For OnePlus One things were kind of simpler: downloaded flashable zip with modem in it, and flashed it via TWRP. Doing the same from CLI with fastboot for some reason was not doing anything.