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.