分享

了解Android Debug Bridge

 流云越明月 2024-12-26 发布于江苏

💡

学习难度

💡

无危险

💡

无数据清除

文章演示辅助:尚未完成


前言

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是无法直接运行的,我们需要使用终端调用,安装方法一共有三种,分别是:系统目录法、环境变量法、一键安装法。

系统目录法:

  1. 将ADB工具包解压至桌面。
  2. 打开工具包,文件夹内会有四种文件,两个终端文件、两个dll文件。
  3. 依次打开系统盘(默认c盘)、Windows,将工具包内四个文件放置“Windows”目录下。

环境变量法

  1. 将ADB工具包解压至你熟知的路径保存起来。
  2. 右键“此电脑”依次点击“属性”、“高级系统设置”、“环境变量”。
  3. 在系统变量下双击“Path”编辑环境变量。
  4. 新建环境变量,填入工具箱保存的路径,例如:'D:\ADB'。

一键安装法:

  1. 解压“15 Seconds ADB installer”。
  2. 运行程序,根据工具提醒输入 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”则是执行指令,运行指令与执行指令中间必须存在空格,当执行指令后方存在变量时,也需要相距一个空格。

  • 常用指令:
  1. “adb devices”
  • 此指令可检测电脑与手机的连接,当手机处于fastboot模式时,需使用“fastboot devices”。
  1. “adb reboot”
  • 此指令中执行指令后方可添加变量,例如:”adb reboot recovery“则是重启至recovery;”adb reboot bootloader”“则是重启至fastboot;adb reboot edl则是重启至9008模式,这个模式只有解锁BootLoader时才可以通过指令进入。
  1. “adb install 路径”
  • 此指令可安装电脑中的apk文件,例如:“adb install D:\Download\bilibili.apk”。
  1. “adb push 路径”
  • 此指令可以将电脑文件推送到手机里,例如:“adb push D:\学习文件”。
  1. “adb pull 手机路径 电脑路径”
  • 此指令可将手机文件拉取到电脑里,例如:“adb pull /sdcard/学习文件 D:\”。
  1. “adb uninstall 包名”
  • 此指令可卸载手机中的软件,例如:“adb uninstall com.coolapk.market” 卸载酷安。
  1. “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”则是执行指令,运行指令与执行指令中间必须存在空格,当执行指令后方存在变量时,也需要相距一个空格。

  • 常用指令:
  1. “fastboot devices”
  • 此指令可检测电脑与手机的连接,当手机处于开机或recovery模式时,需使用“adb devices”。
  1. “fastboot -w”
  • 此指令将清空设备数据分区,这会导致数据丢失,酌情使用。
  1. “fastboot flash (分区名) (镜像路径)”
  • 此指令会将指定镜像刷入制定分区,例如:“fastboot flash boot D:\修补文件\boot.img”。
  1. “fastboot boot (镜像路径)”
  • 此指令仅限高通机型使用,它会临时启动指定镜像,无论设备开机是否成功,重启一次即可恢复正常,它不会实际覆盖分区,例如:“fastboot boot D:\TWRP\recovery.img”。
  1. “fastboot reboot”
  • 此指令中执行指令后方可添加变量,例如:“fastboot reboot recovery”则是重启至recovery;“fastboot reboot bootloader”则是重启至fastboot;”fastboot reboot fastboot“则是重启至fastbootd模式。

分区作用

在刷机时,总会看到各种分区,这些“boot”、“recovery”,这些镜像分区都是干什么的?

  1. system 系统分区
  • system分区存储了手机的操作系统与系统文件,如果损坏,开机会卡在fastboot模式中,无法正常启动。
  1. recovery 恢复分区
  • recovery恢复分区通常包含一个小型Linux系统,用于安装和升级系统软件的工具和程序。
  1. data 数据分区
  • data分区储存了系统数据、应用数据、用户数据,如果这个分区损坏会导致数据丢失。
  1. cache 缓存分区
  • cache分区储存了系统缓存,这个分区清除不会出现设备异常。
  1. boot 引导分区
  • boot分区用于存储设备引导程序和内核映像文件,以帮助设备启动和加载操作系统。如果损坏,开机会卡在fastboot模式中,无法正常启动。
  1. persist 传感分区
  • 这个分区用于存储持久化数据,也可能会包含传感器文件、指纹文件、安全证书等,通常这个分区不会被刷写,如果这个分区出现异常,可能会导致传感器失效、tee损坏。

小知识:TEE是指可信执行环境(Trusted Execution Environment),它是一个安全的执行环境,用于保护设备的敏感数据和功能,例如指纹识别、加密和电子支付等。当TEE受损,设备敏感内容可能会受到威胁,在部分软件中可能会导致无法使用安全功能。

  1. modem 基带分区
  • modem分区存储了与手机通信相关的数据和程序,删除或修改'Modem'分区中的数据,可能会导致手机通信功能受到影响或无法正常工作。
  1. cust 内置分区
  • cust分区存储了厂商内置应用程序、主题、字体、声音、壁纸等资源。
  1. vbmeta 校验分区
  • vbmeta分区用于存储验证引导,其它vbmeta_xxx分区作用相同,可以通过关闭avb来停用分区校验。

小知识:将vbmeta分区提取出来,手机进入fastboot连接电脑使用指令“fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img路径”即可关闭avb校验。

  1. logo/splash 开机动画分区
  • logo/splash分区用于存储开机第一屏与fastboot图片,如果此分区损坏可能会导致无法开机。
  1. vendor 定制分区
  • 可以将此分区看作为system分区的补充,厂商定制内容可以放在此分区。
  1. product 特定分区
  • 与特定产品有关的模块,包括对android系统的定制化。
  1. 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”架构

无论何时,请保管数据,请开始下一阶段的学习。


问题

  1. 电脑设备检测不到手机设备
  • 在链接情况下,在电脑中鼠标右键此电脑、管理、设备管理,查看设备连接状态。若存在Android但有黄色叹号,证明驱动未安装,若无手机设备存在,请更换数据线或USB端口。

结尾

本分段制作人员: 策划:星随梦能
技术:文鸯、东方怂天
文稿:文鸯

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多