Skip to content
/ EDL Public

🚀 Multi-Platform Android Flash Tool | Qualcomm EDL / MTK BROM / Unisoc SPRD | 多平台安卓刷机工具

License

Notifications You must be signed in to change notification settings

xiriovo/EDL

Repository files navigation

Typing SVG

Build Coffee Bugs Sleep

.NET 8.0 Windows MIT License Stars

Qualcomm MTK Unisoc ADB


rainbow line

🇨🇳 中文🇺🇸 English🇯🇵 日本語🇰🇷 한국어🇪🇸 Español🇷🇺 Русский

rainbow line


📸 Screenshots / 截图 / スクリーンショット


( •̀ ω •́ )✧ 截图正在路上,请稍候...
Screenshots coming soon, please wait...
スクリーンショットは準備中です...



✅ 稳定可用

✅ 基本完成

⚠️ 开发中

⚠️ 开发中

🇨🇳 中文文档

✨ 功能特性

📱 高通 (Qualcomm)

功能 描述
🔌 EDL 9008 模式 - Sahara + Firehose 协议
💾 分区管理 - 读取/写入/擦除分区
📊 GPT 解析 - 自动识别分区表
🎯 Super 分区 - 动态分区刷写
☁️ 云端 Loader - 自动匹配 Programmer
🏷️ 多品牌 - 小米/OPPO/一加/Realme/vivo

📱 联发科 (MTK)

功能 描述
🔧 BROM 模式 - Preloader 连接
📋 DA 代理 - 下载代理支持
📄 Scatter 解析 - 自动加载配置
🔓 Auth 绕过 - SLA/DAA 认证

📱 展讯 (Unisoc)

功能 描述
⬇️ Download 模式 - SPRD 协议
📦 PAC 固件 - 自动解析提取
🚀 FDL 发送 - FDL1/FDL2 加载
🔓 RSA 绕过 - 签名验证绕过
📱 Diag 诊断 - IMEI/AT 命令

🔧 通用功能

功能 描述
📲 ADB/Fastboot - 标准调试工具
👁️ 设备监听 - 自动识别连接
📈 实时进度 - 速度/时间显示
📝 详细日志 - 操作记录

📦 安装

系统要求

✅ Windows 10/11 (x64)
✅ .NET 8.0 Runtime
✅ USB 驱动 (Qualcomm QDLoader / MTK VCOM / SPRD)

下载

📥 从 Releases 页面下载最新版本

编译

git clone https://github.com/xiriovo/edlormtk.git
cd edlormtk
dotnet build -c Release

🚀 快速开始

📱 高通设备 (点击展开)
  1. 设备进入 EDL 9008 模式
    • 关机状态按住音量键插入 USB
    • 或使用 ADB: adb reboot edl
  2. 选择或自动匹配 Programmer Loader
  3. 选择要刷写的分区和镜像
  4. 点击 刷写
📱 联发科设备 (点击展开)
  1. 设备关机
  2. 选择 Scatter 文件
  3. 按住音量下键插入 USB
  4. 等待设备连接后开始刷写
📱 展讯设备 (点击展开)
  1. 选择 PAC 固件
  2. 设备关机,按住音量下键插入 USB
  3. 等待进入 Download 模式
  4. 点击 刷写

⚠️ 免责声明

本工具仅供学习和研究使用,刷机有风险,操作需谨慎!

作者不对因使用本工具造成的任何损失负责。


🇺🇸 English Documentation

✨ Features

📱 Qualcomm

Feature Description
🔌 EDL 9008 Mode - Sahara + Firehose protocol
💾 Partition Mgmt - Read/Write/Erase partitions
📊 GPT Parsing - Auto partition table detection
🎯 Super Partition - Dynamic partition flashing
☁️ Cloud Loader - Auto-match Programmer
🏷️ Multi-brand - Xiaomi/OPPO/OnePlus/Realme/vivo

📱 MediaTek (MTK)

Feature Description
🔧 BROM Mode - Preloader connection
📋 DA Agent - Download agent support
📄 Scatter Parse - Auto-load configuration
🔓 Auth Bypass - SLA/DAA authentication

📱 Unisoc (Spreadtrum)

Feature Description
⬇️ Download Mode - SPRD protocol
📦 PAC Firmware - Auto parse/extract
🚀 FDL Send - FDL1/FDL2 loading
🔓 RSA Bypass - Signature verification bypass
📱 Diag Mode - IMEI/AT commands

🔧 General

