shadow3aaa / fas-rs

为 Android 制作的帧感知调度。Frame aware scheduling for android.
Apache License 2.0
397 stars 16 forks source link

2.7.0导致Momo环境损坏 #24

Closed RainGreenleaf closed 2 months ago

RainGreenleaf commented 3 months ago

Screenshot_2024-04-05-20-18-15-691_io.github.vvb2060.mahoshojo.jpg

2.6.0没有此问题

baidalan110 commented 3 months ago

不影响其他应用使用,你完全可以不用管它

sakana164 commented 3 months ago

同样的问题😂

shadow3aaa commented 2 months ago

应该是zygisk模块的问题,具体原因目前未知

shadow3aaa commented 2 months ago

我找到了一个新的方式来跟踪queueBuffer调用(ebpf注入uprobe),如果用这个方法就不存在检测问题了,也不需要使用zygisk,但是老内核可能不支持ebpf或者支持的不是很好

RainGreenleaf commented 2 months ago

我找到了一个新的方式来跟踪queueBuffer调用(ebpf注入uprobe),如果用这个方法就不存在检测问题了,也不需要使用zygisk,但是老内核可能不支持ebpf或者支持的不是很好

我认为是一个很好的新方式,而使用fas用户应该大部分内核版本都在4.9.x即以上,如果说内核不支持,或许可以做一个内核版本判断刷入fas,不支持的就用zygisk?

shadow3aaa commented 2 months ago

我找到了一个新的方式来跟踪queueBuffer调用(ebpf注入uprobe),如果用这个方法就不存在检测问题了,也不需要使用zygisk,但是老内核可能不支持ebpf或者支持的不是很好

我认为是一个很好的新方式,而使用fas用户应该大部分内核版本都在4.9.x即以上,如果说内核不支持,或许可以做一个内核版本判断刷入fas,不支持的就用zygisk?

目前还在构思如何解耦帧分析和主体框架,到时两个会分别编译一个版本,塞一起太大了,能否使用交给用户自己判断吧

shadow3aaa commented 2 months ago

我找到了一个新的方式来跟踪queueBuffer调用(ebpf注入uprobe),如果用这个方法就不存在检测问题了,也不需要使用zygisk,但是老内核可能不支持ebpf或者支持的不是很好

https://github.com/shadow3aaa/frame-analyzer-ebpf

RainGreenleaf commented 2 months ago

我找到了一个新的方式来跟踪queueBuffer调用(ebpf注入uprobe),如果用这个方法就不存在检测问题了,也不需要使用zygisk,但是老内核可能不支持ebpf或者支持的不是很好

我认为是一个很好的新方式,而使用fas用户应该大部分内核版本都在4.9.x即以上,如果说内核不支持,或许可以做一个内核版本判断刷入fas,不支持的就用zygisk?

目前还在构思如何解耦帧分析和主体框架,到时两个会分别编译一个版本,塞一起太大了,能否使用交给用户自己判断吧

新方法可行的话,或许是以后的发展方向

交给用户判断的话(不看说明文档的用户太多),到时候问的也多,答的也多。

解耦后建议后续还是新老方式编译成两套执行文件放一个模块里由主框架调用?函数异常返回不能用的话再调老方法?

shadow3aaa commented 2 months ago

我找到了一个新的方式来跟踪queueBuffer调用(ebpf注入uprobe),如果用这个方法就不存在检测问题了,也不需要使用zygisk,但是老内核可能不支持ebpf或者支持的不是很好

我认为是一个很好的新方式,而使用fas用户应该大部分内核版本都在4.9.x即以上,如果说内核不支持,或许可以做一个内核版本判断刷入fas,不支持的就用zygisk?

目前还在构思如何解耦帧分析和主体框架,到时两个会分别编译一个版本,塞一起太大了,能否使用交给用户自己判断吧

新方法可行的话,或许是以后的发展方向

交给用户判断的话(不看说明文档的用户太多),到时候问的也多,答的也多。

解耦后建议后续还是新老方式编译成两套执行文件放一个模块里由主框架调用?函数异常返回不能用的话再调老方法?

问题在于这两个方法实际上是冲突的,如果先用zygisk hook了那个函数,uprobe attach完就会直接闪退

