欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Edxposed学习研究(四)Magisk(面具)源码下载编译详细实战教程

发布时间:2023/12/15 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Edxposed学习研究(四)Magisk(面具)源码下载编译详细实战教程 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

说明:本文操作在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/pcreurl = https://android.googlesource.com/platform/external/pcre ...省略

修改之后:

...省略 [submodule "pcre"]path = native/jni/external/pcreurl = 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下载源:

年轻人不讲武德之Android Studio中gradle文件下载慢解决办法

二、源码编译环境配置

(1)、安装python 3.7及以上版本,并将python加到系统PATH环境变量。比如python路径:

C:\Users\Qiang\AppData\Local\Programs\Python\Python37

python路径加到PATH环境变量之后如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KgItiRmO-1610934112638)(https://imgkr2.cn-bj.ufileos.com/e48f52b7-dcbc-42e6-aecf-4bf2877e2477.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=f9iyZsNlvOuTaOudhqqIXL1QKeg%253D&Expires=1610969310)]

(2)、安装JDK并配置jdk中bin所在路径到系统PATH环境变量,比如jdk bin路径:

C:\Program Files\Java\jdk1.8.0_74\bin

jdk bin加到PATH环境变量之后如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QNIei68q-1610934112642)(https://imgkr2.cn-bj.ufileos.com/33075d00-d14a-424f-ad49-fe5034a94412.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=7%252BJ5X4g9vijFxLjKKgJ0kXy8XHI%253D&Expires=1610969314)]

(3)、添加环境变量ANDROID_SDK_ROOT,并设置值为android studio配置的sdk路径。

Magisk同步完成之后,可以在Magisk工程根目录文件"local.properties"中获取sdk路径,比如local.properties可能的sdk路径配置:

...省略 sdk.dir=C\:\\Users\\Qiang\\AppData\\Local\\Android\\Sdk ...省略

配置之后如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zN8P2jFt-1610934112644)(https://static01.imgkr.com/temp/b935b44696134d629f1f1b484b2f6fca.png)]

三、编译Magisk工程

编译之前首先用Android studio打开Magisk工程。并打开Android Studio "Terminal"终端,并在终端切换到Magisk源码根目录。如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FzZ96O11-1610934112646)(https://static01.imgkr.com/temp/be42cde6112d45eeb925f28311ac5800.png)]

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 scriptoptional arguments:-h, --help show this help message and exit-r, --release compile in release mode-v, --verbose verbose output-c CONFIG, --config CONFIGcustom config file (default: config.prop)actions:{all,binary,app,stub,snet,zip,uninstaller,clean,ndk}all build binaries, apks, zipsbinary build binariesapp build Magisk Managerstub build stub Magisk Managersnet build snet extensionzip zip Magisk into a flashable zipuninstaller create flashable uninstallerclean cleanupndk 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指向的根目录。如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gCKqNm7z-1610934112648)(https://static01.imgkr.com/temp/1b1702375b9347b4a5e9b01d24518cc5.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3akLu9TO-1610934112649)(https://imgkr2.cn-bj.ufileos.com/a044d89c-b6d3-4fcd-9a3e-1cfc4df7383b.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=w7UWIJEFQgKqUUSqMcsa6kUzMQg%253D&Expires=1610970376)]

(2)、执行如下命令编译Magisk相关的模块

E:\workspace\androidstudio\EdXposedProj\20210109\Magisk>build.py all* Building Magisk Manager stub

编译完成之后,在Magisk工程根目录out文件中可以看到生成的Magisk刷机包。如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IRAFy6aE-1610934112649)(https://imgkr2.cn-bj.ufileos.com/9727d225-995d-40fc-8bd6-fd30eefa84e6.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=Con0Qq9fYVE9jUQfO9zDg1Ex1uQ%253D&Expires=1610970690)]

Magisk刷机包编译完成之后,就可以使用twrp刷入到手机设备。Magisk刷入手机可以参考如下文章:
Edxposed学习研究(一)手把手教你安装Edxposed

上一篇Edxposed学习研究(三)免Magisk使用adb命令安装Edxposed

Edxposed学习研究相关文章:

Edxposed学习研究(一)手把手教你安装Edxposed

Edxposed学习研究(二)手把手编译Riru和Edxposed工程源码

Edxposed学习研究(三)免Magisk使用adb命令安装Edxposed

专注安卓系统、安卓ndk开发、安卓应用安全和逆向分析相关等IT知识分享,系统定制、frida、xposed(sandhook、edxposed)系统集成、加固、脱壳等等。微信搜索公众号"QDOIRD88888"或者扫描以下二维码关注公众号。第一时间接收更新文章。

总结

以上是生活随笔为你收集整理的Edxposed学习研究(四)Magisk(面具)源码下载编译详细实战教程的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。