packaging – Parse versionCode from android apk files-ThrowExceptions

Exception or error:

I know .apk files are .zip files, but AndroidManifest.xml looks binary and certainly grep or hex editors haven’t been successful extracting the versionCode.

Does anybody know how to parse or extract it? I find myself in a Python script with the apks AndroidManifest.xml file open.

How to solve:

Assuming you have the Android SDK installed, you can use aapt to find this value. For example, on Linux:

aapt dump badging MyAwesomeApplication.apk |grep version

###

they are binary XML files. You can use a tool like AXML2XML to convert the binary XML file into a text-based XML file. There a few different tools, some do better jobs than others.

AXML2XML:
http://devtcg.blogspot.com/2008/03/tool-to-read-android-binary-xml-files.html

AXMLPrtiner:
http://forum.xda-developers.com/showthread.php?t=514412

###

Use android-apktool:

apktool.bat d application.apk

###

You may refer to this.
It reads necessary strings from the resource table while translating the binary xml file.

Leave a Reply

Your email address will not be published. Required fields are marked *