» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


 36 123
发新话题
打印

[模拟相关] [原创]自制odin2 root后magisk模块,深度优化原厂拉跨的安卓系统

潜水1年多,加上最近闲散时间多想给论坛做点贡献,刚好手头odin2维修完成想着再自己折腾一下看看。
前阵子研究了一下天马前端的性能瓶颈,本来说想制作这几个常用前端apk的配置文件的转换工具(暂时🕊),但是(身为CAVE粉丝)刚好发现root以后可能可以改进不少系统的弊病:经常被贴吧吐槽的输入延迟过高(120ms+),ra下很多02年以后的街机游戏表现很差(怒首领蜂3代开始 4 5,几乎都是ppt)。
于是说干就干,折腾了几天,经由AI分析+人工编码,我制作了一套比较完善的Magisk面具模块。亲测可以使得怒首领蜂3和4代跑满60fps,1.5版本patch了音频延迟以后,5代也流畅了。测试环境都用的本论坛的天马安卓,默认设置,没有更改任何影响比对的ra设置。
所以说本模块的效果还是比较显著的,希望大家多多交流,反馈各种意见,帮助我做得更好。

首先是TLDR的下载链接: https://pan.baidu.com/s/1T24RuLRoJNVX8IzqTzBn2A?pwd=mfsm 提取码: mfsm
里边有我自己做的root教程和本文提到的优化模块,没有root的朋友可以按照第一个教程操作,所用到的所有工具都已经打包好,不需要adb和任何命令行输入。只需要细心按着教程来,没有任何问题。远比root手机简单得多。
下边就是我自己总结的一些本补丁相关的内容了:(本人比较懒,以下直接复制模块内部的md说明了)
模块包含内容
脚本/文件 | 功能说明
service.sh | Magisk 模块主入口脚本,统一调用所有优化子模块,并控制日志轮替
app_boost.sh | 提权 RetroArch、Pegasus(天马)、AetherSX2 等主进程,绑定大核组 + 提升 IO 优先级
cpu_tune.sh | 锁定 CPU Governor 为 performance 模式,避免频率频繁跳变造成延迟
gpu_tune.sh | 优化 GPU 渲染合成参数,禁用 SurfaceFlinger 合成器 idle 策略
input_latency_opt.sh | 启用 input_boost 并优化合成器、滑动延迟,全面降低模拟器输入响应延迟
vulkan_patch.sh | 注入 Vulkan 提前呈现层参数(Early Present/Async Present),提升 AetherSX2/Yuzu/Citra 渲染效率
io_optim.sh | 强化模拟器及相关子进程 IO 优先级,避免存储读写瓶颈导致卡顿
extras.sh | 包括音频优化、Binder优化、SWAP提速、核间迁移优化等补充优化项
system.prop | 注入系统级图形/UI/调度优化属性(SurfaceFlinger、OpenGL、Binder、音频等强化)
module.prop | 定义 Magisk 模块元信息(名称、版本、描述等)供 Magisk 识别管理
🛠️ 安装方式
1. 使用 MT 管理器或类似工具,将模块内容复制至设备 /data/adb/modules/odin2_emu_boost/ (确保该目录下能直接看到 service.sh 和 scripts/ 文件夹)
2. 设置文件夹及文件权限为 755(即 rwxr-xr-x)
3. 重启设备, 模块生效。之后可以自行在magisk内模块管理开关

⚙️ 注意事项
- 请确保设备已成功 Root
- 推荐搭配 Magisk v24+(支持 systemless property 注入)
- 模块开机自启,无需手动干预
- 模拟器需首次运行后才可被 `pidof` 检测并提权
- 不适用于非odin2家族的安卓设备

自测 AYN Odin2 模拟器性能对比(无 Root vs 优化后)
项目                         | 无 Root 原厂系统                     | Root + 模块优化后      | 备注
Pegasus 启动速度(2000+游戏)  | 45-70秒(严重波动)                   | 32-42秒(稳定)        | 依赖磁盘I/O优先级和SurfaceFlinger延迟降低
RA 帧数(2D游戏如怒首领蜂4黑标) | 20-30 FPS(有音爆、卡顿PPT基本无法玩)  | 59-60 FPS稳定         | input_boost + governor performance锁定起作用
AetherSX2 帧数(PS2)         | 30-40 FPS(跳动剧烈)                 | 45-60 FPS(平稳多了)  | Vulkan Patch、GPU idle禁用后受益显著
输入响应延迟(体感滑动延迟)     | 90-130ms                            | 50-70ms               | input_boost+Binder优化+SurfaceFlinger压缩贡献
模拟器 App 启动时间            | 明显慢(需多次等待响应)                | 提前约 30%-40% 基本秒开 | 高优先级 CPU/GPU 调度效果
系统负载波动(负载跳动)         | 高频跳变(尤其大核)                   | 负载更平稳,温控更好     | CPU频率锁定+小核负载转移功劳
后台切换稳定性                 | 切回可能假死或黑屏                     | 切回几乎秒切,无黑屏     | Binder和SurfaceFlinger小优化累积效应
FPS波动(体感抖动)            | 高频次波动(上下5-8帧)                 | 轻微波动(1-2帧以内)    | 整体调度/延迟压缩作用

