Magisk 是一套开放源代码的 Android 自定义工具套件,内置了 Magisk Manager(图形化管理界面)、Root、启动脚本、SElinux 补丁和启动时认证 /dm-verity/ 强制加密移除功能。Magisk 同时提供了在无需修改系统文件的情况下更改 /system 或 /vendor 分区内容的接口,利用与 Xposed 类似的模块系统,开发者可以对系统进行修改或对所安装的软件功能进行修改等。
Magisk 26.0 发布,更新内容如下:
最低 Android 版本提升到 6.0
Magisk 对 Android Lollipop 的支持已经中断了一段时间,并且没有被开发者注意到。之所以会这样,主要是 Magisk 的活跃开发者都没有实际的硬件来运行 Android Lollipop。他们都是依靠使用官方的 Android 模拟器对旧平台进行回归测试,然而 Google 从来没有提供支持 SELinux 的 Lollipop 模拟器镜像,因此团队别无选择,只能放弃对 Lollipop 的支持,因为不放心在没有充分测试的情况下继续支持 Android Lollipop。
新的 Magic Mount 实现
Magic Mount,即让模块修改分区的功能,经历了一次重大的重写。现有的实现方式不能很好地配合 OEM 厂商使用 overlayfs
向他们的系统注入 overlays(Android overlay 机制的目的是为 OEM 厂商提供一种替换原生系统资源的机制)。新的实现从根本上改变了文件系统镜像的创建方式,给我们一个更准确的未修改文件系统的克隆。
新的 sepolicy.rule
实现
Magisk 允许模块通过包括 sepolicy.rule
文件来提供自定义的 SELinux 补丁。由于 SELinux 补丁的复杂性质,这个功能的兼容性一直很不稳定,很多设备都不被支持。在这个版本中,Magisk 设计了一个全新的预启动分区检测机制,以支持更多设备。由于复杂的原因,这种检测机制不能在自定义恢复环境中执行。
这意味着任何使用自定义恢复的 Magisk v26+ 的安装都是不完整的;需要在开机后通过 Magisk 应用进行后续的重新安装。
Zygisk 更新
新的 Zygisk API v4 现在已经上线,它具有新的功能和完善的 PLT function hook API。Zygisk 的实现也经历了一些重大的重构,包括新的代码加载/卸载机制和新的 PLT function hook 的实现。
更多详情可查看:https://github.com/topjohnwu/Magisk/releases/tag/v26.0