How did this project started?

Short answer: I love this game so much—it was great, but it's not playable on newer Android devices. Therefore I want to use my skills to bring it back to life and let everyone enjoy it as much as I do.

My experience with the game

At age 12 (2013), I got my first phone, a Nokia 110. Despite its tiny 128x160 resolution, it opened up a world of gaming. I was captivated by The Petking 5 for its vibrant visuals and engaging story. I spent countless hours completing quests and collecting pets, though occasional crashes disrupted the experience.

Screenhots from Nokia phone

In 2016, I upgraded to my first smartphone, a Galaxy Y. It was small, underpowered, and stuck on Android 2.3.6, but I could still play many games, including The PetKing 5, which I enjoyed as much as the first time.

By 2018, I had a Lenovo Z5 running Android 9. I tried playing The Petking 5 again but had to uninstall it due to lag. I hoped for a future where better hardware could resolve the issues.

A screenshot from Android game

In college (2019), I received a Xiaomi Mi 8 Pro from my brother. Excited to revisit the game, I discovered it was no longer supported on Android 10, ending my journey with The PetKing 5.

I haved tried RE serveral times but all lead to nothing

  • 2019: I started my journey as a Computer Science major and got familiar with programming. It was also the first time I encountered the term "reverse engineering." However, it was just a fancy term for a beginner like me.

  • 2020: I learned Android development and started reversing some simple games using Jadx. I explored and experimented with reverse-engineered Java code, but nothing substantial came out of it.

  • 2021: I actively searched for a clean APK file (one that wasn’t obfuscated and didn’t include SDK payment integrations). I found one! But when I tried to export the Gradle project from Jadx and build it, I ran into Gradle configuration issues. That was my first failure.

  • 2022: I returned to this project, retracing the same steps as before—finding the APK and reversing the Java source code. This time, I made some progress: I learned how to configure Gradle to make the project buildable. However, there were numerous errors due to decompilation issues, and I quit again. This marked my second failure.

  • 2023: I decided to take the project seriously (at least, that’s what I thought). I resolved all the compilation errors and even managed to make the app buildable. I could see the main menu screen and the first scene. But then the app crashed. I followed the trace and resolved the crash issue, only to face a more complex problem: the app got stuck and rendered a blank screen. This was my third attempt.

  • 2024: I quit my full-time job and found myself with free time, so I returned to this project once again (and, of course, created yet another repository 😔). This time, I had sufficient skills to debug, log, and follow the call graph. The biggest leap forward was learning Smali language and using it to edit the original APK.

Some tries that I pushed to Github

So, basically, I’ve spent 5 years and am still stuck at the starting point.
I’m quite certain that other developers could have completed all these steps in days rather than years like me.
Yet, somehow, I believe this time will be different.