指定したパッケージの APK のファイルパスを調べる
Android デバイスに adb shell
で接続し、pm path <パッケージ名>
コマンドを実行すると、指定したパッケージ名の APK ファイルが、デバイス上のどのパスに置かれているかを調べることができます。
$ adb shell pm path com.example.myapp
package:/system/app/MyApp/MyApp.apk
インストールされているすべての APK のファイルパスとパッケージ名を調べる
インストールされている APK パッケージの一覧は、pm list packages
コマンドで調べることができます。
$ adb shell pm list packages
package:com.google.android.apps.mediashell
package:com.google.android.katniss
package:com.android.providers.calendar
package:com.android.tv.settings
package:com.android.providers.media
...
さらに、-f
オプションを指定して実行すると、すべての APK に関するファイルパスとパッケージ名の対応情報を調べることができます。
sort
コマンドと組み合わせて使用すると見やすくなります。
$ adb shell pm list packages -f | sort
package:/system/app/Backdrop/Backdrop.apk=com.google.android.backdrop
package:/system/app/BasicDreams/BasicDreams.apk=com.android.dreams.basic
package:/system/app/Bluetooth/Bluetooth.apk=com.android.bluetooth
package:/system/app/KeyChain/KeyChain.apk=com.android.keychain
...
システムにプリインストールされているアプリケーションだけを列挙したい場合は、-s
オプションも同時に指定します。
$ adb shell pm list packages -f -s
逆に、ユーザがインストールしたサードパーティ製のアプリだけを列挙したい場合は、-3
オプションを指定します(/data/app
以下に格納されているのが分かります)。
$ adb shell pm list packages -f -3
package:/data/app/com.hulu.livingroomplus.jp-1/base.apk=com.hulu.livingroomplus.jp
package:/data/app/com.ted.android.tv-1/base.apk=com.ted.android.tv
package:/data/app/tv.pluto.android-1/base.apk=tv.pluto.android