Manual flashing

From postmarketOS
Note If you only need to slightly adjust the way pmbootstrap runs a flasher, you can grab the exact command it uses from the pmbootstrap log and modify it when running manually.

Sometimes you just need to flash ready system image externally. Export the images that pmbootstrap generated with pmbootstrap export and read on, how to call the flashing application from your host OS.


See fastboot --help, and expand this section if you find out something that would have helped you.

LineageOS Recovery can be flashed with Odin. From LOS Recovery you can enter userspace fastbootd to flash .img files via fastboot. This was implemented in Android 10, provided the recovery supports entering into fastbootd. Yes, fastboot on a Samsung device. Tested and working on Tab S5e, but should work on all Samsung from A10 + with supporting recovery.

Note Recent (circa Sep-Nov2023) versions of fastboot (as available in the android-tools package on common linux distributions) may be broken. fastboot will coredump when flashing known good pmos.img files. The error message is
terminate called after throwing an instance of 'std::out_of_range'
  what(): basic_string::compare: __pos (which is 464) > this->size() (which is 0)

Known problematic packages are (archlinux): android-tools-34.0.4-[2,3].

Known working package is android-tools-34.0.1-2.


Odin is an official flasher for many Samsung devices, runs only on Windows. Make sure you have the latest Samsung USB drivers installed before plugging in the smartphone in Odin mode.

To flash your phone with it you will need .pit file containing information about all partitions, you can find one online or download it from the device e.g using Heimdall.


Flash tab in heimdall-frontend

Heimdall is an opensource alternative to Odin that runs on Windows, Mac and Linux and can flash many Samsung phones. Be aware that Heimdall doesn't support some Samsung phones (usually that uses different file than .pit).

The user grimler maintains a Heimdall fork here with some additional patches, since the development at the official repository has stalled.

Easy way

Use heimdall-frontend

On tab Utilities you can obtain .pit file from the device by choosing save location and clicking download

Note NEVER select "Repartition", it will most certainly brick your phone!

When you have .pit file and required img files you can go to Flash tab, select your .pit file, add new partition, configure it (name and flashed file), optionally add more partitions and click Start to flash everything to the device.

Hard way

First, turn on your phone in download mode (You can use heimdall detect to see if Heimdall detects it.)

To download .pit from the device:

heimdall download-pit --output file.pit

Note code below was not yet tested, I would advise against using it

When you have .pit file and required img files you can flash your device with:

heimdall flash --pit file.pit [--<partition name> <filename>] [--<partition identifier> <filename>]

You should be able to flash several partitions at once

Flashing TWRP can be done in the following way (change filepath to the location of your twrp):

heimdall flash --RECOVERY ~/twrp.img --no-reboot