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

  • 50
    Like
  • 0
    Comment
More than 1 year has passed since last update.

概要

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
…