Magisk is a set of open source tools for customizing Android for devices beyond Android 5.0 (Magisk 23.0 based). It covers the basics of Android customization: root, boot scripts, SELinux patching, removing AVB2.0 / DM-verity/forced encryption, etc.

Here are some basic features:

MagiskSU: provides the root permission of the device. MagiskModules: Modify read-only partitions by installing modules. MagiskHide: The ability to hide Magisk from root detection or system integrity detection MagiskBoot: a very complete set of tools for unpacking and automatically packing Android boot image (boot.img).

Preparation before compilation

Magisk can compile on any platform that supports Android Studio. This is the developer’s exact words, but I’ve tested it using IntelliJ IDEA and it works. So you need to install the latest version of Android Studio or IntelliJ IDEA. (Since the version of Android Gradle plugin (AGP) in this project is always up to date, it is recommended to update Android Studio to the latest version. Otherwise, the Android Studio version is too old when you open the project.) Install Python 3.6+ (Windows: check ‘Add Python to PATH’ and run PIP install colorama)

The configuration steps

First, use Git to clone the source code :(remember to include recurse-submodules arguments, otherwise compile will fail due to missing library files)

git clone --recurse-submodules https://github.com/topjohnwu/Magisk.git
Copy the code

Take the Kali Linux virtual machine environment I personally use as an example:

┌ ─ ─ (root kali) - [/] └ ─ # git clone - recurse - submodules are cloned to https://github.com/topjohnwu/Magisk.git 'Magisk'... remote: Enumerating objects: 62787, done. remote: Counting objects: 100% (872/872), done. remote: Compressing objects: Remote: Total 62787 (Delta 409), Reused 759 (Delta 331), Pack-Flue 61915 100% (62787/62787) and 52.55 MiB | KiB/s, 211.00. Processing delta: 100% (38854/38854), complete. Son modules' busybox '(https://github.com/topjohnwu/ndk-busybox.git) has the path' native/jni/external/busybox 'registration module 'bzip2' (https://github.com/nemequ/bzip2.git) has been on the path 'native/jni/external/bzip2' registration module 'DTC (https://github.com/dgibson/dtc.git) has been on the path' native/jni/external/DTC 'registration module 'libcxx' (https://github.com/topjohnwu/libcxx.git) has been on the path 'native/jni/external/libcxx' registration module 'lz4' (https://github.com/lz4/lz4.git) has been on the path 'native/jni/external/lz4' registration module 'mincrypt' (https://github.com/topjohnwu/mincrypt.git) has been on the path 'native/jni/external/mincrypt' registration module 'nanopb' (https://github.com/nanopb/nanopb.git) has been on the path 'native/jni/external/nanopb' registration module 'pcre' (https://android.googlesource.com/platform/external/pcre) has been on the path 'native/jni/external/pcre' registration module 'selinux' (https://github.com/topjohnwu/selinux.git) has been on the path 'native/jni/external/selinux' registration module 'xhook' (https://github.com/iqiyi/xHook.git) has been on the path 'native/jni/external/xhook' registration module 'xz' (https://github.com/xz-mirror/xz.git) has registered submodules for path 'native/jni/external/xz' 'zlib' (https://android.googlesource.com/platform/external/zlib) has been on the path 'native/jni/external/zlib' registration module 'termux - elf - the cleaner' (https://github.com/termux/termux-elf-cleaner.git) has been on the path 'tools/termux - elf - the cleaner is clone to the registration '/Magisk/native/jni/external/busybox'... remote: Enumerating objects: 111657, done. remote: Counting objects: 100% (3015/3015), done. remote: Compressing objects: 100% (1110/1110), done. remote: Total 111657 (Delta 2065), Reused 2390 (Delta 1878), Pack-Flue 108642 100% (111657/111657) and 31.97 MiB | KiB/s, 581.00. Processing delta: 100% (88773/88773), done. Are cloned to '/ Magisk/native/jni/external/libcxx'... remote: Enumerating objects: 8419, done. remote: Counting objects: 100% (8419/8419), done. remote: Compressing objects: Remote: Total 8419 (delta 3852), In Flue 8419 (delta 3852), Pack-flue 0 100% (8419/8419) and 4.19 MiB | KiB/s, 503.00. Processing delta: 100% (3852/3852), done. Are cloned to '/ Magisk/native/jni/external/nanopb'... remote: Enumerating objects: 7820, done. remote: Counting objects: 100% (236/236), done. remote: Compressing objects: In Flue 199 (delta 98), Pack-Flue 7584 100% (7820/7820) and 3.93 MiB | KiB/s, 162.00. Processing delta: 100% (5053/5053), done. Are cloned to '/ Magisk/native/jni/external/selinux'... Remote: Total 21280 (delta 0), Goh 0 (delta 0), Pack-GOH 21280 100% (21280/21280) and 11.78 MiB | KiB/s, 541.00. Processing delta: 100% (15644/15644), done. Are cloned to '/ Magisk/native/jni/external/xhook'... Remote: Enumerating Objects in Flue: 901, Done. Remote: Total 901 (delta 0), Reused 0 (delta 0), Pack-Flue 901 100% (901/901) and 836.34 KiB | KiB/s, 287.00. Processing delta: 100% (450/450), done. Are cloned to '/ Magisk/native/jni/external/xz'... remote: Enumerating objects: 10683, done. remote: Counting objects: 100% (221/221), done. remote: Compressing objects: In Flue 154 (Delta 104), Pack-flue 10462 100% (10683/10683) and 2.76 MiB | KiB/s, 252.00. Processing delta: 100% (8103/8103), done. /Magisk/tools/ Termux-ELf-cleaner '... remote: Enumerating objects: 45, done. remote: Counting objects: 100% (3/3), done. remote: Compressing objects: Remote: Total 45 (delta 0), Flue 1 (delta 0), Pack-flue 42 100% (45/45) and 24.93 KiB | KiB/s, 135.00. Processing delta: 100% (18/18), done. Are cloned to '/ Magisk/native/jni/external/bzip2'... Fatal: can't access 'https://github.com/nemequ/bzip2.git/' : GnuTLS recv error (54) : error in the pull function. fatal: Can't clone 'https://github.com/nemequ/bzip2.git' to the sub module path '/ Magisk/native/jni/external/bzip2' second attempt at cloning 'native/jni/external/bzip2' failure, exitCopy the code

Git submodule update -f git submodule update -f

