This is an old revision of the document!
Table of Contents
SP Flash Tool on GNU/Linux
SP flash tool is an application which mainly helps you to flash Stock ROM, Custom recovery and fixing in some extreme cases (firmware update, Flash recovery, unbrick bricked Android device etc.). SmartPhone FlashTool is working with MediaTek Android smartphones (MTK based). You can download the executable from the home page.
The software is proprietary and closed source, it is distributed for two platforms: MS-Windows and GNU/Linux.
The USB Abstract Control Model
An MTK Android smartphone, when powered-off, exposes and USB device once connected to the USB port of a GNU/Linux host:
usb 2-2.2: new full-speed USB device number 5 using ehci-pci usb 2-2.2: New USB device found, idVendor=0e8d, idProduct=0003, bcdDevice= 1.00 usb 2-2.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0 cdc_acm 2-2.2:1.0: ttyACM0: USB ACM device usbcore: registered new interface driver cdc_acm cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters usbcore: registered new interface driver usbserial_generic usbserial: USB Serial support registered for generic usbcore: registered new interface driver option usbserial: USB Serial support registered for GSM modem (1-port)
The normal workflow with SP Flash Tool is to initiate the required operation (Download or Readback) with the USB cable disconnected. Then you will connect the USB port and SP Flash Tool will detect the device, performing the operation.
The Scatter File
It seems that to create a scatter file, you need MTK Droid Tools, a proprietary, MS-Windows only, software. See this article: What is Scatter File txt? How to Create Scatter File for Any Android MediaTek device?.
MTK Droid Tools does indeed runs in GNU/Linux using the Wine compatibility software, but it cannot access the USB port as it requires, so it is useless. Some people reported to be able to use the program under a full GNU/Linux virtualization environment (like VirtualBox).
: Please verify the following… Several people say that MTK Droid Tools is outdated, the latest version 2.5.3 is from 2014. It seems that the program runs over the ADB (Android Debug Bridge), so it requires that the phone is started and running the operating system, and that it has USB debugging enabled. Using the ADB bridge, it should do not require the MTK VCOM drivers, but it requires the ADB Windows Drivers.
Download
Download only | You must choose this option if you flash selective partitions e.g. recovery only. |
---|---|
Firmware Upgrade | This will try to preserve your apps, data and media while flashing the firmware. |
Format All + Download | You must provide all partitions to restore and all checkboxes must be checked. If you try to unselect a single partition, you won't be able to do format before flashing. |
Problem: Trying to sync with the target...
You may experience a problem on GNU/Linux: attempting a Download or Readback operation, you see the a red bar on the bottom of the screen, but the operation does not actually start. The blue progress bar does not start at all, or it hangs after a few seconds. On the console where you started the program you can read the following messages:
USB port is obtained. path name(/dev/ttyACM0), port name(/dev/ttyACM0) USB port detected: /dev/ttyACM0 BROM connected Downloading & Connecting to DA... connect DA end stage: 2, enable DRAM in 1st DA: 0 COM port is open. Trying to sync with the target...
If you wait enough time, an error is displayed in a dialog box:
ERROR : S_FT_DA_NO_RESPONSE (4001) DA didn't send response data to FlashTool!
Check if you have the modemmanager package installed; in that case it may be interfering with the /dev/ttyACM0 device, preventing SP Flash Tool to operate correctly. The interfering process is spawned by D-Bus, so the quickest fix is to remove the package alltogether. On a Debian distribution you can just execute:
dpkg --purge modemmanager
The ModemManager is generally required when you want to use dialup modems (internet keys, mobile phones, etc.) connected via the USB port.
Alternatively you can just stop or even disable (preventing future start) the service:
systemctl stop ModemManager.service systemctl disable ModemManager.service systemctl status ModemManager.service
Problem: PMT changed for the ROM
PMT changed for the ROM; it must be downloaded. Please select "Format All + Download" scene and try again
The problem can arise if you try to download (flash) a partition using a scatter file which differs from the one used during readback.