为什么我不看好 KernelSU

https://pzqqt.github.io/2023/01/27/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%B8%8D%E7%9C%8B%E5%A5%BD-KernelSU.html 说起KernelSU,也不算是什么新鲜玩意,早在2018年就有开发者提出这个想法(kernel-assisted-superuser)。 先简单介绍一下KernelSU:通过修改Android内核的源码,实现在操作系统中允许程序调用su来获取root权限(传统的root方式是直接提供一个su可执行文件,放在/system/bin)。 由于现在很多新设备都用上了号称任何Android设备都通刷的GKI(通用内核镜像),所以KernelSU也搭上了这趟顺风车:只要你的设备支持GKI,那你只需要刷个新的内核,就能获取root权限,是不是很方便? KernelSU听起来很不错,但为什么我不看好它呢? 1. 老用户与🐶不得使用 虽然GKI已经可以用在一些比较新的设备上了,但是距离普及还需要很长一段时间。在此期间,那些坚持使用老旧设备的钉子户怎么办?厂商不开源内核源码怎么办?普通用户不会编译内核怎么办?支持KernelSU的第三方内核不兼容某某rom怎么办(普通用户绝对会把锅甩给第三方内核,内核维护者表示压力山大)? 2. 号称效果更好的root隐藏效果? KernelSU官网宣称“只有得到了root授权的app才可以访问su,其他app无法感知su”,看起来很高大上,其实,Magisk的“遵守排除列表”可以实现同样的效果,不需要借助任何Zygisk模块或Xposed模块,区别就是一个属于白名单策略,一个属于黑名单策略。 而且,现阶段某些app检测设备环境可不仅仅是检测root这么简单了,比如美(chou)名远(zhao)扬(zhu)的momo,它会检测挂载参数、检测Bootloader锁状态、检测被模块修改过的系统文件、检测当前运行的是否是原厂系统、检测是否存在可疑的文件和app。 /images/e39_p1.jpg 试问,KernelSU在不借助任何外力的情况下如何应对? 有隐藏就会有检测,就好比有矛就会有盾,现阶段某些app难以检测KernelSU,只是因为整个业界还没有做好准备。 3. 安全是最重要的 能力越大,责任也就越大。KernelSU在内核层面工作,安全问题也不能忽视。根据KernelSU官方的介绍: /images/e39_p2.jpg 我们可以在内核层面对任意进程上加硬断点;我们可以在任何人不知情的情况下访问任意进程的物理内存;我们可以拦截内核空间中的任何系统调用;等等。 很显然,这很危险,这不是拥有root权限后该做的事。 4. “KernelSU的目标不是取代Magisk” 对呀,有Magisk了我有什么理由抛弃Magisk来选择你呢?Magisk劫持了init能做的事已经有很多了。 总结 kernel属于很接近硬件底层的东西,kernel已经很累了,请善待它。 当然,KernelSU也并非没有任何亮眼之处,比如KernelSU可以从内核层面修改SELinux规则(Magisk则是通过magiskpolicy在运行时修补),而且根据官方介绍,KernelSU还能为用户提供内核接口(也有可能是我的误解,因为KernelSU为用户提供的内核态su也可以算是接口(笑))。 等KernelSU推出稳定版之后,我们再来看看它的表现吧! 5. KernelSU的现状? 2024年6月2日,KernelSU发布了v1.0.0版本。从正式公布到现在已经过去了将近一年半的时间,现在让我们重新审视它。 从该版本起,KernelSU不再提供对非GKI内核的支持,非GKI设备仍然可以使用最后一个支持的版本(v0.9.5)。当下,那些老旧的非GKI的设备都已基本上淘汰,因此这一决定并非有很大的影响。 然后,时间证明了KernelSU的隐藏效果确实优于Magisk,这一点毫无争议。但是!这是建立在不使用Zygisk的前提下。 就目前来说,不论是国内用户还是国外用户,不论是用的官方rom还是用的AOSP rom,Zygisk都是刚需:有些app会检测bootloader解锁状态,需要使用Zygisk模块隐藏;为了使用完整的Google服务,需要使用Zygisk模块通过Play Integrity认证;为了使用Xposed模块,需要安装依赖Zygisk的LSPosed模块;最后,为了隐藏Zygisk,还得再装上Shamiko模块… 那么,KernelSU + ZygiskNext的搭配,跟Magisk + Zygisk有什么区别呢? 因此可以认为,如果Zygisk是必要条件,那么KernelSU相比Magisk并没有突出的优势。 当然,KernelSU也整了点Magisk没有的花活: 一个是 App Profile,可以对获取了root权限的app进一步限制权限。但是依据我的观察,普通用户基本上不会去配置也不懂得如何配置,因此这项功能沦为了极客的玩具。 另一个是 模块 WebUI,这项功能确实整得我这个Magisk用户很心动,让我回想起了大名鼎鼎的 Aroma Installer,即使我从来没有开发过利用WebUI的模块,我也已经在脑海中酝酿出了很多应用场景。但是冷静下来后再想想,kernel和浏览器的奇妙组合,那就不得不考虑安全问题。同时,不排除会有恶意模块通过互联网从远程服务器下载并执行恶意代码,或者向远程服务器发送设备的私密信息和数据(虽然这两种情况并不是一定需要依赖WebUI)。 最后,总结时间,介于Magisk的开发已基本上陷入停滞,因此尽管我对KernelSU的一些新特性有一些异见,但我仍然要对此给予肯定。就目前来说,我还是会坚定地做一位Magisk用户。

留言

這個網誌中的熱門文章

⚡️有用的鏈接⚡️

DeepNude 2.0 – Deepnude AI算法一键脱衣,绿色破解版,免费下载

15 種 SMS 激活服務 - 通過 SMS 激活的號碼(免費和付費)