生存战争2“多重插件版”安装包制作尝试
我尝试制作了一个生存战争2(API 1.9.2.1)的“多重插件版”安装包,核心目的是让游戏能够加载外部任意类型的底层原生二进制文件(.so 或任何可执行文件)。虽然加载器不对文件类型做限制,但理论上只有有效的 ARM64 ELF 共享库(即 .so)才能被系统 dlopen 成功。 加载器的完整运行逻辑与过程: 1. Java 层启动(classes.dex) · 自定义 ModApplication 继承 android.app.Application,并在 static {} 块中调用 System.loadLibrary("具制") 加载 lib具制.so。 · 在 attachBaseContext 阶段,检测是否为游戏主进程,若是则执行 installSecondaryDex(),将原版 classes.dex 作为 secondary dex 合并加载,保证原版游戏逻辑不受影响。 2. Native 层注入器(lib具制.so) · 使用 attribute ((constructor)) 确保在 dlopen 后立即执行 mod init()。 · 固定扫描路径:/storage/emulated/0/Survivalcraft2.4 API1.9/内层加载区/,递归遍历所有文件(深度限制 16 层)。 · 对每个文件尝试 dlopen(RTLD NOW | RTLD GLOBAL | RTLD DEEPBIND),若失败则尝试 RTLD LAZY 作为备选。 · 同时,将文件强制复制到 lib具制.so 自身所在目录(通过 dladdr 动态获取),然后再次尝试 dlopen 副本,实现“双路径注入”。 · 解析 ELF 文件的 DT NEEDED 依赖,递归加载缺失的共享库(深度限制 3 层),并缓存已加载句柄,防止被卸载。 · 支持多路径变体(如带版本号、带时间戳、/data/local/tmp/ 等),最多尝试 6 种不同路径。 · 多线程并发加载(4 线程池),最大化利用 CPU。 · 提供注入报告系统,记录每个文件的加载结果、失败原因,并支持自愈回滚。 3. AndroidManifest.xml 的作用 · 将 的 android:name 指向 com.candy.survivalcraftAPI1 9.ModApplication,确保系统在启动时优先加载自定义的 ModApplication 类,从而触发 Native 库的加载。 三个文件的配合工作原理 · “classes.dex”(自定义 ModApplication):在游戏启动最早阶段抢占 Application 入口,主动加载 lib具制.so。 · “lib具制.so”(Native 注入器):作为实际执行者,扫描内层加载区并注入所有原生模组。 · “AndroidManifest.xml”:强制系统使用自定义 Application,让前两步得以执行。 如何将三份文件放进原版游戏安装包 1. 请使用 MT管理器 打开原版 APK。 2. 将游戏安装包根目录下原本的 classes.dex 文件重命名为 classes2.dex(保留原游戏逻辑)。 3. 将我提供的 “classes.dex”(自定义 ModApplication)文件移入或复制进 APK 根目录中。 4. 将我提供的 AndroidManifest.xml 文件替换进游戏安装包根目录下原本的“AndroidManifest.xml”文件 5. 进入游戏安装包内的 /lib/arm64 v8a/目录下,将我提供的 “lib具制.so” 文件放入该目录。 6. 保存 APK,使用 MT 管理器的自动签名功能重新签名。 7. 安装重新签名过后的安装包,进行测试和体验、检查。 我当前遇到的问题 · 安装后游戏可以正常启动,无闪退,但 “lib具制.so” 似乎完全没有执行,因为我未能找到任何执行日志,且生成专属对应的日志文件与专门用于加载文件的“内层加载区”文件夹也没有生成或补全。 · logcat 中没有任何与 ModLoader 或 具制 相关的日志(Log.i / Log.e 均无输出)。 · 如果你是专业的 Android 逆向或游戏模组开发者,拥有完整的开发环境和调试工具及制作工具,欢迎下载我提供的三份文件,按照上述教程修改原版 APK 并测试、实验。 希望你能通过 adb logcat、strace 或 gdb 等工具,追踪 “lib具制.so” 是否被系统尝试加载,以及 ModApplication 是否真正被初始化。 如有任何发现或改进建议,可以随时告知我,万分感谢你的帮助。 classes.dex的文件下载链接: https://file.suancaixianyu.cn/2026/07/08/17/50/classes.dex lib具制.so的文件下载链接: https://file.suancaixianyu.cn/2026/07/08/17/52/lib具制.so lib具制.so新版升级版链接: https://file.suancaixianyu.cn/2026/07/10/10/21/lib具制.cs (由于命名违反上传限制的问题,lib具制.so的名称后缀改成了.cs,你们下载好之后自己重命名一下) AndroidManifest.xml的文件下载链接: https://file.suancaixianyu.cn/2026/07/08/17/50/AndroidManifest.xml 我允许任何人任意修改和发布我提供的文件,并且如果最终你通过自己的努力修改,将这份失败品理想中的功能实现成功了,那么这将完全是你的功劳。 (我将一些对我很重要的可执行文件工具上传到了此账号的文件储存里,但由于这东西对我真的非常重要,为了保险起见 防止以后账号丢失,无法获取或下载,我这里提供了下载链接,供我本人在账号丢失和原储存丢失的情况下进行下载) https://file.suancaixianyu.cn/2026/07/17/18/53/夷包.zip https://file.suancaixianyu.cn/2026/07/18/12/49/振赫存储.zip (里面存放的是一个可执行文件和大量依赖文件,适用于安卓T终端。不要因为好奇心就点击链接下载, 它对你们无用 ,下载它只是在浪费时间) https://file.suancaixianyu.cn/2026/07/24/19/27/五赫戕屠重杀具制.zip https://file.suancaixianyu.cn/2026/07/24/21/02/五赫戕屠重杀具制2.zip https://file.suancaixianyu.cn/2026/07/25/15/02/五赫戕屠重杀具制4.zip https://file.suancaixianyu.cn/2026/07/27/00/27/五赫戕屠重杀具制5.zip https://file.suancaixianyu.cn/2026/07/27/12/21/主文件.zip https://www.scbbs.top/file/13955