AndroidエミュレーターにインストールされているAPKをadbコマンドを使って取得する


前提

とある事情でGoogle PlayにあるアプリのAPKの中身を確認する必要があり、エミュレーターにインストールしてあるAPKをPCに持ってきてデコンパイルするという流れをやりましたので、メモとして残しておきます。
adbコマンドは使える状態です。

目標

エミュレーターにインストールされているAPKをadbコマンドを使って取得する。

実践

基本的には下記の記事が参考になりました。 qiita.com

パッケージ名については、アプリ名はわかるけどAPKのパッケージ名がわからないという状態だったので、 ブラウザで「アプリ名 google play」で検索し、URLからパッケージ名を確認する必要がありました。 例えばパズドラなら「jp.gungho.pad」がパッケージ名になります。

play.google.com
パッケージ名を確認したらAPKの場所を確認します。

adb shell pm path パッケージ名


場所がわかったらpullで持ってきます。コマンドを実行したディレクトリにAPKがあれば成功です。

adb pull APKのファイルパス


デコンパイルについては下記の記事を参照ください。

kwn1125.hatenablog.com


エミュレーターを指定して実行

エミュレーターを複数起動している場合はこれまで書いてきたコマンドでは実行できません。対象のエミュレーターを指定してコマンドを実行する必要があります。

下記のコマンドでデバイス一覧を確認し、

adb devices


adbコマンドを使うときに「-s」オプションを使ってデバイスを指定してあげればOKです。例えば下記のような感じです。

adb -s デバイス名 shell pm path パッケージ名