タイトルそのまま。Android 7.0 (Nougat) 以前と以降で手順が異なる点に注意する。
コマンドは Window コマンドプロンプトから実行する前提です。
謝辞
以下を参考にさせて戴きました。MacやLinuxの場合は こちらをご覧ください。
・Android 端末からアプリ(apk)を取得する
・Android 7.0 Nougatにおいて adb pull でapkを抽出できない問題の解決策
方法
Android デバイスに接続する
デバイスが USB 接続の場合は不要です。
コマンドプロンプトから次のコマンドを実行します。IPアドレスは Android デバイスで確認してください。
adb connect 192.168.111.222
アプリのパッケージ名を調べる
Google Play Store でアプリのページを開いて、URLのidからパッケージ名を確認します。
例えば、「Google開発者サービス」アプリの場合、URLは
https://play.google.com/store/apps/details?id=com.google.android.gms&hl=ja
ですので、パッケージ名は com.google.android.gms
です。
アプリの APK 保存先を調べる
コマンドプロンプトから次のコマンドを実行します。
パッケージ名 "com.google.android.gms"
は調べたいアプリのものに変更してください。
ここでは /data/app/com.google.android.gms-1/base.apk
が APK の保存先です。
adb shell pm list packages -f | find "com.google.android.gms"
* daemon not running; starting now at tcp:5037
* daemon started successfully
package:/data/app/com.google.android.gms-1/base.apk=com.google.android.gms
APK を取得する
Android 7.0 以降では APK を一度、アクセス権がある場所にコピーする必要があります。
アクセス権がある /storage/emulated/0/Download
にコピーをします。
コピーはコマンドプロンプトから次のコマンドで実行します。
adb shell cp /data/app/com.google.android.gms-1/base.apk /storage/emulated/0/Download
続いて、Android デバイスから APK を取得します。APK はコマンドプロンプトのカレントディレクトリに保存されます。
APK のコピーをしていない場合は、先の手順で確認した APK 保存先から そのまま取得できます。
adb pull /storage/emulated/0/Download/base.apk
以上です。