Xposed墓碑模块-NoActive专属文档
文档版本
1 | ver=v2.9.7 |
声明
- 本文档
- 依据NoActive版本:
v2.9-Alpha(282)
下载
- 依据设备:
一加9PRO Color13
- 本文档是借鉴
NoActive墓碑Xposed模块
究极改良- 如搬运本文档的任何内容,请说明文档来源
:本文作者:冰之梦殇520
- NoActive:
官网
- QQ频道:
点击加入
- 更多:(加群,教程,文件)
- 手机版:请点击左上角三条杠查看更多
- 电脑版:请看顶部导航栏
1. 模块介绍:
1-1. 功能:
- 通过Hook系统框架实现Android墓碑
1-2. 版本:
- NoActive群内版本(内测版)
- myflavor博客版本(公测版)
- LSPosed版本(稳定版)
2. 作用域说明:
2-1. 系统框架:
- Hook应用切换事件,冻结切换至后台的应用,解冻切换至前台的应用
- Hook广播分发事件,屏蔽被冻结的应用接收广播,从而避免触发广播ANR
Hook计算oom_adj事件,修改后台应用的oom_adj,白名单主进程500子进程700,冻结名单主进程700+子进程900+- Hook系统ANR事件,由于冻结之后,应用无法做出响应被系统认为是ANR,所以需要屏蔽ANR避免系统误杀被冻结的APP
- Hook系统是否开启暂停执行已缓存变量获取,由于系统自带的暂停执行已缓存在收到广播后可能解冻再次活跃
2-2. 电量和性能(MIUI专属):
- 以下是
NoActive
跟NoActive Plugin
Hook电量和性能
的作用
- PS:
NoActive
跟NoActive Plugin
Hook电量和性能
不与任何模块冲突
3. 冻结方式说明:
目前Linux进程冻结方式有:
- Kill -19
- Kill -20
- Cgroup Freezer v1
- Cgroup Freezer v2
其中Kill -19和Kill -20兼容性最好,但是冻结过久,依然重载
Google官方使用Cgroup Freezer v2
Kill使用Android的Process.sendSignal,该方法为安卓封装间接调用Kill,所以可能存在部分系统19有效或者20有效,需要自测
Cgroup Freezer v1和v2采用NoActive参考millet自行实现并封装,或v2调用安卓Process.setProcessFrozen实现
所以NoActive支持5种冻结方式分别为:
- Kill -19
- Kill -20
- Cgroup Freezer v1(NoActive)
- Cgroup Freezer v2(NoActive)
- Cgroup Freezer v2(系统API)
推荐冻结方式 API & V2 > Kill -19 & Kill -20
如果5种模式和提权模式都无法生效,可以切换Kill -19模式,在每次开机后执行下面两行命令
1 | su |
1 | magiskpolicy --live "allow system_server * process {sigstop}" |
4. 配置文件说明:
- 目录 /data/system/NoActive
4-1. 即时生效配置:
- blackSystemApp.conf 系统黑名单(系统APP默认白名单)
- directApp.conf 强制冻结
- topApp.conf 可见窗口
- killProcess.conf 杀死进程名单(后台3S杀死进程)
- socketApp.conf 保持连接(保持App后台网络连接)
- whiteApp.conf 白名单APP(用户APP默认黑名单)
- whiteProcess.conf 白名单进程(添加白名单APP无需添加)
- highApp.conf 定时解冻(每3min解冻一次APP,5s后冻结APP,针对单应用)
4-2. 重启生效配置:
- debug 开启调试日志
disable.oom 禁用修改oom_adj功能color.os ColorOS专属配置(特殊oom_adj方式)(新版本已去除此功能)- 冻结方式
4-1. kill.19 使用Kill -19冻结
4-2. kill.20 使用kill -20冻结
4-3. freezer.v1 使用Cgroup Freezer v1(NoActive)冻结
4-4. freezer.v2 使用Cgroup Freezer v2(NoActive)冻结
4-5. freezer.api 使用Cgroup Freezer API(系统API)冻结 - interval.freeze 定时冻结(1分钟重新冻结一次所有黑名单应用)
- interval.unfreeze
轮番解冻
- su.excute
提权模式
- v1.plus 缓解部分系统使用v1内存泄露
5. 日志文件说明:
- 目录 /data/system/NoActive/log 会出现的两个文件
5-1. 如何开启详细日志:
(PS:正常无需开启,一般用于跟作者讨论bug时所需)
5-2. 日志级别:
- DEBUG(调试信息)
- INFO(基本信息)
- WARN(警告信息)
- ERROR(错误信息)
6. NoActive常用关键词说明:
6-1. 重载:
- 解释1:挂在后台的应用长时间不打开,等到下次打开,明明后台和进程都还在,但是应用会重新冷启动
- 解释2:应用卡片依旧存在于多任务界面,切换应用或是亮屏后进入应用(从多任务界面进入或是直接点击应用图标进入),该应用冷启动,丢失离开时的界面
6-2. 闪弹:
- 解释1:应用进入后台之后,你再次打开,应用在动画没结束之前闪退,你必须点击第二次,闪弹触发条件不明
- 解释2:应用卡片依旧存在于多任务界面,切换应用或是亮屏后进入应用(从多任务界面进入或是直接点击应用图标进入),该应用对操作无反应或是短时间内掉出应用界面,打开多任务界面任务卡片丢失,应用将冷启动
- 其中搜图神器出现的问题就是经典的闪弹
6-3. 内存泄漏:
- 解释1:当你打开软件,然后清掉后台,重复操作,内存占用会一直累加,等到内存耗尽,就会出现卡顿和死机
- 解释2:正常情况下杀死应用后会回收应用占用内存(如QQ占用1.7G内存,杀死QQ及其后台以后系统应能空闲出1.7G左右内存),但是内存泄漏情况下杀死应用后内存不会被回收,导致内存占用越来越多。目前仅freezer.v1存在此问题。
- 下图中的只是比较经典的内存泄漏(多生进程),并不代表,这就是内存泄漏的唯一样式
6-4. 掉卡片:
7. 所需软件:
8. 模块内设置介绍:
8-1. 模块设置:
8-1-1. 冻结方式:
v1+
用来 缓解 部分系统使用v1造成内存泄露导致手机卡死所使用的冻结模式- 其余冻结方式详情请查看
冻结方式说明
8-1-2. 提权模式:
- 使原本NoActive的XP权限提升至ROOT权限
- 可以尝试使之前冻结失败或者无法使用的模式,可以正常使用
- 目前支持的提权模式仅有四种:Freezer v1/v2、kill-19/20
- 提权后,NoActive会自己给自己拉成白名单
- 需要
手动给
NoActive自启动权限
,且不要用任何软件限制他(否则会导致系统卡死等等bug),然后划卡后,就可以不再管他即可,工作时会自己启动
8-1-3. 定时冻结:
- 1分钟重新冻结一次所有黑名单应用
8-1-4. 轮番解冻:
(该模式非常适合非MIUI系统的后台保活,建议非MIUI系统开启此功能)
- 目的:冻结过久,APP就死了,所以让他透透气,不让他憋死
- 顾名思义,就是一段时间,解冻一次,之前冻结的APP
- 具体:
1分钟解冻一次,一次只解冻一个APP 3s,并且解冻的是最久没有打开的那个APP - 详细:
A-B-C-D依次为打开顺序
会先解冻A,重新排序
B-C-D-A
然后解冻B
此时顺序为
C-D-A-B
如果此时C被打开了
那么就是
D-A-B-C
接下来就会解冻D
8-1-5. 详细日志:
- 其实就是开启debug,一般无需开启, 除非作者跟你说你需要开启,才开启
8-1-6. 开发者:
- 就是作者,没啥好解释的
8-1-7. 交流群:
- 跟文档右上角的加群一样的,也没啥好解释的
8-1-8. 打赏:
- 懂得都懂
8-2. APP设置(QQ为例):
8-2-1. APP主页:
8-2-1(1). 应用白名单:
- 让整个应用成为白名单
- PS:就是NoActvie不对QQ做任何操作
8-2-1(1/1). 电池优化:
Tip:NoActive只要安装并激活后,就会接管
电池优化
想要不限制应用又想优化续航
此功能在激活NoActive后,就会接管系统的电池优化
- 例如使用第三方MiPush的时候就需要他来开关电池优化
查看
- 例如使用第三方MiPush的时候就需要他来开关电池优化
PS:只有白名单情况下可开启
8-2-1(2). 保持连接:
网络解冻(MIUI专属)- 是否使用HMS、mipush这类第三方推送通道,而不使用APP自身的推送通道
- 开启时使用APP自身的推送,不使用HMS或者mipush这类第三方推送通道
- 关闭时不使用APP自身的推送,使用HMS或者mipush这类第三方推送通道
8-2-1(3). 定时解冻:
- 定时解冻,每3min解冻一次APP,解冻后3s再冻结APP
- 定时解冻跟轮番解冻是相对的,定时解冻只针对单应用,轮番解冻则是全部在后台冻结的
- 如果开了定时解冻也开了轮番解冻,那么轮番解冻将会忽略开启定时解冻的APP
8-2-1(4). 后台级别:
- 原名:忽略前台
8-2-2(4/1). 前台服务
- 默认的冻结方式
- 切换应用或回到桌面3s后冻结
- 前台服务就是原先的默认模式
- 前台服务≠前台窗口
- 前台服务包括:可以看见窗口、通知栏、可以听到声音看到视频,只要你能凭借感官感知到这个应用在运行,他都是前台服务
- 图标长相(啥也不显示)
8-2-2(4/2). 可见窗口:
8-2-2(4/3). 强制冻结:
8-2-1(5). 进程设置:
8-2-2. 黑白名单介绍:
- 用户应用(QQ为例)
- 系统应用(谷歌商店为例)
9. 如何使用NoActive:
下载《NoActive》
下载
在LSPosed勾选玩作用域后,打开NoActive,这时候,就是跳出申请ROOT权限的提示,允许即可
(如果没有弹出,请自行前往Magisk授予权限)重启手机
- PS:
因为NoActive默认第三方APP都是黑名单,所以打开NoActive,并(强烈建议)将以下软件添加至白名单
查看帮助0
、(不了解黑白名单请看黑白名单介绍
)下面我们用抖音为例
(PS:如果你不清楚你要测试的APP是白名单还是黑名单黑白名单介绍
)打开抖音,当页面加载完成后回到桌面
(PS:目前NoActive默认3s后开始冻结,所以在Scene或者Thanox查看的时候,一定需要在回到桌面后的3s后,查看CPU的占用)如果冻结成功,请继续第9步,如果冻结失败,请
切换冻结方式
你可以正常使用NoActive了
PS1:NoActive是不需要保留后台就可以运行的,所以你设置好后,就可以将NoActive划卡了
PS2:其中关于“定时冻结”与“轮番解冻”,建议所有非MIUI系统的都开启该选项,开启后,须重启手机
PS3:提权模式,如果你将,v1、v2、kill-(19、20)四种冻结方式都使用后,还是冻结失败,你可以开启提权模式再次尝试,该配置须重启
(PS3-1:关于提权模式
)
帮助0:白名单使用推荐
Magiak
(任何版本,包括第三方)理由:如果不给白名单,大概率会发现,打开Magisk的时候,会导致Magisk卡住,无法操作
如果随机包名了请将随机后的Magisk白名单Thanox/Thanox Pro
/Scene
理由:这两种软件有些功能需要自启动,墓碑可能会导致他启动不起来,而引发功能失效
输入法
(第三方非系统)理由:由于NoActive对于第三方应用都是默认黑名单,而经过我多次测试,输入法如果不给白名单,大概率用着用着,就无法唤醒了
微信
由于微信FCM推送,且国内环境原因,FCM很鸡肋,所以就有以下两种方法
[推荐] 将微信直接白名单,最保险
[不推荐] 将微信主进程和推送进程白名单1
2com.tencent.mm
com.tencent.mm:pushQQ
对于QQ两种态度
- 将QQ白名单,使用QQ自己的推送
- 将QQ主进程和推送进程白名单
1
2com.tencent.mobileqq
com.tencent.mobileqq:MSF - 将QQ黑名单,使用MiPush/Hms推送
- 关于MiPush推送,可以查阅
MiPush Framework使用指南
- 关于MiPush推送,可以查阅
需要自启动的第三方APP
Color中最常用的模块
Luckytools
,由于他有部分功能,例如磁贴,强制刷新率等等需要软件自启动,所以,就需要给予Luckytools
白名单
其他类似于这种软件的请自行给予白名单电池优化
最经典的就是
第三方的MiPush推送服务
,由于NoActive接管了电池优化,所以,需要将推送服务白名单
其他类似于这种软件的请自行给予白名单
帮助1:保后台
- 用前须知
- 本方法是跟我我自身使用的
一加9pro,Color13
所写,可能并不适用所有人 - 操作方法
- 方法1:
- 使用保后台Magisk模块
- 下载并安装
保后台
,该模块内置了Don't Kill
,且针对Color系统,会自动禁用雅典娜 - 重启手机
- 方法2:
- 使用Don’t KillXP模块
- 仅Color13可以不用管雅典娜了,Color11/12雅典娜依然是神一般的存在,请自行精简/冻结/卸载等
- 方法3:
- 使用超强保后台Magisk模块
- 仅Color13可以不用管雅典娜了,Color11/12雅典娜依然是神一般的存在,请自行精简/冻结/卸载等
重要须知
- 上文中的方法2/3/4可以自行组合或单一使用,由于每个人手机不一样,所以,最终效果请自行测试
- 上文中的方法1不适合给Color13用,因在本机上,杀后台比官方自己还严重,建议,使用方法2
Don't Kill
以上方法可能已经过时,其余方法请自行实验,此部分只是提供思路
接下来你配合着NoActive就可以体验水果墓碑的感受
帮助2:NoActive支持到安卓几
- 【NoActive3.0之前的版本】最低支持到安卓10,但体验较好的是12-13
帮助3:NoActive重启后配置没了
- 在LSPosed里面给NoActive勾选推荐作用域
- 给予NoActive ROOT权限
- 重启手机,这时候设置好再重启手机就不会丢配置了
帮助4:冲突
系统冲突
NoActive会屏蔽系统自己的墓碑,所以无需在意系统墓碑的开关
PS:此系统墓碑为开发者模式中的暂停应用缓存模块冲突
由于NoActive自身就是墓碑模块,所以,只要是墓碑模块,就不能与NoActive共存,任何作用域冲突
暂未发现情景模式冲突
依靠Thanox中的情景模式的墓碑,例如早期myflaver写的情景模式墓碑
帮助5:Millet在MIUI几出现
- MIUI13开始支持, 由电量与性能负责运行,分为FreezerV1和V2两个版本
- MIUI13开发版最先支持,有最新特性,而MIUI稳定版在慢慢紧跟(开发板的运行稳定了再下放到稳定版)
帮助7:切换冻结方式
- 打开NoActive,点击右上角的设置会进入设置界面(如下)
- 更改冻结方式
- 选择好冻结方式后,就可以重启手机,例如我这换成v2模式的
冻结方式推荐:API & V2 > Kill -19 & Kill -20 - 重启完成后即可
(PS:如何使用NoActive
的6~9步,讲述的如何确定冻结模式生效)
帮助8:查看冻结状态(通用)
- 优先推荐myflavor的软件查看:【
下载
】
帮助15:挂载V2没效果,挂载不上?
- 挂载V2需要你的内核支持V2才能挂载,如果挂载不了请换内核
- 挂载V2需要你的内核支持V2才能挂载,如果挂载不了请换内核
- 挂载V2需要你的内核支持V2才能挂载,如果挂载不了请换内核
- 挂载模块:
下载
帮助Last:(如何卸载干净NoActive)
- 将NoActive卸载
- 删除在/data/system目录下的NoActive文件夹
- 重启手机
- 你获得了新生