Android端末からapk抽出
Android端末からapk抽出。そのまんまです。
まずは、adbコマンドをインストールしましょう。
下記見てインストールしましょう。
http://dev.digitrick.us/notes/ADBCommandOnMac
apk取得まで
だいたいこの辺のadbコマンドを実行します。
- adb version
- adb devices
- adb shell pm list packages
- adb pull
adb version
adbのバージョン情報みれるコマンド。
$ adb version Android Debug Bridge version 1.0.32 Revision eac51f2bb6a8-android
adb devices
PCに接続されてるAndroidデバイス一覧を取得するコマンド。 Android端末のUSB debugがenableされてない場合、一発目は下記な感じの出力になる。
$ adb devices List of devices attached * daemon not running. starting it now on port 5037 * * daemon started successfully * 9b1efacc unauthorized
この時、端末側で、「USB DebugをこのPCから常にenableにしますか?」的なダイアログが 出てるので、承諾すると、PC側出力が下記な感じになる。
$ adb devices List of devices attached 9b1efacc device
unauthorized -> deviceに変わるのね。
adb shell pm list packages
今回は、実機からapkを抽出したいので、まずはパッケージ名を探してみる。
$ adb shell pm list packages package:jp.recruit.atnd package:com.amazon.mShop.android.shopping package:com.asana.app package:com.skype.raider package:com.hipchat package:com.google.android.youtube package:com.kouzoh.mercari package:com.android.providers.telephony ... ... ...
こんな感じ。当たり前だけど、grep でフィルタもできる。
$ adb shell pm list packages | grep cyanogenmod package:org.cyanogenmod.wallpapers.photophase package:org.cyanogenmod.audiofx package:com.cyanogenmod.setupwizard package:com.cyanogenmod.account package:cyanogenmod.platform package:org.cyanogenmod.profiles package:com.cyanogenmod.lockclock package:com.cyanogenmod.updater package:org.cyanogenmod.themes.provider package:com.cyanogenmod.wallpapers package:com.cyanogenmod.trebuchet package:org.cyanogenmod.cmsettings package:org.cyanogenmod.theme.chooser package:com.cyanogenmod.filemanager package:com.cyanogenmod.eleven
adb pull
そして、最後に、apkを抽出する。 でもこれだけだと、パッケージのpathがないので、-f オプションをつけて、adb shell pm list packagesを実行する。
$ adb shell pm list packages -f | grep taito package:/data/app/jp.co.taito.am.siInfinityGene-1/base.apk=jp.co.taito.am.siInfinityGene package:/data/app/jp.co.taito.groovecoasterzero-1/base.apk=jp.co.taito.groovecoasterzero
なるほど。
では、adb pullを実行。
$ adb pull /data/app/jp.co.taito.am.siInfinityGene-1/base.apk 4528 KB/s (27219843 bytes in 5.870s)
きた?のかな?
$ ls -lthr base.apk -rw-r--r-- 1 nemoto_hideaki staff 26M 3 21 12:56 base.apk
無事26MBがダウンロードされたようです。おしまい。