Setting up the environment for decompiling Android apps on Mac OS

Setting up the environment for decompiling Android apps on Mac OS

[[144520]]

Often, for the purpose of learning or security testing, we need to decompile the installation files of the Android app to view the source code. Let's build a decompilation environment under Mac OS.

Installation Environment

Create a basic folder

mkdir -p ~/study/apkkiller/soft/bin

mkdir -p ~/study/apkkiller/soft/src

mkdir -p ~/study/apkkiller/output/

The installation file of andorid app is apk package. To decompile apk file, you need to download apktool and dex2jar, both of which are hosted on google code:

http://code.google.com/p/android-apktool/

http://code.google.com/p/dex2jar/

Find the download address from the above two pages. Here we find the download address of apktool1.5.2 and dex2jar-0.0.9.15:

cd ~/study/apkkiller/soft/src

wget http://android-apktool.googlecode.com/files/apktool1.5.2.tar.bz2

wget http://dex2jar.googlecode.com/files/dex2jar-0.0.9.15.zip

The decompressed files are stored in the following directory:

~/study/apkkiller/soft/src/apktool1.5.2

~/study/apkkiller/soft/src/dex2jar-0.0.9.15

For ease of use, create two soft links:

ln -s ~/study/apkkiller/soft/src/apktool1.5.2/apktool.jar ~/study/apkkiller/soft/bin/apktool

ln -s ~/study/apkkiller/soft/src/dex2jar-0.0.9.15/dex2jar.sh ~/study/apkkiller/soft/bin/dex2jar

Test decompilation environment

Let's start decompiling our test apk file to see if the environment can run normally

  1. cd ~/study/apkkiller
  2. mkdir -p ~/study/apkkiller/output/test/source
  3. mkdir -p ~/study/apkkiller/output/test/result
  4.  
  5. cp ./test.apk ./output/test/source/test.zip
  6. unzip ./output/test/source/test.zip -d ./output/test/source/test
  7.  
  8. cp ./output/test/source/test/classes.dex ./output/test/source/classes.dex
  9. ~/study/apkkiller/soft/bin/dex2jar ./output/test/source/classes.dex
  10. # output ./output/test/source/classes_dex2jar.jar

To view the decompiled files, you can download the jd-gui tool and open the ./output/test/source/classes_dex2jar.jar file generated above. This tool can export all the source code packages. Download jd-gui from the following address:

http://jd.benow.ca/

http://jd.benow.ca/jd-gui/downloads/jd-gui-0.3.5.osx.i686.dmg

The apk resource files are stored in the folder ./output/test/source/test that we unzipped above. There are many xml files in it, but they are encrypted and cannot be viewed directly. At this time, you need to use the apktool tool:

java -jar ~/study/apkkiller/soft/bin/apktool d ./test.apk ./output/test/source/test_resource

Merge the exported source code and resource files to get the result we want.

<<:  Learn more about iOS 9 every day 5: Xcode Code Coverage Tools

>>:  Is heavy H5 really good?

Recommend

Tourism industry advertising unlocks new ways to play with Tik Tok videos!

This article shares with you the May Day holiday ...

From 0 to 1, make a 100-like Xiaohongshu note!

How to continue to gain traffic for Xiaohongshu N...

How to name a brand, here are 6 tips!

Written at the beginning: The success of big bran...

A comprehensive marketing plan for Mid-Autumn Festival and National Day!

September and October are the golden months, and ...

How to avoid fragile code

[[165073]] The most common problem with legacy co...

Why are the short dramas that are going viral on the Internet so addictive?

Review expert: Chen Mingxin, national second-leve...

Marketing and Promotion | Why is Guazi Used Cars so successful?

How did Guazi.com become a leader in the used car...

10 Figma plugins to help UI designers greatly improve their efficiency

In the field of UI/UX design, many tasks no longe...

Take you into the world of IOS11 step by step

In the early morning of September 13, after Apple...

How much does it cost to join a meat and poultry mini program in Hohhot?

What is the price for joining the Hohhot Meat and...

Why does a car not start when it comes into contact with vanilla ice cream?

A true but somewhat absurd story: A Pontiac car u...