shadow3aaa commented 2 months ago

我找到了一个新的方式来跟踪queueBuffer调用(ebpf注入uprobe),如果用这个方法就不存在检测问题了,也不需要使用zygisk,但是老内核可能不支持ebpf或者支持的不是很好

https://github.com/shadow3aaa/frame-analyzer-ebpf

已应用到fas-rs并且通过测试,可在ci构建下载ebpf版本尝试

RainGreenleaf commented 2 months ago

我找到了一个新的方式来跟踪queueBuffer调用(ebpf注入uprobe),如果用这个方法就不存在检测问题了,也不需要使用zygisk,但是老内核可能不支持ebpf或者支持的不是很好

https://github.com/shadow3aaa/frame-analyzer-ebpf

已应用到fas-rs并且通过测试,可在ci构建下载ebpf版本尝试

fas_log.txt

貌似遇到了问题?

Nep-Timeline commented 2 months ago

似乎是 0636342 的更新导致的

shadow3aaa commented 2 months ago

我找到了一个新的方式来跟踪queueBuffer调用(ebpf注入uprobe),如果用这个方法就不存在检测问题了,也不需要使用zygisk,但是老内核可能不支持ebpf或者支持的不是很好

https://github.com/shadow3aaa/frame-analyzer-ebpf

已应用到fas-rs并且通过测试,可在ci构建下载ebpf版本尝试

fas_log.txt

貌似遇到了问题?

