The Magic Mask for Android
Go to file
2017-09-27 04:36:01 +08:00
chromeos Massive build script refactor 2017-06-03 20:31:02 +08:00
docs Update magiskpolicy help message 2017-08-17 00:58:02 +08:00
jni Don't use dummy directory; directly use tmpfs 2017-09-27 04:36:01 +08:00
MagiskManager@b4ecd93f1c Proper FBE support 2017-09-15 18:05:42 +08:00
scripts Update scripts 2017-09-26 20:21:43 +08:00
ziptools Build everything ourselves 2017-08-24 12:14:17 +08:00
.gitattributes Build everything ourselves 2017-08-24 12:14:17 +08:00
.gitignore Massive build script refactor 2017-06-03 20:31:02 +08:00
.gitmodules Add libfdt 2017-09-15 02:52:53 +08:00
build.py Update scripts to support Pixel (XL) 2017-09-13 04:08:50 +08:00
LICENSE Use GPL v3 license and update copyright messages 2017-04-22 17:12:54 +08:00
README.MD Update README.MD 2017-08-20 15:03:26 +08:00

Magisk

How to build Magisk

Building has been tested on 3 major platforms:

macOS 10.12
Ubuntu 17.04 x64
Windows 10 x64

Environment Requirements

  1. A 64-bit machine: cmake for Android is only available in 64-bit
  2. Python 3.5+: to run the build script
  3. Java Development Kit (JDK) 8: To compile Magisk Manager and sign zips
  4. C compiler (Unix only): To build zipadjust. Windows users can use the pre-built zipadjust.exe
  5. Android SDK: ANDROID_HOME environment variable should point to the Android SDK folder
  6. Android NDK: Install NDK via sdkmanager, or via Android SDK Manager in Android Studio

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. Windows users: while installing Python 3 on Windows, allow the installer to add Python to PATH, or you'll have to add it manually afterwards. By default, the Python executable is setup as python, not python3 like most Unix environment. If you have both Python 2 and Python 3 installed, you'll have to deal with the executable name and PATH yourself. To double check the Python version, call python --version.
  3. To run the script, on Windows call python build.py [args...]; on Unix call python3 build.py [args...], or simply ./build.py [args...]. To see the built-in help message, call the script with -h as an argument. The -h option also works for each supported actions to see the help message for the specific action.
  4. By default, the script will build binaries and Magisk Manager in debug mode, which will enable verbose debugging messages. If you want to build Magisk Manager in release mode (through the flag --release), you will need to place your Java Keystore file in release_signature.jks to sign Magisk Manager's APK. For more information, check out Google's Official Documentation.
  5. The python build script uses ANSI color codes to change the color of the terminal output. For Windows, this only works on Windows 10, as previous Windows console do not support them. If you use an older Windows version, a quick Google search should provide many workarounds.

License

Magisk, including all subprojects (git submodule) is 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 (MagiskManager)

  • 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) (original hidesu)

resetprop (jni/resetprop)

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

SELinux (jni/selinux)

  • Makefile for NDK: Copyright 2016-2017, John Wu (@topjohnwu)
  • Maintained by many developers in SELinux project

ndk-compression (jni/ndk-compression)

  • Makefile for NDK: Copyright 2017, John Wu (@topjohnwu)
  • Each library has its own copyright message in corresponding directories

ndk-busybox (jni/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

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