How this I find the perfect APK file to start RE?

To simplify reverse engineering, I needed an APK with clean, easy-to-understand source code and minimal external libraries. Ideally, the APK should be non-obfuscated and free from non-core dependencies, such as Payment or Ad SDKs.

Why do I need the perfect APK file?

I'm trying to reverse engineer (RE) an APK back into a Java (Gradle) project to make it buildable and testable again. As mentioned on my About Page, I aim not only to modify the game's logic but also to add extra features.

If the APK contains any of these issues, the process becomes much harder:

  • Obfuscated code (Java or C++): Obfuscation makes it significantly more difficult to understand the code and trace the game's flow, consuming a lot of time.
  • Containin dependencies: This is an older project (from 2011), so the dependencies it used may no longer exist. If the APK relies on such libraries, I would also have to reverse engineer them, which doesn't make sense as I only want to focus on the core game.

In the case of the SDK payment issue, I realized later, looking back from 2024, that I could have technically removed the entire SDK and implemented my own mock class to replicate its original logic.

My Experience Downloading APKs from the Internet

Since this is a Chinese game, I started by searching Chinese websites for APK files. Initially, I downloaded around 10 APKs and used JADX to decompile the Java code for analysis. However, the results were far from what I expected. Most of the code was obfuscated at the Java layer, and some even used obfuscation combined with logic written in C++ (Native layer). Additionally, almost all of them included SDK-based payment systems.

Afterward, I downloaded several more APKs, but the patterns were the same—obfuscated code, complex dependencies, and embedded native logic.

Various Apk files I have tried decompiled

Eventually, I gave up on finding the "perfect" APK file and decided to work with the best options available. I focused on non-obfuscated APKs with manageable dependencies for my first and second attempts between 2021 and 2022.

Despite my efforts, I abandoned the project after a short period in 2022. It never progressed beyond the preparation stage.

However, as I frequently revisited the project and restarted multiple times, I eventually downloaded the APKs again. This time, I finally found a "perfect" APK file, which I named Rb2.0_vip.apk (though I had no idea what "VIP" stood for at the time).

I made a backup for the perfect APK file on Drive

As I mentioned earlier, I didn’t really need the "perfect" APK file. Choosing the best option available would have been enough to move forward.
If an APK included irrelevant code—like unnecessary libraries or SDKs—I could have simply removed them. Regarding obfuscation, there were some APKs with clean code back then that I could have worked with.

However, I didn’t take that approach, and that became one of the main reasons I abandoned this project so many times.

Every issue had its own solution, and I regret giving up too soon without fully diving into the challenges.