/ ADB

ADB: 安卓刷机常用的adb和fastboot命令

adb 开头的命令

adb命令

  • 要求手机处于USB调试模式才能起作用。
    而USB调试模式是在手机的安卓系统运行后才有的状态,所以adb命令大多在手机正常开机的状态下使用。

adb install name.apk

  • 安装apk命令。
    其中包名为name.apk,使用的是相对路径,也就是说name.apk文件在电脑的adb目录里,当然你也可以用绝对路径来表达。另外,如果你给adb目录加了PATH环境变量,还可以直接在apk文件所在目录下,直接执行adb install name.apk

adb uninstall name.apk

  • 卸载apk命令。

adb devices

  • 查看adb连接设备列表,
    如果adb服务没有开启,这个命令会初始开启。正常连接会看到安卓设备编号,但如果是连接异常,还会看到在每一行的设备号后面,写着异常状态,比如offline和unauthorized。

adb reboot

  • 正常重启手机

adb reboot-bootloader

  • 重启手机,并直接进入bootloader模式,也就是刷机常用的模式

adb reboot-recovery

  • 重启手机,进入bootloader模式,并且直接进入recovery系统。
    recovery系统是运行在bootloader模式下的刷机小系统,通过recovery,我们可以对系统进行更新升级,刷补丁,刷rom固件,备份,替换系统文件,修改文件属性权限,通过bootloader和recovery,可以实现常见的刷机几个模式:flash线刷,sideload线刷,还有卡刷。

fastboot开头的命令

  • fastboot命令
    用于bootloader模式,
    也就是手机重启按电源+音量下进入的那个字母界面,也就是recovery系统所处的模式。你可以称之为工程模式,或者安卓系统引导菜单。如果手机已经进入安卓系统的桌面,自然也就用不了fastboot命令,只能开usb调试,用adb命令了。
    所以,adb与fastboot命令分别作用于手机的两种模式下。

fastboot flash bootloader bootloader-name.img

  • 刷入bootloader镜像文件,一般用于刷机后引导不正常时,或者引导模式对手机信息识别错误的情况下,刷入官方包里的bootloader镜像文件,另外如果是官方的升级包,一般都是默认刷入它。在官方的升级包的bat批处理命令里,也可以看到这一条类似的命令。

fastboot flash radio radio-name.img

  • 刷入radio无线驱动包,管理手机信号芯片等。

fastboot flash recovery TWRP-name.img

  • 刷入recovery系统的镜像文件,这里是TWRP的recovery系统,一种常用的第三方recovery刷机系统。recovery镜像文件需要匹配不同的机型,如果刷入后进不去recovery,很简单,找个机型正确的recovery包再次刷入就行了。所以刷这玩意,常备一个官方rom里提取出来的recovery文件,随时刷回。

fastboot flash boot boot.img

  • 刷入boot包,应该是引导系统的底层包?经常刷机时会遇到刷机成功,启动进入系统却失败,都是boot.img没刷导致。可能原因就是boot.img与system.img不匹配,但是我并不是非常确定,所以也不好跟你乱说,只是说了这种用法,更明确的技术解释期待他人吧。

fastboot flash system system.img

  • 刷入system的安卓系统主要文件。
    这里好几条命令,又是bootloader,又是boot,还有radio,recovery为什么要这么命名。这个我也没有过多深究,说一下个人理解,并非肯定正确的解释。
    安卓的文件管理类似linux,linux与windows对存储分区的管理不同。windows我们是c盘d盘这样说,linux就是data目录,system目录,etc目录这样,是不是明白了点。bootloader这些名词应该也是对应的目录,但是这些是特殊目录,在安卓系统的框架里,已经固定了各自的权限和作用。所以刷机就是用特殊的命令去写入各种包,组成一套新的系统。你可以把这些命令理解为ctrl c和ctrl v……

fastboot flash cache cache.img

  • 刷入cache缓存文件,如果不刷它的话也可以清空,系统如果找不到cache缓存文件,就会自动生成。虽然它不是必须的可以为空,但是如果它已经有了,反而可能会影响系统启动,比如cache为旧系统产生的,刷机后新系统会先去读取cache的数据,导致不匹配而启动异常。所以刷机常说要双清,其中一清就是清除cache,还有一清就在下一条命令,叫userdata

fastboot flash userdata userdata.img

  • 刷入userdata镜像文件,直接字面理解,就是用户数据,既然是用户数据,它也同cache缓存一样,是可有可无的。cache和userdata的清除只会删掉你的使用数据,但不会导致系统崩溃。清除是很容易的,但是要保留就很难了。啥都清空刷机没啥意思,如果你能保留住自己的数据刷机那就很有成就感了。

fastboot reboot-bootloader

  • 重启bootloader模式

fastboot -w

  • 清空用户数据区和缓存区.相当于recovery菜单中的"wipe data/factoryreset"
    这和别人用的刷机命令里的双清是否是同一个命令就不知道了。
    在nexus5升级6.0的过程里,我折腾了十几遍刷机,这条命令起到的是双清的作用。

fastboot erase boot

  • fastboot erase cache
  • fastboot erase recovery
  • fastboot erase system
  • fastboot erase userdata
    清空不同的文件系统分区