LoginSignup
81
82

More than 5 years have passed since last update.

Android: apk から取得できる情報いろいろ

Last updated at Posted at 2015-10-21

概要

Android アプリケーションパッケージであるところの apk ファイルから取得できる諸々の情報。

パッケージ名 (バンドルID)

$ aapt l -a hoge.apk | grep "A: package"
    A: package="com.abc.hoge" (Raw: "com.abc.hoge")

アプリケーション名・アイコン

$ aapt d badging hoge.apk | grep "application:"
application: label='HogeApp' icon='res/drawable/app_icon.png'

$ unzip hoge.apk
$ ls -l res/drawable/app_icon.png
-rw-rw-rw-  1 user 0 8121 2015-10-01 00:00 res/drawable/app_icon.png

アプリケーションバージョン

$ aapt l -a hoge.apk | grep "android:version"
    A: android:versionCode(0x0101021b)=(type 0x10)0x4
    A: android:versionName(0x0101021c)="1.4" (Raw: "1.4")

SDKバージョン

$ aapt l -a hoge.apk  | grep "SdkVersion"
      A: android:minSdkVersion(0x0101020c)=(type 0x10)0x4
      A: android:targetSdkVersion(0x01010270)=(type 0x10)0xf

メインアクティビティ

$ aapt d badging hoge.apk | grep "activity"
launchable-activity: name='com.abc.hoge.MyActivity'  label='HogeApp' icon=''

全アクティビティ

$ aapt dump xmltree hoge.apk AndroidManifest.xml | grep -A 3 "E: activity"
…
      E: activity (line=18)
        A: android:label(0x01010001)=@0x7f050000
        A: android:name(0x01010003)="com.abc.hoge.MyActivity" (Raw: "com.abc.hoge.MyActivity")
        A: android:configChanges(0x0101001f)=(type 0x11)0x40000fff
--
      E: activity (line=26)
        A: android:theme(0x01010000)=@0x103000a
        A: android:label(0x01010001)=@0x7f050000
        A: android:name(0x01010003)="com.abc.hoge.SecondActivity" (Raw: "com.abc.hoge.SecondActivity")
--
      E: activity (line=30)
        A: android:theme(0x01010000)=@0x1030010
        A: android:label(0x01010001)=@0x7f050000
        A: android:name(0x01010003)="com.facebook.FacebookActivity" (Raw: "com.facebook.FacebookActivity")
…

パーミッション

$ aapt l -a hoge.apk | grep -i permission
…
    E: uses-permission (line=4)
      A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET")
    E: uses-permission (line=6)
      A: android:name(0x01010003)="android.permission.ACCESS_NETWORK_STATE" (Raw: "android.permission.ACCESS_NETWORK_STATE")
…

署名 (キーストア)

$ unzip hoge.apk
$ keytool -printcert -file META-INF/CERT.RSA
所有者: C=JP, ST=Tokyo, L=Dokoka, O=Abc Inc.
発行者: C=JP, ST=Tokyo, L=Dokoka, O=Abc Inc.
シリアル番号: xxxxxxx
有効期間の開始日: Sat Aug 01 12:00:00 JST 2015終了日: Mon Aug 01 12:00:00 JST 2050
証明書のフィンガプリント:
         MD5:  XX:XX:…:XX:XX
         SHA1: XX:XX:…:XX:XX
         SHA256: XX:XX:…:XX:XX
         署名アルゴリズム名: SHA1withRSA
         バージョン: 3

クラス

$ d2j-dex2jar hoge.apk
$ unzip *.jar
$ ls -lR
…
./com/google/ads:
AdRequest$ErrorCode.class
AdRequest$Gender.class
AdRequest.class
AdSize.class
mediation
…
./com/facebook/messenger:
MessengerThreadParams$Origin.class
MessengerThreadParams.class
MessengerUtils.class
ShareToMessengerParams.class
ShareToMessengerParamsBuilder.class
…
81
82
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
81
82