如何评价 Android 第三方接口「Magisk」? – 知乎


从目前来看,magisk做的事情是通过boot中创建钩子,进而bind mount构建出一个在system基础上能够自定义替换,增加以及删除的文件系统,所有操作都在启动的时候完成,讲下启动过程中magisk所做的事情(有错误请指正):

1.准备阶段,将会把/data/magisk.img挂到/magisk。同时它会遍历magisk目录中的模块是否为启用状态,并且记录。

2.创建骨架system文件系统(由于bind mount 必须要有一个目标文件才能进行bind mount),全部由mkdir 和touch构建
3.将每个标记为启用的/magisk/$MODID/system中文件bind mount到骨架系统
4.执行自定义模块中的脚本
5.遍历骨架中剩余没有被mount的文件,通过真正的system文件进行bind mount。

至此没有systemless构建完成。

所以他的功能远不止隐藏root,xposed等,从理论上来讲,所有需要增加的内容都是可以的,创建新的一个rom这是可行的,也就是说有可能通过magisk刷入第二个系统。

至于OTA,不知道国产rom对boot会不会有检测,有待观测。

关于未来,个人感觉bind mount有点麻烦,如果普及overlayfs,应该也不错。

如有错误请拍砖。

Source

Sharing is caring!