┌ ─ ─ (root kali) - [/ Magisk] └ ─ # git submodule update are cloned to '/ Magisk/native/jni/external/bzip2'... Are cloned to '/ Magisk/native/jni/external/DTC'... Are cloned to '/ Magisk/native/jni/external/lz4'... ┌ ─ ─ (root kali) - [/ Magisk] └ ─ # git submodule update - f sub module path 'native/jni/external/busybox: Checkout '84 ce191c8e3e69869617991c275f1b724422c604 child module path' native/jni/external/bzip2: Checkout '67 d818584d505503c2bdbd15aec43e6219642762 child module path' native/jni/external/DTC ': Checkout 'd37f6b20107e952064e3f77e9d6915a9c09d10a6 child module path' native/jni/external/libcxx ': Checkout 'f61fcee091736dd0ae38670876157e9862ac6ff8 child module path' native/jni/external/lz4 ': Checkout 'fdf2ef5809ca875c454510610764d9125ef2ebbd child module path' native/jni/external/mincrypt ': Checkout '1 f355c50a4025a3549cbeeb6cb29b639d8721323 child module path' native/jni/external/nanopb ': Checkout '1466 e6f953835b191a7f5acf0c06c941d4cd33d9 child module path' native/jni/external/pcre: Checkout '986 dc24ace8aea66189a95510813747155fa3800 child module path' native/jni/external/selinux ': Checkout '969114 cff6ee973f47a3c84cacdef77e504d7bd9 child module path' native/jni/external/xhook ': Checkout '9180 bd74098fd41f808d3968e2e52b4f5db92c99 child module path' native/jni/external/xz: Checkout 'b5be61cc06088bb07f488f9baf7d447ff47b37c1 child module path' native/jni/external/zlib ': Checkout '3 a0aa2b3df38ad6298f91c4d8afef708bb4f088e child module path' tools/termux - elf - the cleaner ': Check out the '334 efd1923c563e19d00e655dfbfb2f9f7031bb1'Copy the code

Android Studio or IDEA comes with a JDK when you install it, and the authors recommend that you configure the JDK for your system as such. But if you already have another JDK installed and it works, you can skip this step. Gradle also needs to start a Java development kit (JDK) process that consumes a lot of memory when compiling Gradle.

MacOS: export JAVA_HOME = "/ Applications/Android Studio. The app/Contents/jre/JDK/Contents/Home" Linux: (the Path \ To be replaced with your own Path) export Path = "/ Path/To/androidstudio/jre/bin: $Path" Windows: Add C:\ PATH \To\Android Studio\jre\bin To the PATH item of the system variable. (Replace Path\To with your own Path)Copy the code

Add a new environment variable to the system: ANDROID_SDK_ROOT path to your Android SDK’s storage path. (This configuration can be found in Android Studio or IDEA options)

Linux/MacOS: export ANDROID_SDK_ROOT="/ Path/To /Android/Sdk" Windows: Add ANDROID_SDK_ROOT to the system variable and set the variable value to your Android SDK path.Copy the code

Since Magisk requires a special Android NDK to compile, you need to first execute./build.py NDK in the root directory of the repository. The Python script will automatically download, unzip, and configure the NDK.

Linux/MacOS: ┌ ─ ─ (root kali) - [/ Magisk] └ ─ #. / build. Py the NDK Windows: (add python, behind no longer described) ⚡ E: / Magisk > python build. Py the NDKCopy the code

Run build.py to see compilation options. If your environment variable is incorrectly configured, an error will be reported. For each action, use -h to see more help.

Chrysene ─(root kali)-[/Magisk] ├ ─#./build. build.py [-h] [-r] [-v] [-c CONFIG] {all,binary,app,stub,snet,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,clean,ndk} all build everything binary build binaries app build the Magisk app stub build stub  APK snet build snet extension clean cleanup ndk setup Magisk NDKCopy the code

Briefly describe the project structure. The project is divided into four parts (see… / docs/tools. Md) :

/ Stub APK part /app part /native C/C++ part, which contains 8 utilities (included in four binaries compiled by NDK), Magisk, Magiskboot, Magiskinit, busybox) snet extension of source code must be placed on/stub/SRC/main/Java/com/topjohnwu/snet to compile properly, the default will not compile the content. magiskboot /* binary */ magiskinit /* binary */ magiskpolicy -> magiskinit supolicy -> magiskinit magisk /* binary */ magiskhide -> magisk resetprop -> magisk su -> magiskCopy the code

How to compile using the Configuration options of Android Studio or IDEA: After opening the project in Android Studio or IDEA, click “Add Configuration” in the upper right navigation bar, then select “Add New Running Configuration”, and select “Python” from the menu that pops up. (Note: If you do not have this option, you will need to go to “File” => Settings “=>” plug-ins “to search and install the” Python Community Edition “plug-in)

Click “Add New Running Configuration” as shown:

Set the script path and Python interpreter path as shown in the edit window, and add the ANDROID_SDK_ROOT path to your Android SDK storage path in the environment variable. Finally, click the app in the lower right corner to save the configuration:

Set the path

When the configuration is saved, it will show you the Python script configuration you have added under “Add Configuration”, and you can click “Run”. If you want to configure different compilation options, go back to the edit window, add the corresponding parameters in the script format in the parameters, and save the configuration.

Set parameters for full compilation using the build option build.py all. Example of output :(longer, skip directly)

/usr/bin/python3.9 /Magisk/build.py -v all

* Building stub APK

Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
> Task :buildSrc:compileKotlin UP-TO-DATE
> Task :buildSrc:compileJava NO-SOURCE
> Task :buildSrc:compileGroovy NO-SOURCE
> Task :buildSrc:pluginDescriptors UP-TO-DATE
> Task :buildSrc:processResources UP-TO-DATE
> Task :buildSrc:classes UP-TO-DATE
> Task :buildSrc:inspectClassesForKotlinIC UP-TO-DATE
> Task :buildSrc:jar UP-TO-DATE
> Task :buildSrc:assemble UP-TO-DATE
> Task :buildSrc:compileTestKotlin NO-SOURCE
> Task :buildSrc:pluginUnderTestMetadata UP-TO-DATE
> Task :buildSrc:compileTestJava NO-SOURCE
> Task :buildSrc:compileTestGroovy NO-SOURCE
> Task :buildSrc:processTestResources NO-SOURCE
> Task :buildSrc:testClasses UP-TO-DATE
> Task :buildSrc:test NO-SOURCE
> Task :buildSrc:validatePlugins UP-TO-DATE
> Task :buildSrc:check UP-TO-DATE
> Task :buildSrc:build UP-TO-DATE

