📱 Flashing Guides

How to Flash MediaTek Firmware Using MTKClient

MTKClient is the go-to open-source tool for flashing MediaTek devices — especially those blocked by SLA/DAA authentication that SP Flash Tool cannot handle. This guide walks you through installation, BROM mode entry, driver setup, and flashing firmware step by step. Works on Windows, Linux, and macOS.

Difficulty: 🔴 Advanced
Read time: 30 min
Updated: May 15, 2026
Tool Version: v2.1.4
Medium Risk
🪟 Windows 🍎 macOS 🐧 Linux
Verified Working: May 18, 2026

Pre-Flight Checklist

Complete ALL items before proceeding. Skipping any step increases the risk of bricking your device.

Requirements met 0 / 7

Guide Steps

Guide Progress
0/6 steps

Open a terminal (Command Prompt or PowerShell on Windows, Terminal on Linux/macOS) and run:

git clone https://github.com/bkerler/mtkclient
cd mtkclient
pip install -r requirements.txt

On Linux, you may also need to install udev rules:

sudo bash setup/install_udev.sh
💡 MTKClient is cross-platform and works on Windows, Linux, and macOS — a major advantage over SP Flash Tool.

On Windows, put your device into BROM mode (power off, hold Volume Down, plug USB). Open Zadig, select the MediaTek BROM or Preloader device from the list, and install the WinUSB driver.

⚠️ You may need to do this once per new device. On Linux/macOS, the udev rules handle this automatically.

BROM mode is MediaTek's lowest-level boot stage. To enter it:

  • Power off the device completely.
  • Hold Volume Down and connect USB to PC, OR
  • Hold Volume Up + Volume Down simultaneously and connect USB.

Run this command to verify MTKClient can see the device:

python mtk detect

You should see the chip name (e.g. MT6765, Helio G85) and connected status.

🚫 If detection fails on Windows, redo the Zadig driver step. On Linux, confirm udev rules are installed and run with sudo if needed.

The most common flash command uses a scatter file:

python mtk w system system.img --loader=path/to/da.bin

To flash all partitions at once from a scatter file:

python mtk scatter flash MT6xxx_scatter.txt

To flash a specific partition only (e.g. boot):

python mtk w boot boot.img
💡 Auth bypass: On devices with SLA/DAA authentication (newer MTK devices), MTKClient can attempt auth bypass automatically. Add --auth flag if prompted. This bypasses Secure Boot restrictions that block SP Flash Tool.

MTKClient supports many operations beyond flashing:

  • Backup a partition:
    python mtk r boot boot_backup.img
  • Read full flash (all partitions):
    python mtk rf full_backup.bin
  • Unlock bootloader (supported devices):
    python mtk da seccfg unlock
  • Erase a partition:
    python mtk e userdata

MTKClient shows partition-by-partition write status in the terminal. When complete, it displays a success message and optionally reboots the device.

To manually reboot after flashing:

python mtk reset

After boot, verify the firmware version in Settings → About Phone.

Troubleshooting & FAQ

Common errors and their solutions. Read this before asking for help.

On Windows: redo the Zadig step — select "MTK BROM" or "MTK Preloader" device and install WinUSB. On Linux: run sudo python mtk detect and ensure udev rules are installed. Use a different USB port (prefer USB 2.0) and a quality data cable.

Your device has SLA/DAA authentication (common on newer MediaTek devices from 2020+). Try adding --auth to your command. MTKClient has built-in bypass capabilities for many chipsets. If it still fails, the device may require a paid auth bypass service or the preloader from your specific firmware package.

SP Flash Tool is the official Mediatek GUI tool, Windows-only. MTKClient is open-source, cross-platform (Windows/Linux/macOS), and has the key advantage of built-in auth bypass for SLA/DAA-protected devices that SP Flash Tool cannot flash.

Yes, on many MediaTek devices MTKClient can unlock the bootloader via python mtk da seccfg unlock. However, this voids your warranty and triggers a factory reset. Not all chipsets support this operation.

Never miss a fix.

Prioritize our guides in your Google search results.

Set as Preferred

No comments yet. Be the first to share your experience with this guide!

Leave a Comment —

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.