KernelSU: 受限制的 ROOT 即将到来
KernelSU 的兼容性最近获得了非常大的提升,常见的模块基本上都可以用;因此,是时候搞一些酷酷的功能了!
之前我们开发组讨论过几个有趣的功能,大概有这么些:
1. webui:不使用 App 而是直接使用本地网页来管理 root 权限和模块。
2. su 日志:在应用使用 root 的时候记录日志,类似 MIUI 的隐私照明弹。
3. Root Profile:限制 Root 用户的权限。
4. 内核解释器:在内核执行脚本(不受限的 eBPF?)
考虑到实现难度和可用性,KernelSU 接下来将会开发一个名为 App Profile 的功能,这个功能分为三部分:
1. root 授权:授予指定应用 root 权限
2. 黑白名单:为模块提供挂载或隐藏的名单
3. Root Profile
其中,Root Profile 可以用来限制已经拥有 root 权限的应用。Root 权限其实分为以下几个方面(关于Root 可以阅读我之前的文章:何为 root?):
• uid 和 gid
• groups
• capabilities
• SELINUX
在过去所有的 root 实现中,这几个方面的权限都是无限制的。这意味着:一个防火墙应用可以格式化你的手机并删除所有数据,虽然它本来只需要网络管理的权限;一个文件管理器应用可以植入病毒程序然后加载内核模块并隐藏自己,虽然它本来只需要全部的文件访问权限;类似的例子还有很多,想象一下:你雇了一个清洁工去你家打扫卫生,结果它直接打开你家保险柜然后把你的财产都转移了。其实绝大多数 root 应用只需要 root 权限的一个很小的子集,我们为什么要授予它没有任何限制的最高权限呢?
Root Profile 将致力于解决此问题,它通过合适的 identify, groups, capabilities 和一系列的 SELinux 规则来授予应用一个受限的 root 权限。你可以自定义规则,也可以使用其他人创建好的规则;当然,如果你想使用无限制的 root 权限,也没有任何问题。
这个功能才刚开始开发,可能过段时间才能与大家见面;不知道大家觉得这个功能怎么样呢?
大家晚安!