À propos du projet
# Client d'attaque Qualcomm Sahara / Firehose / Outils Diag
Ceci est un ensemble d'outils non officiel pour travailler avec le mode Qualcomm Emergency Download (EDL), offrant un accès de bas niveau pour dumper, flasher et déboguer des appareils en utilisant les protocoles Sahara et Firehose. Il est sous licence GPLv3, avec des restrictions supplémentaires contre l'utilisation commerciale sans autorisation.
## Fonctionnalités clés
- **Support Sahara V3** : Correction du problème où les informations de puce (MSM_ID, OEM_ID, MODEL_ID) ne pouvaient pas être lues sur les appareils Qualcomm plus récents. Utilise la commande 0x0A (CHIP_ID_V3_READ) pour des informations étendues.
- **Gestion des partitions** : Dump, écriture et gestion des partitions sur la mémoire flash eMMC et UFS.
- **Détection automatique du chargeur** : Détecte et utilise automatiquement les chargeurs appropriés en fonction de la correspondance HWID/MSM_ID/PKHash.
- **Outils de port Diag** : Inclut `qc_diag` pour les opérations de diagnostic comme la sauvegarde NV, la liste des répertoires EFS, et plus encore.
- **Mode streaming** : Support du streaming de données vers/depuis la mémoire de l'appareil.
- **Commandes XML brutes** : Envoi de chaînes XML personnalisées pour des opérations avancées.
## Installation
### 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
Utilisez l'installateur PowerShell automatique ou la configuration manuelle avec Python 3.10+, git et UsbDk.
## Exemples d'utilisation
- `edl rl dumps --memory=ufs --lun=0 --skip=userdata,vendor_a` - Dump toutes les partitions du lun0 vers le répertoire dumps, en sautant userdata et vendor_a
- `edl rs 0 15 data.bin` - Dump 15 secteurs à partir du secteur 0 vers le fichier data.bin
- `edl w boot boot.img --memory=ufs --lun=4` - Écrire boot.img sur la partition boot du lun 4
- `edl wl dumps --memory=ufs --lun=0` - Écrire tous les fichiers du dossier dumps vers les partitions
- `edl qfil rawprogram0.xml patch0.xml image_dir` - Flasher l'image complète en utilisant les fichiers XML QFIL
- `edl pokeqword 0x200000 0x400000` - Écrire une valeur q-word à l'offset mémoire
- `edl secureboot` - Afficher les fusibles secureboot (chargeurs EL3 uniquement)
- `edl pbl pbl.bin` - Dump PBL (chargeurs EL3 uniquement)
- `edl qfp qfp.bin` - Dump les fusibles QFPROM (chargeurs EL3 uniquement)
- `edl modules oemunlock enable` - Déverrouiller OEM si la partition config existe
## Gestion des chargeurs
- Les chargeurs sont automatiquement récupérés via le sous-module git ou depuis le [dépôt Loaders](https://github.com/bkerler/Loaders)
- Utilisez `fhloaderparse` pour convertir les chargeurs EDL personnalisés pour une utilisation automatique
- Les chargeurs sont stockés dans le répertoire `Loaders` avec la convention de nommage `msmid_pkhash[8 bytes].bin`
## Appareils supportés (partiel)
- OnePlus 3T/5/6T/7T/8/8t/9/Nord CE/N10/N100 (lecture seule)
- BQ X, BQ X5, BQ X2
- Gigaset ME Pure
- ZTE MF210, MF920V
- Sierra Wireless EM7455
- Netgear MR1100-10EUS, MR5100
- Divers appareils Xiaomi (testés avec SM8350, SM8450, SM8550)
## Limitations
- Chargeur sécurisé avec SDM660 sur Xiaomi pas encore supporté (authentification EDL)
- Programmation VIP non supportée
- Écriture de répertoire EFS et lecture de fichier pas encore implémentées
- Certaines opérations nécessitent des chargeurs EL3
## Licence
GPLv3 avec restrictions supplémentaires : Pas d'utilisation dans des produits commerciaux sans autorisation préalable. Toute utilisation sous forme compilée nécessite l'ouverture du code source.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.