Reverse Engineering Android Apps — Part 1
This is only for informative purposes. It is not intended for piracy or other non-legal uses.

The following tools were tested working on APKs build for Android 10 and below. These tools mentioned below were developed for decompiling Android apps written in Java. We tried reversing some hybrid apps written on React Native and Ionic Framework, and it seems to be working. But we are not sure about Flutter and other hybrid frameworks.
So, what do we need first?
An APK file
There are several ways to get an APK. One of the best ways is to download it on your Android device and using a backup app to archive the application. You can also use tools like PlaystoreDownloader to download them directly from the play store.
If you just want to view the source code and resources, you can simply use jadx to see the source. It is clean and easy to use.


You can also save or export this code as a Gradle project.
The above code seems to be pretty neat with all the packages, variables and method names intact. This won’t be the case for all Android applications. If the application is minified or obfuscated, then it will look like the image shown below.
It will be hard to reverse engineer, but not impossible.

We will see about recompiling an Android application on another story.
Checkout part 2
Stay tuned and follow us.😉
Written by
Naveen Sakthivel, CTO
Dotworld Technologies