Android
apk

apkから対応バージョンを探す方法

More than 1 year has passed since last update.

Android 6.0 に 調査用のapkファイルをインストールした所、INSTALL_FAILED_OLDER_SDKと言われた。
どうやらapkのバージョンがAndroid端末と合っていない事が原因の様だがapkが求めているバージョンが分からない。
このファイルを渡した人もどこかへ行ってしまって当分帰ってこない。
なのでapkから対応バージョンを探す方法を使って自分で確認しました。

aapt d xmltree <apkファイル> AndroidManifest.xml | grep "minSdkVersion"
aapt d xmltree <apkファイル> AndroidManifest.xml | grep "targetSdkVersion"

apptは各build-toolsの中にありました。
バージョン毎に存在していたのとパス通すのが面倒だったので直接フォルダに入りapptコマンドを叩いて呼び出しました。

C:\tools\android-sdk-win\build-tools\26.0.2>aapt d xmltree sample_v292_1.apk AndroidManifest.xml | grep "targetSdkVersion"
      A: android:targetSdkVersion(0x01010270)=(type 0x10)0x1a

C:\tools\android-sdk-win\build-tools\26.0.2>aapt d xmltree sample_v292_1.apk AndroidManifest.xml | grep "minSdkVersion"
      A: android:minSdkVersion(0x0101020c)=(type 0x10)0x18

targetSdkversion は 0x1a なので API:26
minSdkversion は 0x18 なので API:24

なのでAndroid6.0(API:23)では、このapkはインストール出来ない事が分かりました。