这个项目能做什么

# 高通 Sahara / Firehose 攻击客户端 / 诊断工具 这是一套非官方工具集,用于操作高通紧急下载(EDL)模式,通过Sahara和Firehose协议提供底层访问,实现设备的转储、刷写和调试。采用GPLv3许可,并附加限制:未经许可不得用于商业用途。 ## 主要特性 - **Sahara V3 支持**:修复了在新款高通设备上无法读取芯片信息(MSM_ID、OEM_ID、MODEL_ID)的问题。使用命令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` - 从扇区0开始转储15个扇区到文件data.bin - `edl w boot boot.img --memory=ufs --lun=4` - 将boot.img写入lun 4上的boot分区 - `edl wl dumps --memory=ufs --lun=0` - 将dumps文件夹中的所有文件写入对应分区 - `edl qfil rawprogram0.xml patch0.xml image_dir` - 使用QFIL XML文件刷写完整镜像 - `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 ## 加载器管理 - 加载器通过git子模块自动获取,或从[加载器仓库](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 - 各种小米设备(已测试SM8350、SM8450、SM8550) ## 限制 - 小米SDM660的安全加载器尚不支持(EDL认证) - 不支持VIP编程 - EFS目录写入和文件读取尚未实现 - 某些操作需要EL3加载器 ## 许可 GPLv3并附加限制:未经事先许可不得用于商业产品。任何以编译形式使用均需开源你的代码。