正文开始–>
==========================================
Magisk模块构造
=========================================
首先需要了解一下模块的构造才能进行相应模块的功能与制作,也许你并不需要了解它所有的功能,但多了解一点总是好的,对你制作模块也会有一定的帮助。
magisk有提供模块的模板,当然如果你对shell比较精通的也可以进行自定义。
来了解一下magisk提供的模板!为方便我们修改模块,推荐使用MT管理器,下载好模板文件,找到模板文件并打开它,有几个目录及文件
看图–>
虽然文件不多,但它提供的功能却很强大
首先来了解模块的第一个文件,相信每个模块制作者也会用到的
==========================================
module.prop文件。
看图–>
对比一下,发现有几个参数是直接在magisk模块界面显实的,而你只需要自定义里面的内容就行。
为减少不必要的麻烦,重点讲解一下模块ID这个
首先ID不要跟其他模块的ID一样,因为magisk就是通过这个ID来识别的。如果相同的ID,最后刷入的模块则会替换你之前刷入的模块。发布后不应更改。当然不上传仓库的话,你想怎么改就怎么改,只不过会多几个模块而已。
ID的命名是有限制的,很多酷友模块卸载不了,还在模块界面显示问号,很难受。。。就是这个原因导致的。咱看一下magisk的说明:
id必须匹配这个正则表达式:^[a-zA-Z][a-zA-Z0-9\._-]+$。
例如:✓ a_module,✓ a.module,✓ module-101
✗ a module,✗ 1_module,✗ -a-module
命名跟说明匹配就行了,不要使用中文及中文字符,不然就会发生卸载不了的情况。
如果卸载不了的,也可以手动到/sbin/.magisk/img文件夹找到相应模块删除。
===================================================
README.md文件
模块描述介绍
===================================================
config.sh 模块配置脚本文件
看图–>
建议全部启用
===================================================
看图–>
ui_print后面的就是刷入界面显示的内容了,可以任意自定义里面的内容,下面的那些是模块安装脚本里面的META-INF/com/google/android/update-binary文件,也是ui_print后面 同理。
=======
继续看图–>
REPLACE=上面那个是示例,不需要管它。
这个功能作用就是替换文件夹为空的,如果你指定的目录下有文件夹它将替换一个空文件夹替代它,如果你指定的目录下没有文件夹它将创建一个空文件夹。这适用于精简软件用之类的,很方便的功能,找出你需要精简软件的安装路径,然后写入REPLACE="里面,刷入模块重启那个软件将会消失,卸载模块将会还原。
注意是文件夹。。。
继续看图–>
这个权限设置,#前面灰色的是一些示例说明,你也可以自定义,它默认这条就是对你在模块system分区里面添加的文件的权限设置。
common 文件夹
看图–>
post-fs-data.sh在执行完成之前暂停引导过程,有10秒时间限制,如果脚本执行时间过长卡住的话可能会导致模块部分功能失效。
service.sh与引导过程并行运行。
无特殊的,建议使用service.sh执行脚本,可能还需要延时执行,因为有些东西需要系统全部挂载完才能进行修改。
system.prop文件
对应/system/build.prop文件,优先使用common/system. prop里面的内容
===================================================
system文件夹
对应系统system分区,可进行替换文件,添加文件。注意与前面讲到的那个是文件夹,这个是文件!
==========================================
本篇或许介绍有错,如果想知道正确的以及更多的内容可以去magisk官方查看与下载模板
https://topjohnwu.github.io/Magisk/
模板链接:
https://pan.baidu.com/s/1diUQ9qJXLjSSY2zRgQAwgg 提取码:vs46
本篇到此结束,敬请期待第二篇……
教程来源网络