Simple login form in Java only
Keep in mind that it is mainly for APK modding and not for general app development purposes
okhttp dependency is no longer required, we use URL instead. You can still use okhttp if you want, uncomment the okhttp codes related
Note: This project is for experienced modders and programmers only and you must be able to do yourself and be able to search for help. This project will not be maintained much, we will NOT offer help and support with this project, and the Example will not be updated.
Add login.php
to your server that supports PHP, use 000webhost.com for free webserver. Repo based hosting such as Github does not support PHP
Change URL on public static String URL
on MainActivity.java
file
It's easy, just copy and paste the code of public static void Start(final Context context)
into your project and make some changes
See the example folder how the login code was merged into the mod menu project on MainActivity.java
file
Build the project to APK file.
Build -> Build Bundle(s)/APK(s) -> Build APK(s)
If no errors occured, you did everything right and build will succeded. You will be notified that it build successfully
Click on locate to show you the location of build.apk. It is stored at (your-project)\app\build\outputs\apk\app-debug.apk
Now decompile your app-debug.apk.
Copy all your smali folders to the game's smali folder to the game's decompiled directory (game name)\smali
. If the game have multidexes, add your smali to the last classes dex if possible to prevent compilation errors such as Unsigned short value out of range: xxxxx
If the game has already okhttp smalis, don't add it.
Now, you must know the game's launch activity/main activity
You can either use APK Easy Tool to view main activity like screenshot below:
Or decompile your game APK using apktool.jar, or any 3rd party CLI or GUI tools, and open androidmanifest.xml
and search after <action android:name="android.intent.action.MAIN"/>
In this case, my game's main activity was com.unity3d.player.UnityPlayerActivity
On the game's androidmanifest.xml
, besure that <uses-permission android:name="android.permission.INTERNET"/>
exist
Locate to the game's path of main activity and open the smali file.
Example if it was com.unity3d.player.UnityPlayerActivity
, the path would be (decompiled game)/com/unity3d/player/UnityPlayerActivity.smali
If the game have multi dexes, it may be located in smali_classes2... please check all
Open the main acitivity's smali file, search for OnCreate method and paste this code inside (change the package name if you had changed it)
invoke-static {p0}, Lcom/example/androidloginjava/MainActivity;->Start(Landroid/content/Context;)V
Save the file
Now compile the game APK
It should launch the login screen and successfully launch the activity after login :)
See native-lib.cpp
for example how to check if the user has logged in
There are the codes called Check()
and System.loadLibrary("yourlib");
. They are commented out
You may need to protect your dex and lib files for that