Hello everyone, here we will introduce the APK decompilation operation:
1: APK Decompilation
2: Convert odex to Dex
Operating Environment: Ubuntu
A: decompilation APK
To code. Google download apktool. jar and Related Files: http://code.google.com/p/android-apktool/downloads/list
Click to download apktool-1.0.0.tar.bz2 and apktool-install-linux-2.20.r01-1.zip
Apktool command
./Apktool D geek.apk test decompile geek.apk to the folder Test
B: Convert odex to Dex
Http://code.google.com/p/smali/downloads/list
Download the following four files.
Now we need to decompile cardmanager. odex. Take cardmanager. odex as an example.
1: Java-jar baksmali-1.3.2.jar-a 12-x cardmanager. odex
// Note: the core. jar: Ext. jar: Framework. jar: Android. Policy. jar: services. jar file is supported. Some jar files in the ROM where this APK is located are in the/system/framework: core. jar, ext. jar, framework. jar, android. policy. jar, services. jar and corresponding. odex file, put these files in cardmanager. the same level of odex directory.
Run Java-jar baksmali-1.3.2.jar-a 12-x cardmanager. odex to generate an out folder where the file ends with. smali,
Note: here the parameter-A 12 should be the Android version number, and 4.0 corresponds to 14.
2: generate the classes. Dex File
Run Java-jar smali-1.3.2.jar out/-O classes. Dex
3: Download dex2jar: dex2jar-0.0.9.8.zip
Http://code.google.com/p/dex2jar/downloads/list
Unzip tar-xzvf dex2jar-0.0.9.8.tar.gz
Generate the classes_dex2jar.jar File
Dex2jar-0.0.9.8 $./dex2jar. Sh ../test_hw_odex/classes. Dex
Wanqi @ wanqi-system-product-Name :~ /Downloads/dex2jar-0.0.9.8 $./dex2jar. Sh ../test_hw_odex/classes. Dex
Dex2jar version: Translator-0.0.9.8
Dex2jar ../test_hw_odex/classes. Dex-> ../test_hw_odex/classes_dex2jar.jar
4: run the jd-gui-0.3.2.linux.i686 and open classes_dex2jar.jar. OK.
Decompile framework. odex
Java-xmx512m-jar baksmali-1.3.2.jar -- API-Level 12-C: core. jar: bouncycastle. jar: ext. jar: framework. jar: Android. policy. jar: services. jar: core-junit.jar-D Framework/-x framework. odex
Note that there may be insufficient Java memory when running these commands, So I sometimes use the following command to complete the work:
Java-jar-xmn16m-xms64m-xmx128m
References:
Android APK decompilation and odex to Dex