> Configure project :app
WARNING:: The option setting 'android.enableR8.fullMode=true' is experimental.
The current default is 'false'.

> Task :stub:preBuild UP-TO-DATE
> Task :app:shared:preBuild UP-TO-DATE
> Task :app:shared:preReleaseBuild UP-TO-DATE
> Task :stub:extractProguardFiles UP-TO-DATE
> Task :stub:preReleaseBuild UP-TO-DATE
> Task :app:shared:compileReleaseAidl NO-SOURCE
> Task :app:shared:packageReleaseRenderscript NO-SOURCE
> Task :stub:generateReleaseBuildConfig UP-TO-DATE
> Task :stub:compileReleaseAidl NO-SOURCE
> Task :app:shared:writeReleaseAarMetadata UP-TO-DATE
> Task :stub:compileReleaseRenderscript NO-SOURCE
> Task :app:shared:compileReleaseRenderscript NO-SOURCE
> Task :stub:javaPreCompileRelease UP-TO-DATE
> Task :app:shared:generateReleaseResValues UP-TO-DATE
> Task :app:shared:generateReleaseResources UP-TO-DATE
> Task :stub:writeReleaseApplicationId UP-TO-DATE
> Task :stub:analyticsRecordingRelease
> Task :app:shared:packageReleaseResources UP-TO-DATE
> Task :app:shared:extractDeepLinksRelease UP-TO-DATE
> Task :stub:checkReleaseAarMetadata UP-TO-DATE
> Task :stub:generateReleaseResValues UP-TO-DATE
> Task :stub:generateReleaseResources UP-TO-DATE
> Task :app:shared:processReleaseManifest UP-TO-DATE
> Task :stub:mergeReleaseResources UP-TO-DATE
> Task :app:shared:compileReleaseLibraryResources UP-TO-DATE
> Task :stub:createReleaseCompatibleScreenManifests UP-TO-DATE
> Task :stub:extractDeepLinksRelease UP-TO-DATE
> Task :app:shared:parseReleaseLocalResources UP-TO-DATE
> Task :stub:processReleaseMainManifest UP-TO-DATE
> Task :stub:processReleaseManifest UP-TO-DATE
> Task :stub:processReleaseManifestForPackage UP-TO-DATE
> Task :stub:mergeReleaseJniLibFolders UP-TO-DATE
> Task :app:shared:generateReleaseRFile UP-TO-DATE
> Task :stub:mergeReleaseShaders UP-TO-DATE
> Task :app:shared:generateReleaseBuildConfig UP-TO-DATE
> Task :app:shared:javaPreCompileRelease UP-TO-DATE
> Task :stub:processReleaseResources UP-TO-DATE
> Task :stub:compileReleaseShaders NO-SOURCE
> Task :stub:generateReleaseAssets UP-TO-DATE
> Task :app:shared:compileReleaseJavaWithJavac UP-TO-DATE
> Task :app:shared:bundleLibCompileToJarRelease UP-TO-DATE
> Task :stub:checkReleaseDuplicateClasses UP-TO-DATE
> Task :app:shared:prepareLintJarForPublish UP-TO-DATE
> Task :app:shared:processReleaseJavaRes NO-SOURCE
> Task :app:shared:bundleLibResRelease NO-SOURCE
> Task :app:shared:mergeReleaseJniLibFolders UP-TO-DATE
> Task :app:shared:mergeReleaseNativeLibs NO-SOURCE
> Task :app:shared:stripReleaseDebugSymbols NO-SOURCE
> Task :stub:compileReleaseJavaWithJavac UP-TO-DATE
> Task :stub:compileReleaseSources UP-TO-DATE
> Task :app:shared:copyReleaseJniLibsProjectOnly UP-TO-DATE
> Task :app:shared:mergeReleaseShaders UP-TO-DATE
> Task :app:shared:compileReleaseShaders NO-SOURCE
> Task :app:shared:generateReleaseAssets UP-TO-DATE
> Task :app:shared:packageReleaseAssets UP-TO-DATE
> Task :app:shared:mergeReleaseGeneratedProguardFiles UP-TO-DATE
> Task :app:shared:exportReleaseConsumerProguardFiles UP-TO-DATE
> Task :app:shared:bundleLibRuntimeToJarRelease UP-TO-DATE
> Task :stub:lintVitalRelease
> Task :stub:mergeReleaseNativeLibs UP-TO-DATE
> Task :stub:stripReleaseDebugSymbols NO-SOURCE
> Task :stub:extractReleaseNativeSymbolTables NO-SOURCE
> Task :stub:mergeReleaseNativeDebugMetadata NO-SOURCE
> Task :stub:mergeReleaseAssets UP-TO-DATE
> Task :stub:compressReleaseAssets UP-TO-DATE
> Task :stub:mergeReleaseGeneratedProguardFiles UP-TO-DATE
> Task :stub:processReleaseJavaRes NO-SOURCE
> Task :stub:mergeReleaseJavaResource UP-TO-DATE
> Task :stub:minifyReleaseWithR8 UP-TO-DATE
> Task :stub:optimizeReleaseResources UP-TO-DATE
> Task :stub:validateSigningRelease UP-TO-DATE
> Task :stub:writeReleaseAppMetadata UP-TO-DATE
> Task :stub:writeReleaseSigningConfigVersions UP-TO-DATE
> Task :stub:packageRelease
> Task :stub:assembleRelease

BUILD SUCCESSFUL in 3s
50 actionable tasks: 3 executed, 47 up-to-date
mv stub/build/outputs/apk/release/stub-release.apk -> out/stub-release.apk

Output: out/stub-release.apk


* Building binaries: magisk magiskinit magiskboot busybox

