23

免 root 玩转 Android 设备:如何从零开始使用 adb

 4 years ago
source link: https://sspai.com/post/57427
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

从前段时间大热的scrcpy 到各种 Android 优化工具,使用 Android 设备的过程中,不少人应该都见过或接触过 adb。

adb 的官方中文名叫做 Android 调试桥 ,作为一种和 Android 设备「沟通」的有效手段,它可以帮我们实现不少实用的玩机需求,让一些不便进行 root 操作的 Android 设备也能享受到绿色守护、冰箱这类应用带来的便利。

只是环绕在 adb 这个工具四周的除了玩机社区的「光环」,同样也不乏一大堆让新用户头疼的「玄学」问题。在今天这篇文章中,我们不妨就从最基础的问题入手,从头梳理与 adb 有关的一切,希望它能在你玩机的过程中发挥更加系统的作用。

配置平台工具软件包

虽然越来越多的开发者和用户都开始借助 adb 来实现特定的玩机需求,但 adb 归根结底还是一种面向开发者的调试工具。Google 将 adb 包含在了 Android SDK 平台工具软件包当中,使用 Android Studio 的开发者可以通过内建的 SDK 管理器 直接下载或更新包含 adb 工具的平台工具软件包(Platform-Tools)。

AZZnaqJ.png!web SDK 管理器 | 图:Android Developers

对一般用户而言,如非技能学习需要,则完全没必要下载体积动辄 600~700M 的 Android Studio 安装包——Google 还额外提供了一个独立的 Android SDK 平台工具软件包,无论你的电脑运行的是 Windows、Mac 还是 Linux,都可以在 这个网站 中下载到对应的版本。

QzQBZ3r.png!web 官方提供的平台工具软件包

问题在于,通过 Android Studio 安装时我们一般无需操心配置问题,但手动下载来的独立版 Android 平台工具软件包却需要一定的配置操作才能配合系统自带的终端或命令行工具正常使用。具体而言:

如果你使用的是 Windows 操作系统,将下载得到的压缩包进行解压后,接下来我们还需要选择一个固定的路径用于存放解压得到的文件夹,然后我们需要将整个平台工具软件包的存放目录添加至「系统属性 > 高级 > 环境变量 > 系统变量」的 Path 当中,如下图:

aMRfeuj.png!web 将平台工具软件包路径添加至系统变量

添加完成后,使用 Win+R 打开 cmd 命令行工具,然后执行 adb version 指令来进行检验,如果结果能够输出 adb 版本和平台工具软件包安装路径则证明环境配置正确。

2Y3mAzj.png!web 测试是否配置成功

值得一提的是,上面介绍的方法为一劳永逸的标准配置方法,如果你图个方便,也可以根据这篇文章 中介绍的方法,直接在下载得到的文件夹上运行 Powershell 窗口来执行后续的 adb 操作。因为 Windows 平台自身的特色,平台工具软件包的使用方法也有不少,这里不再赘述。

关联阅读: Android 设备刷机通用指南

如果你使用的是 Mac,将下载得到的压缩包进行解压并选择一个固定的路径用于存放解压后的文件夹后,需要用类似的方法将平台工具软件包文件夹所在路径添加至 .bash_profile 文件中,添加方法如下:

  1. 在 Terminal 中输入  cd ~  并执行,然后执行  touch .bash_profile  指令创建 .bash_profile 环境配置文件
  2. 输入并执行  open -e .bash_profile  进入文件编辑界面,然后将平台工具软件包的存放路径以  export PATH=$PATH:/存放路径/  的格式输入进去
  3. 保存退出后,在 Terminal 中输入并执行  source .bash_profile ,完成环境配置

完成后,你可以用同样的方法,在 Terminal 中输入并执行 adb version 指令来进行校验。

关联阅读: 使用 Mac 为 Android 手机刷原生系统

如果你使用的是 Linux,安装方法与 Mac 类似,将平台工具软件包的文件夹路径添加至 .bashrc 文件即可。不过对 Linux 和 Mac 用户而言,使用来自 XDA-Developers 社区的老牌工具包  Nexus Tools 也是个不错的选择,安装配置也更加「傻瓜化」。

在终端应用中输入并执行:

bash <(curl -s https://raw.githubusercontent.com/corbindavenport/nexus-tools/master/install.sh)

即可一键完成 adb 所需的环境配置。

执行:

bash <(curl -s https://raw.githubusercontent.com/corbindavenport/nexus-tools/master/uninstall.sh)

即可卸载 Nexus Tools。

需要注意的是,虽然本文提到的方法大多为一次配置、长期可用的环境配置方法,但即便我们通过这些方法正确配置了环境,也有可能会在未来某天遇到 adb 指令不管用、刷机报错等问题。

这时往往就需要你前往平台工具软件包 官方网站 或 Nexus Tools 的 更新发布 页面检查并获取更新了。更新平台工具软件包版本能够解决大部分问题。

你可以用 ADB 干什么

配置好平台工具软件包的同时,adb、fastboot、systrace 等一系列工具也一并添加到了我们所使用的桌面系统当中。借此我们就可以将 Android 手机和电脑使用 USB 数据线连接,然后使用 adb 指令实现很多操作了。

要在 Android 设备上执行 adb 指令,在此之前我们还需要在手机的系统设置中启用「USB 调试」功能。USB 调试功能位于「开发者选项」当中,在搭载 Android 4.2 及更高版本的设备上,开发者选项默认隐藏,要将其显示出来,我们需要在「设置 > 关于手机」中找到并连续点击七次 版本号

qENRFzN.png!web 反复点击版本号来启用开发者选项

注:在某些设备上,开发者选项和版本号所在的位置或命名方式可能有所不同。

确保 USB 调试功能打开后并授予已连接计算机 USB 调试权限后,我们就可以使用各种各样的 adb 命令了。

以 Android 平台最为老牌后台管理应用绿色守护为例,如果你想让那些后台行为不受制约的流氓应用在待机期间少耗一点电量,除了 root 设备后寻求解决方案外,也可以在免 root 状态下安装使用绿色守护。

EFZRbqR.png!web 绿色守护

不过免 root 状态下绿色守护的嗜睡模式、唤醒追踪及切断等高级功能均无法直接使用,这时 adb 就可以派上用场了:用上面介绍的方法将手机与电脑连接后,在终端/命令行工具中执行:

adb -d shell pm grant com.oasisfeng.greenify android.permission.WRITE_SECURE_SETTINGS

即可在 Android 7.0+ 系统版本的手机上启用嗜睡模式。

执行:

adb -d shell pm grant com.oasisfeng.greenify android.permission.DUMP

即可在停用了 Doze 功能的设备上启用嗜睡模式。

执行:

adb -d shell pm grant com.oasisfeng.greenify android.permission.READ_LOGS

即可启用唤醒追踪。

执行:

adb -d shell pm grant com.oasisfeng.greenify android.permission.READ_LOGS | adb -d shell pm grant com.oasisfeng.greenify android.permission.WRITE_SECURE_SETTINGS

即可在 Android 4.4~5.x 系统版本的手机上启用唤醒切断功能。

绿色守护开发者在 帮助页面 中还提供了一系列能够通过 adb 指令来激活的增强功能,如果你有需要也可以前往查看。类似的,黑阈、冰箱、空调狗等常见 Android 系统优化工具也都提供了基于 adb 指令激活的工作模式,即便你没有 root 或不想 root 手里的 Android 设备,也可以大胆下载使用,然后根据应用内提示执行对应的 adb 指令即可。

FNVN7nY.png!web 冰箱、空调狗与黑阈的 adb 模式引导

最后,在终端/命令行工具中输入并执行 adb help 指令,我们还能看到不少常用的 adb 指令——事实上,除了为特殊应用开启「方便之门」,adb 本身也有很多实用用法,比如通过 dmesg 抓取内核调试信息向内核开发者提供反馈、通过 screenrecord 进行屏幕录制、通过 install 指令向手机安装应用、通过 pushpull 指令在手机和电脑间传输文件等等。

你可以在 这里 查看、学习和使用一些常见的 adb 指令与操作,少数派此前也介绍过不少 adb 的实用用法,你可以自行搜索查阅。

关联阅读:

没有数据线如何 adb

在平台工具软件包配置合理、adb 指令输入正确的前提下,使用 adb 指令来实现各种功能虽然可以免除 root 的必要,但时不时也会觉得有些麻烦:每次想要通过 adb 指令完成特定操作,我们都得翻出数据线,然后将手机和电脑连接起来……

对于黑阈这种手机重启或关机后就需要重新使用 adb 指令激活的应用来说,使用数据线连接电脑也许成为了挡在「懒癌」患者门前的最后一块石子。有没有办法扔掉这条恼人的 USB 数据线呢?

其实是有的,不过在此之前我们还得用一次数据线。

使用数据线将手机和电脑连接,然后在电脑上的终端/命令行中输入并执行命令:

adb tcpip 5556

此时连接电脑和手机的 adb 服务器将以 TCP 模式在 5556 端口下启动,如果手机端弹出类似下面这种权限请求窗口,记得勾选「总是允许」。

EnQZRfV.png!web USB 调试授权窗口

然后我们就可以拔掉数据线了。

确保手机和电脑处在同一 Wi-Fi 网络下,然后前往「设置 > 关于手机」中查看手机在当前 Wi-Fi 网络下的 IP 地址,假设为 123.123.1.1

在电脑端的终端/命令行中输入并执行:

adb connect 123.123.1.1

即可通过 Wi-Fi 连接到设备,此时在终端/命令行中执行的 adb 指令可以通过 Wi-Fi 与手机交互。

eeIzuq2.png!web 免数据线 adb

另外,如果你使用的 ROM 自带了网络 adb 调试功能(比如魔趣),也可以省去第一次使用 USB 数据线连接的过程,直接在终端使用 指令:端口 的方式连接设备,比如下图中网络 adb 调试功能显示我当前设备的调试地址为 192.168.50.196:5555,那我们可以直接使用指令:

adb connect 192.168.50.196:5555

来连接到这台设备。

qEvquaN.jpg!web 通过第三方 ROM 或 App 来获得更便捷的网络 ADB 调试功能

以上便是 adb 的环境配置、常见用法和网络 adb 的使用方法,虽然代码看上去可能会有些枯燥甚至复杂,但大多数情况下其实都只是复制粘贴的事情。

克服了这点畏难情绪,我们就可以好好利用 adb 这个强大的调试工具来实现一些进阶玩机需求了。欢迎在评论区分享你的用法。

> 下载少数派客户端、关注 少数派公众号,发现更多 Android 玩机技巧 :rocket:

> 特惠、好用的硬件产品,尽在 少数派 sspai 官方店铺  


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK