adb pull / dataが失敗する


19

デバイスHTC Evo Design 4Gをルート化し、adb pull / data dataを試してみると、「0 files pull 0 file skipped」と表示されます。

/System/build.propをプルできました。ルートフォルダを取得するにはどうすればよいですか。

ありがとう


1
adb root最初に走ったのですか?
オニック14

はい、しかしadbルートは成功しませんでした。無許可。しかし、adb shell suができました。それは与えます #。
user3734225 14

回答:


20

以下のファイルとディレクトリ/data/dataは「平均的なユーザー」から保護されているため、ADBデーモンがルートモードで実行されていない限り、それらを単に「プル」することはできません。参照していたファイル(/system/buildprop少なくともすべてのアプリで読み取り可能/data/dataを除き、以下のフォルダーは(ルートを除いて)「非表示」であるため、読み取ることさえできません。

adb pullそれらで使用できるようにするには、まずADBデーモンをルートモードで実行する必要があります。デバイスによっては、簡単なadb rootコマンドでそれを実行できますが、ほとんどのデバイスは実行を拒否します。そのような場合、chainfireのadbd insecureを使用できます。このアプリをデバイスにインストールし、そこで起動して、手動で「安全でない」モードに切り替えます。これpullで成功するはずです。

注:adbdrootとして実行すると、コンピューターとUSBケーブルですべてのデバイスにアクセスできるため、「安全でない」と呼ばれます。念のために。


ありがとう chainfire adbd insecure以外に、ビルドプロパティにro.secureフラグを設定できますか?adb shell setprop ro.secure 0を使用できますか?
user3734225 14

私はこれを試したことはありませんし、そのフラグが何のためのものなのかも正確に知りません。(ところで:答えが有用だと思ったら、それを「賛成」することを歓迎します(SEが「ありがとう」と言う方法)–または問題を解決したときにそれを"受け入れる" ;)
Izzy

1
私のためのadbdの安全でない作業:)
user3734225 14

6

お使いの携帯電話が根付いている場合、これを回避する方法は3つあります。1つ目は、ADBD insecureを使用することです

もう1つは、ルートを使用して別のフォルダーに移動し、そこからプルすることです。

$ adb shell

shell@android:/ $ su
root@android:/ # mkdir /sdcard/data
root@android:/ # cp /data/data/* /sdcard/data
root@android:/ # exit
shell@android:/ $ exit 

$ adb pull /sdcard/data .
$ adb shell

shell@android:/ $ rm -r /sdcard/data/
shell@android:/ $ exit

次のようなスクリプトを作成できると思います。

echo 'echo "mkdir /sdcard/data; cp $1/* /sdcard/data; exit" | su; exit' | adb shell
adb pull /sdcard/data .
echo 'rm -r /sdcard/data; exit' | adb shell

どこかに保存します。

最後に、3番目のオプションはですがchmod -R 1777 /data/data、これははるかに安全ではないため、非常に推奨されません。


