Hello everyone, welcome to the first tutorial in a series where I’ll teach you how to modify Android applications. Before we dive in, I’ll provide an overview of how application modding works and the tools required. Don’t worry, I’ll keep these tutorials straightforward for easy understanding.
Tools needed for app modification:
– APKEASY TOOL or any APK tool capable of decompiling APK files.
Another Brilliant tool is MT MANAGER, But you will need the VIP version of it. You can also use NP Manager.
I highly recommend getting the VIP of MT Manager, it cost like 5 bucks for 5 months. You will really need it and makes modding APPS easier.
That’s all you need!
So, how do we actually mod apps? Most Android apps are written in Java, and after the app is built, Java gets packed inside Dex files. Retrieving the Java source code from the APK file is impossible, but you can read the code by converting the Dex file into smali, which is readable with basic knowledge. Here are some dalvik opcodes: – http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html
When modding Android apps, you’ll often use boolean values like true or false, especially for features like premium subscriptions or pro features.
The opcode for true is “const v0, 0x1”, and for false, it’s “const v0, 0x0”. To identify whether a method/function is boolean or not, check if it ends with “()Z”. Check the screenshot in the “steps” section.
For today’s tutorial, we’ll mod an app called ‘Learn English – ABA English’:
– Link: (https://play.google.com/store/apps/details?id=com.abaenglish.videoclass)
– Download the APK file from apkcombo (https://apkcombo.com/apk-downloader/?device=&arches=armeabi-v7a&sdkInt=&sa=1&lang=en&dpi=480&q=com.abaenglish.videoclass). It’s better to download the armeabi-v7a version for compatibility.
What are we modding in this app?
We’ll modify the app to grant us premium access. The original app requires a premium subscription, but I’ll show you how to make the app think we’ve already purchased it.
Steps:
1. Decompile the APK file using APK Tool.
2. You’ll find several smali folders.
3. As we’re modding premium subscription, search for terms like ‘isPremium’, ‘hasSubscribed’, ‘isPro’, etc.
4. In this app, the main keyword is ‘isPremium’.
5. You’ll get multiple results, but find where the method is called from.
6. Navigate to “smali/com/abaenglish/videoclass/domain/content/usercontroller.smali”.
7. In this file, there’s a method called “isUserPremium()Z”.
8. Here, the app checks if the user is premium. Simply remove everything inside the method and return ‘true’ as shown in the picture below.
9. If the app returns ‘V2’, use ‘const V2’, if ‘V0’, then ‘V0’; otherwise, the app won’t work.
10. Now, go back and navigate to `smali/com/abaenglish/videoclass/domain/model/user/user.smali`.
11. Here, find the method called “isPremium()Z”.
12. Remove everything inside the method and return ‘true’ as well.
13. In this case, it’s ‘V0’, so you return “const v0, 0x1”.
You’re almost done! Just sign the APK file, and you’ll have a premium subscription in the app.
Other considerations:
Not all apps will be straightforward. Some games encrypt their methods, using terms like ‘g()z’, ‘m()z’, etc. In such cases, it’s better to do some guesswork by making things ‘true’ and testing. You can also search for strings like ‘premium’, ‘subscribed’, etc., to see if they’re called inside any methods, and then find any Boolean within the method to see if it’s pointing somewhere interesting.
Keywords to look for:
• isPremium
• hasSubscribed
• isPro
• isProUnlocked
• isProUser
• hasPremium
• isPremiumUser
• isSubscriptionActive
• isFree
• isUnlocked
• isPlusUser
Remember to ensure you’re looking at the correct place within the app’s smali files using the app’s package name. For instance, in this app ‘com.abaenglish.videoclass’, we found methods in ‘smali/com/abaenglish/videoclass/’.
Lastly, if APKTOOL seems complex, consider using APKEDITOR OR MT MANAGER, an easier alternative. Ensure you use an old version that allows turning DEX into smali.