参考 : https://stackoverflow.com/questions/29992225/adb-copy-apk-from-system-app-using-pull-command
(´-`).。oO(タイトルのセンスが…orz)
狙い撃ちする
パッケージ名を調べる
# パッケージ名一覧から探す
$ adb shell pm list packages
# grepしても良いでしょう
$ adb shell pm list packages | grep com.example.hoge
package:com.example.hoge.fuga
居所を調べる
$ adb shell pm path com.example.hoge.fuga
package:/data/app/com.example.hoge.fuga-1/base.apk
撃つ
$ adb pull /data/app/com.example.hoge.fuga-1/base.apk
/data/app/com.example.hoge.fuga-1/base.apk: 1 file pulled. 5.6 MB/s (15269701 bytes in 2.606s)
pullできました!
一網打尽
すみません、シェルスクリプトで書こうとしたんですがうまく書けず、rubyに逃げました。
./apk-collector.rb
list = `adb shell pm list packages | sed -e 's/package://g'`.split("\r\n")
# Tip: 同様にgrepしても良いでしょう
# list = `adb shell pm list packages | grep com.example | sed -e 's/package://g'`.split("\r\n")
list.each {|package|
path = `adb shell pm path #{package}`.sub(/package:+/, '').sub(/\r\n+/,'')
`adb pull #{path}`
}
$ ruby ./apk-collector.rb
これで実行したディレクトリにapkが転がると思います。
以上