[armeabi-v7a] Compile++ thumb: magisk <= magisk.cpp
[armeabi-v7a] Compile++ thumb: magisk <= applets.cpp
[armeabi-v7a] Compile++ thumb: magisk <= socket.cpp
[armeabi-v7a] Compile++ thumb: magisk <= restorecon.cpp
[armeabi-v7a] Compile++ thumb: magisk <= scripting.cpp
[armeabi-v7a] Compile++ thumb: magisk <= bootstages.cpp
[armeabi-v7a] Compile++ thumb: magisk <= db.cpp
[armeabi-v7a] Compile++ thumb: magisk <= daemon.cpp
[armeabi-v7a] Compile++ thumb: magisk <= magiskhide.cpp
[armeabi-v7a] Compile++ thumb: magisk <= hide_policy.cpp
[armeabi-v7a] Compile++ thumb: magisk <= persist_properties.cpp
[armeabi-v7a] Compile++ thumb: magisk <= su.cpp
[armeabi-v7a] Compile++ thumb: magisk <= module.cpp
[armeabi-v7a] Compile++ thumb: magisk <= connect.cpp
[armeabi-v7a] Compile++ thumb: magisk <= resetprop.cpp
[armeabi-v7a] Compile++ thumb: magisk <= pts.cpp
[armeabi-v7a] Compile++ thumb: magisk <= hide_utils.cpp
[armeabi-v7a] Compile++ thumb: systemproperties <= context_node.cpp
[armeabi-v7a] Compile++ thumb: systemproperties <= contexts_serialized.cpp
[armeabi-v7a] Compile++ thumb: systemproperties <= prop_info.cpp
[armeabi-v7a] Compile++ thumb: systemproperties <= contexts_split.cpp
[armeabi-v7a] Compile++ thumb: systemproperties <= prop_area.cpp
[armeabi-v7a] Compile++ thumb: systemproperties <= system_properties.cpp
[armeabi-v7a] Compile++ thumb: magisk <= su_daemon.cpp
[armeabi-v7a] Compile++ thumb: systemproperties <= system_property_api.cpp
[armeabi-v7a] Compile++ thumb: utils <= new.cpp
[armeabi-v7a] Compile++ thumb: systemproperties <= system_property_set.cpp
[armeabi-v7a] Compile++ thumb: utils <= missing.cpp
[armeabi-v7a] Compile++ thumb: systemproperties <= property_info_parser.cpp
[armeabi-v7a] Compile++ thumb: utils <= logging.cpp
[armeabi-v7a] Compile++ thumb: magisk <= proc_monitor.cpp



[arm64-v8a] Compile++      : magisk <= socket.cpp
[arm64-v8a] Compile++      : magisk <= applets.cpp
[arm64-v8a] Compile++      : magisk <= magisk.cpp
[arm64-v8a] Compile++      : magisk <= scripting.cpp
[arm64-v8a] Compile++      : magisk <= restorecon.cpp
[arm64-v8a] Compile++      : magisk <= bootstages.cpp
[arm64-v8a] Compile++      : magisk <= magiskhide.cpp
[arm64-v8a] Compile++      : magisk <= db.cpp
[arm64-v8a] Compile++      : magisk <= daemon.cpp
[arm64-v8a] Compile++      : magisk <= hide_policy.cpp
[arm64-v8a] Compile++      : magisk <= module.cpp
[arm64-v8a] Compile++      : magisk <= pts.cpp
[arm64-v8a] Compile++      : magisk <= su.cpp
[arm64-v8a] Compile++      : magisk <= persist_properties.cpp
[arm64-v8a] Compile        : nanopb <= pb_common.c
[arm64-v8a] Compile        : nanopb <= pb_encode.c
[arm64-v8a] Compile        : nanopb <= pb_decode.c
[arm64-v8a] Compile++      : systemproperties <= context_node.cpp
[arm64-v8a] Compile++      : magisk <= hide_utils.cpp
[arm64-v8a] Compile++      : magisk <= connect.cpp
[arm64-v8a] Compile++      : systemproperties <= prop_info.cpp
[arm64-v8a] Compile++      : systemproperties <= contexts_serialized.cpp
[arm64-v8a] Compile++      : magisk <= resetprop.cpp
[arm64-v8a] Compile++      : systemproperties <= contexts_split.cpp
[arm64-v8a] Compile++      : systemproperties <= prop_area.cpp
[arm64-v8a] Compile++      : systemproperties <= system_property_api.cpp
[arm64-v8a] Compile++      : systemproperties <= system_properties.cpp
[arm64-v8a] Compile++      : systemproperties <= system_property_set.cpp
[arm64-v8a] Compile++      : utils <= new.cpp
[arm64-v8a] Compile++      : utils <= missing.cpp
[arm64-v8a] Compile++      : systemproperties <= property_info_parser.cpp
[arm64-v8a] Compile++      : utils <= logging.cpp
[arm64-v8a] Compile++      : magisk <= su_daemon.cpp


[x86] Compile++      : magisk <= applets.cpp
[x86] Compile++      : magisk <= restorecon.cpp
[x86] Compile++      : magisk <= magisk.cpp
[x86] Compile++      : magisk <= scripting.cpp
[x86] Compile++      : magisk <= socket.cpp
[x86] Compile++      : magisk <= bootstages.cpp
[x86] Compile++      : magisk <= magiskhide.cpp
[x86] Compile++      : magisk <= db.cpp
[x86] Compile++      : magisk <= daemon.cpp
[x86] Compile++      : magisk <= persist_properties.cpp
[x86] Compile++      : magisk <= hide_policy.cpp
[x86] Compile++      : magisk <= su.cpp
[x86] Compile++      : magisk <= module.cpp
[x86] Compile++      : magisk <= pts.cpp
[x86] Compile        : nanopb <= pb_common.c
[x86] Compile++      : magisk <= hide_utils.cpp
[x86] Compile        : nanopb <= pb_decode.c
[x86] Compile++      : systemproperties <= context_node.cpp
[x86] Compile        : nanopb <= pb_encode.c
[x86] Compile++      : systemproperties <= prop_info.cpp
[x86] Compile++      : systemproperties <= contexts_serialized.cpp
[x86] Compile++      : systemproperties <= contexts_split.cpp
[x86] Compile++      : magisk <= connect.cpp
[x86] Compile++      : systemproperties <= system_property_api.cpp
[x86] Compile++      : magisk <= resetprop.cpp
[x86] Compile++      : systemproperties <= prop_area.cpp
[x86] Compile++      : systemproperties <= system_property_set.cpp
[x86] Compile++      : systemproperties <= system_properties.cpp
[x86] Compile++      : systemproperties <= property_info_parser.cpp
[x86] Compile++      : utils <= missing.cpp
[x86] Compile++      : utils <= new.cpp
[x86] Compile++      : utils <= logging.cpp
[x86] Compile++      : magisk <= su_daemon.cpp
[x86] Compile++      : cxx <= any.cpp
[x86] Compile++      : utils <= stream.cpp
[x86] Compile++      : utils <= selinux.cpp
[x86] Compile++      : magisk <= proc_monitor.cpp
[x86] Compile++      : utils <= xwrap.cpp



