Android的 - 亚行TCPIP错误(Android - adb tcpip error)

2019-06-25 13:31发布

我想连接到使用Android设备adb在网络上。 我熟悉我如何连接与亚行通过TCP到Android? 与https://developer.android.com/guide/topics/usb/index.html和遵循的准则。 具体地说,我做了以下内容:

# adb kill-server
# adb tcpip 5555
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
restarting in TCP mode port: 5555
# adb connect 192.168.1.101:5555
unable to connect to 192.168.1.101:5555:5555

由于最后一个错误,我也尝试过

# adb connect 192.168.1.101
unable to connect to 192.168.1.101:5555

我也尝试重新启动设备本身,但它并没有帮助。 任何理由为什么它不工作?

更新:要清除任何怀疑,我相信这是我的设备的内部IP地址。

Answer 1:

我已经与我的无根的设备相同的问题。 和流行的看法相反,似乎adb tcpip <port>要求要么仿真器或调试版本或root权限; 至少根据源代码。

主分支: https://github.com/android/platform_system_core/blob/master/adb/adb.c#L898看should_drop_privileges防止https://github.com/android/platform_system_core/blob/master/adb/adb .C#L966 adb_main打开一个TCP / IP套接字连接。

在年龄较大的分支,用于识别的特权逻辑adbdadb_main本身。 请参阅: https://github.com/android/platform_system_core/blob/froyo-release/adb/adb.c#L860

因此,为了进一步证明adbd不会进入TCP / IP模式(尽管adb tcpip给出任何错误),看看下面:

adb shell getprop | grep 'ro.secure\|debuggable\|qemu' adb shell getprop | grep 'ro.secure\|debuggable\|qemu'我的设备输出:

[ro.secure]: [1]
[ro.debuggable]: [0]

这不符合能得到一个条件secure在0值adbd ,因为我没有运行一个仿真器(默认情况下需要TCP / IP),我没有运行Android的可调试的内部版本,我“M不根。

此外,如果你发出adb shell netstat命令,你会看到,有没有人侦听端口5037或5555或您提供给任何其他tcpip命令从预期adbd在TCP / IP模式下运行。

希望这有帮助,祝你好运!



Answer 2:

的能力以重新启动adbd使用TCPIP传输可以变化从设备到设备。 如果不知道到底哪个设备你用它很难知道确切的原因。

我测试的“亚行5555 TCPIP”上的Galaxy Nexus(takju)运行4.2.1,发现它的工作。 我还测试了几个其他的设备和那些没有工作。

我设法得到它使用在摩托罗拉Droid 3.注意ro.secure = 1和ro.debuggable = 0还是root权限才能正常工作。 我简单地通过手动设置service.adb.tcp.port”到‘5555’这样:

    devbox:~/droid3$ adb shell
    shell@cdma_solana:/$ getprop | grep 'ro.secure\|debuggable\|qemu'
    [ro.secure]: [1]
    [ro.debuggable]: [0]
    shell@cdma_solana:/$ su -c 'setprop service.adb.tcp.port 5555'
    shell@cdma_solana:/$ exit
    devbox:~/droid3$ adb tcpip 5555
    restarting in TCP mode port: 5555
    devbox:~/droid3$ adb connect 172.16.0.14
    connected to 172.16.0.14:5555
    devbox:~/droid3$ adb -s 172.16.0.14:5555 shell
    shell@cdma_solana:/$

虽然我跑“亚行TCPIP”时指定5555它被器件忽略。 看来,这个特殊的设备不具备所需的访问设置“service.adb.tcp.port”属性没有根。

同样,你可以回去USB这样:

    shell@cdma_solana:/$ getprop | grep adb
    [persist.service.adb.enable]: [1]
    [ro.sys.atvc_allow_all_adb]: [0]
    [persist.adb.tcp.port]: []
    [init.svc.adbd]: [running]
    [service.adb.tcp.port]: [5555]
    shell@cdma_solana:/$ su -c 'setprop service.adb.tcp.port ""'
    shell@cdma_solana:/$ exit
    devbox:~/droid3$ adb -s 172.16.0.14:5555 usb
    restarting in USB mode
    devbox:~/droid3$ adb shell
    shell@cdma_solana:/$

这可能不是在其他设备上工作的原因多种多样。

在我测试的Galaxy Nexus,外壳用户能够设置“service.adb.tcp.port”属性。 目前尚不清楚为什么这个不同在这个时候。

有趣的是,似乎在droid3将不会继续在USB听,如果你启用TCPIP。 然而,Galaxy Nexus的意志。

希望这可以帮助..

PS。 另见: 我如何连接与亚行通过TCP到Android?



Answer 3:

我也遇到了相同的情况你,TCPIP设置succeseed,但亚行Connet的失败。 我终于找到了我的网络问题,中国平安也未能说scenairo下。 之后,我做了PING到,亚洲开发银行连接的作品也是如此。 所以,我的建议是检查您的网络环境。



Answer 4:

您好,我知道这是一个老问题,但我有同样的问题。 我不知道这是你同样的情况,但对我的问题是,我是通过USB扩展,一旦连接我的Android设备,如我直接连接Android设备在我的MAC,它的工作的USB端口。

只是为了澄清尝试将Android设备直接连接到计算机或尝试切换的USB端口。



文章来源: Android - adb tcpip error
标签: android adb