简单总结一句话:
✅ 原厂 Odin2 出厂系统,虽然硬件很强,但系统调度+图形栈延迟太大,模拟器性能根本打不出真水平;
✅ 用本模块优化以后,Pegasus、RetroArch、AetherSX2 都变得流畅、稳定且低延迟,性能释放幅度大约是 20%-50%,部分极限场景接近翻倍!(这句可能是吹牛皮)
暂时手头只有odin2,而且我折腾了1年多。如果是其他高通cpu的设备,理论上只需要把cpu那部分改成符合你实际使用cpu的硬件代码和核心数量即可。

后记分析(不追求技术可以不看,这里只是放出本模块针对修改的部分痛点):
✍️ 安卓不root用原厂系统的问题(总结一句话)
安卓默认是为“微信刷视频”这种轻负载场景优化的,不是为模拟器设计的。
只有 root + 深度 patch,才能真正让模拟器跑出接近 PC 和 各种linux(如emulec) 水准的体验。

为什么原生安卓对模拟器支持很差?
问题点          | 原因                                          | 影响
1. CPU 调度    | 安卓默认 governor(如 schedutil)偏保守、省电优先 | 大型模拟器(如 PS2/GC/Wii)容易掉帧
2. 小核/大核利用率 | Big.LITTLE 架构下,大核调度不积极,小核占比高 | 帧率不稳,尤其是复杂场景
3. GPU 提交延迟 | SurfaceFlinger 合成器默认有 Backpressure | GPU提交一帧->VSync等待,延迟大,导致输入和画面卡顿
4. IO性能未提权 | 模拟器大量读写 ROM、存档,系统默认 IO 优先级很低 | 加载游戏、切换存档变慢,甚至掉帧
5. 内存管理(OOM killer) | 安卓 aggressively 杀后台,模拟器是大内存应用 | 长时间运行大作容易 crash 或自动关闭
6. 输入提频缺失 | 没有 input_boost 支持,或者提频参数低 | 手柄/触屏输入延迟感觉非常明显
7. 缓存和磁盘延迟 | Pegasus / RA 加载封面、list 没有 tmpfs/cache优化 | 启动慢、界面卡顿严重
8. Vulkan 渲染补丁缺失 | 原生 Vulkan 配置不完善,未开启 Async Present 等 | GPU pipeline stall,帧延迟大
9. Binder通信延迟 | IPC优化不到位(比如 binder动态flush机制开着) | APP间通信慢,比如调用 GPU buffer / 输入事件处理慢
📱 为什么游戏手机安卓也逃不过?
项目     | 表现                                                     | 问题本质
CPU频率 | 游戏模式下短时间拉满(例如性能核心全频),但长时间还是降频保温      | 热设计功耗 (TDP) 限制,为了避免烫手和硬件损伤
GPU频率 | 短时间高频,负载一高又降频保护                                 | 同上,发热控制优先于性能持续性
IO优化   | 有些手机比如 ROG/黑鲨会提速ROM,但模拟器大量小IO访问优化少       | 主要针对大型手游加载速度,不针对模拟器碎片IO
Input处理   | 极少有游戏手机去专门 patch input_boost/input_latency     | 一般只靠屏幕触控采样率堆数字(比如720Hz),内核调度没优化
SurfaceFlinger | 没有特意为模拟器/高帧率前端做合成优化                   | 默认偏保守,强调流畅感但不一定低延迟
其他系统优化    | 一些厂商自带“游戏空间”,只是调整线程优先级和锁核,不涉及底层 Patch | 依然停留在用户态“表面优化”,比如限后台APP,释放内存,提升前台优先级
✍️ 小总结:
真正要做到持续跑满大核 + GPU无卡顿 + I/O不卡顿 + 低延迟输入,
现有安卓设备无论普通手机还是游戏手机甚至游戏掌机,开箱即用都是不可能的。
游戏手机优化的是吃鸡王者原神这种手游环境,而模拟器需要的,是持续线性、高负载、极致低延迟的系统调度。
➔ 所以 Root + Magisk模块级Patch 是唯一能把模拟器推到极限的手段。
本 patch 后主要解决了什么?
主要修复模块          | 效果
CPU锁定 performance | 全程高频,大核优先抢占,减少掉帧
GPU早提交            | 降低 SurfaceFlinger 合成延迟,提高可视FPS
IO提权               | 游戏启动、载入存档加速,避免读盘卡顿
input_boost         | 输入响应从 100ms+ 降到 10ms-30ms
system.prop         | Binder、SurfaceFlinger、Vulkan、UI 线程全面优化
小众补充              | swap/mem管理更合理,滑动响应更快