[x86_64] Compile++      : magisk <= applets.cpp
[x86_64] Compile++      : magisk <= magisk.cpp
[x86_64] Compile++      : magisk <= socket.cpp
[x86_64] Compile++      : magisk <= scripting.cpp
[x86_64] Compile++      : magisk <= restorecon.cpp
[x86_64] Compile++      : magisk <= bootstages.cpp
[x86_64] Compile++      : magisk <= magiskhide.cpp
[x86_64] Compile++      : magisk <= db.cpp
[x86_64] Compile++      : magisk <= daemon.cpp
[x86_64] Compile++      : magisk <= hide_policy.cpp
[x86_64] Compile++      : magisk <= persist_properties.cpp
[x86_64] Compile++      : magisk <= module.cpp
[x86_64] Compile++      : magisk <= pts.cpp
[x86_64] Compile++      : magisk <= su.cpp
[x86_64] Compile        : nanopb <= pb_common.c
[x86_64] Compile        : nanopb <= pb_encode.c
[x86_64] Compile        : nanopb <= pb_decode.c
[x86_64] Compile++      : systemproperties <= context_node.cpp
[x86_64] Compile++      : magisk <= connect.cpp
[x86_64] Compile++      : systemproperties <= prop_info.cpp
[x86_64] Compile++      : systemproperties <= contexts_serialized.cpp
[x86_64] Compile++      : systemproperties <= contexts_split.cpp
[x86_64] Compile++      : magisk <= hide_utils.cpp
[x86_64] Compile++      : systemproperties <= prop_area.cpp
[x86_64] Compile++      : magisk <= resetprop.cpp
[x86_64] Compile++      : systemproperties <= system_property_api.cpp
[x86_64] Compile++      : utils <= new.cpp
[x86_64] Compile++      : systemproperties <= system_properties.cpp
[x86_64] Compile++      : systemproperties <= system_property_set.cpp
[x86_64] Compile++      : utils <= missing.cpp
[x86_64] Compile++      : systemproperties <= property_info_parser.cpp
[x86_64] Compile++      : magisk <= su_daemon.cpp
[x86_64] Compile++      : utils <= logging.cpp



[armeabi-v7a] StaticLibrary  : libmincrypt.a
[armeabi-v7a] StaticLibrary  : libnanopb.a
[armeabi-v7a] StaticLibrary  : libsystemproperties.a
[armeabi-v7a] StaticLibrary  : liblzma.a
[armeabi-v7a] StaticLibrary  : liblz4.a
[armeabi-v7a] StaticLibrary  : libutils.a
[armeabi-v7a] StaticLibrary  : libbz2.a
[armeabi-v7a] StaticLibrary  : libcxx.a
[armeabi-v7a] StaticLibrary  : libfdt.a
[armeabi-v7a] StaticLibrary  : libz.a
[armeabi-v7a] StaticLibrary  : libxz.a
[armeabi-v7a] StaticLibrary  : libsepol.a
[arm64-v8a] StaticLibrary  : libmincrypt.a
[arm64-v8a] StaticLibrary  : libnanopb.a
[arm64-v8a] StaticLibrary  : libsystemproperties.a
[arm64-v8a] StaticLibrary  : libutils.a
[arm64-v8a] StaticLibrary  : liblz4.a
[arm64-v8a] StaticLibrary  : libbz2.a
[arm64-v8a] StaticLibrary  : liblzma.a
[arm64-v8a] StaticLibrary  : libfdt.a
[arm64-v8a] StaticLibrary  : libz.a
[arm64-v8a] StaticLibrary  : libxz.a
[arm64-v8a] StaticLibrary  : libsepol.a
[arm64-v8a] StaticLibrary  : libcxx.a
[x86] StaticLibrary  : libnanopb.a
[x86] StaticLibrary  : libsystemproperties.a
[x86] StaticLibrary  : libmincrypt.a
[x86] StaticLibrary  : libutils.a
[x86] StaticLibrary  : libbz2.a
[x86] StaticLibrary  : libfdt.a
[x86] StaticLibrary  : liblzma.a
[x86] StaticLibrary  : liblz4.a
[x86] StaticLibrary  : libz.a
[x86] StaticLibrary  : libxz.a
[x86] StaticLibrary  : libsepol.a
[x86_64] StaticLibrary  : libnanopb.a
[x86_64] StaticLibrary  : libsystemproperties.a
[x86_64] StaticLibrary  : libutils.a
[x86_64] StaticLibrary  : libmincrypt.a
[x86_64] StaticLibrary  : liblz4.a
[x86_64] StaticLibrary  : libz.a
[x86_64] StaticLibrary  : liblzma.a
[x86_64] StaticLibrary  : libbz2.a
[x86_64] StaticLibrary  : libxz.a
[x86_64] StaticLibrary  : libfdt.a
[x86] StaticLibrary  : libcxx.a
[x86_64] StaticLibrary  : libsepol.a
[x86_64] StaticLibrary  : libcxx.a

[armeabi-v7a] Executable     : magisk
[x86] Executable     : magisk
[arm64-v8a] Executable     : magisk
[x86_64] Executable     : magisk
[armeabi-v7a] Executable     : magiskinit
[armeabi-v7a] Install        : magisk => libs/armeabi-v7a/magisk
[armeabi-v7a] Install        : magiskinit => libs/armeabi-v7a/magiskinit
[arm64-v8a] Install        : magisk => libs/arm64-v8a/magisk
[x86] Install        : magisk => libs/x86/magisk
[x86_64] Install        : magisk => libs/x86_64/magisk
[arm64-v8a] Executable     : magiskinit
[arm64-v8a] Install        : magiskinit => libs/arm64-v8a/magiskinit
[x86] Executable     : magiskboot
[x86] Install        : magiskboot => libs/x86/magiskboot
[armeabi-v7a] Executable     : magiskboot
[armeabi-v7a] Install        : magiskboot => libs/armeabi-v7a/magiskboot
[arm64-v8a] Executable     : magiskboot
[arm64-v8a] Install        : magiskboot => libs/arm64-v8a/magiskboot
[x86] Executable     : magiskinit
[x86] Install        : magiskinit => libs/x86/magiskinit
[x86_64] Executable     : magiskboot
[x86_64] Install        : magiskboot => libs/x86_64/magiskboot
[x86_64] Executable     : magiskinit
[x86_64] Install        : magiskinit => libs/x86_64/magiskinit

