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\Python37python路徑加到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\binjdk 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(面具)源码下载编译详细实战教程的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Mathematica
- 下一篇: ogr 缓冲区_OGR 数据模型
