前言
由于从事的工作需要经常对手机进行刷机操作,而MTK提供的flash tool基本都是在Windows下运行的,很多工作又是在linux下完成的,要涉及到大量的android源码编译、生成刷机包、调试手机效果等操作。以前的安卓刷机包大小不过一两个G,生成刷机包的时候还算轻松,花不了太多时间,但是随着android系统越来越完善,其固件体积也越来越大。到android 10 Q版本之后更是达到了5、6个G之多,每次生成刷机包就是件很麻烦很费时间的事情了。因此最后还是花了不少时间来将flash tool安装在ubuntu下,这里将安装配置的整个过程做个记录,方便以后查看。
安装过程
第一步 下载Linux版本的flash tool
有的人使用wine运行windows下的.exe程序也可以成功运行flash tool,但是由于系统不同,可能会导致不同的问题,有的人的电脑可以运行.exe格式的flash tool,有的人的电脑就不行。因此,我建议直接安装Linux版本的flash tool,一劳永逸的解决不兼容的问题。这里是Linux版本的flash tool的下载链接:Linux版本,
除此之外,也可自行前往以下网站下载其他版本:flash tool下载网站。下载好的工具包为.rar格式压缩的,因此需要下载rar解压工具,方法如下:
方法一:直接鼠标右键点击压缩包,选择“提取到此处”,系统会提示你没有安装解压工具,按提示安装即可。
方法二:终端中通过包管理器获取:
sudo apt-get update
sudo apt-get install RAR
提示是否安装的时候选择Y,就可以将解压工具安装到电脑中了。
第二步 将flash tool拷贝到根目录的opt目录中
先简单介绍下这个目录的作用:
1、opt目录
/opt目录用来安装附加软件包,是用户级的程序目录,可以理解为D:/Software。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。opt有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接rm -rf掉即可。在硬盘容量不够时,也可将/opt单独挂载到其他磁盘上使用。
2、/usr/local目录
/usr:系统级的目录,可以理解为C:/Windows/。
/usr/lib:理解为C:/Windows/System32。
/usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。
这里主要存放那些手动安装的软件,即不是通过“新立得”或apt-get安装的软件。它和/usr目录具有相类似的目录结构。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面。
下面步入正题:
由于/otp目录需要超级权限才能进行读写操作,为了将压缩包拷贝到/opt目录中,方法有两种:
一、在终端中输入:sudo nautilus 命令会打开文件资源管理器,新打开的窗口具有超级权限,可以对原先无法进行读写操作的目录进行读写操作。将你想要拷贝的rar压缩文件拷贝到/opt目录中即可。在新建的MTK/Flash_Tool目录下解压压缩文件,效果如下图所示:
二、在终端中通过命令行的方式复制并解压文件
sudo mkdir /opt/MTK
sudo mkdir /opt/MTK/Flash_Tool #这里分两步,ubuntu14.04无法直接建立多级目录
cd MTK_Tool #压缩文件所在文件夹
sudo cp SP_Flash_Tool_v5.1844_Linux.rar /opt/MTK/Flash_Tool/
cd /opt/MTK/Flash_Tool
sudo unrar x SP_Flash_Tool_v5.1844_Linux.rar SP_Flash_Tool_v5.1844_Linux
第三步 配置驱动
终端中执行sudo gedit /etc/udev/rules.d/53-android.rules
命令创建新文件,这个文件是用于adb调试的,在打开的文件中增加以下文本:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}="0bb4", ATTR{idProduct}="0c03", SYMLINK+="android_adb"
终端中执行sudo gedit /etc/udev/rules.d/53-MTKinc.rules
命令创建新文件,这个文件是用于下载的,在打开的文件中增加以下文本:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0e8d", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}="0e8d", ATTR{idProduct}="2000", SYMLINK+="android_adb"
KERNEL=="ttyACM*", MODE="0666"
然后重新加载驱动:
sudo chmod a+rx /etc/udev/rules.d/53-android.rules
sudo chmod a+rx /etc/udev/rules.d/53-MTKinc.rules
sudo /etc/init.d/udev restart
备注:idVendor 与 idProduct的通过lsusb命令查看
KERNEL==“ttyACM*”, MODE="0666"是给flash_tool运行过程中生成的设备文件增加权限,这样不需要管理员权限即可运行。
第四步 改权限
在终端中输入sudo chmod a+x /opt/MTK/Flash_Tool/SP_Flash_Tool_v5.1844_Linux/flash_tool.sh
命令将文件更改为可执行文件,运行即可正常使用了。
这里有的小伙伴的电脑还是不能正常打开,出现两种如下错误:
第一种:
BROM ERROR : S_UNDEFINED_ERROR (1001)
第二种:
Total wait time = -1531116139.000000
USB port is obtained. path name(/dev/ttyACM0), port name(/dev/ttyACM0)
USB port detected: /dev/ttyACM0
Connect BROM failed: STATUS_ERR
Disconnect!
BROM Exception! ( ERROR : STATUS_ERR (-1073676287) , MSP ERROE CODE : 0x00
这是由于modemmanager包在ubuntu 14.04 或是更高版本中对于MTK的Flash工具支持不完全所造成的,如果想使用MTK的Flash工具,就要卸载这个包,在终端中执行以下命令:
sudo apt-get remove modemmanager
然后重启udev服务:
sudo service udev restart
卸载这个服务之后可能会造成内核模块cdc_acm不可用,执行以下命令进行检查:
lsmod | grep cdc_acm
如果没有输出,执行:
sudo modprobe cdc_acm
然后就可以了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)