NoActive
进阶文档

前言

本文是为极客和有折腾精神的人所准备的进阶篇文档,大部分内容需要你自己动手实操,并且可能会出现包括但不限于以下几种情况:手机变砖、出现发热与卡顿、环境异常等

如果你觉得本文有任何错误或需要补充的地方,可在频道@Abyssal Dawn(频道ID)进行添加或修改

如果找不到@Abyssal Dawn(频道ID)可以尝试@璨梦踏月-JOYUI13-5.10(频道ID)

免责声明

你所进行的一切行为均由你自己承担责任,别砖了过来找我,不会提供任何帮助,自己想办法

Re-Kernel KPM相关问题

KPM模块为Apatch独占(即Apatch管理器内核模块一栏),所以你需要刷入Apatch才能使用KPM版Re-Kernel


Apatch与其它Root方案共存

你需要两个东西:KernelPatch镜像与Apatch Apk

KernelPatch:查看链接

Apatch:查看链接

无论何时都只建议使用Release版本进行替换,Pre-Release或Github Ci构建的的版本可能导致不可知的问题

以及,请务必使Apatch安装包的原KernelPatch版本号与你要替换的版本号对应,不对应的版本号会不生效,同时有极大概率导致变砖,一定注意

这里以Apatch 10763版本为例,下载对应的kpimg-linux

共存

然后重命名kpimg-linux为kpimg,并替换掉Apatch Apk当中的kpimg

kpimg在assets文件夹

共存

然后用Scene之类的工具提取你当前的boot.img,用你替换完的Apatch修补后再刷入boot.img

VAB分区的设备你当前处于哪个分区就提取哪个,别搞错活动分区了

例:A分区设备提取boot_a.img

至此,共存部分结束,重启后你会发现仅内核模块可用,Root授权和系统模块均不可用,这时就可以使用Re-Kernel KPM了

只建议先加载,然后再使用嵌入,以防止出现内核不兼容导致的卡开机问题等


用Apatch作为Root方案

流程与其它Root方案几乎一致

Apatch Apk:查看链接

无论何时,Apatch提取并修补的都是boot分区,除非Google未来更换Linux内核位置,否则均为boot


从Magisk/Kernel SU切换至Apatch

太简单了,不想写,你们自己看吧:查看链接

使用此方法可能会导致Root方案残留,我只建议走2的流程,使用纯净boot修补然后正常刷入


内存优化

如果你希望修改内存的保留值,你可以到/data/system/NoActive_xxxxxxxx/config/MemConfig.json中修改freeRAM或freeSWAP

0(自动),负整数(关闭),正整数为指定的值单位为MB

注意:ZRAM和Swapfile都属于SWAP(交换分区)
你需要写入符合JSON语法格式的配置,否则Noactive会自动清除错误配置并还原

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"freeRAM":0, <---- 物理内存保留值
"freeSWAP":0, <---- 交换分区保留值
"highPriorityUidSet":[ <-- (高)
10258,
10299
],
"lowPriorityUidSet":[ <-- (低)
10272,
10289
],
"mediumPriorityUidSet":[ <-- (中)

]
}

FCM解冻

Noactive自pro-173往后支持FCM解冻,由于配置文件变更,此处仅讨论此文发出时的最新版pro-185


不使用自定义,所有应用都支持FCM解冻

你需要更改的配置文件/data/system/NoActive_xxxxxxxx/的AdvanceConfig文件,receiveFCM后面的false改成true,保存后无需重启即可生效

1
2
3
4
5
6
7
{
"adaptiveIcon":false,
"fcmAppSet":[
],
"receiveFCM":true,
"speedMode":false
}

示例配置


使用自定义,选择部分应用可以FCM解冻

配置文件依然为/data/system/NoActive_xxxxxxxx/的AdvanceConfig文件

1
2
3
4
5
6
7
8
9
{
"adaptiveIcon":false,
"fcmAppSet":[
"com.microsoft.office.outlook",
"com.x8bit.bitwarden" <-- (在这里添加包名)
],
"receiveFCM":false,
"speedMode":false
}

你依然需要填写符合JSON格式的包名

如果填写包名,则receiveFCM应为false


冻结Binder

关于Binder的介绍请查看名词解读与定义:点击查看名词解读

BinderFreeze用于阻断被冻结的应用与其它应用之间的通信,此特性自5.10内核开始支持,但目前仍然存在各种各样的问题,包括但不限于应用假断网、出现卡屏或闪弹

Noactive的BinderFreeze默认关闭,如果你出现以上这些问题请看:名词解读

6.1内核会比5.10/5.15具有更良好的BinderFreeze体验,但仍然不建议使用BinderFreeze,目前的Binder临时解冻虽然不够完美,但依然是目前唯一不存在问题的解决方案