Об этом проекте
# Клиент атаки Qualcomm Sahara / Firehose / Инструменты Diag
Это неофициальный набор инструментов для работы с режимом Qualcomm Emergency Download (EDL), предоставляющий низкоуровневый доступ для дампа, прошивки и отладки устройств с использованием протоколов Sahara и Firehose. Он распространяется под лицензией GPLv3 с дополнительными ограничениями на коммерческое использование без разрешения.
## Ключевые особенности
- **Поддержка Sahara V3**: Исправлена проблема, из-за которой информацию о чипе (MSM_ID, OEM_ID, MODEL_ID) нельзя было прочитать на новых устройствах Qualcomm. Используется команда 0x0A (CHIP_ID_V3_READ) для получения расширенной информации.
- **Управление разделами**: Дамп, запись и управление разделами на флеш-памяти eMMC и UFS.
- **Автоопределение загрузчика**: Автоматически определяет и использует подходящие загрузчики на основе соответствия HWID/MSM_ID/PKHash.
- **Инструменты диагностического порта**: Включает `qc_diag` для диагностических операций, таких как резервное копирование NV, листинг каталога EFS и многое другое.
- **Потоковый режим**: Поддержка потоковой передачи данных в/из памяти устройства.
- **Сырые XML-команды**: Отправка пользовательских XML-строк для расширенных операций.
## Установка
### 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
Используйте автоматический установщик PowerShell или ручную настройку с Python 3.10+, git и UsbDk.
## Примеры использования
- `edl rl dumps --memory=ufs --lun=0 --skip=userdata,vendor_a` - Дамп всех разделов с lun0 в каталог dumps, пропуская userdata и vendor_a
- `edl rs 0 15 data.bin` - Дамп 15 секторов с сектора 0 в файл data.bin
- `edl w boot boot.img --memory=ufs --lun=4` - Запись boot.img в раздел boot на lun 4
- `edl wl dumps --memory=ufs --lun=0` - Запись всех файлов из папки dumps в разделы
- `edl qfil rawprogram0.xml patch0.xml image_dir` - Прошивка полного образа с использованием XML-файлов QFIL
- `edl pokeqword 0x200000 0x400000` - Запись значения q-word по смещению в памяти
- `edl secureboot` - Отображение фьюзов secureboot (только загрузчики EL3)
- `edl pbl pbl.bin` - Дамп PBL (только загрузчики EL3)
- `edl qfp qfp.bin` - Дамп фьюзов QFPROM (только загрузчики EL3)
- `edl modules oemunlock enable` - Разблокировка OEM, если существует раздел config
## Управление загрузчиками
- Загрузчики автоматически загружаются через подмодуль git или из [репозитория Loaders](https://github.com/bkerler/Loaders)
- Используйте `fhloaderparse` для конвертации пользовательских EDL-загрузчиков для автоматического использования
- Загрузчики хранятся в каталоге `Loaders` с соглашением об именовании `msmid_pkhash[8 байт].bin`
## Поддерживаемые устройства (частично)
- OnePlus 3T/5/6T/7T/8/8t/9/Nord CE/N10/N100 (только чтение)
- BQ X, BQ X5, BQ X2
- Gigaset ME Pure
- ZTE MF210, MF920V
- Sierra Wireless EM7455
- Netgear MR1100-10EUS, MR5100
- Различные устройства Xiaomi (протестировано с SM8350, SM8450, SM8550)
## Ограничения
- Защищённый загрузчик с SDM660 на Xiaomi пока не поддерживается (аутентификация EDL)
- VIP-программирование не поддерживается
- Запись каталога EFS и чтение файлов ещё не реализованы
- Некоторые операции требуют загрузчиков EL3
## Лицензия
GPLv3 с дополнительными ограничениями: запрещено использование в коммерческих продуктах без предварительного разрешения. Любое использование в скомпилированном виде требует открытия исходного кода.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.