Android-Mod-Menu 使用教程

目录

    • 简介
    • 前提条件
    • 安装步骤
      • 1. 下载和解压项目
      • 2. 配置 Android Studio
      • 3. 安装到设备
    • 修改游戏 APK
      • 1. 确定游戏主活动
      • 2. 集成模组菜单
        • 方法 1:通过服务启动(推荐)
        • 方法 2:通过活动启动(仅在游戏检测模组时使用)
      • 3. 合并模组和游戏 APK
      • 4. 测试修改后的 APK
    • 使用模组菜单
      • 1. 基本操作
      • 2. 自定义功能
      • 3. 调试与优化
    • 常见问题
    • 注意事项
    • 参考资源

简介

LGLTeam 的 Android-Mod-Menu 是一个强大的 Android 游戏浮动模组菜单模板,支持 il2cpp 和原生 Android 游戏,集成了 KittyMemory、MSHook、And64InlineHook 等工具,并提供 AY Obfuscator 进行字符串混淆。项目支持 Android 4.4.x 至 Android 12,兼容 ARMv7、x86 和 ARM64 架构。本教程将详细介绍安装、配置、APK 修改及使用方法,适合有一定 Android 开发基础的用户。

注意:本项目仅用于学习和研究,请勿用于非法或商业用途。使用不当可能引发法律问题,开发者不对任何不当使用负责。

前提条件

