How to decompile Google Android .apk file as readable dump【原创】

Background :google android SDK platform provide emulator & ADB utility tools,it's very useful to

decompile the apk file to dump byte readable file.

Summary:

if you are ready for it, the sequences as following,

- create/launch emulator from command line

- launch the ADB utility toolfrom command line

- install apk file from local directory from command line

- list all system application apk file from command line

- dexdump selected.dex file from emulator

- pull dump file to local directory

Detail Section:

step 1: create your own emulator if you still not create one and then launch the emulator

launch the windows command line console, then chnage root directory to your android

SDK Platform/tools directory, for me

C:/>cd /d D:/android-sdk-windows/tools

D:/android-sdk-windows/tools>android create -avd -n my_android1.5 -t 2

D:/android-sdk-windows/tools>emulator -avd my_android1.5

step 2: after emulator launched, go to windowns console to start ADB Shell utility tool

make sure your emulator is running before you start ADB. if it's successful

D:/android-sdk-windows/tools>adb shell
# cd /system/app
cd /system/app
# ls
ls
Mms.apk
ApplicationsProvider.apk
GlobalSearch.apk
Calculator.apk
SpareParts.apk
GestureBuilder.apk
Music.apk
SdkSetup.apk
PackageInstaller.apk
Fallback.apk
SettingsProvider.apk
DrmProvider.apk
Development.apk
TelephonyProvider.apk
PinyinIME.apk
HTMLViewer.apk
Settings.apk
NetSpeed.apk

if you want to see how many user applications have beeninstalled on your emulator, just

cd /data/app,and then ls

step 3: install your apk file using adb shell commands, if you still not install your application

on emulator

D:/android-sdk-windows/tools>adb install D:/android-sdk-windows/tools/a.apk

after install successfully, you will see your apk file using above command line

step 4: get the cached dex file from your emulator, we have to enter dalvik VM cache using command

# cd /data/dalvik-cache

# ls

..........

data@[email protected]@classes.dex

step 5: use dexdump file to generate the dump file then use pull command to copy to local directory

#dexdump -d -f -h data@[email protected]@classes.dex >> a.apk.dump

finally you will get a bit-readable dump file, based on dalvik class format knowledge, the more you dig

the more you get. normally *.apk file is a .zip file, could be open by any winzip tool.

Reference: SDK platform documentation

你可能感兴趣的:(android)