zipファイルなので当然、解凍したくなる。
欲望のままに解凍するとDalvik VM用にコンパイルされたdexファイルや各種のリソースファイルが展開される。
展開されたファイルは、Android SDKに含まれる各種のツールでデコンパイルすることができるらしい。
- dexdump
- aidl
- aapt
今回は、aaptというツールを使って、AndroidManifest.xmlファイルをデコンパイルしてみる。
まず、そもそもapkを解凍して得られるAndroidManifest.xmlファイルはバイナリファイルなので、テキストエディタで開いても意味不明な感じになる。
そこで、aaptを使ってxmlファイル・・・ではなく、apkファイルの中身をサクっと見てみると、AndroidManifest.xmlの内容を見ることができてしまう。
そのコマンドがこれだ・・・
aapt l -a アプリケーション.apk
ずらずらーっと(中略)
Android manifest:
N: android=http://schemas.android.com/apk/res/android
E: manifest (line=2)
A: android:versionCode(0x0101021b)=(type 0x10)0x1
A: android:versionName(0x0101021c)="1.0" (Raw: "1.0")
A: package="com.example.listview.tap" (Raw: "com.example.listview.tap")
E: application (line=6)
A: android:label(0x01010001)=@0x7f040001
A: android:icon(0x01010002)=@0x7f020000
E: activity (line=7)
A: android:label(0x01010001)=@0x7f040001
A: android:name(0x01010003)=".Main" (Raw: ".Main")
E: intent-filter (line=9)
E: action (line=10)
A: android:name(0x01010003)
="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
E: category (line=11)
A: android:name(0x01010003)
="android.intent.category.LAUNCHER" (Raw: "android.intent.category.LAUNCHER")
(※便宜上、一部改行してます)
EはおそらくElement、AはAttribute、NはNamespaceの略かと思われる。
0 件のコメント:
コメントを投稿