Feature Description
📲 ADB/Fastboot - Standard debug tools
👁️ Device Monitor - Auto detection
📈 Live Progress - Speed/time display
📝 Detailed Logs - Operation records

📦 Installation

Requirements

✅ Windows 10/11 (x64)
✅ .NET 8.0 Runtime
✅ USB Drivers (Qualcomm QDLoader / MTK VCOM / SPRD)

Download

📥 Download latest from Releases

Build

git clone https://github.com/xiriovo/edlormtk.git
cd edlormtk
dotnet build -c Release

🚀 Quick Start

📱 Qualcomm Device (Click to expand)
  1. Enter EDL 9008 Mode
    • Hold volume button while inserting USB (device off)
    • Or use ADB: adb reboot edl
  2. Select or auto-match Programmer Loader
  3. Select partitions and images to flash
  4. Click Flash
📱 MediaTek Device (Click to expand)
  1. Power off device
  2. Select Scatter file
  3. Hold Volume Down while inserting USB
  4. Wait for device connection and start flashing
📱 Unisoc Device (Click to expand)
  1. Select PAC firmware
  2. Power off device, hold Volume Down while inserting USB
  3. Wait for Download Mode
  4. Click Flash

⚠️ Disclaimer

This tool is for educational and research purposes only!

Flashing carries risks. The author is not responsible for any damage.


🇯🇵 日本語ドキュメント

✨ 機能

📱 Qualcomm

機能 説明
🔌 EDL 9008モード - Sahara + Firehoseプロトコル
💾 パーティション管理 - 読み取り/書き込み/消去
📊 GPT解析 - パーティションテーブル自動認識
🎯 Superパーティション - 動的パーティションフラッシュ
☁️ クラウドLoader - Programmer自動マッチング
🏷️ マルチブランド - Xiaomi/OPPO/OnePlus/Realme/vivo

📱 MediaTek (MTK)

機能 説明
🔧 BROMモード - Preloader接続
📋 DAエージェント - ダウンロードエージェントサポート
📄 Scatter解析 - 設定自動読み込み
🔓 認証バイパス - SLA/DAA認証

📱 Unisoc (展讯)

機能 説明
⬇️ ダウンロードモード - SPRDプロトコル
📦 PACファームウェア - 自動解析・抽出
🚀 FDL送信 - FDL1/FDL2ローディング
🔓 RSAバイパス - 署名検証バイパス
📱 Diagモード - IMEI/ATコマンド

🔧 共通機能

機能 説明
📲 ADB/Fastboot - 標準デバッグツール
👁️ デバイス監視 - 自動検出
📈 リアルタイム進捗 - 速度/時間表示
📝 詳細ログ - 操作記録

📦 インストール

システム要件

✅ Windows 10/11 (x64)
✅ .NET 8.0 Runtime
✅ USBドライバー (Qualcomm QDLoader / MTK VCOM / SPRD)

ダウンロード

📥 Releases ページから最新版をダウンロード

ビルド

git clone https://github.com/xiriovo/edlormtk.git
cd edlormtk
dotnet build -c Release

🚀 クイックスタート

📱 Qualcommデバイス (クリックで展開)
  1. EDL 9008モードに入る
    • 電源オフ状態で音量ボタンを押しながらUSB接続
    • またはADB使用: adb reboot edl
  2. Programmer Loaderを選択または自動マッチング
  3. フラッシュするパーティションとイメージを選択
  4. フラッシュをクリック
📱 MediaTekデバイス (クリックで展開)
  1. デバイスの電源を切る
  2. Scatterファイルを選択
  3. 音量下を押しながらUSB接続
  4. デバイス接続を待ってフラッシュ開始
📱 Unisocデバイス (クリックで展開)
  1. PACファームウェアを選択
  2. デバイスの電源を切る音量下を押しながらUSB接続
  3. ダウンロードモードを待つ
  4. フラッシュをクリック

⚠️ 免責事項

このツールは教育・研究目的のみです!

フラッシュにはリスクがあります。作者はいかなる損害にも責任を負いません。


🇰🇷 한국어 문서

✨ 기능

📱 Qualcomm

기능 설명
🔌 EDL 9008 모드 - Sahara + Firehose 프로토콜
💾 파티션 관리 - 읽기/쓰기/삭제
📊 GPT 파싱 - 파티션 테이블 자동 인식
🎯 Super 파티션 - 동적 파티션 플래싱
☁️ 클라우드 Loader - Programmer 자동 매칭
🏷️ 멀티 브랜드 - Xiaomi/OPPO/OnePlus/Realme/vivo

