对 Magisk 源码做一个简单的分析,本人很菜,分析不到位的地方请各位大神指出来。本文以 Magisk v25.1 为例
源码下载,编译
按照 Github 所给出的步骤一步步来 (最好是挂代理):
1. 以管理员的方式打开命令行窗口,输入 clone 命令
git clone --recurse-submodules https://github.com/topjohnwu/Magisk.git
2. 安装 python (版本高于 3.6), 配置环境变量,安装后输入命令
pip install colorama
3. 配置 Android Studio 的环境变量到 Path, C:\Path\To\Android Studio\jre\bin
4. 配置 ANDROID_SDK_ROOT
环境变量,例如 C:\Users\Shocker\AppData\Local\Android\Sdk
5. 在 Magisk 目录里命令行输入 python ./build.py ndk
下载 ndk
6. 下载 ndk 后,输入 python ./build.py all
就可以开始编译
注:命令行窗口最好是以管理员的方式打开,不然会有 bug.
测试及调试
安装编译后的 magisk, 如图
Android Studio 调试
1. 点击 Android Studio 右上方的 Attach
2. 选择 magisk 并附加
查看 magiskinit 日志
1 | adb shell |
1 | su |
1 | dmesg | grep magiskinit |