프로젝트 소개

Qualcomm Sahara / Firehose Attack Client / Diag Tools 이것은 Qualcomm 비상 다운로드(EDL) 모드 작업을 위한 비공식 도구 세트로, Sahara 및 Firehose 프로토콜을 사용해 기기를 덤프, 플래시, 디버깅할 수 있는 저수준 접근을 제공합니다. GPLv3 라이선스로 배포되며, 허가 없는 상업적 사용을 금지하는 추가 제한이 있습니다. 주요 기능 - Sahara V3 지원: 최신 Qualcomm 기기에서 칩 정보(MSM_ID, OEM_ID, MODEL_ID)를 읽을 수 없던 문제 수정. 확장 정보를 위해 명령 0x0A(CHIP_ID_V3_READ) 사용. - 파티션 관리: eMMC 및 UFS 플래시 메모리의 파티션 덤프, 쓰기, 관리. - 로더 자동 감지: HWID/MSM_ID/PKHash 매칭을 기반으로 적절한 로더를 자동 감지 및 사용. - 진단 포트 도구: NV 백업, EFS 디렉터리 목록 조회 등 진단 작업을 위한 qc_diag 포함. - 스트리밍 모드: 기기 메모리와의 데이터 스트리밍 지원. - Raw XML 명령: 고급 작업을 위한 사용자 지정 XML 문자열 전송. 설치 Linux (Debian/Ubuntu/Mint): 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: 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 - config 파티션이 존재하는 경우 OEM 잠금 해제 로더 관리 - 로더는 git 서브모듈 또는 Loaders 저장소(https://github.com/bkerler/Loaders)를 통해 자동으로 가져옵니다. - fhloaderparse를 사용해 사용자 지정 EDL 로더를 변환하여 자동 사용할 수 있습니다. - 로더는 Loaders 디렉터리에 msmid_pkhash[8 bytes].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로 테스트됨) 제한 사항 - Xiaomi의 SDM660 보안 로더는 아직 지원되지 않음(EDL 인증) - VIP 프로그래밍 미지원 - EFS 디렉터리 쓰기 및 파일 읽기는 아직 구현되지 않음 - 일부 작업에는 EL3 로더 필요 라이선스 GPLv3 및 추가 제한: 사전 허가 없이 상업 제품에 사용할 수 없습니다. 컴파일된 형태로 사용하는 경우 코드를 오픈소스화해야 합니다.