Magisk了解以及简单的模块制作

博主:itopmitopm 2024-09-17 02:40:01 678

Magisk了解

Magisk是当前Android社区用来获取root权限的主流方式。同时,面具特殊的运作机制还赋予了它systemless的特质。systemless让面具一方面可以有针对性地隐藏root,甚至暂时隐藏Magisk本身。另一方面,挂载系统的存在,也让Magisk拥有了多样的模块化生态系统。

Magisk了解以及简单的模块制作

安卓的魔术面具

XDA关于Magisk的介绍:Magisk - The Universal Systemless Interface, to create an altered mask of the system without changing the system itself.

Magisk了解以及简单的模块制作

翻译

模块以镜像的模式挂载进系统,当我们把模块卸载后,原有的系统文件就会恢复原样。往简单了说,就是让咱们在不修改系统文件的情况下修改系统。

Magisk了解以及简单的模块制作

安卓初代神器

它和之前使用的安卓初代神器xposed有些相似,那就是拦截。但又有不同,Magisk 另辟蹊径,通过挂载一个与系统文件相隔离的文件系统来加载自定义内容,为系统分区打开了一个通往平行世界的入口,所有改动在平行世界(Magisk 分区)里发生。而Magisk上的模块,实际上都是以systemless(不修改系统)特性在运行。

Magisk了解以及简单的模块制作

原理

Magisk功能:
MagiskSU——提供设备的 root 权限
Magisk模块——通过安装模块来修改只读分区
MagiskHide—— 在 root 检测或系统完整性检查中隐藏 Magisk(最新版本中已经取消)
MagiskHide取消原因:开发者吴泓霖此前宣布加入谷歌 Android 平台安全团队,因为 MagiskHide 与在谷歌的工作存在利益冲突,因此只能停止该功能。

Magisk了解以及简单的模块制作

取消Hide

Magisk可以对其他验证系统完整性的应用程序进行隐藏(称为Magisk Hide),使得用户可在取得Root权限的情况下使用如银行类的应用程序。

Magisk了解以及简单的模块制作

Hide

从Magisk 24.0开始,正式加入了执行在Zygote的Magisk模式(Zygisk),并移除了Magisk Hide和Magisk Module Repository功能。 Magisk Hide的功能将由第三方模块(如Shamiko)实现。

Magisk了解以及简单的模块制作

Shamiko模块

Magisk的安装

Magisk了解以及简单的模块制作

先解BL锁

方法1:ADB工具包使用fastboot命令对Bootloader已解锁设备刷入修补版BOOT启动镜像
方法2:解锁Bootloader的设备并刷入第三方 Recovery进行安装

Magisk模块制作:

首先你需要一个官方文档:

Magisk了解以及简单的模块制作

面具文档

你可以去官网寻找资料去试着构建目录并下载一些必要的文件。下面为25.3的构建目录:查看链接

Magisk了解以及简单的模块制作

构建目录

当然也可以自己在网络上寻找一个模板自己去修改使用,甚至你在一些已经能够使用的模块上加以修改使用。这样可以更快避免出现一些玄学问题。通常情况里面都会有注释,虽然是英文的,只能自己一点一点看了。

Magisk了解以及简单的模块制作

面具模板

1.下载 Magisk 模块模板
注意:编辑文件请使用高级文本编辑器(不是记事本之流),例如 Notepad++

Magisk了解以及简单的模块制作

模板解压缩

2.各个文件(夹)的作用:

META-INF: 刷机包签名/脚本文件,通常我们不需要改动。
common/post-fs-data.sh、common/service.sh:开机时执行的脚本文件,通常我们不需要改动。
common/system.prop: Build.prop 文件,将需要修改的项目(注意不是整个 Build.prop)填入即可。
system: 将需要替换的系统文件(空文件(夹)也可)按照位置放置即可。
.gitattributes: Git 相关文件,通常我们将它删除以防止影响打包。
README.md: 说明文件,通常我们将它删除以防止影响打包。
config.sh: 模块设置和安装/刷入时使用 ui_print 命令显示的提示信息(你可以加入模块/作者的相关信息)
module.prop: 模块信息

Magisk了解以及简单的模块制作

模块信息

3.将填好内容的模块使用压缩软件打包成 zip 文件(压缩级别建议选择正常压缩或者不压缩),刷入或安装即可。
最简单的替换文件模板:
1、修改META-INF/com/google/android/update-binary 里面的安装信息

Magisk了解以及简单的模块制作

模块刷入脚本

2、按路径放入替换文件

Magisk了解以及简单的模块制作

替换文件

3、修改module.prop中的模块信息

Magisk了解以及简单的模块制作

模块信息

试着做了个简单的小模块,测试成功。

The End

本站部分内容来源于互联网,仅供学习交流之用。如有侵犯您的版权,请及时联系我们,我们将尽快处理。