说明:本文操作在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环境变量之后如下所示:

(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 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指向的根目录。如下所示:

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

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

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

Magisk刷机包编译完成之后,就可以使用twrp刷入到手机设备。Magisk刷入手机可以参考如下文章:

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

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

Edxposed学习研究相关文章:

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

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

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

每天阅读分享的文章,是您最大的支持,还未关注微信公众号的各位大佬们留个关注再走呗,后续每天会分享安全研究、Android系统源码定制开发等精彩文章

Edxposed研究之Magisk源码下载编译的详细实战教程相关推荐

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

    说明:本文操作在Windows 平台实现. 一.Magisk源码下载 在终端执行如下git命令下载Magisk源码. E:\workspace\androidstudio\EdXposedProj\2 ...

  2. Android AOSP和Android-X86源码下载编译终极普法

        Android AOSP和Android-X86源码下载编译终极普法 引言   最近有朋友在询问怎么下载Android AOSP源码和Android-X86源码,编译学习!其实这个说简单也简单 ...

  3. Ubuntu20.4 Android-9.0.0_r46源码下载编译

    Ubuntu20.4 Android-9.0.0_r46源码下载编译调试 安装Ubuntu虚拟机 ubuntu镜像下载地址: https://ubuntu.com/download 官网下载地址较慢可 ...

  4. Android FrameWork学习(一)Android 7 0系统源码下载 编译

    最近计划着研究下 Android 7.0 的系统源码,之前也没做过什么记录,这次正好将学习的内容记录下来,方便以后复习巩固. 既然要学习我们的系统源码,那我们第一步要做的就是下载源码并进行编译了. # ...

  5. android 源码下载编译

    引用:http://www.2cto.com/kf/201202/121175.html 最新的android4.0源代码公布以后,相信很多人和我一样都跃跃欲试,其实4.0的代码下载和编译和以前的版本 ...

  6. linux编译android源码,ubuntu16.04 Android源码下载编译

    本次编译源码的电脑为Ubuntu 16.04,4核 + 4G内存. 注. 对于电脑配置低的建议不要编译7.0以上的版本,就像我这台电脑,基本编译7.0以上都会报内存不足问题,因为在7.0版以上andr ...

  7. Android FrameWork学习(一)Android 7.0系统源码下载\编译

    重点内容 转载. http://blog.csdn.net/cjpx00008/article/details/60474883 硬件环境要求 1. 编译环境 按照官方的说法,编译Android 2. ...

  8. spring源码下载编译

    环境准备 spring源码 下载地址: Git->https://github.com/spring-projects/spring-framework.git gitee->https: ...

  9. android源码下载,编译及编译时遇到的错误整理

    一.环境搭建 因为android的源码编译只支持linux和mac,所以无法在windows下编译.我的电脑也没有双系统,因此只有装一个虚拟机.我用的是VMware workstation 我放到了百 ...

  10. android源码编译烧鸡,android4.0源码下载 编译 系统体验~图解

    近来着眼于ANDROID4.0的关注与研究,第一时间把ANDROID4.0源码下 下来了,只是时间问题,所以没能第一时间把过程记录下来,今天算是富裕点时间就给写下来,希望能给灼热于ANDROID继续平 ...

最新文章

  1. MongoDB限制与阈值
  2. ThinkPHP模型连接数据库 查询 ajax
  3. 大佬写的orm框架,mark一下稍后阅读
  4. python 函数调用列表_python – 根据列表中的字符串调用函数
  5. 创建sprite 组
  6. 肯德基champs各个字母代表什么_百度知道
  7. 安卓模拟器按键_51模拟器app下载|51模拟器 3.2.1.2 最新版
  8. 自建服务器好还是外包,自建与外包对比:如何使你的IT回归内部
  9. 威5创非凡,领航再出击 | 新华三集团成立五周年庆
  10. 多可文档管理系统的手机版
  11. uniapp兼容ipad平板配置
  12. 汽车微控制器芯片F280039CPZRQ1、F280039CSPM、F280039CSPN规格参数
  13. tar 解压出指定文件
  14. 【ParaView教程】第四章 常见问题 —— 怎样在ParaView中将颜色预设默认设为Blue to Red Rainbow?
  15. 【计算理论】计算复杂性 ( NP 完全问题 - 布尔可满足性问题 ★ | 布尔可满足性问题是 NP 完全问题证明思路 ) ★
  16. Linux实时操作系统Xenomai的一小时半入门视频推荐
  17. MCDF中arbiter的轮询机制
  18. 一级b类计算机知识点,全国计算机一级B考试知识点与试题(个人观点)
  19. 软件测试入职第一天,如何快速适应上手?3000字经验总结
  20. 【二次开发】CityMaker常见分析——通视分析

热门文章

  1. 【华为机试题 HJ91】走方格的方案数
  2. 移动通信基础(4)信道模型
  3. 《自己动手写网络爬虫》笔记4-带偏好的网络爬虫
  4. ecshop ectouch 不支持html,ECShop上传的商品图片在ECTouch不能显示,怎么解决
  5. HDTunePro v5.00 硬盘专业工具(绿色版)
  6. 布线问题_分支限界法
  7. win10升级win11教程(包含TPM2.0的设置以及OfflineInsiderEnroll工具)
  8. 在设计四人抢答器中灯全亮_四人智力竞赛抢答器最终版(资料4)
  9. 两台电脑怎么互传文件?用它就能搞定!
  10. FTP 530未登录