何が$1/*言及されているのか尋ねてもいいですか?それは/data/dataディレクトリですか?
エメン

素晴らしい答え
ダンブラッドベリー

5

adbにはファイルリストへのアクセス権がないため、データフォルダーを直接プルすることはできません。/ dataフォルダーをプルしたい場合は、リカバリー([カスタムリカバリー、CWM / TWRP]デバイスがリカバリーモードになっているときにadbを実行できます。できればカスタムリカバリー)。または、ルートとして/ dataを別のディレクトリ(sdcard)にコピーし、そこから引き出します。


ありがとうございました。しかし、/ Systemフォルダーにあるbuild.propファイルをプルできました。adb shell suそして、ルートフォルダ内のファイルを一覧表示できます。Google検索でro.secureビルドプロパティを0に設定すると、/ dataのプルに役立ちます。これは本当ですか?もしそうならそれを行う方法はありますか?
user3734225 14

/ systemにはリスト許可があるため、build.propをプルできます。boot.imgでro.secure = 0を変更できますが、これは非常に複雑な手順です。カスタムリカバリをインストールして、そこから実行する方が簡単です。
Hiemanshuシャルマ

どうもありがとうございました!この取り組みの主な目的は、法医学関連のアプリケーションを大学の最終年度のプロジェクトとして実装することです。カスタムリカバリをインストールすると、デバイスから証拠が消去されます。この件について何かご存知ですか?
user3734225 14

以前のコメントに追加する-adb shell setpropの使用法は何ですか?この場合は使用できませんか?
user3734225 14

1
電話がルート化され、デバッグがオンになっていることに依存するフォレンジックリカバリプログラムは、あまり役に立たないようです。
ダンヒューム14

1

パートI:ADBプルのすべてのファイルを準備する

これは私のために働いたものです:*最新のADBバージョンを使用していることを確認してください。

  • ADBセッションを開始します。

「infocus $ adbシェル」

  • ADBセッションでSU権限を1回取得するだけで、次のように「su」と入力します。

「shell @ m1:/ $ su」

次に、次のように「$」が「#」になることがわかります。

'root @ m1:/#'

-ハッシュにより、SUモードになっていることがわかります。

  • デバイスの/ sdcardにフォルダーを作成します

'root @ m1:/#mkdir / sdcard / data /'

*コピーするファイルのルートに移動します-たとえば、私にとっては、アプリのバックアップ/コピーを作成して、コンピューターに保存したかったためです。

'root @ m1:/ data / app#'

  • そのフォルダを「ls」した場合に得られるものの例:

'root @ m1:/ data / app#ls
com.abtnprojects.ambatana-1
com.acr.rootfilemanager-1
com.amazon.kindle-1
com.android.chrome-1
com.android.mms-1
com.android。自動販売機-2 '

  • ADB「cp」コマンドで再帰的にコピーするには、オプション「-R」を使用します。その中のすべてをコピーしたいので、ワイルドカード「*」を次のように使用しました。

'root @ m1:/ data / app#cp -R * / / sdcard / data /'

  • Enterキーを押すと、ファイルがかなり大きい場合、ファイルをコピーするのに明らかに時間がかかるので、カーソルが少しの間点滅します。何もしていないように見えますが、そうです!ファイルをコピーしているので、パニックにならないでください!そして、プロセスを停止しないでください!!! -別のADBシェルセッションを開いて、ファイルを転送するフォルダーに移動し、「ls」チェックを行うと、空のフォルダーにファイルが入力されていることがわかります。転送が完了すると、シェルが返されます。

  • 「sdcard / data」に進み、すべてが「ls」にコピーされたことを確認します。

'root @ m1:/ sdcard / data#ls
com.abtnprojects.ambatana-1
com.acr.rootfilemanager-1
com.amazon.kindle-1
com.android.chrome-1
com.android.mms-1'

パートII:ADBプル

  • この時点までに、ターゲットマシンにフォルダを作成していない場合は、作成してください。「apps」という名前のフォルダーを作成しました

  • さて、一度にすべてのファイルのとらえどころのない再帰的なADB PULLを実行してみましょう。

'root @ m1:/ sdcard / data#exit'
'shell @ m1:/ $ exit'

  • 通常のシェルセッションから「adb pull」を実行します。「-a」オプションを使用する必要はありません。個人的に使用して、ファイルの整合性を可能な限り維持します。-コマンドを実行します:

「AtomicusZro $ adb pull -a / sdcard / data / apps /」

次のようなものが表示されるはずです。

'[69%] /sdcard/data/com.google.android.gms-1/base.apk:74%'

完了したら:

'/ sdcard / data /:296個のファイルがプルされました。5.1 MB / s(221.352sで1193942288バイト) '

そして出来上がり!

サイドノート:
重要かどうかわからないが、私はMacを使用しています。
ADBのセッションで使用すると、いずれかの「SU権限」を取得することはできませんしながら、.IF:
第一に:あなたはおそらく、ADBルートアクセス与える必要がある
第二の「スーパーユーザー」は、それが正しくインストールされていない
.DOUBLEチェックをあなたのコマンド

がんばろう。-


そのために根を張る必要はありませんか?
-neverMind9

0

Android 7.1デバイスで作業しています。動作させる手順:

  1. https://nofile.io/f/86605d8qsJs/adbd-Insecure-v2.00.apkで leroyによってadbdの安全でないバージョンをダウンロードしてください
  2. お使いの携帯電話にインストールします。
  3. adbディレクトリでadbシェルを実行します
  4. 「su」と入力して、「#」を取得します
  5. 「setenforce 0」と入力します
  6. 安全でないadbdを有効にします。USBデバッグがオフになります
  7. 開発者向けオプションからUSBデバッグをオンまたはオフにする
  8. 安全でないadbdをオフにしてから再度オンにします。

これで、adbをPCに取り込むことができます。

お役に立てれば


ハリス

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.