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