Android アプリやエミュレーターをいじってると Android 上にある apk ファイルを取得したい事がある。その方法を簡単にではあるが解説しよう。
Android SDK をインストールする
Android 端末から apk ファイルを取得するには adb コマンドを利用するのだが、その為には Android SDK をインストールする必要がある。
Download Android Studio and SDK Tools | Android Developers
Android Studio とのセットもしくは Download Options からコマンドラインツールのみダウンロード可能だ。ダウンロードしたファイルを実行してインストールしよう。
自分の PC は全て Android SDK インストール済みなので解説は省略する。
Android の設定を変更する
Android SDK がインストールできたら次に Android 端末の設定を変更する。開発者向けオプションを開き、 USB デバッグの項目を有効にしよう。
開発者向けオプションが表示されていなければ「設定」の「端末情報」にある「ビルド番号」を7回ぐらいタップしたら有効になると思う。詳しくは以下の記事を参照してほしい。
Android で開発者オプションを利用する方法 | Lonely Mobiler
adb pull コマンドを利用して apk ファイルを取得する
adb コマンドが利用できるようになったらコマンドプロンプトや iTerm などから以下の実行してみよう。
> adb shell pm list packages -f
package:/system/priv-app/CarrierSetup/CarrierSetup.apk=com.google.android.carriersetup
package:/data/app/com.skype.raider-3czUL_0ErhjAHW_Fhum09A==/base.apk=com.skype.raider
package:/system/priv-app/CtsShimPrivPrebuilt/CtsShimPrivPrebuilt.apk=com.android.cts.priv.ctsshim
(以下省略
これは現在インストールしてあるパッケージの一覧を表示するコマンドだ。単にパッケージ名を表示するだけなら -f はいらないのだが、apk ファイルを取得する目的であれば -f で表示される情報が必要となる。
このままでは一覧が流すぎて探すのが大変なので、以下のように絞り込むとよい。
> adb shell pm list packages -f | grep pubg
package:/data/app/com.pubg.krmobile-Sb8dvJtHw_zYfUapemFUaw==/base.apk=com.pubg.krmobile
例えば PUBG MOBILE の apk が欲しければこのように | grep pubg と入力すればよい。
目的の apk が分かったら adb pull コマンドを実行しよう。
> adb pull /data/app/com.pubg.krmobile-Sb8dvJtHw_zYfUapemFUaw==/base.apk
3275 KB/s (34913556 bytes in 10.410s)
成功したら現在のディレクトリに base.apk ファイルが保存されているはずだ。
これで apk ファイルを取得できた。あとは煮るなり焼くなりしよう。
コメント