前言
ADB与FASTBOOT的使用方法是刷机的基础,灵活运用这些指令可以在关键的时候救回你的设备。
什么是adb?fastboot、recovery,这些模式都是什么意思?
- ADB:全称“Android Debug Bridge”安卓调试桥,它的权限等级在用户之上,ROOT之下,你可以使用它进行调试、修改、给予权限等普通用户无法实现的功能,要想使用此功能,你需要在手机设备中启动“USB调试“功能,并连接电脑设备中使用ADB工具进行调试。
- FastBoot:这个模式就是我们常说的兔子模式,它平时主要用于设备的系统维护与更改,通过与电脑设备的连接,执行各种系统操作,例如:线刷系统、修改分区、解锁BootLoader等。
- Recovery:这个模式主要用于设备的故障排除与修复,该模式提供了一系列功能,例如:清除缓存分区、格式化、备份与恢复、卡刷系统、修改文件等。
- ADB Sideload:这个模式需要通过Recovery启用,在此模式中,你可以通过电脑中的“adb sideload”指令将卡刷包推送进手机设备进行刷写。
- FastBootD:这个模式是用来刷写fastboot无法刷写的分区,例如super分区下的几个逻辑分区。此模式是recovery中的一项功能,当你在刷写recovery时也在刷写fastbootd。
获取ADB
获取ADB工具的渠道有很多,例如官方的谷歌文档,或者[https://cloud.189.cn/t/FZveamI77ZRr (opens in a new tab) 访问码:2cvm]中获取。
安装ADB
ADB是无法直接运行的,我们需要使用终端调用,安装方法一共有三种,分别是:系统目录法、环境变量法、一键安装法。
系统目录法:
- 将ADB工具包解压至桌面。
- 打开工具包,文件夹内会有四种文件,两个终端文件、两个dll文件。
- 依次打开系统盘(默认c盘)、Windows,将工具包内四个文件放置“Windows”目录下。
环境变量法
- 将ADB工具包解压至你熟知的路径保存起来。
- 右键“此电脑”依次点击“属性”、“高级系统设置”、“环境变量”。
- 在系统变量下双击“Path”编辑环境变量。
- 新建环境变量,填入工具箱保存的路径,例如:'D:\ADB'。
一键安装法:
- 解压“15 Seconds ADB installer”。
- 运行程序,根据工具提醒输入 Y或N。
- 第一个提醒是 是否安装 ADB 和 Fastboot;按Y同意,按N拒绝。
- 第二个提醒是 是否安装 ADB 系统变量;按Y同意,按N拒绝。
- 第三个提醒是 “是否安装驱动程序”;按Y同意,按N拒绝。
使用方法
ADB指令一共分为两种,分别是:“ADB指令”、“FastBoot指令”,ADB指令适用于手机开机状态与Recovery模式、FastBoot指令适用于FastBoot与FastBootD模式。
ADB指令使用准备
要想使用ADB指令,你需要首先在手机设备中打开“USB调试”功能,我们依次打开:设置、更多设置、开发者选项、USB调试,将“USB调试功能打开”。然后电脑打开“CMD”或”powershell”,输入指令:“adb version”,若终端成功显示ADB工具版本,则为安装成功,可以继续使用,若显示无法处理,则为安装失败。
第一次调用ADB指令时,手机会弹出是否允许USB调试,点击允许。
ADB指令使用
ADB指令的例子是:“adb空格执行命令”也就是“adb devices”,其中“adb”是运行指令,如果是fastboot指令就把它更换成fastboot即可;“devices”则是执行指令,运行指令与执行指令中间必须存在空格,当执行指令后方存在变量时,也需要相距一个空格。
- “adb devices”
- 此指令可检测电脑与手机的连接,当手机处于fastboot模式时,需使用“fastboot devices”。
- “adb reboot”
- 此指令中执行指令后方可添加变量,例如:”adb reboot recovery“则是重启至recovery;”adb reboot bootloader”“则是重启至fastboot;adb reboot edl则是重启至9008模式,这个模式只有解锁BootLoader时才可以通过指令进入。
- “adb install 路径”
- 此指令可安装电脑中的apk文件,例如:“adb install D:\Download\bilibili.apk”。
- “adb push 路径”
- 此指令可以将电脑文件推送到手机里,例如:“adb push D:\学习文件”。
- “adb pull 手机路径 电脑路径”
- 此指令可将手机文件拉取到电脑里,例如:“adb pull /sdcard/学习文件 D:\”。
- “adb uninstall 包名”
- 此指令可卸载手机中的软件,例如:“adb uninstall com.coolapk.market” 卸载酷安。
- “adb sideload 文件”
- 此指令用于adb sideload模式里推送刷机包。
FastBoot指令使用准备
要想使用fastboot指令,我们需要进入fastboot模式,我们之前进入fastboot模式都是通过键位引导进入,那么在本章学习了adb指令以后,我们可以通过adb指令更快捷方便的进入fastboot模式,在adb命令台中使用重启指令“adb reboot bootloader”即可进入fastboot模式。
FastBoot指令使用
FastBoot指令的例子是:“fastboot空格执行命令”也就是“fastboot devices”,其中“fastboot”是运行指令,如果是adb指令就把它更换成adb即可;“devices”则是执行指令,运行指令与执行指令中间必须存在空格,当执行指令后方存在变量时,也需要相距一个空格。
- “fastboot devices”
- 此指令可检测电脑与手机的连接,当手机处于开机或recovery模式时,需使用“adb devices”。
- “fastboot -w”
- 此指令将清空设备数据分区,这会导致数据丢失,酌情使用。
- “fastboot flash (分区名) (镜像路径)”
- 此指令会将指定镜像刷入制定分区,例如:“fastboot flash boot D:\修补文件\boot.img”。
- “fastboot boot (镜像路径)”
- 此指令仅限高通机型使用,它会临时启动指定镜像,无论设备开机是否成功,重启一次即可恢复正常,它不会实际覆盖分区,例如:“fastboot boot D:\TWRP\recovery.img”。
- “fastboot reboot”
- 此指令中执行指令后方可添加变量,例如:“fastboot reboot recovery”则是重启至recovery;“fastboot reboot bootloader”则是重启至fastboot;”fastboot reboot fastboot“则是重启至fastbootd模式。
分区作用
在刷机时,总会看到各种分区,这些“boot”、“recovery”,这些镜像分区都是干什么的?
- system 系统分区
- system分区存储了手机的操作系统与系统文件,如果损坏,开机会卡在fastboot模式中,无法正常启动。
- recovery 恢复分区
- recovery恢复分区通常包含一个小型Linux系统,用于安装和升级系统软件的工具和程序。
- data 数据分区
- data分区储存了系统数据、应用数据、用户数据,如果这个分区损坏会导致数据丢失。
- cache 缓存分区
- cache分区储存了系统缓存,这个分区清除不会出现设备异常。
- boot 引导分区
- boot分区用于存储设备引导程序和内核映像文件,以帮助设备启动和加载操作系统。如果损坏,开机会卡在fastboot模式中,无法正常启动。
- persist 传感分区
- 这个分区用于存储持久化数据,也可能会包含传感器文件、指纹文件、安全证书等,通常这个分区不会被刷写,如果这个分区出现异常,可能会导致传感器失效、tee损坏。
小知识:TEE是指可信执行环境(Trusted Execution Environment),它是一个安全的执行环境,用于保护设备的敏感数据和功能,例如指纹识别、加密和电子支付等。当TEE受损,设备敏感内容可能会受到威胁,在部分软件中可能会导致无法使用安全功能。
- modem 基带分区
- modem分区存储了与手机通信相关的数据和程序,删除或修改'Modem'分区中的数据,可能会导致手机通信功能受到影响或无法正常工作。
- cust 内置分区
- cust分区存储了厂商内置应用程序、主题、字体、声音、壁纸等资源。
- vbmeta 校验分区
- vbmeta分区用于存储验证引导,其它vbmeta_xxx分区作用相同,可以通过关闭avb来停用分区校验。
小知识:将vbmeta分区提取出来,手机进入fastboot连接电脑使用指令“fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img路径”即可关闭avb校验。
- logo/splash 开机动画分区
- logo/splash分区用于存储开机第一屏与fastboot图片,如果此分区损坏可能会导致无法开机。
- vendor 定制分区
- 可以将此分区看作为system分区的补充,厂商定制内容可以放在此分区。
- product 特定分区
- 与特定产品有关的模块,包括对android系统的定制化。
- super 动态分区
- 在传统的分区架构中,安卓系统通常包含多个独立的分区,例如系统分区、数据分区、缓存分区、boot分区、recovery分区、modem分区等。每个分区都有自己的大小和文件系统类型,需要单独进行管理和维护。而在Super Partition中,所有的系统分区都被合并为一个大的分区,称为Super分区。
分区架构
了解好这些常见分区以后,我们继续了解分区架构,你应该听说过什么“a only”、“动态分区”、“ab”、“vab”这些词语,那分区架构是什么意思呢?
A Only
A Only 分区方案是 Android 系统中最基本和最简单的分区方案之一。在 A Only 分区方案中,设备只有一个系统分区,即 /system 分区。这个分区包含了操作系统的核心组件和应用程序,以及一些其他的系统文件。此外,boot 分区包含了引导加载程序,vendor 分区包含了供应商特定文件,userdata 分区包含了用户数据。
Dynamic Partition
Dynamic Partition 分区方案是将系统分区划分为更多的子分区,如 system、vendor、product、odm、oem 等子分区,每个子分区都可以单独进行更新和管理,而不会影响其他子分区。这种分区方案可以在不同的设备上进行定制,以满足不同的需求。
Super Partition
Super Partition 分区方案是将设备的存储空间划分为多个物理分区,并将这些分区合并为一个逻辑分区。这种分区方案可以提高设备的性能和可靠性,同时还可以提供更灵活的系统更新和管理。Super Partition 可以自动调整分区大小,以适应不同的设备和需求。
A/B
在 A/B 分区方案中,设备会将部分分区划为两个,如 /system_a 和 /system_b。这两个分区都包含了操作系统的核心组件和应用程序,以及一些其他的系统文件。在任何时候,只有一个分区是激活的,即当前正在运行的系统映像所在的分区。当进行系统更新时,新的系统映像会被写入未激活的分区,更新完成后系统会在下一次重启时自动切换到新的系统映像。
vA/B
vA/B 分区方案是在 A/B 分区方案的基础上进行的改进。vA/B 分区方案是一种基于A/B分区技术的虚拟分区,即设备会存在两个分区,在任何时候,只有一个分区激活,而另一个分区是0kb无容量的,详细参考支线vol.5。vA/B 分区方案可以提供更好的系统更新体验和更高的系统稳定性。
它们运用在什么机型?
- 小米9及旧机型运用“A Only+Dynamic Partition”架构
- 小米10运用“A Only+Super Partition”架构
- 小米11及更新机型“vA/B+Super Partition”架构
无论何时,请保管数据,请开始下一阶段的学习。
问题
- 电脑设备检测不到手机设备
- 在链接情况下,在电脑中鼠标右键此电脑、管理、设备管理,查看设备连接状态。若存在Android但有黄色叹号,证明驱动未安装,若无手机设备存在,请更换数据线或USB端口。
结尾
本分段制作人员:
策划:星随梦能
技术:文鸯、东方怂天
文稿:文鸯
|