📱 MediaTek (MTK)

기능 설명
🔧 BROM 모드 - Preloader 연결
📋 DA 에이전트 - 다운로드 에이전트 지원
📄 Scatter 파싱 - 설정 자동 로드
🔓 인증 우회 - SLA/DAA 인증

📱 Unisoc (展讯)

기능 설명
⬇️ 다운로드 모드 - SPRD 프로토콜
📦 PAC 펌웨어 - 자동 파싱/추출
🚀 FDL 전송 - FDL1/FDL2 로딩
🔓 RSA 우회 - 서명 검증 우회
📱 Diag 모드 - IMEI/AT 명령

🔧 일반 기능

기능 설명
📲 ADB/Fastboot - 표준 디버그 도구
👁️ 장치 모니터링 - 자동 감지
📈 실시간 진행률 - 속도/시간 표시
📝 상세 로그 - 작업 기록

📦 설치

시스템 요구 사항

✅ Windows 10/11 (x64)
✅ .NET 8.0 Runtime
✅ USB 드라이버 (Qualcomm QDLoader / MTK VCOM / SPRD)

다운로드

📥 Releases 페이지에서 최신 버전 다운로드

빌드

git clone https://github.com/xiriovo/edlormtk.git
cd edlormtk
dotnet build -c Release

🚀 빠른 시작

📱 Qualcomm 장치 (클릭하여 확장)
  1. EDL 9008 모드로 진입
    • 전원 끈 상태에서 볼륨 버튼을 누르고 USB 연결
    • 또는 ADB 사용: adb reboot edl
  2. Programmer Loader 선택 또는 자동 매칭
  3. 플래싱할 파티션과 이미지 선택
  4. 플래시 클릭
📱 MediaTek 장치 (클릭하여 확장)
  1. 장치 전원 끄기
  2. Scatter 파일 선택
  3. 볼륨 다운을 누르고 USB 연결
  4. 장치 연결 대기 후 플래싱 시작
📱 Unisoc 장치 (클릭하여 확장)
  1. PAC 펌웨어 선택
  2. 장치 전원 끄기, 볼륨 다운을 누르고 USB 연결
  3. 다운로드 모드 대기
  4. 플래시 클릭

⚠️ 면책 조항

이 도구는 교육 및 연구 목적으로만 사용됩니다!

플래싱에는 위험이 따릅니다. 저자는 어떠한 손해에도 책임지지 않습니다.


🇪🇸 Documentación en Español

✨ Características

📱 Qualcomm

Función Descripción
🔌 Modo EDL 9008 - Protocolo Sahara + Firehose
💾 Gestión de particiones - Leer/Escribir/Borrar
📊 Análisis GPT - Detección automática de tabla
🎯 Partición Super - Flasheo dinámico
☁️ Loader en la nube - Auto-coincidencia Programmer
🏷️ Multi-marca - Xiaomi/OPPO/OnePlus/Realme/vivo

📱 MediaTek (MTK)

Función Descripción
🔧 Modo BROM - Conexión Preloader
📋 Agente DA - Soporte de agente de descarga
📄 Análisis Scatter - Carga automática de config
🔓 Bypass de autenticación - SLA/DAA

📱 Unisoc (Spreadtrum)

Función Descripción
⬇️ Modo descarga - Protocolo SPRD
📦 Firmware PAC - Análisis/extracción automática
🚀 Envío FDL - Carga FDL1/FDL2
🔓 Bypass RSA - Bypass de verificación de firma
📱 Modo Diag - Comandos IMEI/AT

🔧 General

Función Descripción
📲 ADB/Fastboot - Herramientas de depuración
👁️ Monitor de dispositivos - Detección automática
📈 Progreso en vivo - Velocidad/tiempo
📝 Registros detallados - Historial de operaciones

📦 Instalación

Requisitos del sistema

✅ Windows 10/11 (x64)
✅ .NET 8.0 Runtime
✅ Controladores USB (Qualcomm QDLoader / MTK VCOM / SPRD)

Descarga

📥 Descarga la última versión desde Releases

Compilar

git clone https://github.com/xiriovo/edlormtk.git
cd edlormtk
dotnet build -c Release

🚀 Inicio Rápido

