回答:
にあります/data/app/
。ルートがあれば直接アクセスできます。そうでない場合は、を使用する必要がありますadb pull
。例えば:
adb pull /data/app/myapp.apk C:\ backup \ myapp.apk
adbの詳細:http : //developer.android.com/guide/developing/tools/adb.html
あなたが知っていればインストール(一部のデバイスではなく、単にmyapp.apkよりmyappの-1.apkまたはmyappに-2.apkでもよい)のapkのファイル名を、あなたはアクセスを直接することができ、1つのADBの実行などを含む通常のユーザーとして保護されたデバイスでは、それをadbでプルできるはずです。ただし、インストールされている apkの名前がわからない場合は、rootまたはaid_systemでなければ、/ data / appディレクトリを参照できません。
インストールされている名前を推測するだけの価値があるかもしれません-分かりやすく試してみて、-1.apkや-2.apkなどで試してみてください。
別の方法がある可能性があります。次の方法は安全なデバイスで機能すると思いますが、現時点ではテストするためのデバイスがありません。
編集:正確なAPKファイル名を決定するための新しいアイデア
1)adb pull /data/system/packages.xml
2)アプリケーションのcodePathエントリを探します
3)adb pull that
編集:以下の古いアイデアに関して、Matthewは、/ procの下のプロセスごとのファイルには保護されたデバイスに対する読み取り権限があるが、所有者以外の非特権uidによって読み取られると空になることを発見しました。したがって、これは機能しません。
1)アプリを実行します。adbを備えたマシンも必要です。
2)タイプ
adb shell ps
アプリの名前の行を探します:
app_1 11959 907 112984 27580 ffffffff afd0c5bc S com.clevername.myapp
3)2番目の列のプロセスIDである番号を取得し、その仮想メモリマップを表示します。この場合は、次のように入力します。
adb shell cat /proc/11959/maps
そしてそれがそれ自身のapkファイルをメモリにマップした行を探します
43e9c000-43ea3000 r--s 001f4000 b3:06 15393 /data/app/com.clevername.myapp-1.apk
4)adb pullに必要なファイル名です
adb pull /data/app/com.clevername.myapp-1.apk .
/ proc内のディレクトリのアクセス許可を調べると、これは非特権ユーザーでも機能するはずです。機能しない場合はごめんなさい。「grep」の使い方に慣れている場合は、それを使用して出力を手動でスキャンすることを回避できます。
補遺:私はSDカードにインストールされたアプリの話が何であるか本当にわかりません。
adb shell cat /proc/####/maps
残念ながら何も返しません。