使用 tcpip 传输重新启动 adbd 的能力因设备而异。如果不确切知道您正在使用哪种设备,就很难知道确切的原因。
我在运行 4.2.1 的 Galaxy Nexus (takju) 上测试了“adb tcpip 5555”,发现它可以工作。我还在其他几个设备上进行了测试,但这些都不起作用。
我设法在 Motorola Droid 3 上使用 root 访问权限使其工作。请注意 ro.secure=1 和 ro.debuggable=0 仍然。我只需手动将 service.adb.tcp.port 设置为“5555”,如下所示:
devbox:~/droid3$ adb shell
shell@cdma_solana:/$ getprop | grep 'ro.secure\|可调试\|qemu'
[ro.secure]:[1]
[ro.debuggable]:[0]
shell@cdma_solana:/$ su -c 'setprop service.adb.tcp.port 5555'
shell@cdma_solana:/$ 退出
devbox:~/droid3$ adb tcpip 5555
在 TCP 模式下重启端口:5555
devbox:~/droid3$ adb connect 172.16.0.14
连接到 172.16.0.14:5555
devbox:~/droid3$ adb -s 172.16.0.14:5555 外壳
壳@cdma_solana:/$
虽然我在运行“adb tcpip”时指定了 5555,但它会被设备忽略。似乎这个特定设备没有必要的访问权限来设置没有 root 的“service.adb.tcp.port”属性。
同样,您可以像这样返回 USB:
shell@cdma_solana:/$ getprop | grep 亚行
[persist.service.adb.enable]:[1]
[ro.sys.atvc_allow_all_adb]:[0]
[persist.adb.tcp.port]:[]
[init.svc.adbd]:[运行中]
[service.adb.tcp.port]:[5555]
shell@cdma_solana:/$ su -c 'setprop service.adb.tcp.port ""'
shell@cdma_solana:/$ 退出
devbox:~/droid3$ adb -s 172.16.0.14:5555 usb
以 USB 模式重新启动
devbox:~/droid3$ adb shell
壳@cdma_solana:/$
这可能不适用于其他设备的原因各不相同。
在我测试的 Galaxy Nexus 上,shell 用户能够设置“service.adb.tcp.port”属性。目前尚不清楚为什么会有所不同。
有趣的是,如果启用 TCPIP,droid3 似乎不会继续在 USB 上监听。但是,Galaxy Nexus 会。
希望这可以帮助..
PS。另请参阅:如何通过 TCP 使用 ADB 连接到 Android?