16

ホストコンピューターなしで、Androidデバイス自体でADBを使用しようとしています。これは、数日前は完全に機能していましたが、突然機能しなくなりました。私の知る限り、それ以来何も変わっていません(たとえば、アプリが(アン)インストールされていません)。adb backup -f /sdcard/backup.ab <package-name>ターミナルエミュレーターで使用でき、そのパッケージのバックアップを開始します。今試してみると、 が返されますadb: unable to connect for backup。を使用して調査するadb devicesと、空のリストが返されます。以前はわざわざデバイスをチェックしたことはありませんでした。すべてが機能していたので、adb コマンドに直接行きました。

これは、Android 4.4.2、ADB バージョン 1.0.31 を実行している HTC Desire でした。この電話で PC から ADB を使用することは完全に機能していますが、これは私が望んでいるものではありません。

私が試したこと

  • 異なるデバイス (4.4.2 の Asus PadFone 2、4.4.2 の Samsung Galaxy Note GT-N7000、4.1.2 の Sony Xperia S) で同じアクションを実行しようとしましたがadb devices、それらすべてで空のリストが返されます。そもそもなぜこれが私の HTC Desire で機能したのか疑問に思い始めています。
  • Google と Stack Overflow を検索していますが、ほとんど (すべてではないにしても) の結果は、ドライバーの問題またはホスト コンピューターに関連するその他の問題に言及しています。
  • adb kill-server+とadb start-server同様に約100回。stop adbdstart adbd
  • [設定] で [USB デバッグ] をオフまたはオンにし、以前に許可されたコンピューターへのアクセスを取り消します。(ただし、作業状況では、RSA キーの検証プロンプトは表示されませんでした。)
  • adb -a devices->空のリスト。
  • adb usb-> error: device not found.
  • TCP モードで adb(d) を再起動しようとしても失敗します (これは動作状況では必要ありませんでしたが)。adb tcpip 5555戻りますerror: device not found
  • getprop指定されたエントリを返さずservice.adb.tcp.portsetprop service.adb.tcp.port 5555黙って失敗します。(後でチェックしてgetprop service.adb.tcp.portも何も返されません。これにはルートは必要ありませんか?)
  • adb connect localhost戻りますunable to connect to localhost:5555
  • デーモンが起動すると、ポート 5038 で起動します (PC から ADB を使用している場合は 5037 で起動します)。adb connect localhost:5038戻りますconnected to localhost:5038。ただしadb devices、空のリストを返し、 をadb backup返しますadb: unable to connect for backup。さらにadb shell返品error: device not foundadb get-state返金unknown。したがって、ここでも成功しません。
  • getprop dhcp.wlan0.ipaddress(192.168.1.xx を返す)adb connect 192.168.1.xxを使用してローカル IP を検索し、unable to connect to :5555. adb connect 192.168.1.xx:5038-> unable to connect to :5038. を使用しADBHOST=192.168.1.xx adb start-serverても、これらの結果には影響しません。
  • 実際に関連性があった数少ない検索結果の 1 つは、AOSP Issue Tracker のこのスレッドです。それでも、 を使用した後setprop service.adb.tcp.port 5555adb devices少なくともデバイスが表示されますが、オフライン (つまりlocalhost:5555 offline) であるという問題が説明されています。スレッドの終わり近くで解決策に到達します。これには、$HOME ディレクトリを変更して、RSA キーが保存される場所を変更することが含まれますHOME=/sdcard。次に、を使用して公開鍵を /data/misc/adb/adb_keys に追加する必要がありますcat /sdcard/.android/adbkey.pub >> /data/misc/adb/adb_keys。ただし、これにはルートが必要だと思いますか?また、これはすべて作業状況では必要なかったので、私の問題の解決策がこの方向にあるとは思えません。この記事AOSP の Issue Tracker のスレッドから派生した は、公開鍵の追加については言及していません。ただし、前述のアプローチは成功しません。
  • netstatリターン(とりわけ):

    • Proto: tcp
    • Recv-Q: 0
    • Send-Q: 0
    • Local Address: 127.0.0.1:5038
    • Foreign Address: 0.0.0.0:*
    • State: LISTEN
  • ps/sbin/adbdプロセスとプロセスを示しadbます。

    • ユーザー: シェル PID: 92 PPID: 1 VSIZE: 3624 RSS: 264 WCHAN: ffffffff PC: 00000000 S NAME: /sbin/adbd
    • ユーザー: u0_a57 PID: 9754 PPID: 1 VSIZE: 3016 RSS: 988 WCHAN: ffffffff PC: 4014f768 S NAME: adb
    • (端末から実行するコマンドは、USER:u0_a57として実行されます。)

私はそれがかなりそれだと思います。

以前に動作していたときは不要だったので、ルートが不要なソリューションを探しています。私の状況と質問が明確であることを願っています。Stack Overflow に投稿するのはこれが初めてなので、質問を改善する必要がある場合はお知らせください。うまくいけば、誰かがこれで私を助けてくれます。前もって感謝します!

4

1 に答える 1

-2

デバイスが再起動した可能性があります。最初に電話を tcp に接続するには、コンピューターから実行している必要がありadb tcpip 5555ます。しかし、それは永遠に続くわけではありません。adb tcpip 5555電話が再起動した場合は、コンピューターから再度実行する必要があります。

あなたが言ったときの意味がわかりません:

TCP モードで adb(d) を再起動しようとしても失敗します (これは動作状況では必要ありませんでしたが)。adb tcpip 5555 がエラーを返します: デバイスが見つかりません。

それをコンピューターから実行しましたか?それがコンピューターからのものであった場合、何が問題なのかわかりません。ただし、電話からの場合は、tcp に変更するデバイスが見つかりません。

これを修正するにadb tcpip 5555は、コンピュータから動作するはずです。

于 2016-12-13T17:27:23.037 に答える