📱 Dispositivo Qualcomm (Clic para expandir)
  1. Entrar en modo EDL 9008
    • Con el dispositivo apagado, mantener botón de volumen e insertar USB
    • O usar ADB: adb reboot edl
  2. Seleccionar o auto-coincidir Programmer Loader
  3. Seleccionar particiones e imágenes a flashear
  4. Clic en Flashear
📱 Dispositivo MediaTek (Clic para expandir)
  1. Apagar el dispositivo
  2. Seleccionar archivo Scatter
  3. Mantener Volumen Abajo e insertar USB
  4. Esperar conexión del dispositivo e iniciar flasheo
📱 Dispositivo Unisoc (Clic para expandir)
  1. Seleccionar firmware PAC
  2. Apagar dispositivo, mantener Volumen Abajo e insertar USB
  3. Esperar modo descarga
  4. Clic en Flashear

⚠️ Descargo de responsabilidad

¡Esta herramienta es solo para fines educativos e investigación!

El flasheo conlleva riesgos. El autor no es responsable de ningún daño.


🇷🇺 Документация на русском

✨ Возможности

📱 Qualcomm

Функция Описание
🔌 Режим EDL 9008 - Протокол Sahara + Firehose
💾 Управление разделами - Чтение/Запись/Стирание
📊 Парсинг GPT - Автоопределение таблицы разделов
🎯 Super раздел - Прошивка динамических разделов
☁️ Облачный Loader - Автоподбор Programmer
🏷️ Мультибренд - Xiaomi/OPPO/OnePlus/Realme/vivo

📱 MediaTek (MTK)

Функция Описание
🔧 Режим BROM - Подключение Preloader
📋 DA агент - Поддержка агента загрузки
📄 Парсинг Scatter - Автозагрузка конфигурации
🔓 Обход авторизации - SLA/DAA аутентификация

📱 Unisoc (Spreadtrum)

Функция Описание
⬇️ Режим загрузки - Протокол SPRD
📦 Прошивка PAC - Автопарсинг/извлечение
🚀 Отправка FDL - Загрузка FDL1/FDL2
🔓 Обход RSA - Обход проверки подписи
📱 Режим Diag - Команды IMEI/AT

🔧 Общие

Функция Описание
📲 ADB/Fastboot - Стандартные инструменты отладки
👁️ Мониторинг устройств - Автоопределение
📈 Прогресс в реальном времени - Скорость/время
📝 Подробные логи - Записи операций

📦 Установка

Системные требования

✅ Windows 10/11 (x64)
✅ .NET 8.0 Runtime
✅ USB драйверы (Qualcomm QDLoader / MTK VCOM / SPRD)

Скачать

📥 Скачайте последнюю версию с Releases

Сборка

git clone https://github.com/xiriovo/edlormtk.git
cd edlormtk
dotnet build -c Release

🚀 Быстрый старт

📱 Устройство Qualcomm (Нажмите для раскрытия)
  1. Войти в режим EDL 9008
    • При выключенном устройстве удерживать кнопку громкости и подключить USB
    • Или использовать ADB: adb reboot edl
  2. Выбрать или автоподобрать Programmer Loader
  3. Выбрать разделы и образы для прошивки
  4. Нажать Прошить
📱 Устройство MediaTek (Нажмите для раскрытия)
  1. Выключить устройство
  2. Выбрать Scatter файл
  3. Удерживать Громкость Вниз и подключить USB
  4. Дождаться подключения устройства и начать прошивку
📱 Устройство Unisoc (Нажмите для раскрытия)
  1. Выбрать прошивку PAC
  2. Выключить устройство, удерживать Громкость Вниз и подключить USB
  3. Дождаться режима загрузки
  4. Нажать Прошить

⚠️ Отказ от ответственности

Этот инструмент предназначен только для образовательных целей!

Прошивка несёт риски. Автор не несёт ответственности за любой ущерб.


📁 Project Structure / 项目结构 / プロジェクト構造

