The Magic Mask for Android
Go to file
LoveSy 97731a519a Update zygisk API to avoid mem leak 2023-04-02 03:54:33 -07:00
.github CI uses java 17 2022-12-13 14:13:25 -08:00
app Specify foregroundServiceType for DownloadService 2023-04-02 02:20:49 -07:00
buildSrc Specify foregroundServiceType for DownloadService 2023-04-02 02:20:49 -07:00
docs Rename rules to preinit 2023-03-21 00:40:11 -07:00
gradle/wrapper Upgrade gradle 2023-02-20 00:08:23 -08:00
native Update zygisk API to avoid mem leak 2023-04-02 03:54:33 -07:00
scripts Better AVD support 2023-03-31 17:21:12 -07:00
stub Clean up more codes 2023-03-19 23:20:19 -07:00
tools No more patching libc.a on 64bit platforms 2023-04-01 03:51:57 -07:00
.gitattributes Small native code reorganization 2020-03-09 01:50:30 -07:00
.gitignore Open source fully obfuscated stub 2021-09-02 21:31:33 -07:00
.gitmodules Add inode plt hook APIs 2023-01-10 02:42:45 +08:00
LICENSE Use GPL v3 license and update copyright messages 2017-04-22 17:12:54 +08:00
README.MD Clean up more codes 2023-03-19 23:20:19 -07:00
build.gradle.kts Move config to buildSrc 2021-09-09 01:37:20 -07:00
build.py No more patching libc.a on 64bit platforms 2023-04-01 03:51:57 -07:00
config.prop.sample Cleanup scripts 2021-01-24 07:24:13 -08:00
gradle.properties Fix release build 2023-03-31 00:06:55 -07:00
gradlew Upgrade gradle 2023-02-20 00:08:23 -08:00
gradlew.bat Update deps 2022-12-26 17:16:26 -08:00
settings.gradle.kts Move config to buildSrc 2021-09-09 01:37:20 -07:00

README.MD

Downloads

This is not an officially supported Google product

Introduction

Magisk is a suite of open source software for customizing Android, supporting devices higher than Android 6.0.
Some highlight features:

  • MagiskSU: Provide root access for applications
  • Magisk Modules: Modify read-only partitions by installing modules
  • MagiskBoot: The most complete tool for unpacking and repacking Android boot images
  • Zygisk: Run code in every Android applications' processes

Downloads

Github is the only source where you can get official Magisk information and downloads.

Bug Reports

Only bug reports from Debug builds will be accepted.

For installation issues, upload both boot image and install logs.
For Magisk issues, upload boot logcat or dmesg.
For Magisk app crashes, record and upload the logcat when the crash occurs.

Building and Development

  • Magisk builds on any OS Android Studio supports. Install Android Studio and do the initial setups.
  • Clone sources: git clone --recurse-submodules https://github.com/topjohnwu/Magisk.git
  • Install Python 3.8+
    (Windows only: select 'Add Python to PATH' in installer, and run pip install colorama after install)
  • Configure to use the JDK bundled in Android Studio:
    • macOS: export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/Contents/Home"
    • Linux: export PATH="/path/to/androidstudio/jre/bin:$PATH"
    • Windows: Add C:\Path\To\Android Studio\jre\bin to environment variable PATH
  • Set environment variable ANDROID_SDK_ROOT to the Android SDK folder (can be found in Android Studio settings)
  • Run ./build.py ndk to let the script download and install NDK for you
  • To start building, run build.py to see your options.
    For each action, use -h to access help (e.g. ./build.py all -h)
  • To start development, open the project with Android Studio. The IDE can be used for both app (Kotlin/Java) and native sources.
  • Optionally, set custom configs with config.prop. A sample config.prop.sample is provided.

Signing and Distribution

  • The certificate of the key used to sign the final Magisk APK product is also directly embedded into some executables. In release builds, Magisk's root daemon will enforce this certificate check and reject and forcefully uninstall any non-matching Magisk apps to protect users from malicious and unverified Magisk APKs.
  • To do any development on Magisk itself, switch to an official debug build and reinstall Magisk to bypass the signature check.
  • To distribute your own Magisk builds signed with your own keys, set your signing configs in config.prop.
  • Check Google's Documentation for more details on generating your own key.

Translation Contributions

Default string resources for the Magisk app and its stub APK are located here:

  • app/src/main/res/values/strings.xml
  • stub/src/main/res/values/strings.xml

Translate each and place them in the respective locations ([module]/src/main/res/values-[lang]/strings.xml).

License

Magisk, including all git submodules are free software:
you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation,
either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.