Go to file
2017-08-11 14:53:24 +08:00
chromeos Massive build script refactor 2017-06-03 20:31:02 +08:00
jni Extract functions 2017-08-11 14:53:24 +08:00
MagiskManager@8195a4d616 Fuse busybox into update-binary and remove from Magisk Manager APK 2017-08-02 02:22:33 +08:00
scripts Fix installer options not read properly 2017-08-04 23:49:22 +08:00
ziptools Provide external files to Magisk Manager with build script 2017-07-31 00:59:41 +08:00
.gitattributes Massive build script refactor 2017-06-03 20:31:02 +08:00
.gitignore Massive build script refactor 2017-06-03 20:31:02 +08:00
.gitmodules Add busybox to source 2017-07-30 20:14:12 +08:00
build.py Add b64xz to handle busybox decode/decompress in scripts 2017-08-02 18:25:24 +08:00
LICENSE Use GPL v3 license and update copyright messages 2017-04-22 17:12:54 +08:00
README.MD Provide external files to Magisk Manager with build script 2017-07-31 00:59:41 +08:00

Magisk

How to build Magisk

Building has been tested on 3 major platforms:

macOS 10.12.5 Ubuntu 17.04 x64 Windows 10 Creators Update x64

Environment Requirements

  1. Python 3 (>= 3.5): python3 (or in some cases python) should be accessible
  2. Java runtime: java should be accessible
  3. (Unix only) C compiler: gcc should be accessible
  4. Android SDK: ANDROID_HOME environment variable should point to the Android SDK folder
  5. NDK: Install NDK using sdkmanager, or through Android SDK Manager
  6. Android build-tools: Should have build-tools version matching MagiskManager/app/build.gradle installed

Instructions and Notes

  1. 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 insist to use an older Windows version, a quick Google search should provide many workarounds
  2. After installing the latest Python 3 on Windows (allow the installer to add Python to PATH, or you'll have to manually set the environment), instead of calling python3 like most Unix environment, you should call python in shell (cmd or Powershell both OK). You can double check the version by python --version
  3. The build script will do several checks, it will refuse to run if the environment doesn't meet the requirements
  4. For further instructions, please check the built in help message by python3 build.py -h (Unix users can simply ./build.py -h, Windows users, as mentioned, call python instead)
  5. Each action has its own help message, access them by commands like python3 build.py all -h
  6. To build Magisk for release (enabled through the --release flag, the script builds in debug mode by default), you will need to provide a Java keystore file, and place it in release_signature.jks to sign Magisk Manager APK for release builds. For more information, check out Google's Official Documentation
  7. To properly setup the Android SDK environment, the easiest way is to use Android Studio and open Magisk Manager. If gradle sync passed, your build-tools etc. should be set properly. You can also access SDK Manager GUI within Android Studio to download NDK. Don't forget to add Android Studio's SDK path into environment variable ANDROID_HOME.

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)