mv native/libs/armeabi-v7a/magisk -> native/out/armeabi-v7a/magisk
mv native/libs/armeabi-v7a/magiskinit -> native/out/armeabi-v7a/magiskinit
mv native/libs/armeabi-v7a/magiskboot -> native/out/armeabi-v7a/magiskboot
mv native/libs/x86/magisk -> native/out/x86/magisk
mv native/libs/x86/magiskinit -> native/out/x86/magiskinit
mv native/libs/x86/magiskboot -> native/out/x86/magiskboot
mv native/libs/arm64-v8a/magisk -> native/out/arm64-v8a/magisk
mv native/libs/arm64-v8a/magiskinit -> native/out/arm64-v8a/magiskinit
mv native/libs/arm64-v8a/magiskboot -> native/out/arm64-v8a/magiskboot
mv native/libs/x86_64/magisk -> native/out/x86_64/magisk
mv native/libs/x86_64/magiskinit -> native/out/x86_64/magiskinit
mv native/libs/x86_64/magiskboot -> native/out/x86_64/magiskboot

termux-elf-cleaner: Removing the DT_GNU_HASH dynamic section entry from 'native/out/armeabi-v7a/magisk'
termux-elf-cleaner: Removing the DT_VERNEEDNUM dynamic section entry from 'native/out/armeabi-v7a/magisk'
termux-elf-cleaner: Removing the DT_VERNEEDED dynamic section entry from 'native/out/armeabi-v7a/magisk'
termux-elf-cleaner: Removing the DT_VERSYM dynamic section entry from 'native/out/armeabi-v7a/magisk'
termux-elf-cleaner: Removing the DT_GNU_HASH dynamic section entry from 'native/out/x86/magisk'
termux-elf-cleaner: Removing the DT_VERNEEDNUM dynamic section entry from 'native/out/x86/magisk'
termux-elf-cleaner: Removing the DT_VERNEEDED dynamic section entry from 'native/out/x86/magisk'
termux-elf-cleaner: Removing the DT_VERSYM dynamic section entry from 'native/out/x86/magisk'
termux-elf-cleaner: Removing the DT_GNU_HASH dynamic section entry from 'native/out/arm64-v8a/magisk'
termux-elf-cleaner: Removing the DT_VERNEEDED dynamic section entry from 'native/out/arm64-v8a/magisk'
termux-elf-cleaner: Removing the DT_VERSYM dynamic section entry from 'native/out/arm64-v8a/magisk'
termux-elf-cleaner: Removing the DT_VERNEEDNUM dynamic section entry from 'native/out/arm64-v8a/magisk'
termux-elf-cleaner: Removing the DT_GNU_HASH dynamic section entry from 'native/out/x86_64/magisk'
termux-elf-cleaner: Removing the DT_VERNEEDNUM dynamic section entry from 'native/out/x86_64/magisk'
termux-elf-cleaner: Removing the DT_VERNEEDED dynamic section entry from 'native/out/x86_64/magisk'
termux-elf-cleaner: Removing the DT_VERSYM dynamic section entry from 'native/out/x86_64/magisk'

[armeabi-v7a] Compile thumb  : busybox <= applets.c
[armeabi-v7a] Compile thumb  : busybox <= whois.c
[armeabi-v7a] Compile thumb  : busybox <= ar.c
[armeabi-v7a] Compile thumb  : busybox <= bbunzip.c
[armeabi-v7a] Compile thumb  : busybox <= vconfig.c
[armeabi-v7a] Compile thumb  : busybox <= zcip.c
[armeabi-v7a] Compile thumb  : busybox <= cpio.c
[armeabi-v7a] Compile thumb  : busybox <= data_align.c
[armeabi-v7a] Compile thumb  : busybox <= common.c
[armeabi-v7a] Compile thumb  : busybox <= data_extract_all.c
[armeabi-v7a] Compile thumb  : busybox <= wget.c
[armeabi-v7a] Compile thumb  : busybox <= data_extract_to_stdout.c

[arm64-v8a] Compile        : busybox <= applets.c
[arm64-v8a] Compile        : busybox <= ar.c
[arm64-v8a] Compile        : busybox <= bbunzip.c
[arm64-v8a] Compile        : busybox <= cpio.c
[arm64-v8a] Compile        : busybox <= data_align.c
[arm64-v8a] Compile        : busybox <= common.c
[arm64-v8a] Compile        : busybox <= data_extract_all.c
[arm64-v8a] Compile        : busybox <= data_extract_to_command.c
[arm64-v8a] Compile        : busybox <= gzip.c
[arm64-v8a] Compile        : busybox <= data_extract_to_stdout.c
[armeabi-v7a] Compile thumb  : pcre2 <= pcre2_dfa_match.c
[arm64-v8a] Compile        : busybox <= data_skip.c
[arm64-v8a] Compile        : busybox <= decompress_uncompress.c
[arm64-v8a] Compile        : busybox <= bzip2.c


[x86] Compile        : busybox <= applets.c
[arm64-v8a] Compile        : pcre2 <= pcre2_xclass.c
[x86] Compile        : busybox <= ar.c
[x86] Compile        : busybox <= bbunzip.c
[x86] Compile        : busybox <= common.c
[x86] Compile        : busybox <= cpio.c
[x86] Compile        : busybox <= data_align.c
[x86] Compile        : busybox <= data_extract_all.c
[x86] Compile        : busybox <= data_extract_to_command.c
[x86] Compile        : busybox <= data_extract_to_stdout.c
[x86] Compile        : busybox <= gzip.c
[x86] Compile        : busybox <= data_skip.c
[arm64-v8a] Compile        : pcre2 <= pcre2_dfa_match.c
[x86] Compile        : busybox <= bzip2.c
[x86] Compile        : busybox <= decompress_uncompress.c
[x86] Compile        : busybox <= decompress_bunzip2.c


