在 Android AOSP 上通过 TCP/IP 启用 adb 调试
Enable adb debug over TCP/IP on Android AOSP
我已经按照项目文档 https://source.android.com/setup/build/devices#960hikey
中的描述从 master
构建了 Android AOSP
我已经更改了 mk 文件 https://android.googlesource.com/device/linaro/hikey/+/refs/heads/master/hikey960.mk#33 以添加 属性 覆盖,如图所示:
将所有内容都刷入设备并尝试像这样连接它:
$ adb kill-server
$ adb connect 192.168.196.78:5555
* daemon not running; starting now at tcp:5037
* daemon started successfully
failed to connect to '192.168.196.78:5555': Connection refused
我到处都在寻找如何在目标设备上启用它,但运气不佳。
谁能指出我哪里出了问题?
USB 连接工作正常,我没有像防火墙或代理这样的任何东西阻止端口。这一切都在我的本地 wifi 网络上...
在您回答之前,请注意这不是 ADB 开箱即用的普通智能手机。它是 Android Hikey 960 上的 AOSP(Google 的 AOSP 参考板)。
谢谢!任何帮助将不胜感激。
$亚行kill-server
$ adb tcpip 5555
** 守护进程不是 运行;现在开始 tcp:5037
* 守护进程启动成功
以 TCP 模式端口重新启动:5555
$ 亚行连接 192.168.2.18:5555
*连接到 192.168.2.18:5555
- 检查您是否选择了默认启用 ADB 的构建配置(
-eng
、-userdebug
)。否则,您必须在 Android 为 运行 时启用它,这需要连接显示器和输入设备。通常这可以通过导航到设置并多次单击内部版本号来完成。
- 检查主机 (
ping 192.168.196.78
) 和目标 (ping 192.168.196.?
) 的网络连接。
- 检查
logcat
目标上的错误消息。
- 尝试在目标 (
sudo stop adbd && sudo start adbd
) 上重新启动 adbd
守护进程。注意:显然需要额外的 non-adb 连接。
找到解决方案。
我实际上根本不需要更改 AOSP 代码。我只需要使用 USB-C 电缆启动设备并执行以下操作:
$ adb shell
hikey960:/ $ su
hikey960:/ # setprop persist.adb.tcp.port 5555
hikey960:/ # exit
hikey960:/ $ exit
$ adb reboot
$ adb connect 192.168.196.77:5555
connected to 192.168.196.77:5555
(重启后不要忘记移除 USB-C 线缆!)
换句话说,我们设置了错误的道具。所有需要在重启后持续存在的道具都以 persist.
为前缀
希望对遇到同样情况的人有所帮助
感谢您的回复!
我在原始 AOSP 源代码中找到了这个:
device/google/cuttlefish/shared/device.mk:
57 PRODUCT_PRODUCT_PROPERTIES += \
58: persist.adb.tcp.port=5555 \
我已经按照项目文档 https://source.android.com/setup/build/devices#960hikey
中的描述从master
构建了 Android AOSP
我已经更改了 mk 文件 https://android.googlesource.com/device/linaro/hikey/+/refs/heads/master/hikey960.mk#33 以添加 属性 覆盖,如图所示:
将所有内容都刷入设备并尝试像这样连接它:
$ adb kill-server
$ adb connect 192.168.196.78:5555
* daemon not running; starting now at tcp:5037
* daemon started successfully
failed to connect to '192.168.196.78:5555': Connection refused
我到处都在寻找如何在目标设备上启用它,但运气不佳。
谁能指出我哪里出了问题?
USB 连接工作正常,我没有像防火墙或代理这样的任何东西阻止端口。这一切都在我的本地 wifi 网络上...
在您回答之前,请注意这不是 ADB 开箱即用的普通智能手机。它是 Android Hikey 960 上的 AOSP(Google 的 AOSP 参考板)。
谢谢!任何帮助将不胜感激。
$亚行kill-server
$ adb tcpip 5555
** 守护进程不是 运行;现在开始 tcp:5037
* 守护进程启动成功
以 TCP 模式端口重新启动:5555
$ 亚行连接 192.168.2.18:5555
*连接到 192.168.2.18:5555
- 检查您是否选择了默认启用 ADB 的构建配置(
-eng
、-userdebug
)。否则,您必须在 Android 为 运行 时启用它,这需要连接显示器和输入设备。通常这可以通过导航到设置并多次单击内部版本号来完成。 - 检查主机 (
ping 192.168.196.78
) 和目标 (ping 192.168.196.?
) 的网络连接。 - 检查
logcat
目标上的错误消息。 - 尝试在目标 (
sudo stop adbd && sudo start adbd
) 上重新启动adbd
守护进程。注意:显然需要额外的 non-adb 连接。
找到解决方案。
我实际上根本不需要更改 AOSP 代码。我只需要使用 USB-C 电缆启动设备并执行以下操作:
$ adb shell
hikey960:/ $ su
hikey960:/ # setprop persist.adb.tcp.port 5555
hikey960:/ # exit
hikey960:/ $ exit
$ adb reboot
$ adb connect 192.168.196.77:5555
connected to 192.168.196.77:5555
(重启后不要忘记移除 USB-C 线缆!)
换句话说,我们设置了错误的道具。所有需要在重启后持续存在的道具都以 persist.
希望对遇到同样情况的人有所帮助
感谢您的回复!
我在原始 AOSP 源代码中找到了这个:
device/google/cuttlefish/shared/device.mk:
57 PRODUCT_PRODUCT_PROPERTIES += \
58: persist.adb.tcp.port=5555 \