Mostly Linux and BSD around here, except the Mandatory Corporate Windows Laptop which is out of bounds for our purposes. I suppose I’ll guinea pig an heimdall method then.
I mostly followed that method, with help from the following command to match partition names to the available files:
# ls -1 | sort | while read i; do grep -B 1 $i S9.pit; done
Partition Name: BOOT
Flash Filename: boot.img
Partition Name: CACHE
Flash Filename: cache.img
Partition Name: CM
Flash Filename: cm.bin
Partition Name: DQMDBG
Flash Filename: dqmdbg.img
Partition Name: HIDDEN
Flash Filename: hidden.img
Partition Name: KEYSTORAGE
Flash Filename: keystorage.bin
Partition Name: RADIO
Flash Filename: modem.bin
Partition Name: CP_DEBUG
Flash Filename: modem_debug.bin
Partition Name: ODM
Flash Filename: odm.img
Partition Name: OMR
Flash Filename: omr.img
Partition Name: PARAM
Flash Filename: param.bin
--
Partition Name: UP_PARAM
Flash Filename: up_param.bin
Partition Name: RECOVERY
Flash Filename: recovery.img
Partition Name: BOOTLOADER
Flash Filename: sboot.bin
Partition Name: SYSTEM
Flash Filename: system.img
Partition Name: UP_PARAM
Flash Filename: up_param.bin
Partition Name: USERDATA
Flash Filename: userdata.img
Partition Name: VENDOR
Flash Filename: vendor.img
And from that we get the meat of the heimdall command:
# ls -1 | sort | while read i; do grep -B 1 $i S9.pit; done | sed s/Partition\ Name:\ /--/g | sed s/Flash\ Filename:\ // | tr '\n' ' '
--BOOT boot.img --CACHE cache.img --CM cm.bin --DQMDBG dqmdbg.img --HIDDEN hidden.img --KEYSTORAGE keystorage.bin --RADIO modem.bin --CP_DEBUG modem_debug.bin --ODM odm.img --OMR omr.img --PARAM param.bin -- --UP_PARAM up_param.bin --RECOVERY recovery.img --BOOTLOADER sboot.bin --SYSTEM system.img --UP_PARAM up_param.bin --USERDATA userdata.img --VENDOR vendor.img
Room for improvement: “–UP_PARAM up_param.bin” appears twice, and a stray “–”
Good thing I built my own command: it contains two partitions and relevant files absent from the aforementioned method.
Soooo…
# heimdall flash --BOOT boot.img --CACHE cache.img --CM cm.bin --DQMDBG dqmdbg.img --HIDDEN hidden.img --KEYSTORAGE keystorage.bin --RADIO modem.bin --CP_DEBUG modem_debug.bin --ODM odm.img --OMR omr.img --PARAM param.bin --RECOVERY recovery.img --BOOTLOADER sboot.bin --SYSTEM system.img --UP_PARAM up_param.bin --USERDATA userdata.img --VENDOR vendor.img
Heimdall v1.4.2
Copyright (c) 2010-2017 Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au/
This software is provided free of charge. Copying and redistribution is
encouraged.
If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/
Initialising connection...
Detecting device...
Claiming interface...
Setting up interface...
Initialising protocol...
Protocol initialisation successful.
Beginning session...
Some devices may take up to 2 minutes to respond.
Please be patient!
Session begun.
Downloading device's PIT file...
PIT file download successful.
Uploading BOOT
100%
BOOT upload successful
Uploading CACHE
100%
CACHE upload successful
Uploading CM
100%
CM upload successful
Uploading DQMDBG
100%
DQMDBG upload successful
Uploading HIDDEN
100%
HIDDEN upload successful
Uploading KEYSTORAGE
100%
KEYSTORAGE upload successful
Uploading RADIO
72%
ERROR: Failed to send file part packet!
ERROR: RADIO upload failed!
Ending session...
ERROR: Failed to send end session packet!
Releasing device interface...
Result: failure.
Relevant bit:
Uploading RADIO
72%
ERROR: Failed to send file part packet!
ERROR: RADIO upload failed!
And I reproduce that behaviour at each attempt.
Well, progress - but we’re not there yet: I find absolutely no sense in the upload failing at that specific point each time. I found another person with the same symptom, but he never found the cause.