转换AndroidManifest.xml

from:android的apk文件的xml提取

前面有说明android获取程序信息,这些信息是基本信息,我想提取android:minSdkVersion的值,可还没有发现用程序可以提取出来。

有一个比较笨的方式是解压apk文件,分析apk文件里的xml。

首先apk文件其实是zip文件,改名即可按zip文件解压,而xml文件是二进制的,倒是需要另外的软件解决。
如果需要提取,不需要再重新打包,可以改名直接解压,否则可以试试apktool来解压和打包,不重复说明。

浏览二进制的xml文件,可以用 AXMLPrinter2 解决,在 android4me 的工程里面可以下载到。
AXMLPrinter2.jar  Prints XML document from binary XML file (with correct namespace handing & attribute formatting).

下面演示一下解析过程:

root@aslibra:/tmp/apk# ls
c.apk
root@aslibra:/tmp/apk# mv c.apk c.zip
root@aslibra:/tmp/apk# unzip c
Archive:  c.zip

inflating: res/layout/main.xml

inflating: AndroidManifest.xml
extracting: resources.arsc

root@aslibra:/tmp/apk# java -jar /path/to/AXMLPrinter2.jar AndroidManifest.xml |grep minSdkVersion
android:minSdkVersion=”2″

TIPS: minSdkVersion 在安装时有用,如果版本比这个低,就根本安装不上此程序的。

参考阅读:

1 探究 Android 系統應用程式的祕密
2 又一个反编译利器Apktool (反编译和重建apk)
3 http://code.google.com/p/android-apktool/
4 How to parse the AndroidManifest.xml file inside an .apk package
5 android4me

原创内容如转载请注明:来自 阿权的书房

本帖地址:https://www.aslibra.com/blog/post/android-parse-apk-binary-xml.php

此条目发表在android分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注