注:この記事の操作は、Windowsプラットフォームに実装されています。
1.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ディレクトリにある設定ファイルのダウンロード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'
ソースコードの同期が完了したら、androidstudioを使用してMagiskプロジェクトのソースコードを読み込むことができます。同期プロセス中に問題が発生した場合は、次の記事を参照してMavenダウンロードソースを構成できます。
武道について話さない若者のために、AndroidStudioでgradleファイルのダウンロードを遅くするソリューション
2、ソースコードコンパイル環境の構成
(1)python 3.7以降をインストールし、システムPATH環境変数にpythonを追加します。たとえば、Pythonパスは次のとおりです。
C:\Users\Qiang\AppData\Local\Programs\Python\Python37
以下に示すように、PythonパスがPATH環境変数に追加されます。
(2)JDKをインストールし、jdkのbinのパスをjdk binpathなどのシステムPATH環境変数に構成します。
C:\Program Files\Java\jdk1.8.0_74\bin
jdk binがPATH環境変数に追加されると、次のようになります。
(3)環境変数ANDROID_SDK_ROOTを追加し、androidstudioで設定したSDKパスに値を設定します。
Magiskの同期が完了すると、SDKパスはMagiskプロジェクトのルートディレクトリファイル「local.properties」で取得できます。たとえば、local.propertiesの可能なSDKパス構成は次のとおりです。
...省略
sdk.dir=C\:\\Users\\Qiang\\AppData\\Local\\Android\\Sdk
...省略
次の図に示すように、構成後:
3、Magiskプロジェクトをコンパイルします
コンパイルする前に、最初に開くMagiskのプロジェクトをとAndroidのスタジオ。そして、Android Studioの 「ターミナル」ターミナルを開き、ターミナルのMagiskソースコードルートディレクトリに切り替えます。次のように:
スクリプト「build.py」は、Magiskモジュールをビルドするために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フラッシュパッケージがMagiskプロジェクトのルートディレクトリのoutファイルに表示されます。次のように:
Magiskフラッシュパッケージがコンパイルされた後、twrpを使用してモバイルデバイスにフラッシュできます。Magiskが電話に点滅する方法については、次の記事を参照してください。
Edxposed学習研究(1)はEdxposedをインストールする方法を教えます
前の記事Edxposed学習研究(3)adbコマンドを使用してMagiskなしでEdxposedをインストールする
Edxposed学習研究関連記事:
Edxposed学習研究(1)はEdxposedをインストールする方法を教えます
Edxposed学習研究(2)RiruおよびEdxposedプロジェクトのソースコードを手作業でコンパイルする
Edxposed学習研究(3)無料のMagiskがadbコマンドを使用してEdxposedをインストールする
共有記事を毎日読むことはあなたの最大のサポートです。WeChatパブリックアカウントに注意を払っていない大物は、出発する前に注意を払います。セキュリティ研究、Androidシステムのソースコードのカスタマイズ、開発などの素晴らしい記事を毎日共有します。 。