androidandroid-resourcesdecompilingapk

Is there a way to get the source code from an APK file?


The hard drive on my laptop just crashed and I lost all the source code for an app that I have been working on for the past two months. All I have is the APK file that is stored in my email from when I sent it to a friend.

Is there any way to extract my source code from this APK file?


Solution

  • Simplest way: use the online tool Decompiler, upload the apk, and get the source code.


    Procedure for decoding .apk files, step-by-step method:

    Step 1:

    1. Make a new folder and copy over the .apk file that you want to decode.

    2. Now rename the extension of this .apk file to .zip (rename from filename.apk to filename.zip) and save it. Now you can access the classes.dex files. At this stage, you are able to see drawables, but not the .xml and .java files.

    Step 2:

    1. Now extract this .zip file in the same folder or a new folder.

    2. Download dex2jar (Don't download the code, click on the releases button that's on the right, then download the file named dex2jar-X.X.zip) and extract it to the same folder or a new folder.

    3. Move the classes.dex file into the dex2jar folder.

    4. Now open Command Prompt and change the directory to that folder. Then write d2j-dex2jar classes.dex (for Mac or Ubuntu write ./d2j-dex2jar.sh classes.dex) and press enter. You now have the classes.dex.dex2jar file in the same folder.

    5. Download java decompiler, Right click on jd-gui, click on Open File, and open classes.dex.dex2jar file from that folder: Now you get the class files.

    6. Save all of these class files (In jd-gui, click File -> Save All Sources) by src name. At this stage, you get the Java code but the .xml files are still unreadable.

    Step 3:

    Now open another new folder

    1. Put in the .apk file which you want to decode

    2. Download the latest version of apktool AND apktool install window (both can be downloaded from the same link) and place them in the same folder

    3. Open the Command Prompt

    4. Now run command apktool if framework-res.apk (if you don't have it get it here)and next

    5. apktool d myApp.apk (myApp.apk denotes the filename that you want to decode)

    Now you get a file folder in that folder and can easily read the .xml files.

    Step 4:

    It's not any step, just copy the contents of both folders (both new folders) to a single one

    AND ENJOY THE SOURCE CODE!