3

ネットワーク経由で Android デバイスに接続したいadb。ADB over 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 アドレスであることを確信しています。

4

4 に答える 4

0

TCPIPのセットアップが成功したのと同じシナリオにも遭遇しましたが、adbconnetが失敗しました。私はついにそれが私のネットワークの問題であることに気づきました、pingもそのシナリオの下で失敗しました。pingを機能させた後、adbconnectも機能します。だから、私の提案はあなたのネットワーク環境をチェックすることです。

于 2013-03-19T09:33:46.107 に答える
0

こんにちは、これは古い質問ですが、同じ問題を抱えていました。あなたにとっても同じケースかどうかはわかりませんが、私にとっての問題は、Android デバイスを MAC の USB ポートに直接接続するとすぐに、USB 拡張を介して Android デバイスを接続していたことです。

明確にするために、Android デバイスをコンピュータに直接接続するか、USB ポートを切り替えてみてください。

于 2015-06-16T01:47:42.253 に答える
0

ルート化されていないデバイスでも同じ問題が発生しています。一般に信じられていることとは反対にadb tcpip <port>、エミュレータ、デバッグ ビルド、またはルート権限が必要なようです。少なくともソースコードによると。

マスター ブランチ: https://github.com/android/platform_system_core/blob/master/adb/adb.c#L898を参照しshould_drop_privilegesください。 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'、私のデバイスの出力:

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

secureこれは、 で値 0を取得できるという条件を満たしていませんadbd。エミュレーター (デフォルトで TCP/IP が必要) を実行していないためです。Android のデバッグ可能なビルドを実行していません。ルートではありません。

さらに、コマンドを発行すると、ポート 5037 や 5555、またはTCP/IP モードでの実行から予想されるように、コマンドadb shell netstatに指定したものをリッスンしている人がいないことがわかります。tcpipadbd

これが役に立てば幸いです、頑張ってください!

于 2012-10-22T09:22:33.743 に答える
0

tcpip トランスポートを使用して adbd を再起動する機能は、デバイスによって異なります。使用しているデバイスを正確に知らなければ、正確な原因を知ることは非常に困難です。

4.2.1 を実行している Galaxy Nexus (takju) で「adb tcpip 5555」をテストしたところ、動作することがわかりました。他のいくつかのデバイスでもテストしましたが、それらは機能しませんでした。

Motorola Droid 3 でルート アクセスを使用して動作させることができました。service.adb.tcp.port を手動で「5555」に設定するだけです。

    devbox:~/droid3$ adb シェル
    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:/$ exit
    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 シェル
    shell@cdma_solana:/$

「adb 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]: [実行中]
    [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
    USBモードでの再起動
    devbox:~/droid3$ adb シェル
    shell@cdma_solana:/$

これが他のデバイスで機能しない理由はさまざまです。

私がテストした Galaxy Nexus では、シェル ユーザーは「service.adb.tcp.port」プロパティを設定できます。現時点では、なぜこれが異なるのかは明らかではありません。

興味深いことに、TCPIP を有効にすると、droid3 は USB をリッスンし続けないようです。ただし、Galaxy Nexus はそうします。

お役に立てれば..

PS。参照: ADB over TCP を使用して Android に接続するにはどうすればよいですか?

于 2013-01-13T19:54:02.343 に答える