



《kerneISU官方新版》也就是KernelSU,是面向Android GKI设备的内核级root解决方案,在内核模式运行,直接在内核空间为应用授予root权限,相比传统root方案拥有强大的内核接口能力,支持硬件断点添加、进程内存访问、系统调用拦截等底层操作。软件搭载metamodule可插拔模块架构,把挂载逻辑交由元模块处理,能够安装meta-overlayfs实现/system分区无系统修改,是安卓玩机圈热门的底层权限管理工具。

很多玩机的小伙伴都接触过各类root工具,大家熟悉的不少方案都是跑在用户空间里,底层能力会有不少限制。而KernelSU走的是完全不一样的路线,它直接工作在内核层面,专门适配GKI通用内核镜像机型。它不把所有模块功能全部写死在核心里面,而是采用元模块这种可插拔的设计思路,把分区挂载相关的功能分离出去。这样一来,工具本体更加精简稳定,后续的扩展能力也更强。不管是想要调试底层进程、拦截系统调用,还是想实现不改动原有系统文件的分区修改,这款工具都可以实现,适合有一定安卓底层基础的发烧友使用。
相同之处
模块文件格式:都以zip的方式组织模块,并且模块的格式几乎相同
模块安装目录:都在/data/adb/modules
systemless:都支持通过模块的形式以systemless修改/system
post-fs-data.sh:执行时机完全一致,语义也完全一致
service.sh:执行时机完全一致,语义也完全一致
system.prop:完全相同
sepolicy.rule:完全相同
BusyBox:脚本都在BusyBox中以“独立模式”运行
不同之处
在了解不同之处之前,你需要知道如何区分你的模块是运行在KernelSU还是运行在Magisk之中;在所有你可以运行模块脚本的地方(customize.sh,post-fs-data.sh,service.sh),你都可以通过环境变量KSU来区分,在KernelSU中,这个环境变量将被设置为true。
以下是一些不同之处:
KernelSU的模块不支持在Recovery中安装。
KernelSU的模块没有内置的Zygisk支持(但你可以通过ZygiskNext来使用Zygisk模块)。
模块挂载架构:KernelSU使用metamodule系统,将挂载委托给可插拔的metamodule(例如meta-overlayfs),而Magisk将挂载内置在其核心中。KernelSU需要安装metamodule才能启用模块挂载。
KernelSU模块替换或者删除文件与Magisk完全不同。KernelSU不支持.replace方式,相反,你需要通过mknodfilenamec00创建同名文件夹来删除对应文件。
BusyBox的目录不同;KernelSU内置的BusyBox在/data/adb/ksu/bin/busybox而Magisk在/data/adb/magisk/busybox;注意此为KernelSU内部行为,未来可能会更改!
KernelSU不支持.replace文件;但KernelSU支持REPLACE和REMOVE变量。
KernelSU新增了一种脚本boot-completed.sh,以便在Android系统启动后运行某些任务。
KernelSU新增了一种脚本post-mount.sh,以便在模块挂载完成后运行某些任务。
KernelSU是否支持我的设备?
首先,您的设备应该能够解锁bootloader。如果不能,则不支持。
然后在你的设备上安装KernelSU管理器并打开它,如果它显示不支持,那么你的设备没有官方支持的开箱即用的bootimage;但你可以自己编译内核集成KernelSU进而使用它。
KernelSU是否需要解锁Bootloader?
当然需要。
KernelSU是否支持模块?
支持。但是,如果您的模块需要修改/system文件,则需要安装metamodule(例如meta-overlayfs)。其他模块功能无需metamodule。请查阅模块。
KernelSU是否支持Xposed?
支持。LSPosed可以在ZygiskNext的支持下正常运行。
KernelSU支持Zygisk吗?
KernelSU本体不支持Zygisk,但是你可以用ZygiskNext来使用Zygisk模块。
KernelSU与Magisk兼容吗?
KernelSU的模块系统与Magisk的magicmount有冲突,如果KernelSU中启用了任何模块,那么整个Magisk将无法工作。
但是如果你只使用KernelSU的su,那么它会和Magisk一起工作:KernelSU修改kernel、Magisk修改ramdisk,它们可以一起工作。
KernelSU会替代Magisk吗?
我们不这么认为,这也不是我们的目标。Magisk对于用户空间root解决方案来说已经足够好了,它会存活很久。KernelSU的目标是为用户提供内核接口,而不是替代Magisk。
KernelSU可以支持非GKI设备吗?
可以。但是你应该下载内核源代码并将KernelSU集成到源代码树中并自己编译内核。
KernelSU支持Android12以下的设备吗?
影响KernelSU兼容性的是设备内核的版本,它与设备的Android版本没有直接的关系。唯一有关联的是:出厂Android12的设备,一定是5.10或更高的内核(GKI设备);因此结论如下:
出厂Android12的设备必定是支持的(GKI设备)
旧版本内核的设备(即使是Android12,也可能是旧内核)是兼容的(你需要自己编译内核)
KernelSU可以支持旧内核吗?
可以,目前最低支持到4.14;更低的版本你需要手动移植它,欢迎PR!
如何为旧内核集成KernelSU?
为什么我手机系统是Android13,但内核版本却是"android12-5.10"?
内核版本与Android版本无关,如果你需要刷入KernelSU,请永远使用内核版本而非Android版本,如果你为"android12-5.10"的设备刷入Android13的内核,等待你的将是bootloop.
我是GKI1.0,能用KernelSU吗?
GKI1跟GKI2完全是两个东西,所以你需要自行编译内核。
如何把/system变成挂载为可读写?
我们不建议你直接修改系统分区,你应该使用模块功能来做修改;如果你执意要这么做,可以看看magisk_overlayfs
KernelSU能修改hosts吗,我如何使用AdAway?
当然可以。但这个功能KernelSU没有内置,你可以安装这个systemless-hosts
为什么全新安装后模块不工作?
如果您的模块需要修改/system文件,您需要安装metamodule来挂载system目录。其他模块功能(脚本、sepolicy、system.prop)无需metamodule即可工作。
内核级运行机制,程序运行在内核空间,和常规用户空间root工具不一样,拥有更底层的系统操作权限,能够调用独有的内核接口。
丰富底层调试能力,支持给进程添加硬件断点、访问进程物理内存、拦截系统调用,满足深度调试、逆向研究的需求。
metamodule元模块架构,采用可插拔模块管理体系,挂载逻辑不再内置在核心中,自由度更高,方便开发者开发各类扩展元模块。
支持无系统分区修改,搭配meta-overlayfs这类元模块,能够对/system以及其他分区进行修改,不用改动原始系统镜像。
权限精细化管控,root权限可以单独授权给指定应用,权限可控,不会出现所有程序默认拿到最高权限的情况。
安卓深度玩机调试场景,发烧友想要深度研究手机系统底层,调试进程行为、监控系统调用,借助内核接口完成普通工具做不到的底层操作。
无系统修改场景,不想刷写修改原厂system分区,依靠meta-overlayfs元模块,实现系统资源替换、功能修改,保留原厂系统基础文件。
模块扩展开发场景,开发者基于metamodule架构,自主开发适配的元模块,拓展内核工具的功能边界,定制专属的系统能力。
GKI机型root权限管理场景,搭载GKI通用内核的安卓设备,使用它获取和管理root权限,替代传统root方案,获得更强的底层能力。
从Magisk转到KernelSU有一段时间了,最大的感受就是底层能力真的强很多,很多之前想做但是别的工具实现不了的调试操作,在这里都可以完成。元模块这个设计我特别喜欢,架构很灵活,不用等作者更新核心包就能拓展新功能,overlay修改分区也很方便,不用动原系统文件。当然也要说一句,这个工具门槛偏高,完全不懂内核、GKI概念的小白不建议上手,刷错内核很容易出问题。适合有玩机基础、想要折腾底层系统的朋友,是目前GKI设备上很有潜力的root方案。
玩家留言