Board logo

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

作者: gggbdm    时间: 2025-4-27 17:11     标题: [原创]自制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 编辑 ]
作者: sammo1983    时间: 2025-4-27 18:32

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

对转译跑windows游戏有帮助吗?
作者: gggbdm    时间: 2025-4-27 19:07

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

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

odin2不是可以装rocknix了么,安卓root之后和LINUX下性能有什么差别?
odin2 portal能用吗
作者: gggbdm    时间: 2025-4-27 20:30

引用:
原帖由 長瀬湊 于 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以后的最优模拟器的游戏体验。
作者: china_ktv    时间: 2025-4-27 21:08

我的天哪,100ms的延迟还玩个JB格斗游戏啊
作者: gggbdm    时间: 2025-4-27 21:13

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

posted by wap, platform: Android
root加深度优化奥丁系统,会不会是国内第一人?
等借出去的奥丁还回来再试试。
作者: gggbdm    时间: 2025-4-27 21:19

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

posted by 论坛助手, platform: iPhone
蹲这个贴,有台odin2
作者: sammo1983    时间: 2025-4-28 07:13

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

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

不过这种东西就是一旦被种草就想试一试,周末研究一下
作者: gggbdm    时间: 2025-4-28 09:36

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

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

posted by wap, platform: Chrome
先顶支持表示尊敬
作者: danianw2007    时间: 2025-4-28 14:58

lz还能写的再大白话一点吗,老年人真看不懂,教程里解压后就几个文件,不会弄啊
作者: danmantemp    时间: 2025-4-28 15:05

说的我都想买个odin2 了
作者: gggbdm    时间: 2025-4-28 15:48

引用:
原帖由 danianw2007 于 2025-4-28 14:58 发表
lz还能写的再大白话一点吗,老年人真看不懂,教程里解压后就几个文件,不会弄啊
先root 然后把解压的东西复制到data/adb/modules/里 记得给755权限以防万一 你给777也可以
作者: ackmangogo    时间: 2025-4-28 16:09

太nb了
作者: 我不是苍雪    时间: 2025-4-28 17:35

+1  root都不懂怎么弄
引用:
原帖由 gggbdm 于 2025-4-28 15:48 发表

先root 然后把解压的东西复制到data/adb/modules/里 记得给755权限以防万一 你给777也可以

作者: gggbdm    时间: 2025-4-28 19:01

引用:
原帖由 我不是苍雪 于 2025-4-28 17:35 发表
+1  root都不懂怎么弄  
root工具我打包到第一个压缩文件里了。所有需要的东西都有。不需要你懂adb也不需要你打命令,是现在高通设备最方便的方法了。你可以参考一下教程,有问题你随时发这边。
作者: lizitaisha    时间: 2025-4-29 02:40

非安卓专业,看着很有料,先mark一个!
作者: Btの猪猪    时间: 2025-4-29 13:09

mark一下先
作者: 红叶    时间: 2025-5-1 07:10

posted by wap, platform: GALAXY S III
mark 吃灰中正好五一放假拿出来折腾
作者: akuma_oni    时间: 2025-5-3 19:11

能不能用系统自带的那个用root权限运行脚本的功能来跑这几个脚本文件
作者: gggbdm    时间: 2025-5-4 14:58

引用:
原帖由 akuma_oni 于 2025-5-3 19:11 发表
能不能用系统自带的那个用root权限运行脚本的功能来跑这几个脚本文件
应该是不行。我试过做过一个免root的脚本,效果不太理想才做了这个。
作者: naughtyben    时间: 2025-5-4 23:54



泥潭高质量极客贴
作者: shoukon    时间: 2025-5-5 15:49

posted by wap, platform: Android
请问lz,odin2 portal能用吗
作者: gggbdm    时间: 2025-5-5 17:47

引用:
原帖由 shoukon 于 2025-5-5 15:49 发表
posted by wap, platform: Android
请问lz,odin2 portal能用吗
应该cpu一样都是通用的 不过我只有一台老的odin2,你可以等系统没什么ota更新了再root,要不然你每次有更新还要刷回去否则更新会报错。

[ 本帖最后由 gggbdm 于 2025-5-6 16:33 编辑 ]
作者: Melas    时间: 2025-5-8 09:54

posted by wap, platform: Android
楼主牛逼,不知道能不能移植到rp5上
作者: callus    时间: 2025-5-8 17:07

posted by wap, platform: Chrome
老了看不懂了,手里的Odin2只用来玩实况,顶楼主
作者: gggbdm    时间: 2025-5-8 18:30

引用:
原帖由 Melas 于 2025-5-8 09:54 发表
posted by wap, platform: Android
楼主牛逼,不知道能不能移植到rp5上
主要我只有odin2,应该只要把cpu的配置改成rp5就行。你可以等rp5不太更新系统了试试,我可以改一个rp5版本的 晚点时候。
作者: Melas    时间: 2025-5-12 00:58

引用:
原帖由 gggbdm 于 2025-5-8 18:30 发表

主要我只有odin2,应该只要把cpu的配置改成rp5就行。你可以等rp5不太更新系统了试试,我可以改一个rp5版本的 晚点时候。
牛逼,就等大佬的rp5版了
作者: sxyzero    时间: 2025-5-12 10:23

posted by wap, platform: Android
odin2p能不能用
作者: xiaoyang23    时间: 2025-5-12 11:25

加1,希望lz出个懒人包
引用:
原帖由 danianw2007 于 2025-4-28 14:58 发表
lz还能写的再大白话一点吗,老年人真看不懂,教程里解压后就几个文件,不会弄啊

作者: gggbdm    时间: 2025-5-12 22:34

引用:
原帖由 sxyzero 于 2025-5-12 10:23 发表
posted by wap, platform: Android
odin2p能不能用
等过几个月odin2portal系统完善了,不太ota更新时候你再root,怕害你root更新不了系统,来回刷init_boot麻烦。
作者: gggbdm    时间: 2025-5-12 22:35

引用:
原帖由 xiaoyang23 于 2025-5-12 11:25 发表
加1,希望lz出个懒人包  
这个大家真想看我晚点详细截图给做一个教程吧,等时间多的时候。(毕竟是社畜)
作者: iffox    时间: 2025-5-12 23:14

引用:
原帖由 gggbdm 于 2025-5-12 22:35 发表

这个大家真想看我晚点详细截图给做一个教程吧,等时间多的时候。(毕竟是社畜)
我的已经老早已经root过了,所以后续优化感到很简单,只是拷文件、改权限而已。

我自己这里,因为cave的那几个街机游戏本来就很流畅,所以没直接感受到优化脚本在起作用。
昨天试了下psp djmax,123代我都试了,但是没找到测延迟的地方。而且这种dj音游我不熟悉操作,总是失败。
ps2测了天诛几个全3d的游戏也没感到,因为原来就60帧丝滑,我反复开关模块对比了。
天马启动时间也没感到明显的增快,可能是因为我拷的rom比较少吧,这样对比不明显。

等一个drastic的优化,看看应援团能不能降低延迟。安卓端的drastic延迟大到根本没法玩。

我建议你写的root教程简要一点,就用记事本文字把关键步骤1234写出来,几行就OK了,图文反而没必要。




欢迎光临 TGFC Lifestyle (http://bbs.tgfcer.com/) Powered by Discuz! 6.0.0