ホストコンピューターなしで、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.port、setprop 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 found・adb 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 5555、adb 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: tcpRecv-Q: 0Send-Q: 0Local Address: 127.0.0.1:5038Foreign 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 に投稿するのはこれが初めてなので、質問を改善する必要がある場合はお知らせください。うまくいけば、誰かがこれで私を助けてくれます。前もって感謝します!