The Magic Mask for Android
Go to file
2017-11-22 22:22:29 +08:00
chromeos Massive build script refactor 2017-06-03 20:31:02 +08:00
docs Update docs 2017-09-28 05:39:10 +08:00
java@f520fe36bd Update internal paths 2017-11-22 16:04:24 +08:00
jni Several small tweaks 2017-11-22 16:12:08 +08:00
scripts Fix is_mounted function 2017-11-22 22:22:29 +08:00
ziptools MagiskManager -> java 2017-10-07 22:48:16 +08:00
.gitattributes Build everything ourselves 2017-08-24 12:14:17 +08:00
.gitignore Unify Magisk configuration 2017-11-06 06:22:45 +08:00
.gitmodules Update external sources 2017-10-19 00:46:39 +08:00
build.py Update internal paths 2017-11-22 16:04:24 +08:00
LICENSE Use GPL v3 license and update copyright messages 2017-04-22 17:12:54 +08:00
README.MD Proper Windows building support 2017-11-12 04:17:56 +08:00

Magisk

How to build Magisk

Building has been tested on 3 major platforms: macOS, Ubuntu, Windows 10

Environment Requirements

  1. A 64-bit machine: cmake for Android is only available in 64-bit
  2. Python 3.5+: run build.py script
  3. Java Development Kit (JDK) 8: Compile Magisk Manager and sign zips
  4. Latest Android SDK: ANDROID_HOME environment variable should point to the Android SDK folder
  5. Latest Android NDK: Install NDK via sdkmanager, or via Android SDK Manager in Android Studio
  6. (Windows Only) Colorama: Install Colorama with pip install colorama, used for ANSI color codes
  7. (Unix only) C compiler: Build zipadjust. Windows users can use the pre-built zipadjust.exe

Instructions and Notes

  1. The easiest way to setup a working environment is to open Magisk Manager with Android Studio. The IDE will download required components and construct the environment for you. Don't forget to set ANDROID_HOME environment variable to the SDK path.
  2. Run the script with -h as an argument to see the built-in help message. The -h option also works for each supported actions, e.g. ./build.py binary -h
  3. By default, the script will build binaries and Magisk Manager in debug mode. If you want to build Magisk Manager in release mode (through the flag --release), you will need to place your Java Keystore file at release_signature.jks to sign Magisk Manager's APK. For more information, check out Google's Official Documentation.

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/>.

Credits

MagiskManager (java)

  • Copyright 2016-2017, John Wu (@topjohnwu)
  • All contributors and translators

MagiskSU (jni/su)

  • Copyright 2016-2017, John Wu (@topjohnwu)
  • Copyright 2015, Pierre-Hugues Husson (phh@phh.me)
  • Copyright 2013, Koushik Dutta (@koush)
  • Copyright 2010, Adam Shanks (@ChainsDD)
  • Copyright 2008, Zinx Verituse (@zinxv)

MagiskPolicy (jni/magiskpolicy)

  • Copyright 2016-2017, John Wu (@topjohnwu)
  • Copyright 2015, Pierre-Hugues Husson (phh@phh.me)
  • Copyright 2015, Joshua Brindle (@joshua_brindle)

MagiskHide (jni/magiskhide)

  • Copyright 2016-2017, John Wu (@topjohnwu)
  • Copyright 2016, Pierre-Hugues Husson (phh@phh.me)

resetprop (jni/resetprop)

  • Copyright 2016-2017 John Wu (@topjohnwu)
  • Copyright 2016 nkk71 (nkk71x@gmail.com)

ndk-busybox (jni/external/busybox)

  • Makefile for NDK, generated by ndk-busybox-kitchen: Copyright 2017, John Wu (@topjohnwu)
  • Patches for NDK: Many contributors along the way, all placed in osm0sis/android-busybox-ndk
  • The copyright message for busybox should be included in its own directory

Others Not Mentioned (exclude jni/external)

  • Copyright 2016-2017, John Wu (@topjohnwu)