OK, so the problem is indeed with the size calculation.
Previous attempts generated and xml file all the partitions and their data. Start sector, file, label, etc.
Out of these, it dumped only the first one, "xbl.bin", and strangely the last two, named "gpt_main0.bin" and "gpt_backup0". All three with smaller size than shown in the xml, so they are dumped wrong.
I tried to dump only boot, recovery and system with "python edl.py --loader=QC_SDM636.bin --memory=eMMC r boot,recovery,system boot.img,recovery.img,system.img", but it stalls on the first one already:
Code:
python edl.py --loader=QC_SDM636.bin --memory=eMMC r boot,recovery,system boot.img,recovery.img,system.img
Qualcomm Sahara / Firehose Client V3.52 (c) B.Kerler 2018-2021.
main - Using loader QC_SDM636.bin ...
main - Waiting for the device
main - Device detected :)
main - Mode detected: sahara
Device is in EDL mode .. continuing.
sahara -
------------------------
HWID: ...
CPU detected: "SDM636"
PK_HASH: ...
Serial: 0xadb323a2
sahara - Uploading loader QC_SDM636.bin ...
Successfully uploaded programmer :)
firehose - Nop succeeded.
firehose - Chip serial num: 0 (0x0)
firehose -
firehose_client - Target detected: SDM636
firehose - TargetName=MSM8996
firehose - MemoryName=eMMC
firehose - Version=1
firehose_client - Supported functions:
-----------------
configure,program,firmwarewrite,patch,setbootablestoragedrive,ufs,emmc,power,benchmark,read,getstorageinfo,getcrc16digest,getsha256digest,erase,peek,poke,nop,xml
firehose -
Reading from physical partition 0, sector 262144, sectors 131072
Progress: |--------------------------------------------------| 0.0% CompleteTraceback (most recent call last):
File "D:\edl\edl.py", line 358, in <module>
base.run()
File "D:\edl\edl.py", line 340, in run
fh.handle_firehose(cmd, options)
File "D:\edl\edl\Library\firehose_client.py", line 245, in handle_firehose
if self.firehose.cmd_read(lun, rpartition.sector, rpartition.sectors, partfilename):
File "D:\edl\edl\Library\firehose.py", line 610, in cmd_read
show_progress("Read", total - bytestoread, total, display)
File "D:\edl\edl\Library\firehose.py", line 174, in show_progress
throughput=(((datasize)/(tdiff)))
ZeroDivisionError: float division by zero
I should probably submit an issue to GitHub.