FORUMS
Remove All Ads from XDA

[TUTORIAL]How to setup SP_Flash_Tool_Linux (MTK/MediaTek Soc)

161 posts
Thanks Meter: 121
 
By Miss Montage, Senior Member on 19th July 2015, 04:17 PM
Post Reply Email Thread
Unfortunately this seems to work only on Linux 64-bit
DISCLAIMER: It is always risky to flash your mobile device. I do not and will not take any responsibility for bootloops and bricks.
Please check carefully that the ROM or recovery.img you want to flash is suitable for your specific device and for the sp_flash_tool. The firmware directory should neither contain meta-inf nor system folder, but something_with_a_scatter.txt and a system.img
Backup your phone before flashing!
Your phone's battery should be at least half charged (50 percent) before you start this.

I successfully ran these steps on my UMI Hammer with Linux Ubuntu 14.04. I do not have other devices or Linux derivates and do not plan to buy/install any.

CREDITS and a zillion thanks to Sergio Rivero for his excellent tutorial on mibqyyo.com!!!!
Also many thanks to N2K1 for giving me some more background information!

So here we go:

Step 1:
If you haven't done so before, install the Linux generic usb-drivers package:
Code:
sudo apt-get install libusb-dev
Download SP Flash Tool Linux (latest version): http://mtk2000.ucoz.ru/load/soft/sof..._tool/5-1-0-14 (Password to extract currently is mtk2000v1)
In case you haven't done before, install unrar:
Code:
sudo apt-get install unrar
Extract the downloaded file -> graphic file manager (e.g. Nautilus): double-click and extract. Terminal:
Code:
unrar x path_to_file
(from now on: please adapt paths to your own settings)
Move the new folder „sp_flash_tool“ to a directory of your choice.
Code:
mv /home/username/Downloads/sp_flash_tool /home/username/...
Step 3:

Change into the newly created directory:
Code:
cd /sp_flash_tool
We make one file executable by typing:
Code:
chmod +x flash_tool
In order to avoid running the flash_tool as root user, you need to add a standard user to the usergroup "dialout" (thanks to @egalus for this bit!)
Code:
sudo adduser username dialout
For Arch Linux:
Code:
gpasswd -a username uucp
and activate the membership immediately
Code:
newgrp - dialout
(Arch Linux):
Code:
newgrp - uucp
Step 4:

Now you can open the tool:

Code:
./flash_tool
or double-click on the flash_tool icon.
You can try at this stage if the flash tool connects to your phone:
In the user interface, choose tab „Download“. Hit "scatter-loading", navigate to a directory with a valid firmware for your device and choose the scatter-file.
For testing purposes uncheck "name" and check one of the smaller files in the list below (for example "logo")
Switch off your device. Hit the "Download" button in SP_Flash_Tool and connect your phone to the computer. Some devices require you to take off the battery for about 10 seconds, with others you need to press Vol+ or Vol- while plugging the cable into the phone. Please look up device-specific threads and try out different options.

If nothing happens at all, open a second terminal, run
Code:
dmesg | grep usb
and look out for a MediaTek entry. If there is none → did you install libusb-dev (Step 1?)
If the answer is yes, you might need to create a persistent udev rule for the MTK Preloader:
Code:
sudo gedit /etc/udev/rules.d/80-persistent-usb.rules
Add the following line to the file:
Code:
SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="0e8d", ATTR{idProduct}=="*"
Save the file and exit.
Reload the usb-rules:
Code:
sudo service udev restart
Disconnect the usb data cable from the computer and the smartphone. Close the flash tool. Switch on your phone (fastboot mode will do). Repeat the first paragraph of Step 4.

If the tool connects, within a few seconds a red progress bar will appear. Unfortunately, in my case an error message came along with it:
S_BROM_CMD_JUMP_DA_FAIL (2035)
There is a connection, but also one more obstacle to overcome...

Step 5:
Now we come to the interesting part, which cost me 2 weeks of (futile) research and frustration. Finally I found Sergio Riveros tutorial on mibqyyo. Thanks to him again and again and again for this priceless piece of information
Quote:

