ホストコンピューターなしで、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 adbd
start 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: 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 に投稿するのはこれが初めてなので、質問を改善する必要がある場合はお知らせください。うまくいけば、誰かがこれで私を助けてくれます。前もって感謝します!