祝大家游戏愉快,身体健康。你的每次讨论、下载、分享以及提出意见都是对我的支持,谢谢大家!
---------------------------------------------------------------------------------------------
承蒙大家支持,后续还有一些小更新,针对音频也做了一定的优化。已经更新1.5版本,引入了音频和改进输入延迟的进一步系统参数调整。
最直观的更新就是怒首领蜂5代也可以顺跑了,这几天没有白折腾。
自己通过frame grabber逐帧播放拍摄的游戏视频,发现测试输入延迟差不多3-4frame,60fps下patch后大约是50-80ms的样子,在不开任何Run-Ahead设置的情况,应该可以改善不少很多人诟病的输入延迟偏高(120ms+)。
---------------------------------------节后更新分割线------------------------------------------
1.6版本改动:加入了drastic的支持;增加模拟器专属内存页属性,开启 Transparent Huge Pages,提升 JIT/模拟器(如ppsspp和ra)内存效率
未来有一个娱乐向的patch, 会针对音频线程固定方案(SCHED_FIFO、cpuset)系统干扰清理(服务冻结列表)Hifi向折腾,我也很好奇odin2这种root以后可以随便改audio调度\配置可以当音乐播放器的可能性

[ 本帖最后由 gggbdm 于 2025-5-6 23:04 编辑 ]


本帖最近评分记录

TOP

posted by wap, platform: Chrome
看的我一愣一楞的,有没有什么理论上可能得副作用?

对转译跑windows游戏有帮助吗?



TOP

引用:
原帖由 sammo1983 于 2025-4-27 18:32 发表
posted by wap, platform: Chrome
看的我一愣一楞的,有没有什么理论上可能得副作用?

对转译跑windows游戏有帮助吗?
副作用可能是就是会稍微费电一点吧,windows模拟器我没怎么折腾过你可以试试。应该也有不小的提升,因为会把大核主动调配到占cpu的进程上。


TOP

odin2不是可以装rocknix了么,安卓root之后和LINUX下性能有什么差别?
odin2 portal能用吗

TOP

引用:
原帖由 長瀬湊 于 2025-4-27 20:23 发表
odin2不是可以装rocknix了么,安卓root之后和LINUX下性能有什么差别?
odin2 portal能用吗
root比刷linux简单很多,也不容砖。linux你打算怎么装第三方的app呢,基本只有系统自带或者集成的。也没有现成打包好的前端给你用,自己想折腾可以刷,要是想稳定游玩我看还是算了。portalcpu和原版一样,理论上可以用,你试试这个melf文件能不能正确读取机器内的分区镜像,看看有没有输出分区信息,有的话就是没问题。流程完全一样。不过portal晚于原版上市,可能系统后续还会ota升级。每次升级你都需要把之前备份的init_boot_a/b分区刷回去,要不更新会报错。纯看性能提升,我觉得这套patch过后,安卓模拟器性能基本已经到顶了。喜欢折腾请你务必试试看,留下意见。我有空就会继续改动这套patch。意在帮助不熟悉root设置的玩家root以后的最优模拟器的游戏体验。

TOP

我的天哪,100ms的延迟还玩个JB格斗游戏啊

TOP

引用:
原帖由 china_ktv 于 2025-4-27 21:08 发表
我的天哪,100ms的延迟还玩个JB格斗游戏啊
不root可以用Run-ahead补强提前帧1-2帧,凑合可以玩,就是开销会成倍增长。具体可以参考我另一个回复,有详细提前帧的配置说明。

TOP

posted by wap, platform: Android
root加深度优化奥丁系统,会不会是国内第一人?
等借出去的奥丁还回来再试试。

TOP

引用:
原帖由 iffox 于 2025-4-27 21:17 发表
posted by wap, platform: Android
root加深度优化奥丁系统,会不会是国内第一人?
等借出去的奥丁还回来再试试。
那应该不至于,也是瞎折腾+心血来潮。有条件的朋友请务必试试,给我一些反馈就好。

TOP

posted by 论坛助手, platform: iPhone
蹲这个贴,有台odin2

TOP

posted by wap, platform: Android
但说实话奥丁说是延迟100多毫秒,但我玩起来觉得还好,模拟器打蔚蓝这种有操作要求的游戏也没觉得不适。可能是算上屏幕什么的全链路延迟可控?

常玩的模拟器,性能再受限制其实也都力大飞砖了。

不过这种东西就是一旦被种草就想试一试,周末研究一下

TOP

引用:
原帖由 sammo1983 于 2025-4-28 07:13 发表
posted by wap, platform: Android
但说实话奥丁说是延迟100多毫秒,但我玩起来觉得还好,模拟器打蔚蓝这种有操作要求的游戏也没觉得不适。可能是算上屏幕什么的全链路延迟可控?

常玩的模拟器,性能再受限制其实 ...
那可以 应该这边改良很明显,我现在都没开过runahead。我比较喜欢cave系列的弹幕游戏,延迟高基本是没法玩的。

TOP

posted by wap, platform: Chrome
先顶支持表示尊敬

TOP

lz还能写的再大白话一点吗,老年人真看不懂,教程里解压后就几个文件,不会弄啊

TOP

说的我都想买个odin2 了

TOP

 36 123
发新话题
     
官方公众号及微博