使用 ADB 进行远程调试的全面指南
在移动应用开发过程中,ADB(Android Debug Bridge)是一个不可或缺的工具。特别是在需要进行远程调试时,ADB 能够让我们在不依赖 USB 连接的情况下,通过网络与设备进行通信。本文将详细介绍如何配置和使用 ADB 进行远程调试,以及如何处理常见的授权问题。
常规操作
1. 开启网络调试
首先,确保你的 Android 设备已经开启了开发者选项,并在其中启用了“网络调试”功能。这个过程通常需要进入设备的“设置”菜单,找到“开发者选项”,然后开启“网络调试”开关。
2. 通过 USB 启用 TCP/IP 模式
如果你的设备没有直接显示 IP 地址,可以通过 USB 连接设备并执行以下命令,将 ADB 设置为通过 TCP/IP 进行调试:
adb tcpip 5555
执行此命令后,ADB 将切换到 TCP/IP 模式,此时你可以断开 USB 连接。
3. 获取设备的 IP 地址
在设备上,进入“设置” > “网络与互联网” > “Wi-Fi”,选择当前连接的网络。在网络详情中,你可以找到设备的 IP 地址。
4. 连接设备
使用设备的 IP 地址和端口号(通常为 5555),通过以下命令连接到设备:
adb connect 192.168.0.101:5555
如果连接成功,你将在终端中看到类似以下的输出:
connected to 192.168.0.101:5555
5. 处理授权问题
在首次连接时,设备可能会提示“unauthorized”错误。这是因为设备尚未授权当前的调试会话。你可以通过以下步骤解决这个问题:
重启 ADB 服务:
adb kill-server adb connect 192.168.0.101:5555
- 确认设备授权:
在设备上确认授权提示。一旦授权成功,设备将被添加到 ADB 的设备列表中。
6. 进入设备的 Shell
连接成功后,你可以使用以下命令进入设备的 Shell:
adb shell
此时,你可以执行各种命令来与设备进行交互。退出 Shell 使用 exit
命令。
7. 断开连接
如果需要断开与设备的连接,可以使用以下命令:
adb disconnect 192.168.0.101
8. 恢复 USB 模式
如果你希望将 ADB 恢复为 USB 模式,可以使用以下命令:
adb usb
手动修改 ADB 调试授权信息
在某些情况下,你可能无法通过常规方式获取调试授权,例如授权弹窗无法弹出。这时,可以手动修改设备的 ADB 调试授权信息。
1. 获取电脑的 ADB 公钥
首先,找到你电脑上的 ADB 公钥文件。公钥文件的位置如下:
- Linux/macOS:
~/.android/adbkey.pub
- Windows:
C:\Users\<用户名>\.android\adbkey.pub
cat ~/.android/adbkey.pub
复制文件中的内容,这就是你电脑的 ADB 公钥。
2. 将公钥添加到设备的 adb_keys 文件
接下来,通过 ADB 进入设备的 Shell(假设设备已经 root,并且可以通过 USB 连接):
adb shell
进入 ADB 密钥目录:
cd /data/misc/adb
编辑 adb_keys
文件:
nano adb_keys
将之前复制的公钥内容追加到文件中。保存并退出编辑器(在 nano
中,按 Ctrl + X
,然后按 Y
确认,最后按 Enter
保存)。
3. 重启 ADB 并重新连接
最后,重启 ADB 服务,并重新连接到设备:
adb kill-server
adb connect 192.168.0.101:5555
此时,设备应该已经成功授权,并可以进行远程调试。
无法点击屏幕实现手动授权ADB
安卓有三个模式:正常模式、Recovery 模式、Fastboot模式。
测试设备:
- OnePlus 5T (8+128) 触屏坏(显示正常)
- android 10
- unlock bootloder + root + magisk
作者尝试在 Recovery 模式下,也是可以正常连接的。
因此,可以换一种思维方式,在 recovery 模式之下,将 adb 的公钥写入到手机(参考上文),之后重启手机即可。此时不需要ADB授权。
注意事项
- 确保设备和电脑在同一个网络下,以确保连接的稳定性。
- 手动修改
adb_keys
文件需要设备具有 root 权限,操作时请谨慎。
Comments | NOTHING