LoginSignup
11
10

More than 5 years have passed since last update.

1コマンドで端末からapkを取り出す

Posted at

割とよく使うのでメモ代わりに書いておきますー
MacでNexus5 5.1でのみ動作確認しています。

これです

adb pull `adb shell pm list packages -f | sed -e 's/package:\([^=]*\).*/\1/g'|grep 取り出したapkのパッケージ名`

なにをやっているのか?

adb shell pm list packages -f

package:/data/app/com.google.android.GoogleCamera-2/base.apk=com.google.android.GoogleCamera
package:/data/app/com.android.widgetpreview-1/base.apk=com.android.widgetpreview
package:/data/app/com.google.earth-1/base.apk=com.google.earth
package:/data/app/com.h6ah4i.android.example.materialshadowninepatch-1/base.apk=com.h6ah4i.android.example.materialshadowninepatch
package:/data/app/org.domokit.sky.demo-1/base.apk=org.domokit.sky.demo

こんな感じのアプリのapkのパスのリストが出ます。しかし邪魔な文字列が入っているので、それをsedで取り除きます。

adb shell pm list packages -f|sed -e 's/package:\([^=]*\).*/\1/g'
/data/app/com.google.android.GoogleCamera-2/base.apk
/data/app/com.android.widgetpreview-1/base.apk
/data/app/com.google.earth-1/base.apk
/data/app/com.h6ah4i.android.example.materialshadowninepatch-1/base.apk
/data/app/org.domokit.sky.demo-1/base.apk

あとは探したいパッケージ名を指定してadb pullするだけです。

2つ以上マッチすると上手く動かないので注意が必要です。(xargsにすればうまく動くかも?)
あとpecoとかにして選択してadb pullしてもいいと思います

adb pull `adb shell pm list packages -f | sed -e 's/package:\([^=]*\).*/\1/g'|peco`
11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10