MultiFlash-TOOL/
├── 📂 Modules/
│   ├── 📂 Common/           # 🔧 Common / 公共组件 / 共通
│   │   ├── DeviceWatcher    #    USB device monitor / 设备监听
│   │   └── SerialPortManager#    Serial port management / 串口管理
│   ├── 📂 Qualcomm/         # 📱 Qualcomm EDL / 高通 ✅ STABLE
│   │   ├── SaharaProtocol   #    Sahara protocol / 握手协议
│   │   ├── FirehoseClient   #    Firehose XML protocol / XML协议
│   │   ├── GptParser        #    GPT partition parser / 分区表解析
│   │   ├── Authentication/  #    VIP/Xiaomi auth / 认证策略
│   │   ├── Strategies/      #    Device strategies / 设备策略
│   │   └── Services/        #    Cloud loader, Super flash / 云服务
│   ├── 📂 MTK/              # 📱 MediaTek / 联发科 ✅ STABLE
│   │   ├── Protocol/        #    Preloader, XFlash, Legacy DA
│   │   ├── Authentication/  #    SLA/DAA bypass / 认证绕过
│   │   ├── Hardware/        #    SEJ, DXCC, GCPU, CQDMA engines
│   │   ├── Security/        #    SecCfg bootloader unlock
│   │   ├── Storage/         #    Scatter parser / 配置解析
│   │   └── Exploit/         #    Kamakiri exploit
│   ├── 📂 Unisoc/           # 📱 Unisoc / 展讯 ⚠️ WIP
│   │   ├── Protocol/        #    SPRD download protocol
│   │   ├── Diag/            #    Diagnostic protocol / IMEI
│   │   ├── Firmware/        #    PAC extractor / 固件解析
│   │   └── Exploit/         #    RSA signature bypass
│   └── 📂 AdbFastboot/      # 📲 ADB/Fastboot ⚠️ WIP
│       ├── AdbProtocol      #    ADB over USB/TCP
│       └── FastbootProtocol #    Fastboot commands
├── 📂 Dialogs/              # 💬 Dialogs / 对话框
├── 📂 Utils/                # 🛠️ Log formatter, helpers
├── 📂 Localization/         # 🌐 Multi-language support
├── 📄 MainWindow.xaml       # 🖼️ Main UI (WPF)
└── 📄 App.xaml              # 🚀 Application entry

🔬 Technical Documentation / 技术文档 / 技術ドキュメント

🏗️ Architecture Overview / 架构概述 (Click to expand)

System Architecture / 系统架构

┌─────────────────────────────────────────────────────────────────┐
│                        WPF UI Layer                              │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌─────────┐ │
│  │  Qualcomm   │  │     MTK     │  │   Unisoc    │  │   ADB   │ │
│  │    Panel    │  │    Panel    │  │    Panel    │  │  Panel  │ │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘  └────┬────┘ │
└─────────┼────────────────┼────────────────┼──────────────┼──────┘
          │                │                │              │
┌─────────▼────────────────▼────────────────▼──────────────▼──────┐
│                      UI Service Layer                            │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌─────────┐ │
│  │ Qualcomm    │  │    MTK      │  │   Unisoc    │  │   ADB   │ │
│  │ UIService   │  │  UIService  │  │  UIService  │  │UIService│ │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘  └────┬────┘ │
└─────────┼────────────────┼────────────────┼──────────────┼──────┘
          │                │                │              │
┌─────────▼────────────────▼────────────────▼──────────────▼──────┐
│                     Protocol Layer                               │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌─────────┐ │
│  │   Sahara    │  │  Preloader  │  │    SPRD     │  │Fastboot │ │
│  │  Firehose   │  │XFlash/Legacy│  │    Diag     │  │   ADB   │ │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘  └────┬────┘ │
└─────────┼────────────────┼────────────────┼──────────────┼──────┘
          │                │                │              │
┌─────────▼────────────────▼────────────────▼──────────────▼──────┐
│                    Hardware Layer                                │
│  ┌─────────────────────────────────────────────────────────────┐ │
│  │    SerialPortManager  |  DeviceWatcher  |  USB HID/Serial   │ │
│  └─────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘
📱 Qualcomm EDL Protocol / 高通 EDL 协议 (Click to expand)

Protocol Flow / 协议流程

Device (EDL 9008) ◄──────────► Host (MultiFlash TOOL)
        │                              │
        │  ◄─── Sahara Hello ────────  │  Step 1: Handshake
        │  ────► Sahara Hello Resp ──► │  
        │                              │
        │  ◄─── Read Data ──────────   │  Step 2: Transfer Programmer
        │  ────► Data Packet ────────► │  
        │  ────► End of Image ───────► │
        │                              │
        │  ◄─── Sahara Done ─────────  │  Step 3: Execute Programmer
        │  ────► Done Response ──────► │
        │                              │
        │  ════ Firehose XML ════════  │  Step 4: Firehose Operations
        │  <configure>, <read>, <program>, <erase>
        │                              │

Sahara Protocol Commands / Sahara 命令