The “modemmanager” package integrated by default within Linux Ubuntu 14.04 and later is not compatible with the MTK Flash Tool for Linux

To put it in different words: The modem manager controls port /dev/ttyACM0 and disables the Flash Tool. So we blacklist it for the two MTK vendor IDs the flash tool uses:
Code:
sudo gedit /etc/udev/rules.d/20-mm-blacklist-mtk.rules
You insert these two lines:
Code:
ATTRS{idVendor}=="0e8d", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="6000", ENV{ID_MM_DEVICE_IGNORE}="1"
Save the file, exit and restart udev:
Code:
sudo service udev restart
Switch your phone on (fastboot mode will suffice) and off again.

Step 6:
Code:
./flash_tool
or double-click on the flash_tool icon.
Now everything should run smoothly. In case you encounter
Code:
BROM ERROR : S_SECURITY_SF_CODE_FORMAT_FORBIDDEN (6012) , MSP ERROE CODE : 0x00
change the download agent to MTK_AllInOne_DA.bin (screenshot #4)
There are plenty of tutorials on the web for the further steps.
Happy flashing! When a green circle with a white checkmark appears, you are done. You can close the flash tool and disconnect your phone. For a clean start with a new ROM boot into recovery and wipe data/factory reset.
Attached Thumbnails
Click image for larger version

Name:	Bildschirmfoto vom 2015-07-16 10:57:53.png
Views:	16176
Size:	43.8 KB
ID:	3410731   Click image for larger version

Name:	Bildschirmfoto vom 2015-07-16 11:12:19.png
Views:	15426
Size:	46.1 KB
ID:	3410732   Click image for larger version

Name:	Bildschirmfoto vom 2015-07-14 12-45-43.png
Views:	14314
Size:	73.1 KB
ID:	3410733   Click image for larger version

Name:	Bildschirmfoto vom 2015-07-16 01:46:37.png
Views:	15348
Size:	153.5 KB
ID:	3410734  
The Following 43 Users Say Thank You to Miss Montage For This Useful Post: [ View ] Gift Miss Montage Ad-Free
 
 
27th July 2015, 10:32 PM |#2  
Junior Member
Thanks Meter: 0
 
More
Kudos for the udev rules, I finally managed to root my phone and disable some vendor crap thanks to you!
27th July 2015, 10:38 PM |#3  
OP Senior Member
Thanks Meter: 121
 
More
Thanks, I'm glad to read that it worked for you as well
The Following User Says Thank You to Miss Montage For This Useful Post: [ View ] Gift Miss Montage Ad-Free
4th August 2015, 03:26 AM |#4  
Yoshi_Guy's Avatar
Senior Member
Flag Atlantis
Thanks Meter: 443
 
More
Talking Great post!
Just wanted to say you saved me HOURS OR DAYS OR WEEKS of time on the modemmanager thing. I have Arch Linux, successfully ported over this tutorial, but I had no idea the modemmanager package was causing the issue. SP Flash Tool was the last frontier for using my Android devices on Linux. Thanks so much!
The Following User Says Thank You to Yoshi_Guy For This Useful Post: [ View ] Gift Yoshi_Guy Ad-Free
4th August 2015, 06:20 PM |#5  
OP Senior Member
Thanks Meter: 121
 
More
You are very welcome! Since it took me two weeks to find the cause for "S_BROM_Error [2035]" I wanted to spare other "victims" the experience
The Following User Says Thank You to Miss Montage For This Useful Post: [ View ] Gift Miss Montage Ad-Free
10th August 2015, 10:18 PM |#6  
Junior Member
Thanks Meter: 0
 
More
This is a very nice, HQ post. Keep up the good work.

But I would like to suggest two corrections:

1) The mv command is unnecessary. you don't have to copy the folder to the root directory to run it as root.

2) Please also add a final step to delete the udev rules so as to re-enable the modem manager after rooting.

Though most of the people who would be reading your thread would be knowledgeable linux users, they won't need these suggestions, but anyways, it would make your guide complete.
10th August 2015, 11:48 PM |#7  
OP Senior Member
Thanks Meter: 121
 
