Go to file
topjohnwu ba7cb47383 Make version reporting consistent 2020-03-23 01:17:13 -07:00
app Updated Dutch translation 2020-03-22 13:45:26 -07:00
docs Add linebrake notice for module.prop 2020-03-12 00:34:56 -07:00
gradle/wrapper Update AS 2020-01-12 04:51:52 +08:00
native Make version reporting consistent 2020-03-23 01:17:13 -07:00
scripts Make version reporting consistent 2020-03-23 01:17:13 -07:00
shared Set stub version in stub 2020-01-03 02:19:10 +08:00
signing Small SignAPK improvements 2020-01-31 04:07:12 +08:00
snet Update snet extension 2019-08-08 04:18:32 -07:00
stub Added Dutch translation for stub 2020-03-22 13:45:26 -07:00
tools Clean elf after building shared binaries 2019-08-22 02:51:17 +08:00
.gitattributes Small native code reorganization 2020-03-09 01:50:30 -07:00
.gitignore Make main app fully independent from the stub 2019-10-17 02:55:42 -04:00
.gitmodules Add BusyBox SELinux support 2020-01-20 20:48:05 +08:00
LICENSE Use GPL v3 license and update copyright messages 2017-04-22 17:12:54 +08:00
README.MD Update README 2020-03-13 02:12:35 -07:00
build.gradle Update dependencies 2020-03-08 22:54:14 -07:00
build.py Update dependencies 2020-02-21 23:40:20 -08:00
config.prop.sample Assign signing keystore location in config 2019-10-17 16:20:01 -04:00
gradle.properties Updated build tools & enabled incremental kapt 2019-05-09 15:27:37 +02:00
gradlew Update Gradle wrapper to 5.6.1 2019-09-01 01:17:22 +08:00
gradlew.bat Update Gradle wrapper to 5.6.1 2019-09-01 01:17:22 +08:00
settings.gradle Remove net module 2019-08-04 18:33:20 -07:00

README.MD

Magisk

Downloads | Documentation | XDA Thread

Introduction

Magisk is a suite of open source tools for customizing Android, supporting devices higher than Android 4.2 (API 17). It covers the fundamental parts for Android customization: root, boot scripts, SELinux patches, AVB2.0 / dm-verity / forceencrypt removals etc.

Furthermore, Magisk provides a Systemless Interface to alter the system (or vendor) arbitrarily while the actual partitions stay completely intact. With its systemless nature along with several other hacks, Magisk can almost perfectly hide modifications within userspace. Note that since 2020.3, the CTS check of Google's SafetyNet API will NOT pass.

Bug Reports

Only reports using debug canary builds will be accepted.
Access canary builds by upgrading to either canary Magisk Manager:

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

Building Environment Requirements

  • Python 3: run build.py script
  • Java Development Kit (JDK) 8: Compile Magisk Manager and sign zips
  • Latest Android SDK: set ANDROID_HOME environment variable to the path to Android SDK
  • Android NDK: Install NDK along with SDK ($ANDROID_HOME/ndk-bundle), or optionally specify a custom path ANDROID_NDK_HOME
  • (Windows Only) Python package Colorama: Install with pip install colorama, used for ANSI color codes

Building Notes and Instructions

  • Clone sources with submodules: git clone --recurse-submodules https://github.com/topjohnwu/Magisk.git
  • Building is supported on macOS, Linux, and Windows. Official releases are built and tested with FrankeNDK; point ANDROID_NDK_HOME to FrankeNDK if you want to use it for compiling.
  • Set configurations in config.prop. A sample file config.prop.sample is provided as an example.
  • Run build.py with argument -h to see the built-in help message. The -h option also works for each supported actions, e.g. ./build.py binary -h
  • By default, build.py build binaries and Magisk Manager in debug mode. If you want to build Magisk Manager in release mode (via the -r, --release flag), you need a Java Keystore file release-key.jks (only JKS format is supported) to sign APKs and zips. For more information, check out Google's Official Documentation.

Translations

Default string resources for Magisk Manager 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/>.