Об этом проекте

# Клиент атаки 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 с дополнительными ограничениями: запрещено использование в коммерческих продуктах без предварительного разрешения. Любое использование в скомпилированном виде требует открытия исходного кода.