私はルート化された電話を持っていて、ルートモードでadbを実行しています。
私はadbShellを使用して電話に正常にアクセスしました。
ルートが必要な場合でも、ディレクトリを参照できます。
私が使おうとすると:
adb pull /data/data/my.app.path/databases/mydatabase.db /home/admin/Desktop/
次のエラーが発生します。
error: device not found
Adbシェルは接続されたままで、SDカードの閲覧を続けることができます。
このエラーの原因と、ファイルをプルするために修正する方法を教えてもらえますか?
adb pull
の間はシェルに近づかないでください。
まだ誰も説明をしていないようです。
このエラーは、rootとして実行されているadbとは関係ありません。 Androidのシェル内からadb pull
を実行すると、プライマリAndroidデバイスに接続されたAndroidデバイス(adbサーバーを実行)がスレーブとして想定されます。存在しないため、エラーが発生します。
ただし、プライマリAndroidデバイスをOTG経由で別のデバイスに接続し、そのデバイスが充電を開始する(スレーブになる)場合は、Android内からそのコマンドを正常に実行できます。このようにして、実際にはプライマリAndroidの内部からadb Shell
を実行できます。
それ以外の場合は、デバイスまたは他のデバイスでTCPモードでADBを実行し、プライマリデバイスのシェル内からadb connect <IP:PORT>
を実行して、ローカルホストまたは他のデバイスのシェルに接続できます。
それでも、Androidにはadb pull /data/data/my.app.path/databases/mydatabase.db /home/admin/Desktop/
ディレクトリの概念がないため、コマンド/home
は失敗します。そのため、宛先はAndroidに存在しません。
すでにご存知ですが、プライマリデバイスをスレーブまたはサーバーとして扱い、コマンドを正常に実行できるように、PCのシェルに戻る必要があります(リーダー:このコマンドを機能させるにはrootが必要です)。
あなたが試すことができます:
adb wait-for-device pull /data/data/my.app.path/databases/mydatabase.db
/home/admin/Desktop/
このようにして、adb
はデバイスが接続されるのを待ちます。それは役立つかもしれませんが、私にはわかりません。