文章总结: 本文详解Windows平台下载与编译Magisk源码的完整流程。针对国内无法访问谷歌源的问题,指导读者修改.gitmodules和.git/config文件将pcre子模块地址替换为清华镜像以完成源码同步。随后说明环境配置步骤,包括安装Python3.7、JDK1.8及设置ANDROID_SDK_ROOT环境变量。最后通过执行build.py脚本自动配置NDK并编译出可刷机的Magisk包,为安卓安全研究提供实用环境搭建指南。 综合评分: 73 文章分类: 逆向分析,移动安全,安全工具
Riru&Edxposed学习研究(四)Magisk(面具)源码下载编译详细实战教程
哆啦安全
2021年8月9日 08:34
在小说阅读器读本章
去阅读
以下文章来源于卓码星球 ,作者QDroid88888
卓码星球 .
专注安卓系统研究开发定制、安卓ndk开发、安卓应用安全和逆向分析、模拟器、刷机交流等相关知识分享等等。
说明:本文操作在Windows 平台实现。
一、Magisk源码下载
在终端执行如下git命令下载Magisk源码。
E:\workspace\androidstudio\EdXposedProj\20210109>git clone --recurse-submodules https://github.com/topjohnwu/Magisk.git
以上命令执行完成之后,pcre模块会下载失败。是由于Magisk子模块”pcre“是从”https://android.googlesource.com/“下载,国内不能访问”https://android.googlesource.com/“。解决办法是把下载的地址改成清华源。
(1)、在Magisk源码根目录中修改.gitmodules的下载url。
文件路径为:
E:\workspace\androidstudio\EdXposedProj\20210109\Magisk\.gitmodules
修改之前:
...省略
[submodule "pcre"]
path = native/jni/external/pcre
url = https://android.googlesource.com/platform/external/pcre
...省略
修改之后:
...省略
[submodule "pcre"]
path = native/jni/external/pcre
url = https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/external/pcre
...省略
(2)、在Magisk源码根目录.git目录中修改config文件的下载url。
文件路径为:
E:\workspace\androidstudio\EdXposedProj\20210109\Magisk\.git\config
修改之前:
...省略
[submodule "pcre"]
url = https://android.googlesource.com/platform/external/pcre
[submodule "selinux"]re
...省略
修改之后:
...省略
[submodule "pcre"]
url = https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/external/pcre
...省略
(3)、在Magisk源码根目录执行git submodule命令下载子模块
参考命令如下:
E:\workspace\androidstudio\EdXposedProj\20210109\Magisk>git submodule update --init --recursive
Submodule path 'native/jni/external/pcre': checked out '986dc24ace8aea66189a95510813747155fa3800'
源码同步完成之后就可以用android studio加载Magisk工程源码了。如果同步过程中出现问题,可以配置maven下载源为aliyun试一下。
二、源码编译环境配置
(1)、安装python 3.7及以上版本,并将python加到系统PATH环境变量。比如python路径:
C:\Users\Qiang\AppData\Local\Programs\Python\Python37
(2)、安装JDK并配置jdk中bin所在路径到系统PATH环境变量,比如jdk bin路径:
C:\Program Files\Java\jdk1.8.0_74\bin
jdk bin加到PATH环境变量。
(3)、添加环境变量ANDROID_SDK_ROOT,并设置值为android studio配置的sdk路径。
Magisk同步完成之后,可以在Magisk工程根目录文件”local.properties”中获取sdk路径,比如local.properties可能的sdk路径配置:
...省略
sdk.dir=C\:\\Users\\Qiang\\AppData\\Local\\Android\\Sdk
...省略
配置之后如下图所示:
三、编译Magisk工程
编译之前首先用Android studio打开Magisk工程。并打开Android Studio “Terminal“终端,并在终端切换到Magisk源码根目录。如下所示:
Magisk工程中提供了脚本”build.py“来构建Magisk模块,终端执行”build.py“命令可以查看提供的编译命令参数。如下所示:
E:\workspace\androidstudio\EdXposedProj\20210109\Magisk>build.py
usage: build.py [-h] [-r] [-v] [-c CONFIG]
{all,binary,app,stub,snet,zip,uninstaller,clean,ndk} ...
Magisk build script
optional arguments:
-h, --help show this help message and exit
-r, --release compile in release mode
-v, --verbose verbose output
-c CONFIG, --config CONFIG
custom config file (default: config.prop)
actions:
{all,binary,app,stub,snet,zip,uninstaller,clean,ndk}
all build binaries, apks, zips
binary build binaries
app build Magisk Manager
stub build stub Magisk Manager
snet build snet extension
zip zip Magisk into a flashable zip
uninstaller create flashable uninstaller
clean cleanup
ndk setup Magisk NDK
(1)、如果是第一次编译,执行如下命令安装”ndk”编译环境。
E:\workspace\androidstudio\EdXposedProj\20210109\Magisk>build.py ndk
* Downloading android-ndk-r21d-windows-x86_64.zip
执行完成之后,ndk会被安装到ANDROID_SDK_ROOT指向的根目录。如下所示:
(2)、执行如下命令编译Magisk相关的模块
E:\workspace\androidstudio\EdXposedProj\20210109\Magisk>build.py all
* Building Magisk Manager stub
编译完成之后,在Magisk工程根目录out文件中可以看到生成的Magisk刷机包。如下所示:
Magisk刷机包编译完成之后,就可以使用twrp刷入到手机设备。Magisk刷入手机可以参考如下文章:
“Riru&Edxposed学习研究(一)手把手教你安装Edxposed”
点击屏末| 阅读原文 | 获取更多文章列表信息
扫描下方二维码关注公众号
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:哆啦安全 《Riru&Edxposed学习研究(四)Magisk(面具)源码下载编译详细实战教程》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论