프로젝트 소개
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 및 추가 제한: 사전 허가 없이 상업 제품에 사용할 수 없습니다. 컴파일된 형태로 사용하는 경우 코드를 오픈소스화해야 합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.