[x86_64] Compile        : busybox <= applets.c
[x86] Compile        : pcre2 <= pcre2_ucd.c
[x86_64] Compile        : busybox <= ar.c
[x86_64] Compile        : busybox <= bbunzip.c
[x86_64] Compile        : busybox <= cpio.c
[x86_64] Compile        : busybox <= common.c
[x86_64] Compile        : busybox <= data_align.c
[x86_64] Compile        : busybox <= data_extract_all.c
[x86_64] Compile        : busybox <= data_extract_to_command.c
[x86_64] Compile        : busybox <= data_extract_to_stdout.c
[x86_64] Compile        : busybox <= data_skip.c
[x86_64] Compile        : busybox <= gzip.c
[x86] Compile        : pcre2 <= pcre2_dfa_match.c
[x86_64] Compile        : busybox <= decompress_uncompress.c
[x86_64] Compile        : busybox <= bzip2.c
[x86_64] Compile        : busybox <= decompress_bunzip2.c
[x86_64] Compile        : busybox <= decompress_gunzip.c
[x86_64] Compile        : busybox <= decompress_unlzma.c



[armeabi-v7a] StaticLibrary  : libselinux.a
[x86_64] Compile        : pcre2 <= pcre2_substitute.c
[armeabi-v7a] StaticLibrary  : libpcre2.a
[arm64-v8a] StaticLibrary  : libpcre2.a
[arm64-v8a] StaticLibrary  : libselinux.a
[x86_64] Compile        : pcre2 <= pcre2_valid_utf.c
[x86] StaticLibrary  : libselinux.a
[x86_64] Compile        : pcre2 <= pcre2_xclass.c
[x86_64] StaticLibrary  : libselinux.a
[x86] StaticLibrary  : libpcre2.a
[x86_64] Compile        : pcre2 <= pcre2_ucd.c
[x86_64] Compile        : pcre2 <= pcre2_dfa_match.c
[x86_64] Compile        : pcre2 <= pcre2_compile.c
[x86_64] Compile        : pcre2 <= pcre2_match.c
[x86_64] StaticLibrary  : libpcre2.a
[armeabi-v7a] Executable     : busybox
[armeabi-v7a] Install        : busybox => libs/armeabi-v7a/busybox
[x86] Executable     : busybox
[x86] Install        : busybox => libs/x86/busybox
[x86_64] Executable     : busybox
[x86_64] Install        : busybox => libs/x86_64/busybox
[arm64-v8a] Executable     : busybox
[arm64-v8a] Install        : busybox => libs/arm64-v8a/busybox

mv native/libs/armeabi-v7a/busybox -> native/out/armeabi-v7a/busybox
mv native/libs/x86/busybox -> native/out/x86/busybox
mv native/libs/arm64-v8a/busybox -> native/out/arm64-v8a/busybox
mv native/libs/x86_64/busybox -> native/out/x86_64/busybox

* Building the Magisk app

Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
> Task :buildSrc:compileKotlin UP-TO-DATE
> Task :buildSrc:compileJava NO-SOURCE
> Task :buildSrc:compileGroovy NO-SOURCE
> Task :buildSrc:pluginDescriptors UP-TO-DATE
> Task :buildSrc:processResources UP-TO-DATE
> Task :buildSrc:classes UP-TO-DATE
> Task :buildSrc:inspectClassesForKotlinIC UP-TO-DATE
> Task :buildSrc:jar UP-TO-DATE
> Task :buildSrc:assemble UP-TO-DATE
> Task :buildSrc:compileTestKotlin NO-SOURCE
> Task :buildSrc:pluginUnderTestMetadata UP-TO-DATE
> Task :buildSrc:compileTestJava NO-SOURCE
> Task :buildSrc:compileTestGroovy NO-SOURCE
> Task :buildSrc:processTestResources NO-SOURCE
> Task :buildSrc:testClasses UP-TO-DATE
> Task :buildSrc:test NO-SOURCE
> Task :buildSrc:validatePlugins UP-TO-DATE
> Task :buildSrc:check UP-TO-DATE
> Task :buildSrc:build UP-TO-DATE

> Configure project :app
WARNING:: The option setting 'android.enableR8.fullMode=true' is experimental.
The current default is 'false'.

> Task :app:shared:preBuild UP-TO-DATE
> Task :app:shared:preDebugBuild UP-TO-DATE
> Task :app:shared:compileDebugAidl NO-SOURCE
> Task :app:shared:packageDebugRenderscript NO-SOURCE
> Task :app:shared:compileDebugRenderscript NO-SOURCE
> Task :app:shared:generateDebugResValues
> Task :app:shared:generateDebugResources
> Task :app:shared:packageDebugResources
> Task :app:shared:writeDebugAarMetadata
> Task :app:shared:extractDeepLinksDebug
> Task :app:shared:processDebugManifest
> Task :app:shared:compileDebugLibraryResources
> Task :app:shared:generateDebugBuildConfig
> Task :app:shared:javaPreCompileDebug
> Task :app:shared:mergeDebugShaders
> Task :app:shared:compileDebugShaders NO-SOURCE
> Task :app:shared:generateDebugAssets UP-TO-DATE
> Task :app:shared:packageDebugAssets
> Task :app:shared:processDebugJavaRes NO-SOURCE
> Task :app:shared:bundleLibResDebug NO-SOURCE
> Task :app:shared:mergeDebugJniLibFolders
> Task :app:shared:mergeDebugNativeLibs NO-SOURCE
> Task :app:shared:stripDebugDebugSymbols NO-SOURCE
> Task :app:shared:copyDebugJniLibsProjectOnly
> Task :app:shared:parseDebugLocalResources
> Task :app:shared:generateDebugRFile
> Task :app:syncLibs
> Task :app:syncAssets
> Task :app:syncResources
> Task :app:preBuild
> Task :app:preDebugBuild
> Task :app:compileDebugAidl NO-SOURCE
> Task :app:compileDebugRenderscript NO-SOURCE

> Task :app:shared:compileDebugJavaWithJavac
注: 某些输入文件使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
注: /Magisk/app/shared/src/main/java/com/topjohnwu/magisk/DynAPK.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

