503
Підписники
+124 години
+37 днів
+8130 днів
Архів дописів
503
🚀 Saynaa IDE 1.0.6 — (LTS)
We are proud to release Saynaa IDE 1.0.6, a major release focused primarily on performance, stability, and significant internal improvements.
✨ Highlights
- ⚡ Performance-first improvements across the IDE and runtime
- 🛠️ Major internal improvements for better stability and maintainability
- 🔄 Renamed the runtime class path: com.saynaa.saynaajava → com.saynaa.runtime
- 🧩 Continued improvements to the Saynaa runtime and IDE integration
📦 Download
SaynaaIDE_1.0.6.apk
This release establis 1.0.6 as the LTS version and provides a stronger foundation for future Saynaa development.
Performance is the first goal. Major improvements are the result.t.
#Saynaa #SaynaaIDE #LTS #Release #Programming #Development
503
How to Add This Mod Menu to a Game
1. Modify
classes.dex
Open classes.dex and delete all classes except com/saynaa.
For example, you can remove:
- androidx
- io/github/rosemoe/sora
- kotlin
- org
The reason for removing these classes is that some games already contain their own versions of these libraries. Keeping both versions can cause issues such as duplicate classes when rebuilding the APK.
Important: Do not use CodeEditor in your project. Saynaa itself does not depend on AndroidX, Sora, Kotlin, or these other libraries. Therefore, there is no need to include CodeEditor or its dependencies when integrating Saynaa into a game.
2. Add the Mod Menu to the Game Activity
Open the game's main Activity and add the following code to onCreate(), onStart(), or another suitable lifecycle method:
invoke-static {p0}, Lcom/saynaa/saynaajava/Main;->run(Landroid/content/Context;)V
3. Copy the Required Files
Copy the following into the game:
- assets
- libs
You **do not need to modify AndroidManifest.xml**.503
libmemory.so only provides memory patches, but the hook is adding soon if possible.
Important note: if you have a tool or want low-level functionality, write C/C++ code and use the Saynaa API, then import it into your project.
503
If you wanna to create mod menu in 64-bit devices use condition
import os
if os.cpu == "arm" then
## arm32 code here
elif os.cpu == "arm64" then
## arm32 code here
end503
🚀 Mod Menu 1.0.0 — Updated
The version of Mod Menu is now available! 🎉
✨ Features
- 🧩 Native
libmemory.so support
- ⚡ ARM32 & ARM64 support
- 📦 Packaged as .syp
- 🔧 Designed for SaynaaIDE
- 🚀 Easy to load and use in your Saynaa projects
📦 File
Mod Menu_1.0.0.syp
Both ARM32 (armeabi-v7a) and ARM64 (arm64-v8a) are supported, so you can use the package on compatible 32-bit and 64-bit devVersio 1.0.0 1.0.0 * .syp .syp
Platform: SaynaaIDE503
i don't test it arm64 but my ARMStub will work all arm32 and arm64
Make sure, the dist/libmemory.so don't depend on termux library
This is fine
~/saynaa-packages $ ldd dist/libmemory.so libdl.so => /system/lib/libdl.so libm.so => /system/lib/libm.so libc.so => /system/lib/libc.so ld-android.so => /system/lib/ld-android.so
503
i build libmemory.so only arm32, If you devices is arm64, use this code
Replace
Import memoryTo
memory = loadlib("memory", "armeabi-v7a")Or buikd libmemory.so as arm64-v8a Use termux: install requirements tools
pkg install git make clang ndk-multilib
git clone https://github.com/Mahdiware/saynaa-packages
$ make ==> Building project: hello/ Compiling C++ src/init.cpp Compiling common /data/data/com.termux/files/home/saynaa-packages/common/nativeapi.c Linking /data/data/com.termux/files/home/saynaa-packages/dist/libhello.so ==> Building project: memory/ Compiling C src/Substrate/hde64.c Compiling C++ src/Substrate/SubstratePosixMemory.cpp Compiling C++ src/Substrate/SymbolFinder.cpp Compiling C++ src/Substrate/SubstrateHook.cpp Compiling C++ src/Substrate/SubstrateDebug.cpp Compiling C++ src/KittyMemory/MemoryBackup.cpp Compiling C++ src/KittyMemory/KittyMemory.cpp Compiling C++ src/KittyMemory/KittyUtils.cpp Compiling C++ src/KittyMemory/MemoryPatch.cpp Compiling C++ src/helper/utils.cpp Compiling C++ src/helper/memory.cpp Compiling C++ src/helper/ARMStub.cpp Compiling C++ src/init.cpp Compiling C++ src/And64InlineHook/And64InlineHook.cpp Linking /data/data/com.termux/files/home/saynaa-packages/dist/libmemory.so
503
🚀 SaynaaIDE 1.0.3 (103) — Performance Update
SaynaaIDE is getting faster. ⚡
This release brings performance improvements to the Saynaa VM → Java bridge, with faster runtime communication and Android UI operations.
📊 Benchmark results
- Saynaa Map Get/Set — 2.0 µs
- Java "setId()" — 30 µs
- Java "setPadding()" — 42 µs
- Java "setLayoutParams()" — 33 µs
- Java View Constructor — 62 µs
- Java LayoutParams Constructor — 55 µs
The Java bridge now uses cached method resolution and optimized runtime communication between Saynaa and Android, reducing overhead during UI operations.
🔥 Version: 1.0.3
🔢 Version Code: 103
More optimizations and improvements are on the way as SaynaaIDE continues to evolve.
SaynaaIDE — Build Android apps with Saynaa. 🚀
#SaynaaIDE #Saynaa #Android #Programming #Performance #Optimization #Release #Developer
503
🔨 1 new commit to saynaa-packages:main:
ad53278: added memory library by Mohammed Abdifitaax (Mahdiware)
503
🚀 Saynaa Mod Menu Development
I’m currently working on a set of Mod Menu tools for Saynaa, which will be used with SaynaaIDE to build Mod Menus.
If you have any useful C/C++ tools, native libraries, utilities, or ideas that could be useful for Mod Menu development with Saynaa, feel free to share them with me. I’d like to explore and integrate useful tools into the ecosystem.
Saynaa can load native
.so modules, so these tools can be written in C/C++, built independently, and used from Saynaa through its native API.
There is currently an Android limitation I’m working on:
Android doesn't allow the .so libraries to be loaded normally from external/shared storage such as /storage/emulated/0.
Loading the same libraries from the app's internal storage works correctly. I’m currently working on a solution so the workflow can be more flexible.
The goal is to make SaynaaIDE a practical environment for building Mod Menus, while allowing developers to extend it with their own native tools. 🔥
If you have something useful that could fit this project, share it with me!
#Saynaa #SaynaaIDE #ModMenu #Android #C #Cpp #Termux #NativeDevelopment503
⚠️ Important — Existing SaynaaIDE Projects
Projects created with older versions of SaynaaIDE may not work directly in SaynaaIDE 1.0.1.
This release contains major internal changes, so older projects may need to be updated.
For example, in init.sa:
activity.getSaynaaDir()should now be used instead of:
java.saynaadirThis is especially important because SaynaaIDE now supports creating Mod Menus, where SaynaaActivity may not be available. The package name has also changed:
com.android.saynaa → com.saynaaThere are also other internal changes that may require modifications to older projects. ### 🆕 loadfile() has been updated The built-in loadfile() now supports:
loadfile([module:Module], path:String, [mode:Number=0]) -> VarModes:
0: CLONE — Create child module from parent context 1: SHARED — Execute inside parent module; changes affect parent 2: NEW — Create empty module with no parent contextpackage.loadfile has been removed because it was a duplicate of the built-in loadfile(). 🔧 If you are updating an old project, make sure to review these changes and update your code accordingly. #SaynaaIDE #Saynaa #Update #BreakingChanges #Development
503
⚠️ Important — Existing SaynaaIDE Projects
Projects created with older versions of SaynaaIDE may not work directly in SaynaaIDE 1.0.1.
This release contains major internal changes, so older projects may need to be updated.
For example, in
init.sa:
activity.getSaynaaDir()
should now be used instead of:
java.saynaadir
This is especially important because SaynaaIDE now supports creating Mod Menus, where SaynaaActivity may not be available.
The package name has also changed:
com.android.saynaa → com.saynaa
There are also other internal changes that may require modifications to older projects.
### 🆕 loadfile() has been updated
The built-in loadfile() now supports:
loadfile([module:Module], path:String, [mode:Number=0]) -> Var
Modes:
0: CLONE — Create child module from parent context 1: SHARED — Execute inside parent module; changes affect parent 2: NEW — Create empty module with no parent context
package.loadfile has been removed because it was a duplicate of the built-in loadfile().
🔧 If you are updating an old project, make sure to review these changes and update your code accordingly.
#SaynaaIDE #Saynaa #Update #BreakingChanges #Development