先声明一下,我测试用的手机是Google Nexus 6P(angler),安卓8.1.0系统,使用Magisk 25.2 Delta。
虽然只是一个毫无意义的事情,但是希望有用到的人。Magisk的超级用户管理功能虽然能够达到正常使用,但是一些专业的功能如详细的日志(SuperSU可以记录全部内容,可以查看每个应用拿root干了什么)。总所周知,SuperSU在安卓8. 0之后就不能正常运行了,会卡在卡机引导界面(原因是SuperSU在安装时会将/system/bin/app_process64文件链接到daemonsu)。但是在8.0之后这样做就会无法开机。事实上,这一步骤不是必须的,只要daemonsu的守护进程正常运行(默认是通过/system/etc/install-recovery.sh实现)即可正常提权。
但是考虑到Magisk确实有许多新功能,于是我就想让它们共存,保留Magisk的隐藏root和模块等功能。我的思路是通过一个模块,将第三方SU的相关文件加载到相应目录,再通过service.sh脚本在开机时启动daemonsu守护进程。然后就是要让su文件使用第三方的而不是Magisk的。Magisk的SU放在/sbin或者/system/bin,本质是一个系统链接,将其链接到magisk二进制文件。只需要在service.sh中删除那份文件,将其链接到新的SU即可。
虽然只是一个毫无意义的事情,但是希望有用到的人。Magisk的超级用户管理功能虽然能够达到正常使用,但是一些专业的功能如详细的日志(SuperSU可以记录全部内容,可以查看每个应用拿root干了什么)。总所周知,SuperSU在安卓8. 0之后就不能正常运行了,会卡在卡机引导界面(原因是SuperSU在安装时会将/system/bin/app_process64文件链接到daemonsu)。但是在8.0之后这样做就会无法开机。事实上,这一步骤不是必须的,只要daemonsu的守护进程正常运行(默认是通过/system/etc/install-recovery.sh实现)即可正常提权。
但是考虑到Magisk确实有许多新功能,于是我就想让它们共存,保留Magisk的隐藏root和模块等功能。我的思路是通过一个模块,将第三方SU的相关文件加载到相应目录,再通过service.sh脚本在开机时启动daemonsu守护进程。然后就是要让su文件使用第三方的而不是Magisk的。Magisk的SU放在/sbin或者/system/bin,本质是一个系统链接,将其链接到magisk二进制文件。只需要在service.sh中删除那份文件,将其链接到新的SU即可。