> Task :app:shared:bundleLibCompileToJarDebug
> Task :app:shared:bundleLibRuntimeToJarDebug
> Task :app:dataBindingMergeDependencyArtifactsDebug
> Task :app:generateDebugResValues
> Task :app:generateDebugResources
> Task :app:dataBindingMergeGenClassesDebug
> Task :app:dataBindingTriggerDebug
> Task :app:generateDebugBuildConfig
> Task :app:generateDebugKeyData
> Task :app:writeDebugApplicationId
> Task :app:mergeDebugResources
> Task :app:generateSafeArgsDebug
> Task :app:dataBindingGenBaseClassesDebug
> Task :app:checkDebugAarMetadata
> Task :app:createDebugCompatibleScreenManifests
> Task :app:extractDeepLinksDebug
> Task :app:processDebugMainManifest
> Task :app:processDebugManifest
> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE
> Task :app:mergeDebugShaders
> Task :app:compileDebugShaders NO-SOURCE
> Task :app:generateDebugAssets UP-TO-DATE
> Task :app:mergeDebugAssets
> Task :app:processDebugJavaRes
> Task :app:compressDebugAssets
> Task :app:checkDebugDuplicateClasses
> Task :app:desugarDebugFileDependencies
> Task :app:processDebugManifestForPackage
> Task :app:mergeExtDexDebug
> Task :app:mergeDebugJniLibFolders
> Task :app:validateSigningDebug
> Task :app:mergeLibDexDebug
> Task :app:writeDebugAppMetadata
> Task :app:writeDebugSigningConfigVersions
> Task :app:mergeDebugNativeLibs
> Task :app:stripDebugDebugSymbols
> Task :app:processDebugResources
> Task :app:kaptGenerateStubsDebugKotlin
> Task :app:kaptDebugKotlin
> Task :app:compileDebugKotlin

w: /Magisk/app/src/main/java/com/topjohnwu/magisk/arch/BaseUIActivity.kt: (61, 16): 'setter for systemUiVisibility: Int' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/arch/BaseUIActivity.kt: (61, 41): 'getter for systemUiVisibility: Int' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/arch/BaseUIActivity.kt: (62, 29): 'SYSTEM_UI_FLAG_LAYOUT_STABLE: Int' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/arch/BaseUIActivity.kt: (63, 29): 'SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN: Int' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/arch/BaseUIActivity.kt: (64, 29): 'SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION: Int' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/arch/BaseUIActivity.kt: (70, 56): 'getter for systemWindowInsetBottom: Int' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/core/base/BaseActivity.kt: (103, 15): 'onActivityResult(Int, Int, Intent?): Unit' is deprecated. Overrides deprecated member in 'androidx.activity.ComponentActivity'. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/core/base/BaseActivity.kt: (114, 13): 'startActivityForResult(Intent!, Int): Unit' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/core/model/module/LocalModule.kt: (86, 37): 'toLowerCase(): String' is deprecated. Use lowercase() instead.
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/core/utils/BiometricHelper.kt: (15, 39): 'canAuthenticate(): Int' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/core/utils/BiometricHelper.kt: (51, 14): 'setDeviceCredentialAllowed(Boolean): BiometricPrompt.PromptInfo.Builder' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/events/OpenInappLinkEvent.kt: (20, 10): 'setToolbarColor(Int): CustomTabsIntent.Builder' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/events/OpenInappLinkEvent.kt: (21, 10): 'enableUrlBarHiding(): CustomTabsIntent.Builder' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/events/dialog/UninstallDialog.kt: (3, 20): 'ProgressDialog' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/ktx/XAndroid.kt: (212, 17): 'updateConfiguration(Configuration!, DisplayMetrics!): Unit' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/ui/MainActivity.kt: (54, 60): 'SOFT_INPUT_ADJUST_RESIZE: Int' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/ui/hide/HideFragment.kt: (71, 14): 'setter for isAutoMeasureEnabled: Boolean' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/ui/hide/HideInfo.kt: (94, 24): 'toLowerCase(Locale): String' is deprecated. Use lowercase() instead.
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/ui/inflater/LayoutInflaterFactory.kt: (47, 13): Name shadowed: name
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/ui/inflater/WindowInsetsHelper.kt: (200, 22): 'setter for systemUiVisibility: Int' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/ui/inflater/WindowInsetsHelper.kt: (200, 49): 'getter for systemUiVisibility: Int' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/ui/inflater/WindowInsetsHelper.kt: (201, 33): 'SYSTEM_UI_FLAG_LAYOUT_STABLE: Int' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/ui/inflater/WindowInsetsHelper.kt: (202, 33): 'SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN: Int' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/ui/inflater/WindowInsetsHelper.kt: (203, 33): 'SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION: Int' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/ui/module/ModuleFragment.kt: (152, 14): 'setter for isAutoMeasureEnabled: Boolean' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/ui/module/ModuleFragment.kt: (161, 14): 'setter for isAutoMeasureEnabled: Boolean' is deprecated. Deprecated in Java
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/ui/superuser/SuperuserViewModel.kt: (61, 35): 'toLowerCase(Locale): String' is deprecated. Use lowercase() instead.
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/utils/HideBottomViewOnScrollBehavior.kt: (18, 48): Parameter 'context' is never used
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/utils/HideBottomViewOnScrollBehavior.kt: (18, 66): Parameter 'attrs' is never used
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/utils/HideBottomViewOnScrollBehavior.kt: (53, 9): Parameter 'parent' is never used
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/utils/HideBottomViewOnScrollBehavior.kt: (73, 9): Parameter 'parent' is never used
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/utils/HideBottomViewOnScrollBehavior.kt: (75, 9): Parameter 'dependency' is never used
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/utils/HideTopViewOnScrollBehavior.kt: (13, 45): Parameter 'context' is never used
w: /Magisk/app/src/main/java/com/topjohnwu/magisk/utils/HideTopViewOnScrollBehavior.kt: (13, 63): Parameter 'attrs' is never used


> Task :app:compileDebugJavaWithJavac
> Task :app:compileDebugSources
> Task :app:dexBuilderDebug
> Task :app:mergeProjectDexDebug
> Task :app:mergeDebugJavaResource
> Task :app:packageDebug
> Task :app:assembleDebug

BUILD SUCCESSFUL in 8m 47s
59 actionable tasks: 59 executed
mv app/build/outputs/apk/debug/app-debug.apk -> out/app-debug.apk

Output: out/app-debug.apk


进程已结束,退出代码为 0
Copy the code

You can set config.prop in the project file. Rename the config.prop.sample file in the project root directory to config.prop.

If you want to use the private key to sign and package APK files, you need to change the Settings in config.prop. The most detailed explanation is in The official Android Chinese Documentation: Google’s Documentation, which is too long to be rewritten here.