试试添加了backtrace的构建,再重现一次发log,刚刚那个什么信息都没给(

RainGreenleaf commented 2 months ago

我找到了一个新的方式来跟踪queueBuffer调用(ebpf注入uprobe),如果用这个方法就不存在检测问题了,也不需要使用zygisk,但是老内核可能不支持ebpf或者支持的不是很好

https://github.com/shadow3aaa/frame-analyzer-ebpf

已应用到fas-rs并且通过测试,可在ci构建下载ebpf版本尝试

fas_log.txt 貌似遇到了问题?

试试添加了backtrace的构建,再重现一次发log,刚刚那个什么信息都没给(

fas_log.txt 内核版本:4.19.113 复现过程: 启动:王者荣耀

shadow3aaa commented 2 months ago

我找到了一个新的方式来跟踪queueBuffer调用(ebpf注入uprobe),如果用这个方法就不存在检测问题了,也不需要使用zygisk,但是老内核可能不支持ebpf或者支持的不是很好

https://github.com/shadow3aaa/frame-analyzer-ebpf

已应用到fas-rs并且通过测试,可在ci构建下载ebpf版本尝试

fas_log.txt 貌似遇到了问题?

试试添加了backtrace的构建,再重现一次发log,刚刚那个什么信息都没给(

fas_log.txt 内核版本:4.19.113 复现过程: 启动:王者荣耀

内核缺乏ebpf支持导致的

shadow3aaa commented 2 months ago

鉴于ebpf版本不会发生此issue,我将关闭它

shadow3aaa commented 2 months ago

我找到了一个新的方式来跟踪queueBuffer调用(ebpf注入uprobe),如果用这个方法就不存在检测问题了,也不需要使用zygisk,但是老内核可能不支持ebpf或者支持的不是很好

https://github.com/shadow3aaa/frame-analyzer-ebpf

已应用到fas-rs并且通过测试,可在ci构建下载ebpf版本尝试

fas_log.txt 貌似遇到了问题?

试试添加了backtrace的构建,再重现一次发log,刚刚那个什么信息都没给(

fas_log.txt 内核版本:4.19.113 复现过程: 启动:王者荣耀

你可以执行一下zcat /proc/config.gz | grep BPF吗,我在寻找一个可靠的检测ebpf可用性的方法

RainGreenleaf commented 2 months ago

我找到了一个新的方式来跟踪queueBuffer调用(ebpf注入uprobe),如果用这个方法就不存在检测问题了,也不需要使用zygisk,但是老内核可能不支持ebpf或者支持的不是很好

https://github.com/shadow3aaa/frame-analyzer-ebpf

已应用到fas-rs并且通过测试,可在ci构建下载ebpf版本尝试

fas_log.txt 貌似遇到了问题?

试试添加了backtrace的构建,再重现一次发log,刚刚那个什么信息都没给(

fas_log.txt 内核版本:4.19.113 复现过程: 启动:王者荣耀

你可以执行一下zcat /proc/config.gz | grep BPF吗,我在寻找一个可靠的检测ebpf可用性的方法

内核版本4.19.113

sdcard zcat /proc/config.gz | grep BPF CONFIG_CGROUP_BPF=y CONFIG_BPF=y CONFIG_BPF_SYSCALL=y CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_NETFILTER_XT_MATCH_BPF=y CONFIG_BPFILTER is not set CONFIG_NET_CLS_BPF=y CONFIG_NET_ACT_BPF is not set CONFIG_BPF_JIT=y CONFIG_BPF_STREAM_PARSER is not set CONFIG_HAVE_EBPF_JIT=y CONFIG_BPF_LIRC_MODE2 is not set CONFIG_BPF_EVENTS=y CONFIG_TEST_BPF is not set

shadow3aaa commented 2 months ago

我找到了一个新的方式来跟踪queueBuffer调用(ebpf注入uprobe),如果用这个方法就不存在检测问题了,也不需要使用zygisk,但是老内核可能不支持ebpf或者支持的不是很好

https://github.com/shadow3aaa/frame-analyzer-ebpf

已应用到fas-rs并且通过测试,可在ci构建下载ebpf版本尝试

fas_log.txt 貌似遇到了问题?

试试添加了backtrace的构建,再重现一次发log,刚刚那个什么信息都没给(

fas_log.txt 内核版本:4.19.113 复现过程: 启动:王者荣耀

你可以执行一下zcat /proc/config.gz | grep BPF吗,我在寻找一个可靠的检测ebpf可用性的方法

内核版本4.19.113

sdcard zcat /proc/config.gz | grep BPF CONFIG_CGROUP_BPF=y CONFIG_BPF=y CONFIG_BPF_SYSCALL=y CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_NETFILTER_XT_MATCH_BPF=y CONFIG_BPFILTER is not set CONFIG_NET_CLS_BPF=y CONFIG_NET_ACT_BPF is not set CONFIG_BPF_JIT=y CONFIG_BPF_STREAM_PARSER is not set CONFIG_HAVE_EBPF_JIT=y CONFIG_BPF_LIRC_MODE2 is not set CONFIG_BPF_EVENTS=y CONFIG_TEST_BPF is not set

看起来它支持啊,也许frame-analyzer只是返回了一些不重要的错误?试试 b44d94e7e4b16082948c2890e7bbb27187657f77 的自动构建能不能正常工作?

RainGreenleaf commented 2 months ago

我找到了一个新的方式来跟踪queueBuffer调用(ebpf注入uprobe),如果用这个方法就不存在检测问题了,也不需要使用zygisk,但是老内核可能不支持ebpf或者支持的不是很好

https://github.com/shadow3aaa/frame-analyzer-ebpf

已应用到fas-rs并且通过测试,可在ci构建下载ebpf版本尝试

fas_log.txt 貌似遇到了问题?

试试添加了backtrace的构建,再重现一次发log,刚刚那个什么信息都没给(

fas_log.txt 内核版本:4.19.113 复现过程: 启动:王者荣耀

你可以执行一下zcat /proc/config.gz | grep BPF吗,我在寻找一个可靠的检测ebpf可用性的方法

内核版本4.19.113 sdcard zcat /proc/config.gz | grep BPF CONFIG_CGROUP_BPF=y CONFIG_BPF=y CONFIG_BPF_SYSCALL=y CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_NETFILTER_XT_MATCH_BPF=y CONFIG_BPFILTER is not set CONFIG_NET_CLS_BPF=y CONFIG_NET_ACT_BPF is not set CONFIG_BPF_JIT=y CONFIG_BPF_STREAM_PARSER is not set CONFIG_HAVE_EBPF_JIT=y CONFIG_BPF_LIRC_MODE2 is not set CONFIG_BPF_EVENTS=y CONFIG_TEST_BPF is not set

看起来它支持啊,也许frame-analyzer只是返回了一些不重要的错误?试试 b44d94e 的自动构建能不能正常工作?

不好意思,github没有发邮箱发信息给我,我还以为你没有回复我( 以下是最新ci debug log,不知道为啥github现在上传文件失败所以我只能复制

[2024-04-30 22:29] DEBUG: [] [2024-04-30 22:29] DEBUG: Not running policy! [2024-04-30 22:29] DEBUG: [] [2024-04-30 22:29] DEBUG: Not running policy! [2024-04-30 22:29] DEBUG: [] [2024-04-30 22:29] DEBUG: BPF Feature Detection: Features { bpf_name: true, bpf_probe_read_kernel: false, bpf_perf_link: false, bpf_global_data: false, bpf_cookie: false, cpumap_prog_id: false, devmap_prog_id: false, btf: None, } [2024-04-30 22:29] DEBUG: Not running policy! [2024-04-30 22:29] DEBUG: [] [2024-04-30 22:29] DEBUG: Not running policy! [2024-04-30 22:29] DEBUG: [] [2024-04-30 22:29] DEBUG: Not running policy! [2024-04-30 22:29] DEBUG: [] [2024-04-30 22:29] DEBUG: Not running policy! [2024-04-30 22:29] DEBUG: [] [2024-04-30 22:29] DEBUG: Not running policy! [2024-04-30 22:29] DEBUG: [] [2024-04-30 22:29] DEBUG: Not running policy!

shadow3aaa commented 2 months ago

我找到了一个新的方式来跟踪queueBuffer调用(ebpf注入uprobe),如果用这个方法就不存在检测问题了,也不需要使用zygisk,但是老内核可能不支持ebpf或者支持的不是很好

https://github.com/shadow3aaa/frame-analyzer-ebpf

已应用到fas-rs并且通过测试,可在ci构建下载ebpf版本尝试

fas_log.txt 貌似遇到了问题?

试试添加了backtrace的构建,再重现一次发log,刚刚那个什么信息都没给(

fas_log.txt 内核版本:4.19.113 复现过程: 启动:王者荣耀

你可以执行一下zcat /proc/config.gz | grep BPF吗,我在寻找一个可靠的检测ebpf可用性的方法

内核版本4.19.113 sdcard zcat /proc/config.gz | grep BPF CONFIG_CGROUP_BPF=y CONFIG_BPF=y CONFIG_BPF_SYSCALL=y CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_NETFILTER_XT_MATCH_BPF=y CONFIG_BPFILTER is not set CONFIG_NET_CLS_BPF=y CONFIG_NET_ACT_BPF is not set CONFIG_BPF_JIT=y CONFIG_BPF_STREAM_PARSER is not set CONFIG_HAVE_EBPF_JIT=y CONFIG_BPF_LIRC_MODE2 is not set CONFIG_BPF_EVENTS=y CONFIG_TEST_BPF is not set

看起来它支持啊,也许frame-analyzer只是返回了一些不重要的错误?试试 b44d94e 的自动构建能不能正常工作?

不好意思,github没有发邮箱发信息给我,我还以为你没有回复我( 以下是最新ci debug log,不知道为啥github现在上传文件失败所以我只能复制

[2024-04-30 22:29] DEBUG: [] [2024-04-30 22:29] DEBUG: Not running policy! [2024-04-30 22:29] DEBUG: [] [2024-04-30 22:29] DEBUG: Not running policy! [2024-04-30 22:29] DEBUG: [] [2024-04-30 22:29] DEBUG: BPF Feature Detection: Features { bpf_name: true, bpf_probe_read_kernel: false, bpf_perf_link: false, bpf_global_data: false, bpf_cookie: false, cpumap_prog_id: false, devmap_prog_id: false, btf: None, } [2024-04-30 22:29] DEBUG: Not running policy! [2024-04-30 22:29] DEBUG: [] [2024-04-30 22:29] DEBUG: Not running policy! [2024-04-30 22:29] DEBUG: [] [2024-04-30 22:29] DEBUG: Not running policy! [2024-04-30 22:29] DEBUG: [] [2024-04-30 22:29] DEBUG: Not running policy! [2024-04-30 22:29] DEBUG: [] [2024-04-30 22:29] DEBUG: Not running policy! [2024-04-30 22:29] DEBUG: [] [2024-04-30 22:29] DEBUG: Not running policy!

看起来是确实不支持了