Blog

Dumpear particiones en móviles Qualcomm: EDL/Qualcomm Sahara

Dumpear particiones en móviles Qualcomm: EDL/Qualcomm Sahara

Utilizo https://github.com/bkerler/edl

Ejemplo para un Fairphone 3+, información obtenida del foro del foro de Fairphone

Si el lector quiere saber detalles sobre EDL y Qualcomm Sahara, puede verlos aquí.

He instalado edl siguiendo las instrucciones de https://github.com/bkerler/edl. En mi caso (distribución Arch) no he necesitado desinstalar el servicio ModemManager porque no estaba en mi sistema. La única variación respecto a las instrucciones de instalación es que he empleado virtualenv. Esto es lo que he hecho desde el directorio donde he clonado edl:

 python -m venv .venv
 source .venv/bin/activate
 pip3 install -r requirements.txt
 sudo cp Drivers/51-edl.rules /etc/udev/rules.d
 sudo cp Drivers/50-android.rules /etc/udev/rules.d
 python3 setup.py build
 sudo python3 setup.py install
(.venv) j@furin ~/Documents/ocio/software/edl % which edl                                                                                                                                                       [0]
/mnt/hayai/Documents/ocio/software/edl/.venv/bin/edl

Ahora tenemos que iniciar el Fairphone 3 en modo EDL. Apagamos el móvil y pulsamos todas las teclas físicas a la vez (encendido, incremento de volumen, decremento de volumen). El teléfono vibra una vez pero después la pantalla está apagada, y la luz de carga también.

You can however force EDL mode by holding both volume-buttons during power on.

https://forum.fairphone.com/t/fairphone-3-unbricking/57549

Al hacer lsusb nos debe sair lo siguiente:

(.venv) j@furin ~/Documents/ocio/software/edl % lsusb
[...]                                                                                                               
Bus 006 Device 086: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)
[...]

Dumpeamos la partición boot:

(.venv) j@furin ~/Documents/ocio/temp % edl r boot_a boot_desde_edl.img                                                                                                                              [0]
Qualcomm Sahara / Firehose Client V3.61 (c) B.Kerler 2018-2023.
main - Trying with no loader given ...
main - Waiting for the device
main - Device detected :)
main - Mode detected: firehose
main - Trying to connect to firehose loader ...
firehose - Nop succeeded.
firehose - No supported functions detected, configuring qc generic commands
firehose - 
firehose_client
firehose_client - [LIB]: No --memory option set, we assume "UFS" as default ..., if it fails, try using "--memory" with "UFS","NAND" or "spinor" instead !
firehose
firehose - [LIB]: Memory type was set as UFS but device reported it is eMMC instead.
firehose - TargetName=MSM8953
firehose - MemoryName=eMMC
firehose - Version=1
firehose - Trying to read first storage sector...
firehose - Running configure...
firehose - Storage report:
firehose - total_blocks:122142720
firehose - block_size:512
firehose - page_size:512
firehose - num_physical:3
firehose - mfr_id:21
firehose - serial_num:2314658880
firehose - fw_version:1
firehose - mem_type:eMMC
firehose - prod_name:RP64MB
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 962816, sectors 131072
Progress: |██████████| 100.0% Read (Sector 0x20000 of 0x20000, ) 28.18 MB/s                                                                                                                                       
Dumped sector 962816 with sector count 131072 as boot_desde_edl.img.

Como curiosidad, la he comparado el hash MD5 del boot que flasheé hace tiempo, magisk_patched-26102_xxxxx.img con el dumpeado boot_desde_edl.img y coinciden, así que funciona bien.