This project is based on LGL Mod Menu. Since the original project is no longer actively maintained, We have made several modifications, including:
- UI Changes: Updated the menu interface.
- New Modules: Added additional modules to extend functionality.
- Obfuscation:
- Integrated BlackObfuscator for enhanced code obfuscation.
- Added LSParanoid to provide string encryption for securing sensitive text data.
Before we can jump head first into working a template, we need to go over a few things.
- AN EXPERIENCED MODDER You should be able to mod any games in general, like modifying .so files, dll files, smali files, etc.
- Android Studio, i don't think this project could compile on android software like AIDE
- Basic knowledge of smali dalvik opcodes to modify smali
- Basic knowledge ARM and ARM64 assembly, to be able to patch hex (No need x86)
- Basic knowledge of C++ and java (JNI is optional)
- Be able to write hook function in C++ (Not really needed, but recommended if you want to do advanced modding in the future)
- Basic awareness of how Android layout works in XML and Java. This project only use Java for layout but you will learn it easly
- Time and patience: Don't start working on this if you have deadlines or important work. Take your time to read, learn and get used to work with this project.
- DIY (Do it yourself): Yes, you must be able to do things yourself, not depending being spoonfeed. We are not the teachers.
- An inquisitive mind
We are not babysitters for naive, lazy, pathetic children... Grow up. Read and learning by yourself is mandatory!
Note
Starting from version 1.3, Il2cppResolver has been replaced with UnityResolve to offer more extensive API support and improved functionality.
New feature suggestions or bugs can be commit as issues.
Note
Starting from version 2, the menu has a single layout built, a floating bubble that opens a panel with a tab sidebar on the left and feature cards on the right. The LGL layout and the build flavors were removed from this version, it's hard to maintenance lol
if you prefer using the old one, consider to choose v1 branch
Features are declared in Menu/FeatureModule.cpp. Each ITab becomes a sidebar entry, and an ICollapse opens its children as a sub-page, "Why is it different from the LGL implementation?" Sometimes I forget how to implement a widget when the parameters differ.
Widget::Add(ITab(OBFUSCATE("Visuals"), OBFUSCATE("eye"), {
ITab::Child(ISwitch(1, OBFUSCATE("ESP"), OBFUSCATE("Shown when tapping the ? badge"))),
ITab::Child(ICollapse(OBFUSCATE("Crosshair Settings"), {
ICollapse::Child(ISlider(3, OBFUSCATE("Crosshair Size"), 10, 100)),
})),
}));Tab icons: grid, hex, bell-off, wand, shield, eye, target, user, bolt, gear, info, star, gamepad, sword. Widgets added outside an ITab go into a "General" tab, and a "Settings" tab is added automatically with a "Save settings" switch (restores your last values on the next start), the credit line and app info.
Colors, sizes and fonts live in components/Theme.java.
To enable and display a floating menu in your target app, follow these steps:
To allow your target app to draw a floating menu overlay on top of other apps, add the following permission to your AndroidManifest.xml file:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />This permission is required for overlaying UI elements, such as a floating menu, across other applications.
To activate the floating menu, declare a service in AndroidManifest.xml to your targer app. This service will handle the display and lifecycle of the floating menu:
<service android:name="com.android.support.Launcher" android:enabled="true" android:exported="true" android:stopWithTask="true" />To integrate and initialize the floating menu loader, add the following code in the onCreate method within UnityPlayerActivity.smali. If your target app uses a custom launcher activity, locate it in AndroidManifest.xml and insert the code in that activity’s onCreate method instead.
invoke-static {p0}, Lcom/android/support/Loader;->Start(Landroid/content/Context;)VIf you prefer not to use Remap , simply call this method:
invoke-static {p0}, Lcom/android/support/Main;->Start(Landroid/content/Context;)VYou can integrate custom fonts into your project using a C array. To generate the required font data, you can use a hexadecimal editor such as ImHex.
To export a font, follow these steps:
- Load the
.ttffont file into ImHex. - Navigate to the File tab and select Export.
- Choose Text Formatted Bytes -> C Array.
- Save the exported data as a
.hfile.
- Copy the exported
.hfont file to theIncludes/Fonts/directory. - Open
Menu/JNILoader.cppand include your font header inIncludes/Fonts/. - Locate the
JNILoader::LoadFontDatamethod and modify it to use the newly exported font.
jbyteArray JNILoader::LoadFontData(JNIEnv *env, jobject thiz, jobject ctx) {
// Create a byte array in Java to hold the font data
jbyteArray fontData = env->NewByteArray(std::size(font));
// Populate the byte array with the embedded font data
env->SetByteArrayRegion(fontData, 0, std::size(font), (jbyte*)font);
return fontData; // Return the font data as a byte array
}Replace the font variable in the code above with the array from your exported font file. This ensures that the custom font is correctly loaded and utilized in the project.
The menu uses the system sans-serif font by default. Set Theme.USE_CUSTOM_FONT = true in components/Theme.java to use the font returned by LoadFontData.
- Arknights DLC Simple Game Helper for better experience.
- LGL Team.
- UnityResolve
- Dobby
- Remap Hide
If you have any questions or requests related to this project, feel free to open an issue.
This project is for Educational Use only. We do not condone this project being used to gain an advantage against other people. This project was made for fun.
We strongly refrain you from buying any source codes on Telegram even if the author can be trusted, there is always a risk getting scammed. We will not be responsible for that. This project is always FREE to use