Command Value Description
SAHARA_HELLO 0x01 Initial handshake from device
SAHARA_HELLO_RESP 0x02 Host response with mode selection
SAHARA_READ_DATA 0x03 Device requests programmer data
SAHARA_END_OF_IMAGE 0x04 Transfer complete
SAHARA_DONE 0x05 Session complete
SAHARA_EXECUTE 0x0D Execute loaded image
SAHARA_CMD_READY 0x0B Device ready for commands

Firehose XML Commands / Firehose XML 命令

<!-- Configure Firehose -->
<configure MemoryName="ufs" MaxPayloadSizeToTargetInBytes="1048576"/>

<!-- Read GPT -->
<read SECTOR_SIZE_IN_BYTES="4096" num_partition_sectors="6" 
      physical_partition_number="0" start_sector="0"/>

<!-- Program Partition -->
<program SECTOR_SIZE_IN_BYTES="4096" filename="boot.img"
         num_partition_sectors="65536" physical_partition_number="0"
         start_sector="131072"/>

<!-- Erase Partition -->
<erase SECTOR_SIZE_IN_BYTES="4096" num_partition_sectors="65536"
       physical_partition_number="0" start_sector="131072"/>

VIP Authentication (OPPO/Realme) / VIP 认证

┌────────────────────────────────────────────────────────────────┐
│                  VIP 6-Step Authentication                      │
├────────────────────────────────────────────────────────────────┤
│  Step 1: Digest      - Send hash algorithm configuration       │
│  Step 2: TransferCfg - Transfer device-specific config         │
│  Step 3: Verify      - Verify device credentials               │
│  Step 4: Signature   - RSA signature validation                │
│  Step 5: SHA256Init  - Initialize secure hash                  │
│  Step 6: Configure   - Apply final configuration               │
├────────────────────────────────────────────────────────────────┤
│  Spoof Strategy: gpt_backup > gpt_main > ssd > buffer          │
│  ⚠️ Backup GPT spoofing prioritized for better compatibility   │
└────────────────────────────────────────────────────────────────┘
📱 MediaTek BROM Protocol / 联发科 BROM 协议 (Click to expand)

Protocol Flow / 协议流程

Device (BROM/Preloader) ◄──────────► Host (MultiFlash TOOL)
        │                                    │
        │  ◄─── 0xA0 (Sync) ──────────────   │  Step 1: BROM Handshake
        │  ────► 0x5F (ACK) ────────────────► │
        │                                    │
        │  ◄─── DA Address ─────────────────  │  Step 2: Send DA
        │  ────► DA Binary ─────────────────► │
        │  ────► Jump to DA ────────────────► │
        │                                    │
        │  ════ DA Protocol ════════════════  │  Step 3: DA Operations
        │  (XFlash or Legacy mode)           │
        │                                    │

DA Modes / DA 模式

Mode Description Use Case
XFlash Modern DA protocol MT6765, MT6768, MT6785+
Legacy Classic DA protocol MT6580, MT6735, MT6737

Hardware Crypto Engines / 硬件加密引擎

┌──────────────────────────────────────────────────────────────┐
│                    MTK Security Engines                       │
├──────────────────────────────────────────────────────────────┤
│  SEJ (Security Engine for JTAG)                               │
│  ├── AES-128/256 encryption                                  │
│  ├── RPMB key generation                                     │
│  └── Secure boot verification                                │
├──────────────────────────────────────────────────────────────┤
│  DXCC (Discretix CryptoCell)                                 │
│  ├── Key derivation (KDF)                                    │
│  ├── Secure storage keys                                     │
│  └── Newer chipsets (MT6785+)                                │
├──────────────────────────────────────────────────────────────┤
│  GCPU (Graphics Crypto Processing Unit)                      │
│  ├── AES-CBC decryption                                      │
│  ├── Memory read via decrypt (Amonet)                        │
│  └── Exploit target                                          │
├──────────────────────────────────────────────────────────────┤
│  CQDMA (Crypto Queue DMA)                                    │
│  ├── Arbitrary memory R/W                                    │
│  ├── DMA-based operations                                    │
│  └── Exploit target (Hashimoto)                              │
└──────────────────────────────────────────────────────────────┘

SLA/DAA Authentication / SLA/DAA 认证

SLA (Serial Link Authorization)
├── RSA-2048 signature verification
├── Multiple key support (MTK keys, OEM keys)
└── Bypass: Key leaks, exploit chains

