User Tools

Site Tools


doc:appunti:android:sp_flash_tool

This is an old revision of the document!


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.

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

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...

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

Web References

doc/appunti/android/sp_flash_tool.1578914134.txt.gz · Last modified: 2020/01/13 12:15 by niccolo