很久以来就想过写一些有关安卓 adb 和 fastboot 的使用分享,但是鉴于平时太忙加上自我感觉文笔不好,所以一直没着手。说来也巧,正当我今天提起左右手想写点东西的时候,一个激动一个手抖就不小心敲了一个万年没出过事的命令 fastboot erase cache (清除缓存),结果手机就定在开机logo进不了系统了。借此机会,来记录一下我是怎么在手机未进入系统的情况下导出手机数据,以及使用 fastboot 命令救机的过程。
准备工作:
1、准备好手机:本文使用红米note2做测试
2、adb、fastboot命令工具下载地址:百度网盘
3、把上面的命令工具解压到电脑上任意位置,并打开cmd命令窗口cd到此目录
4、红米Note2 线刷包(6.11.17开发版)下载地址:点击下载
5、确定你的电脑已经装过手机驱动以及fastboot驱动,并且手机已经刷入了第三方recovery。
那么问题来了,怎么确定是否已经刷入了第三方recovery呢?此文仅作命令上的分享,不对刷机知识做过多的讲解,故还请不了解的刷机的盆友们自行百度,女生们可以来找我单独做辅导。
下面进入正题
第一部分:使用 adb 命令来导出手机资料:
让我们同时按住音量上键和开机键,并保持三秒以上,直到进入recovery界面。
有人可能会觉得,既然有了recovery,那就可以在recovery的图形界面下很方便的操作手机文件。是,这个说法不错,但我们此次的重点是使用命令来操作手机。
进入之后,我们把手机连接电脑,在cmd窗口输入adb devices就可以看到已连接的手机状态。
如果出现类似下图的提示,
那就用 adb kill-server 把adb服务停掉,然后再重新键入adb devices 查看手机状态,直到异常提示消失,我们就可以进行下一步操作了。
接下来,键入adb shell 然后再输入 ls -l 查看机身存储所在路径(recovery下的路径可能与正常开机状态下的路径有所不同,所以最好要先进行确认),
于是我找到了我这台手机sd卡所在路径是/sdcard/,cd进去看看
可以看到我的相册是DCIM,以及其他机身存储的文件,于是就可以确定此目录为手机存储路径。
接下来,我们键入几次exit退出shell命令行。再接着,我们在电脑上建一个文件夹作为存放手机备份文件的文件夹,然后输入命令adb pull /sdcard/DCIM/ C:\Users\flyskyer\Desktop\tmp\backup
(此处我将手机存储的DCIM目录导出到电脑上的backup目录下,如果需要指定其他路径,以此类推,不再赘述)
就这样可以把我们所需的资料全部导出到电脑上来了。
第二部分:fastboot命令刷机
如果此时手机处在关机状态,我们可以同时按住音量下键以及开机键三秒以上,进入到fastboot模式,如果是在recovery状态或者正常系统界面下,我们可以通过adb reboot bootloader命令来使手机进入到fastboot模式。
用fastboot devices命令来检测手机是否已连接,如果未出现设备号,则多试几次插拔手机,还不行的话,检查一下驱动是否安装成功。
还有一个好玩的命令fastboot getvar all可以查看手机信息,包括分区信息、内核版本、手机解锁状态等等内容
为了保证刷机后手机干净无垃圾,我们需要先对手机做一次数据清空,操作,键入fastboot -w(注意:此命令会将手机所有资料清空,包括system分区、data分区、cache分区,以及机身存储等等。小心点执行。),也可以单独输入清空某分区的命令,如fastboot erase cache(清除缓存),fastboot erase system(清除系统分区)等等。
清除干净数据之后,我们将之前下载的线刷包内的images文件夹下的所有文件解压到我们的adb命令工具文件夹内
再用编辑器打开flash_all.bat查看内容
我们这么做的目的是,查看一下我们到底需要刷哪些文件,提取出所需的命令,我们按这个批处理顺序执行,去除掉无关的垃圾信息,直接键入刷机所需命令。首先键入fastboot flash system system.img
由于system分区较大,故刷入速度比较慢,需要耐心等待,千万不要认为是手机死机了强行拔出(其实即使拔出了也没事,MTK手机刷不死。但遇到HTC的机子在刷radio的时候可就要小心了,一旦断开就要拆机修复了......)。
我们等待出现finished的时候就代表正在刷的部分已经执行完毕。
以此类推,我们把剩余几个分区也如此刷入
直到把所有分区都刷入完毕后,执行fastboot reboot命令重启手机,此时刷机完毕。手机又可以正常使用了。第一次开机因为要初始化,所以速度比较慢,请耐心等待几分钟。
后记:本文所提到的adb以及fastboot命令仅仅只是这系列命令中的一小部分,还有很多很多好玩又好用的命令无法在此一一展示,下回还会有更多的相关命令与大家分享。由于各机型在使用具体命令过程中存在部分差异,还需要大家针对具体机型各自展开深入的研究。但是命令基本是可以通用的,fastboot命令还有很多很好用的,鉴于一次讲解过多会对大家造成理解上的困难,故本文不再继续深入,敬请期待下回分解!