开始之前,请确保满足以下条件:

  1. 基础知识
    • 熟悉 Android 布局(XML 和 Java)。
    • 了解 Android 开发环境(如 Android Studio)。
    • 掌握基本的 C++ 和 JNI(Java Native Interface)知识。
    • 了解 APK 文件结构、smali 文件及反编译工具(如 Apktool)。
  2. 开发环境
    • 一台运行 Windows、macOS 或 Linux 的电脑。
    • 已安装 Android Studio 和 Android NDK。
    • 准备 APK 反编译工具,如 APK Easy Tool、MT Manager 或 APK Editor Pro。
    • 一台 Android 设备(建议 Android 5.0+,ARMv7 或 ARM64 架构)。
  3. 项目文件
    • 从 GitHub 下载 Android-Mod-Menu 源代码(https://github.com/LGLTeam/Android-Mod-Menu/releases)或克隆仓库:
      git clone https://github.com/LGLTeam/Android-Mod-Menu.git
      
    • 确保下载与设备 CPU 架构匹配的 NDK 文件(ndk_arm.tar.gz 用于 ARMv7,ndk_arm64.tar.gz 用于 ARM64)。

安装步骤

1. 下载和解压项目

  1. 访问 https://github.com/LGLTeam/Android-Mod-Menu/releases,下载最新版本的源代码 ZIP 文件,或通过 Git 克隆仓库。
  2. 解压到无空格或特殊字符的目录(如 C:\AndroidModMenu/home/user/AndroidModMenu)。

2. 配置 Android Studio

  1. 打开 Android Studio,选择 File > Open,加载解压后的项目文件夹。
  2. 等待项目同步完成(初次可能需 1-2 分钟)。
  3. 配置 NDK:
    • 进入 File > Project Structure > SDK Location
    • Android NDK Location 中选择 NDK 文件路径(如 ndk_arm.tar.gzndk_arm64.tar.gz)。
    • 确保 NDK 版本与设备架构兼容。
  4. 检查构建配置:
    • 打开 app/build.gradle,确认 ndk 配置正确。
    • 如需更改库名称,修改 app/src/main/jni/Android.mk 中的 LOCAL_MODULE,并更新 MainActivity.java 中的 System.loadLibrary("")

3. 安装到设备

  1. 连接 Android 设备,启用 开发者选项USB 调试
  2. 在 Android Studio 中选择设备,点击 Run 构建并安装调试 APK(app-debug.apk)。
  3. 构建成功后,APK 将自动安装,文件位于 app/build/outputs/apk/app-debug.apk

提示:若使用 AIDE 等移动端 IDE,需安装模组专用版本的 AIDE(Play Store 版本不兼容),详见 Wiki。


修改游戏 APK

将模组菜单集成到目标游戏需要修改 APK 文件,以下是步骤:

1. 确定游戏主活动

  1. 使用 APK 反编译工具(如 APK Easy Tool 或 MT Manager)解编译目标游戏 APK。
  2. 打开 AndroidManifest.xml,查找 <action android:name="android.intent.action.MAIN"/>,记录主活动路径(如 com.unity3d.player.UnityPlayerActivity)。

2. 集成模组菜单

推荐使用服务启动方法,避免同时使用两种方法。

方法 1:通过服务启动(推荐)
  1. AndroidManifest.xml<application> 标签末尾添加服务(根据需要调整包名):
    <service android:name="com.android.support.Launcher" android:enabled="true" android:exported="false" android:stopWithTask="true" />
    
  2. 找到游戏主活动的 smali 文件(路径如 /com/unity3d/player/UnityPlayerActivity.smali)。
  3. onCreate 方法中添加:
    invoke-static {p0}, Lcom/android/support/Main;->Start(Landroid/content/Context;)V
    
  4. 保存修改。
方法 2:通过活动启动(仅在游戏检测模组时使用)
  1. AndroidManifest.xml 中添加模组主活动:
    <activity android:configChanges="keyboardHidden|orientation|screenSize" android:name="com.android.support.MainActivity" android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter>
    </activity>
    
  2. 确保游戏原始主活动不再包含 <action android:name="android.intent.action.MAIN"/>
  3. 添加悬浮窗权限:
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    
  4. 若菜单未显示,检查设备悬浮窗权限设置。

3. 合并模组和游戏 APK

  1. 反编译 app-debug.apk,提取模组的 smali 文件(位于 smali/com/android/support)。
  2. 将模组 smali 文件夹复制到游戏反编译目录的 smali 文件夹(建议放入最后一个 smali_classes 文件夹)。
  3. 重命名模组 dex 文件(如 classes.dex 改为 classes2.dex),确保 dex 顺序正确。
  4. 复制模组的 .so 文件到游戏的架构目录(armeabi-v7aarm64-v8a),确保架构匹配。
  5. 使用 APK 工具重新编译并签名 APK,建议启用“自动签名”。

4. 测试修改后的 APK

  1. 安装签名后的 APK 到设备。
  2. 启动游戏,检查模组菜单是否显示。
  3. 若菜单未显示,使用 Android Studio 的 Logcat 查看错误日志,搜索解决方案。

使用模组菜单

1. 基本操作

  • 游戏启动后,模组菜单以浮动窗口形式显示。
  • 菜单支持开关、按钮、复选框等控件,可通过 Java 和 C++ 自定义功能。
  • 日志路径(以下路径可能因设备而异,建议实际验证):
    • Android 11 及以上/storage/emulated/0/Documents/ModMenuLogs/
    • Android 10 及以下/storage/emulated/0/Android/data/<包名>/files/ModMenuLogs/(修正:路径中的“包名”需替换为游戏实际包名,如 com.example.game)。

2. 自定义功能

  • 添加功能
    • FloatingModMenuService.javalocalChanges(int featureNum, boolean toggle) 方法中定义逻辑。
    • 使用负数(如 -1)分配设置项,正数(如 1, 3, 200)分配模组功能。
    • 示例:添加默认启用的复选框,使用 CheckBox_True_功能名称
  • UI 自定义
    • 使用 GradientDrawable 设置圆角和边框:
      GradientDrawable gradientdrawable = new GradientDrawable();
      gradientdrawable.setCornerRadius(20);
      gradientdrawable.setColor(Color.parseColor("#1C2A35"));
      gradientdrawable.setStroke(1, Color.parseColor("#32cb00"));
      
    • 适配不同分辨率设备,考虑自动缩放。
  • 字符串混淆
    • 使用 AY Obfuscator 保护字符串:
      OBFUSCATE("字符串")
      OBFUSCATE_KEY("字符串", 0x3FE63DF21A3B)
      
    • 重要代码(如偏移量)存储在 .so 文件中,避免暴露在 Java/smali 中。

3. 调试与优化

  • 日志调试
    • 在 C++ 代码中添加日志(如 LOGD("调试信息")),通过 logcat 查看:
      bool get_BoolExample(void *instance) {LOGD("BoolExample 1");if (instance != NULL && featureHookToggle) {LOGD("BoolExample 2");return true;}LOGD("BoolExample 3");return old_get_BoolExample(instance);
      }
      
  • 避免崩溃
    • 确保 hook 和 patch 的偏移量正确,检查游戏 .so 文件的架构。
    • 使用 #if defined(__aarch64__) 区分 32 位和 64 位代码。
  • 保护代码
    • 启用 ProGuard 缩小代码,添加过滤器避免破坏项目。
    • 避免使用不可信的加密工具,防止被误报为恶意软件。
    • 公开源代码到 GitHub 可减少盗用风险。

常见问题

  1. 模组菜单未显示?
    • 确认 SYSTEM_ALERT_WINDOW 权限已添加。
    • 检查 onCreate 方法中的 smali 调用。
    • 查看 logcat 日志,排查权限或架构问题。
  2. 游戏崩溃?
    • 确保 .so 文件位于正确架构目录。
    • 检查 hook 偏移量是否正确。
    • 使用 logcat 定位错误。
  3. 方法数超限(65535)?
    • 将模组 smali 文件放入 smali_classes2 或更高编号文件夹。
    • 避免放入游戏主 smali 文件夹。
  4. 旧版 Android 布局问题?
    • 部分游戏在无权限启动时使用旧布局,暂无解决方案。
  5. 如何获取支持?
    • 查看 Wiki 的 FAQ(https://github.com/LGLTeam/Android-Mod-Menu/wiki/FAQ)。
    • 在 Platinmods 或 UnknownCheats 论坛提问,官方不提供一对一支持。

注意事项

  • 学习成本:需要 Android 开发和逆向工程知识,建议学习 JNI、smali 和 il2cpp。
  • 社区规范:避免重复提问,初学者应查阅资料。恶意行为可能导致被屏蔽。
  • 法律风险:不要用于受保护的游戏(如 PUBG、Free Fire),以免引发法律问题。

参考资源

  • GITHUB:https://github.com/LGLTeam/Android-Mod-Menu

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/84902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot 自动化部署实战:从环境搭建到 CI/CD 全流程

SpringBoot 自动化部署全流程实战 一、环境准备&#xff08;开发侧&#xff09; 基础工具链安装&#xff1a; # JDK 17 brew install openjdk17 # Maven 构建工具 brew install maven # Docker 环境 brew install --cask docker项目配置验证&#xff1a; <!-- pom.xml 关…

Flutter动画与交互:打造流畅用户体验的完整指南

在移动应用开发中&#xff0c;流畅的动画和自然的交互是提升用户体验的关键因素。Flutter作为Google推出的跨平台UI工具包&#xff0c;提供了一套强大而灵活的动画系统&#xff0c;使开发者能够轻松创建专业级的动画效果。本文将深入探讨Flutter中的动画与交互技术&#xff0c;…

山东大学软件学院项目实训:基于大模型的模拟面试系统项目总结(九)

在山东大学软件学院的项目实训中&#xff0c;团队成员们围绕基于大模型的模拟面试系统展开了一系列开发与优化工作。以下是本周项目的核心进展与成果总结。 前端界面优化与 Bug 修复&#xff08;吴尤&#xff09; Logo 显示问题修复 在项目开发过程中&#xff0c;团队发现项…

14.vue.js的watch()的注意事项(1)

一、 Q &#xff1a;因为 state 有内部的属性 也就是id。 因为要追逐id。所以要写函数&#xff1f;而不能直接监听state。 只监听state &#xff0c;监听不到id的变化吗&#xff1f; A&#xff1a; 为什么监听 state 不等于监听 state.id&#xff1f; 在 Vue 3 中&#xff0…

强化学习入门:价值、回报、策略概念详解

前言 最近想开一个关于强化学习专栏&#xff0c;因为DeepSeek-R1很火&#xff0c;但本人对于LLM连门都没入。因此&#xff0c;只是记录一些类似的读书笔记&#xff0c;内容不深&#xff0c;大多数只是一些概念的东西&#xff0c;数学公式也不会太多&#xff0c;还望读者多多指教…

基于“数智立体化三维架构”框架的医疗数智化机制研究

1 研究背景与框架基础 当前,全球医疗服务体系正经历深刻的数智化转型浪潮,人工智能、大数据、云计算等新一代信息技术与医疗健康领域的融合不断深入,催生了医疗服务模式的革命性变化。在我国,数智化技术已成为提升基层卫生服务质量、促进医疗服务公平可及、增进百姓健康福…

OpenCV CUDA模块图像变形------对图像进行旋转操作函数rotate()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 该函数用于对图像进行 GPU 加速的旋转操作&#xff0c;支持指定旋转角度、缩放中心偏移和插值方法。是 OpenCV CUDA 模块中用于图像旋转的核心函…

【面板数据】中国与世界各国新能源汽车进出口数据-分类别与不分类别(2017-2024年)

新能源汽车作为中国制造高质量发展的重要代表&#xff0c;其进出口数据不仅反映了我国技术实力与产业格局的变化&#xff0c;也是理解全球绿色交通趋势、制定国家战略决策的重要依据。目前国内主流定义判断标准主要参考中国工信部于2009年发布的《新能源汽车生产企业及产品准入…

亚马逊云服务器(AWS)会限制用户使用吗?深度解读AWS资源政策

一、AWS的资源逻辑&#xff1a;为什么说"不限速"&#xff1f; AWS采用"按需分配"的资源配置模式&#xff0c;其核心限制并非来自人为设定&#xff0c;而是取决于&#xff1a; 实例类型配置&#xff08;如t2.micro默认CPU积分制&#xff09; 账户服务配额…

顶级视频生成大模型分析:Seedance 1.0 Pro (字节跳动) - 新晋榜首

&#x1f4d6; 目录 一、概述与市场格局 1.1 AI视频生成技术现状1.2 主要竞争者概览1.3 评测标准与方法 二、顶级模型详细分析 2.1 Seedance 1.0 Pro (字节跳动) - 新晋榜首2.2 OpenAI Sora - 行业先驱者2.3 Google Veo 3 - 音视频一体化领航者2.4 快手可灵 2.0 - 国产之光…

【Spring源码核心篇-08】spring中配置类底层原理和源码实现

Spring源码核心篇整体栏目 内容链接地址【一】Spring的bean的生命周期https://zhenghuisheng.blog.csdn.net/article/details/143441012【二】深入理解spring的依赖注入和属性填充https://zhenghuisheng.blog.csdn.net/article/details/143854482【三】精通spring的aop的底层原…

【无标题】在 4K 高分辨率(如 3840×2160)笔记本上运行 VMware 虚拟机时平面太小字体太小(ubuntu)

✅ 方法一&#xff1a;写入 ~/.xprofile&#xff08;推荐&#xff09; 这个文件会在你登录图形界面前自动执行&#xff0c;适合设置缩放比例等桌面配置。 1. 打开 .xprofile 文件&#xff08;如果没有会自动创建&#xff09;&#xff1a; nano ~/.xprofile2. 写入以下内容&a…

「Linux文件及目录管理」目录结构及显示类命令

Linux文件系统的目录结构 Linux文件系统采用严格的树形结构,所有文件和目录都从根目录(/)开始延伸。以下是主要目录的详细说明: /bin:存放系统启动和运行所必需的二进制可执行文件,如ls、cp、mv等基本命令。/etc:存放系统配置文件,如/etc/passwd(用户账户信息)、/et…

人工智能学习13-Numpy-规律数组生成

人工智能学习概述—快手视频 人工智能学习13-Numpy-规律数组生成—快手视频 NumPy&#xff08;Numerical Python&#xff09;是 Python 的一种开源的数值计算扩展。 这种工具可用来存储和处理大型矩阵&#xff0c;比 Python 自身的嵌套列表 &#xff08;nested list structure…

Spring Boot 集成 Redis 实战教程

前言 在高并发、大数据量的应用场景中&#xff0c;缓存是提升系统性能的关键技术。Redis 凭借其卓越的读写性能、丰富的数据结构和高可用性&#xff0c;成为开发者常用的缓存工具。本教程将严格依据Spring 官方文档与Redis 官方文档&#xff0c;详细介绍 Spring Boot 与 Redis…

龙蜥开发者说:我的龙蜥开源之旅 | 第 32 期

「龙蜥开发者说」第 32 期来了&#xff01;开发者与开源社区相辅相成&#xff0c;相互成就&#xff0c;这些个人在龙蜥社区的使用心得、实践总结和技术成长经历都是宝贵的&#xff0c;我们希望在这里让更多人看见技术的力量。本期故事&#xff0c;我们邀请了龙蜥社区开发者潘珏…

在mac上安装sh脚本文件

要将 jd-gui.sh 脚本转换为在 macOS ARM 系统上带有自定义图标的可点击运行的程序&#xff0c;你可以通过创建一个应用程序包&#xff08;.app&#xff09;来实现。以下是详细步骤&#xff1a; 步骤 1&#xff1a;创建应用程序包目录结构 应用程序包实际上是一个特殊的目录&a…

用bilibili一个讲座视频,生成一本科普书籍

用bilibili一个讲座视频,生成一本科普书籍 一、功能介绍1.1 智能文本处理1.2 知识提炼与结构化1.3 专业知识普及1.4 自动化书籍生成1,5 大规模处理能力二、技术特点三、应用意义3.1 教育领域3.2 研究领域3.3 内容创作3.4 企业应用四、创新价值五、使用场景示例六、操作步骤6.1 …

黑马教程强化day3-1

目录 一、File1.定义&#xff1a;2.创建File类的对象3.File提供的判断文件类型、获取文件信息功能4.File提供的创建的方法5.File类删除文件的功能6.File提供的遍历文件夹的方法代码演示 二、递归&#xff08;了解递归算法&#xff0c;以便实现多级遍历找文件&#xff09;1.定义…

milvus 总结

1. milvus 的默认 admin 角色账号 root 的密码 为 Milvus 2. 最开始使用命令&#xff1a; docker-compose -f milvus-standalone-docker-compose.yml up -d 启动 milvus 后&#xff0c;使用 attu 登录 Milvus 是不需要输入账号/密码的&#xff0c;可以使用如下方式开启 mi…