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.

Fedora & AWS

Playing with Fedora on AWS I ended up needing HVM image yet all available images were Paravirt so I needed to “create” HVM image.

Thanks to helpful advise from ServerFault it turned out to be relatively simple (however I can’t say it was straightforward) using web console:

  • using PV image create EBS-backed instance instanceA
  • adjust instance config as necessary
  • take a snapshot of instanceA – snapA
  • from snapA create image specifying HVM as virt type
  • done

I have also found Pyhon-based CLI which has proved somewhat entertaining. One thing not mentioned is that to use it you have to create group for admins (it’ll ask for type of permissions for that group), then create/assign user to that group. Use “aws ec2 configure”.