DAA (Download Agent Authorization)
├── Challenge-response authentication
├── Device-specific tokens
└── Bypass: Auth file injection
📱 Unisoc SPRD Protocol / 展讯 SPRD 协议 (Click to expand)

⚠️ Status: Work In Progress / 开发中

Protocol Flow / 协议流程

Device (Download Mode) ◄──────────► Host (MultiFlash TOOL)
        │                                    │
        │  ◄─── Handshake ─────────────────  │  Step 1: Connection
        │  ────► Version Check ─────────────► │
        │                                    │
        │  ◄─── FDL1 Address ──────────────  │  Step 2: Send FDL1
        │  ────► FDL1 Binary ──────────────► │
        │  ────► Execute ──────────────────► │
        │                                    │
        │  ◄─── FDL2 Address ──────────────  │  Step 3: Send FDL2
        │  ────► FDL2 Binary ──────────────► │
        │  ────► Execute ──────────────────► │
        │                                    │
        │  ════ FDL2 Protocol ═════════════  │  Step 4: Flash Operations
        │  (Read/Write/Erase partitions)     │
        │                                    │

Chipset Support / 芯片支持

Series Chipsets FDL1 Address Exploit
SC (Legacy) SC7731, SC9832E 0x5000 ✅ BROM
Tiger T310, T606, T610, T618 0x65000800 ✅ BootROM
T7xx T700, T760, T770, T820 0x9efffe00 ⚠️ Limited

RSA Bypass Exploit / RSA 绕过

// Legacy Platform (SC7731/SC9832E)
// Target: 0x4ee8 - RSA_Verify return value
// Effect: Force return 1 (success)

// ARM Thumb Instructions:
MOV R0, #1    // 0x2001
BX LR         // 0x4770

// Modern Platform (SC9863A/T618)
// Target: 0x65015f08 - Secure boot verification
// Effect: Stack overflow -> ROP chain -> Bypass

PAC Firmware Format / PAC 固件格式

┌────────────────────────────────────────────────────────────┐
│                    PAC File Structure                       │
├────────────────────────────────────────────────────────────┤
│  Header (512 bytes)                                        │
│  ├── Magic: "BP_R1.0.0" or "BP_R2.0.1"                    │
│  ├── File count                                           │
│  └── CRC32 checksum                                       │
├────────────────────────────────────────────────────────────┤
│  File Table                                                │
│  ├── File name (Unicode)                                  │
│  ├── File offset                                          │
│  ├── File size                                            │
│  └── Partition type                                       │
├────────────────────────────────────────────────────────────┤
│  File Data                                                 │
│  └── [FDL1] [FDL2] [boot] [system] [vendor] ...          │
└────────────────────────────────────────────────────────────┘
📲 ADB/Fastboot Protocol / ADB/Fastboot 协议 (Click to expand)

⚠️ Status: Work In Progress / 开发中

ADB Protocol Layers / ADB 协议层

┌─────────────────────────────────────────────────────────────┐
│                      Application Layer                       │
│              shell, push, pull, install, logcat              │
├─────────────────────────────────────────────────────────────┤
│                       Service Layer                          │
│     shell:, sync:, reverse:, jdwp:, exec:, reboot:          │
├─────────────────────────────────────────────────────────────┤
│                      Transport Layer                         │
│              OPEN, READY, WRITE, CLOSE, AUTH                │
├─────────────────────────────────────────────────────────────┤
│                       Link Layer                             │
│               USB (bulk transfers) / TCP (5555)              │
└─────────────────────────────────────────────────────────────┘

Fastboot Commands / Fastboot 命令

Command Description
getvar:xxx Get device variable
flash:partition Flash partition
erase:partition Erase partition
reboot Reboot device
reboot-bootloader Reboot to bootloader
oem xxx OEM-specific commands
flashing unlock Unlock bootloader

📊 Implementation Status / 实现状态 / 実装状況

Module Status Completion Notes
Qualcomm EDL ✅ Stable 90% VIP spoof, cloud loader working
MTK BROM ✅ Stable 85% XFlash/Legacy, SLA bypass
MTK Hardware ✅ Stable 80% SEJ, DXCC, GCPU, CQDMA
Unisoc SPRD ⚠️ WIP 60% Basic flash, RSA bypass
Unisoc Diag ⚠️ WIP 40% IMEI read partial
ADB ⚠️ WIP 50% Shell, file transfer
Fastboot ⚠️ WIP 50% Flash, getvar

