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.
Pre-Flight Checklist
Complete ALL items before proceeding. Skipping any step increases the risk of bricking your device.
-
Backup all data before flashingMTKClient flashing erases user data. Back up photos, contacts, and app data before proceeding.
-
Correct MediaTek firmware (scatter-based or payload) for your deviceMTKClient works with standard SP Flash Tool scatter-based firmware or payload files. Confirm firmware matches your exact model and chipset.
-
Python 3.8 or higher installedMTKClient is a Python-based tool. Install Python from python.org and ensure it is added to PATH during installation.
-
MTKClient installed from GitHubClone or download MTKClient from github.com/bkerler/mtkclient. Install requirements with: pip install -r requirements.txt
-
Zadig or libusb driver installed (Windows)On Windows, use Zadig to replace the device driver with WinUSB or libusb-win32 when the device is in BROM mode.
-
USB debugging enabled (optional but helpful)Enables ADB access for backup and additional operations.
-
Device battery above 20%MTKClient can access BROM (Boot ROM) mode on powered-off devices, but some charge is helpful.
Guide 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
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.
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.
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 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.
Congratulations! Flash Successful!
You've successfully completed all steps. Your device should now be running the new firmware. If it's booting normally — you're done! Check the troubleshooting section below if you encounter any issues.
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.
Reference screenshots for this guide. Click any image to view full size.
Prioritize our guides in your Google search results.
No comments yet. Be the first to share your experience with this guide!