Sobre o projeto
# Cliente de Ataque Sahara / Firehose da Qualcomm / Ferramentas de Diag
Este é um conjunto de ferramentas não oficial para trabalhar com o modo Emergency Download (EDL) da Qualcomm, fornecendo acesso de baixo nível para despejar, gravar e depurar dispositivos usando os protocolos Sahara e Firehose. Está licenciado sob GPLv3, com restrições adicionais contra uso comercial sem permissão.
## Principais Recursos
- **Suporte a Sahara V3**: Corrigido problema em que as informações do chip (MSM_ID, OEM_ID, MODEL_ID) não podiam ser lidas em dispositivos Qualcomm mais recentes. Usa o comando 0x0A (CHIP_ID_V3_READ) para informações estendidas.
- **Gerenciamento de Partições**: Despeja, grava e gerencia partições em memória flash eMMC e UFS.
- **Detecção Automática de Loader**: Detecta e usa automaticamente loaders apropriados com base na correspondência de HWID/MSM_ID/PKHash.
- **Ferramentas de Porta de Diag**: Inclui `qc_diag` para operações de diagnóstico como backup de NV, listagem de diretórios EFS e mais.
- **Modo de Streaming**: Suporte para streaming de dados de/para a memória do dispositivo.
- **Comandos XML Brutos**: Envia strings XML personalizadas para operações avançadas.
## Instalação
### 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
Use o instalador automático do PowerShell ou a configuração manual com Python 3.10+, git e UsbDk.
## Exemplos de Uso
- `edl rl dumps --memory=ufs --lun=0 --skip=userdata,vendor_a` - Despeja todas as partições do lun0 para o diretório dumps, pulando userdata e vendor_a
- `edl rs 0 15 data.bin` - Despeja 15 setores do setor 0 para o arquivo data.bin
- `edl w boot boot.img --memory=ufs --lun=4` - Grava boot.img na partição boot no lun 4
- `edl wl dumps --memory=ufs --lun=0` - Grava todos os arquivos da pasta dumps nas partições
- `edl qfil rawprogram0.xml patch0.xml image_dir` - Grava imagem completa usando arquivos XML QFIL
- `edl pokeqword 0x200000 0x400000` - Grava valor q-word no deslocamento de memória
- `edl secureboot` - Exibe fusíveis de secureboot (somente loaders EL3)
- `edl pbl pbl.bin` - Despeja PBL (somente loaders EL3)
- `edl qfp qfp.bin` - Despeja fusíveis QFPROM (somente loaders EL3)
- `edl modules oemunlock enable` - Desbloqueia OEM se a partição de configuração existir
## Gerenciamento de Loaders
- Loaders são obtidos automaticamente via submódulo git ou do [repositório Loaders](https://github.com/bkerler/Loaders)
- Use `fhloaderparse` para converter loaders EDL personalizados para uso automático
- Loaders são armazenados no diretório `Loaders` com convenção de nomenclatura `msmid_pkhash[8 bytes].bin`
## Dispositivos Suportados (Parcial)
- OnePlus 3T/5/6T/7T/8/8t/9/Nord CE/N10/N100 (Somente Leitura)
- BQ X, BQ X5, BQ X2
- Gigaset ME Pure
- ZTE MF210, MF920V
- Sierra Wireless EM7455
- Netgear MR1100-10EUS, MR5100
- Vários dispositivos Xiaomi (testados com SM8350, SM8450, SM8550)
## Limitações
- Loader seguro com SDM660 na Xiaomi ainda não suportado (autenticação EDL)
- Programação VIP não suportada
- Gravação de diretório EFS e leitura de arquivo ainda não implementadas
- Algumas operações requerem loaders EL3
## Licença
GPLv3 com restrições adicionais: Sem uso em produtos comerciais sem permissão prévia. Qualquer uso em forma compilada requer a abertura do código-fonte do seu código.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.