Legend / 图例

  • Stable - Production ready / 生产就绪
  • ⚠️ WIP - Work in progress / 开发中
  • TODO - Not implemented / 未实现

🧑‍💻 Developer Guide / 开发者指南 / 開発者ガイド

Adding New Protocol Support / 添加新协议支持

// 1. Create Protocol Class / 创建协议类
public class NewProtocol : IDisposable
{
    public event Action<string>? OnLog;
    public event Action<int, int>? OnProgress;
    
    public async Task<bool> ConnectAsync(CancellationToken ct) { ... }
    public async Task<bool> FlashAsync(string partition, byte[] data, CancellationToken ct) { ... }
}

// 2. Create UI Service / 创建 UI 服务
public class NewUIService
{
    private readonly Dispatcher _dispatcher;
    public ObservableCollection<PartitionInfo> Partitions { get; }
    
    public async Task StartFlashAsync() { ... }
}

// 3. Add to MainWindow.xaml / 添加到主窗口
<TabItem Header="New Platform">
    <!-- Panel content -->
</TabItem>

Code Style / 代码风格

// ============================================================================
// MultiFlash TOOL - [Component Name]
// [中文名] | [日本語名] | [한국어명]
// ============================================================================
// [EN] English description
// [中文] 中文描述
// [日本語] 日本語説明
// [한국어] 한국어 설명
// ============================================================================
// ⚠️ STATUS: WORK IN PROGRESS (optional)
// TODO List: (optional)
// - [ ] Task 1
// - [ ] Task 2
// ============================================================================
// GitHub: https://github.com/xiriovo/edlormtk
// Contact: QQ 1708298587 | Email: 1708298587@qq.com
// License: MIT
// ============================================================================

Running Tests / 运行测试

# Build debug version
dotnet build -c Debug

# Run with logging
dotnet run --project tools.csproj -- --verbose

# Check for issues
dotnet build -warnaserror

📚 References / 参考资料 / 参考文献

Resource Description
Qualcomm EDL Wiki EDL protocol documentation
MTKClient Wiki MTK protocol documentation
Unisoc Research Unisoc security research
Android Open Source Official Android documentation

📞 Contact / 联系方式 / お問い合わせ / 연락처 / Contacto / Контакт

GitHub Email QQ


🤝 Contributing / 贡献 / 貢献

( ´ ▽ ` )ノ 欢迎各路大佬来搞事情!
Issues / PRs / Ideas 统统欢迎~

🌐 来吧!
🇨🇳 欢迎 PR!发现 bug 请开 issue,有想法也可以讨论~
🇺🇸 PRs welcome! Found a bug? Open an issue. Ideas? Let's discuss!
🇯🇵 PRを歓迎します!バグ発見?Issueを開いてください!

📜 License / 许可证

MIT License - 随便用,别忘了点个 ⭐ 就行
See LICENSE for full text


💖 Donate / 赞赏 / 請我喝咖啡

🇨🇳 肝代码不易,求打赏续命 (´;ω;`)
🇺🇸 Coding is hard, coffee keeps me alive!
🇯🇵 コーヒーで応援してください!

💚 QQ / WeChat

1708298587

加好友请备注:GitHub

💙 支付宝 / Alipay

1708298587@qq.com

Thank you! ♡

🪙 Crypto (点击展开)

💰 Coin 🔗 Network 📋 Address
USDT TRC20 TS5Q3e8dXmYGuwrdc8KcWTxksj91WRN1Fx
BTC Bitcoin bc1qaf5rlspk2t6npzsatk3vasenzh0fe59vfngq9df43hwkevaj8ypqvhu8hd
ETH ERC20 0x5eaa81f7bd55c6108ceecd6deef4984c5c86daa4
USDC ERC20 0x5eaa81f7bd55c6108ceecd6deef4984c5c86daa4

您的支持让我有动力继续维护这个项目 (◕‿◕✿)


🙏 Acknowledgments / 致谢 / Special Thanks

站在巨人的肩膀上 🦋

🎖️ Project 📝 Description 💕
bkerler/edl 高通 EDL 协议参考实现 ⭐⭐⭐
bkerler/mtkclient 联发科协议参考实现 ⭐⭐⭐
HandyControl 好看的 WPF 控件库 ⭐⭐
You 正在看这个项目的你! 💖

Footer

About

🚀 Multi-Platform Android Flash Tool | Qualcomm EDL / MTK BROM / Unisoc SPRD | 多平台安卓刷机工具

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages