使用ADB解锁配置Android设备的新姿势
1. 什么是ADB?😂
ADB,全称Android Debug Bridge,即安卓调试桥,是一个通用的命令行工具,允许我们在PC上与Android模拟器实例或连接到PC的 Android 设备进行通信,并实现各种便利的、高权限的操作。
ADB工作在服务器-客户端模式,一个ADB程序分为三个部分,分别是:
部分 | 功能 |
---|---|
客户端 | 在用于开发和调试的计算机上运行,用于发送命令 |
后台程序 | 在Android设备上运行命令,作为后台程序运行 |
后服务器 | 管理客户端和后台程序的通信,在用于开发或调试的计算机上作为后台程序运行 |
ADB可在Android开发者平台,Android Developers的官方网站下载。 |
2. ADB的使用
2.1 ADB的安装
下载的ADB工具包是文件名形如platform-tools_r28.0.1-windows的压缩包,将其解压缩至任意英文目录下,然后使用管理员权限打开Window命令提示符cmd。
带有管理员权限的cmd默认的工作路径为
C:\WINDOWS\system32>
由于其默认的盘符在C:,若刚刚解压缩的文件不在C:,则需要先更改工作盘符。
输入刚刚解压到的盘符
X:
随后输入新的工作目录路径
cd X:\your own directory\platform-tools_r28.0.1-windows\platform-tools
这样我们就已经正确安装ADB工具,并且可以正常开始使用了。
2.2 使用前的准备
首先将我们的Android设备用USB线连接电脑,然后从开发者选项中打开USB调试功能。
如果你使用的是Android 4.2及以上版本的设备,且之前没有打开过开发者选项,那么可能需要先在设置 > 关于手机里,连续点击版本号7次,就可以在设置中找到开发者选项了。但由于国内的Android定制ROM过于混乱,有可能版本号选项位置会根据设备不同而有所变化。
需要注意的是,几乎所有的国内的手机助手类软件,都会使用ADB提供的功能和权限在实现USB安装等功能,所以在使用ADB工具包时,请先确认自己电脑上的国内的手机助手类软件均已经被卸载或完全关闭,以免其和ADB产生冲突,导致后续无法使用。
2.3 查看当前的连接状态
在开始使用ADB时,首先查看设备的连接状态是一个良好的习惯。我们可以使用devices
命令来查询。
adb devices
如果没有设备被正确连接,则List of devices attached
的列表里不会显示任何设备信息。
如果正确连接了设备,则会显示adb针对当前实例的唯一的标识信息。
- 序列号——一个由ADB生成的字符串,用于通过其控制台端口号唯一地标识模拟器/设备。序列号的格式为
type-consoleport
- 状态——模拟器/设备的链接状态可以分为以下三个部分
offineline
—模拟器/设备未连接到ADB或未响应device
—模拟器/设备已连接到ADBno device
— 未连接模拟器/设备
以下是当有3个设备被正确连接时的效果
X:\platform-tools_r28.0.1-windows\platform-tools>adb devices
List of devices attached
XGC4C16513010507 device
de160f3c device
emulator-5554 device
2.4 在Fastboot模式下查看设备
和在正常状态时类似,输入命令fastboot devices
,若有设备在fastboot模式下被正确连接,则会显示连接的设备信息。
2.5 常用的简单的命令
由于以下命令较为简单,且在进行多设备操作时,只需在adb
后输入-s SerialNumber
,即可对指定的设备/模拟器进行操作,所以以下内容我们全部采用只有一台设备连接的情况。
- 开关机
- 重新启动—
adb reboot
- 关机—
adb shutdown
- 重新启动—
- 进入recover或fastboot模式
- 进入recovery—
adb reboot recovery
- 进入fastboot—
adb reboot bootloader
- 进入recovery—
- 安装/卸载应用
- 安装App—
adb install your-own-app-path
- 覆盖安装App—
adb install -r your-own-app-path
- 卸载App—
adb uninstall apk-package-name
以上三条命令执行完成后,会显示成功信息Success
- 安装App—
- 文件操作
- 从计算机发送文件到Android设备—
adb push file-path destination-path
- 从Android设备拷贝出文件到计算机—
adb pull file-path destination-path
以上两条命令执行完成后会显示速度,所用时间等参数
- 从计算机发送文件到Android设备—
2.6 进行刷机 时可能用到的操作
2.6.1 解锁bootloader
首先确保拥有正确的解锁码,各设备的解锁密码(一般为16位)可从设备制造商处申请获得,如小米等。
然后输入命令使设备进入fastboot模式
adb reboot bootloader
随后再输入命令进行解锁
fastboot oem unlock ****************
其中****************
是16位的解锁密码。
待解锁完成后,设备将自动重新启动并恢复出厂设置
此时可通过fastboot oem get-bootinfo
命令来查看解锁状态
若显示Bootloader Lock State : UNLOCKED
,则说明设备已成功解锁
若显示Bootloader Lock State : LOCKED
,则说明设备未解锁
值得注意的是,目前由一些国内的制造商已经停止提供解锁渠道,如华为等,还有部分国内制造商从未开放过解锁权限,如VIVO,OPPO等。
2.6.2 刷入第三方recovery
注意:在刷入第三方recovery之前,一定要要确保设备已经正确解锁 bootloader,并使用适合当前设备的recovery,否则可能导致设备损坏
注意:在刷入第三方recovery之前,一定要要确保设备已经正确解锁 bootloader,并使用适合当前设备的recovery,否则可能导致设备损坏
注意:在刷入第三方recovery之前,一定要要确保设备已经正确解锁 bootloader,并使用适合当前设备的recovery,否则可能导致设备损坏
在确认设备已经解锁bootloader后,下载适合自己设备的第三方recovery文件,一般其文件名为recovery.img
使用命令adb reboot bootloader
使设备进入fastboot模式后,输入命令刷入recovery
fastboot flash recovery X:\xxx\xxx\recovery.img
完成这些步骤后,你就有了一台解锁了bootloader,且刷入了第三方recovery的Android设备了,现在你可以愉快的刷入第三方ROM了。
2.7 原生/类原生Android ROM的优化
如果你的设备采用的是Google原生的Android系统,如Google Pixel 3等,或刷入了第三方类原生ROM,如Pixel Experience,LineageOS等,或是外国生产的销售的Android设备,如港台版、日版、欧版、美版设备等,那么在使用过程中我们不难发现,屏幕右上角显示WiFi和移动网络的图标处总是显示有”❌“的符号。
这是因为在当前的Android系统中,Google引入了检测网络连通性的机制,会在设备联网后,检测网络的可用性,而这一服务由Google的服务器提供。
由于众所周知的原因,Google的服务器在我国大陆地区无法正常访问,所以Android会认为当前的网络没有连接到Internet,因此状态栏上的WiFi和移动网络图标就会显示”❌“。
我们同样可以通过ADB来解决这一问题。以下分别是两种方法
- 关闭检测
通过输入命令关闭这一检测
adb shell settings put global captive_portal_mode 0
- 替换检测的地址
修改检测服务器的地址为国内可以访问的即可,连接检测服务器时使用http协议和https协议使用不同的设置,需分别修改- 修改https协议
adb shell settings put global captive_portal_https_url https://captive.v2ex.co/generate_204
+ 修改http协议
adb shell settings put global captive_portal_http_url http://captive.v2ex.co/generate_204
修改完后的效果如下图所示