magisk及模块编写介绍【转】


1.启动过程中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。

2.Magisk功能

1.集成了类似SuperSU的root管理功能(MagiskSU)
2.类似于Xposed,可以安装使用Magisk相关模块
3.Magisk Hide(对单个应用隐藏 Magisk 的 root 权限)
4.日志功能
5.Systemless hosts(为广告屏蔽应用提供Systemless hosts支持)
6.SafetyNet 检查功能

3.一个完整的magisk模块整体如下:
➜ tree MagiskTrustUserCerts
MagiskTrustUserCerts
├── META-INF
│ └── com
│ └── google
│ └── android
│ ├── update-binary
│ └── updater-script
├── common
│ ├── post-fs-data.sh
│ ├── service.sh
│ └── system.prop
├── config.sh
└── module.prop

4.总结模块的编写流程
# 1. Place your files into system folder (delete the placeholder file)
# 2. Fill in your module's info into module.prop
# 3. Configure the settings in this file (common/config.sh)
# 4. For advanced features, add shell commands into the script files under common:
# post-fs-data.sh, service.sh
# 5. For changing props, add your additional/modified props into common/system.prop

https://topjohnwu.github.io/Magisk/
————————————————
版权声明:本文为CSDN博主「tangsilian」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tangsilian/article/details/98903703


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM