Sobre el proyecto
# Cliente de ataque Qualcomm Sahara / Firehose / Herramientas de diagnóstico
Este es un conjunto de herramientas no oficial para trabajar con el modo de Descarga de Emergencia (EDL) de Qualcomm, que proporciona acceso de bajo nivel para volcar, flashear y depurar dispositivos utilizando los protocolos Sahara y Firehose. Está licenciado bajo GPLv3, con restricciones adicionales contra el uso comercial sin permiso.
## Características principales
- **Soporte Sahara V3**: Se corrigió el problema por el cual la información del chip (MSM_ID, OEM_ID, MODEL_ID) no se podía leer en dispositivos Qualcomm más nuevos. Utiliza el comando 0x0A (CHIP_ID_V3_READ) para obtener información extendida.
- **Gestión de particiones**: Volcar, escribir y administrar particiones en memoria flash eMMC y UFS.
- **Detección automática de cargadores**: Detecta y utiliza automáticamente los cargadores apropiados según la coincidencia de HWID/MSM_ID/PKHash.
- **Herramientas de puerto de diagnóstico**: Incluye `qc_diag` para operaciones de diagnóstico como copia de seguridad de NV, listado de directorios EFS y más.
- **Modo de transmisión**: Soporte para transmitir datos hacia y desde la memoria del dispositivo.
- **Comandos XML sin procesar**: Enviar cadenas XML personalizadas para operaciones avanzadas.
## Instalación
### Linux (Debian/Ubuntu/Mint)
```bash
sudo apt install adb fastboot python3-dev python3-pip liblzma-dev git
sudo apt purge modemmanager
sudo systemctl stop ModemManager
sudo systemctl disable ModemManager
git clone https://github.com/bkerler/edl.git
cd edl
git submodule update --init --recursive
pip3 install -r requirements.txt
```
### macOS
```bash
brew install libusb git
git clone https://github.com/bkerler/edl.git
```
### Windows
Utilice el instalador automático de PowerShell o la configuración manual con Python 3.10+, git y UsbDk.
## Ejemplos de uso
- `edl rl dumps --memory=ufs --lun=0 --skip=userdata,vendor_a` - Volcar todas las particiones de lun0 al directorio dumps, omitiendo userdata y vendor_a
- `edl rs 0 15 data.bin` - Volcar 15 sectores desde el sector 0 al archivo data.bin
- `edl w boot boot.img --memory=ufs --lun=4` - Escribir boot.img en la partición boot en lun 4
- `edl wl dumps --memory=ufs --lun=0` - Escribir todos los archivos de la carpeta dumps en las particiones
- `edl qfil rawprogram0.xml patch0.xml image_dir` - Flashear la imagen completa usando archivos XML QFIL
- `edl pokeqword 0x200000 0x400000` - Escribir valor q-word en el desplazamiento de memoria
- `edl secureboot` - Mostrar fusibles de arranque seguro (solo cargadores EL3)
- `edl pbl pbl.bin` - Volcar PBL (solo cargadores EL3)
- `edl qfp qfp.bin` - Volcar fusibles QFPROM (solo cargadores EL3)
- `edl modules oemunlock enable` - Desbloquear OEM si existe la partición de configuración
## Gestión de cargadores
- Los cargadores se obtienen automáticamente mediante submódulo git o desde el [repositorio de cargadores](https://github.com/bkerler/Loaders)
- Utilice `fhloaderparse` para convertir cargadores EDL personalizados para uso automático
- Los cargadores se almacenan en el directorio `Loaders` con la convención de nombres `msmid_pkhash[8 bytes].bin`
## Dispositivos compatibles (parcial)
- OnePlus 3T/5/6T/7T/8/8t/9/Nord CE/N10/N100 (solo lectura)
- BQ X, BQ X5, BQ X2
- Gigaset ME Pure
- ZTE MF210, MF920V
- Sierra Wireless EM7455
- Netgear MR1100-10EUS, MR5100
- Varios dispositivos Xiaomi (probados con SM8350, SM8450, SM8550)
## Limitaciones
- Cargador seguro con SDM660 en Xiaomi aún no compatible (autenticación EDL)
- Programación VIP no compatible
- Escritura de directorio EFS y lectura de archivos aún no implementadas
- Algunas operaciones requieren cargadores EL3
## Licencia
GPLv3 con restricciones adicionales: No se permite el uso en productos comerciales sin permiso previo. Cualquier uso en forma compilada requiere liberar el código fuente.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.