More
Thanks for your feedback @daltonfury42
1) Of course you don't need to move to move the folder to / .As I wrote, you can also use your /home/user directory. But you shouldn't keep it in "/Downloads" or "/tmp", since you might have deleted the folder by the next time you want to use the flash-tool.

Step 2), as you suggest it, is redundant on a private computer, because you blacklist the modemmanager for the flash-tool only, and for nothing else. SP_Flash_Tool uses different Vendor and Product IDs than MTP/USB/ADB/Fastboot mode, and these IDs are not related to your specific device. So the modem manager is up and running - even while you flash - on every other active (network-relevant) usb-port of your computer And it will be up and running on the usb-port you use for the flash-tool when you disconnect the phone and then plug in something else - or the same phone in a different mode... But due to the permanent
Code:
/etc/udev/rules.d/20-mm-blacklist-mtk.rules
entry the modem manager will be automatically blocked if you connect your phone to the SP_Flash_Tool a second time - no matter which port: no further preparations necessary
If you want to check it out, take a look the output of
Code:
dmesg | grep usb
connecting your phone "normally" and compare it with the same command -> output connecting your phone to the SP_Flash_Tool - and/or to the contents of the file "usb_setting.xml" in the SP_Flash_Tool directory My udev rule simply tells the modem manager to ignore two vendor IDs named in that file.
edit: if you "flash" your linux computer more often than your Android device, you should remember to backup the folder and the udev rules
The Following User Says Thank You to Miss Montage For This Useful Post: [ View ] Gift Miss Montage Ad-Free
11th August 2015, 06:17 AM |#8  
Junior Member
Thanks Meter: 0
 
More
Quote:
Originally Posted by Miss Montage

Thanks for your feedback @daltonfury42
1) Of course you don't need to move to move the folder to / .As I wrote, you can also use your /home/user directory. But you shouldn't keep it in "/Downloads" or "/tmp", since you might have deleted the folder by the next time you want to use the flash-tool.

Step 2), as you suggest it, is redundant on a private computer, because you blacklist the modemmanager for the flash-tool only, and for nothing else. SP_Flash_Tool uses different Vendor and Product IDs than MTP/USB/ADB/Fastboot mode, and these IDs are not related to your specific device. So the modem manager is up and running - even while you flash - on every other active (network-relevant) usb-port of your computer And it will be up and running on the usb-port you use for the flash-tool when you disconnect the phone and then plug in something else - or the same phone in a different mode... But due to the permanent

Code:
/etc/udev/rules.d/20-mm-blacklist-mtk.rules
entry the modem manager will be automatically blocked if you connect your phone to the SP_Flash_Tool a second time - no matter which port: no further preparations necessary
If you want to check it out, take a look the output of
Code:
dmesg | grep usb
connecting your phone "normally" and compare it with the same command -> output connecting your phone to the SP_Flash_Tool - and/or to the contents of the file "usb_setting.xml" in the SP_Flash_Tool directory My udev rule simply tells the modem manager to ignore two vendor IDs named in that file.
edit: if you "flash" your linux computer more often than your Android device, you should remember to backup the folder and the udev rules

@Miss Montage, very informative. Thankyou.
11th August 2015, 03:24 PM |#9  
OP Senior Member
Thanks Meter: 121
 
More
You're welcome - but please do not post full quotes
13th August 2015, 09:46 PM |#10  
Al3XKOoL's Avatar
Inactive Recognized Developer
Flag Tenerife (Canary Islands, Spain)
Thanks Meter: 1,457
 
Donate to Me
More
Hi. Thanks for the tutorial

I'm getting "PMT changed" error with the right scatter when tried to flash bootimg/recovery only.
The Following User Says Thank You to Al3XKOoL For This Useful Post: [ View ] Gift Al3XKOoL Ad-Free
13th August 2015, 10:10 PM |#11  
OP Senior Member
Thanks Meter: 121
 
More
Where did you get the scatter file? Generally this error code means that the partition table is different to the one on your device. This should only be the case - occasionally - if you flash a complete firmware.
(Or replace Android through Ubuntu / vc. vs.)
Post Reply Subscribe to Thread

Tags
2035, flash tool linux, linux, mtk, sp_flash_tool

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes