2016-09-14 10:31:13 +08:00
# Magisk
2016-11-09 05:16:03 +08:00
2017-06-04 02:49:24 +08:00
## How to build Magisk
2017-04-22 17:08:47 +08:00
2017-10-31 17:05:24 +08:00
#### Building has been tested on 3 major platforms: macOS, Ubuntu, Windows 10
2017-06-04 02:49:24 +08:00
2017-11-12 04:17:56 +08:00
### Environment Requirements
2017-06-04 02:49:24 +08:00
2017-08-20 15:03:26 +08:00
1. A 64-bit machine: `cmake` for Android is only available in 64-bit
2017-11-12 04:17:56 +08:00
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`
2017-06-04 02:49:24 +08:00
2017-11-12 04:17:56 +08:00
### Instructions and Notes
2017-06-04 02:49:24 +08:00
2017-08-20 15:03:26 +08:00
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.
2017-11-12 04:17:56 +08:00
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](https://developer.android.com/studio/publish/app-signing.html#signing-manually).
2017-08-20 15:03:26 +08:00
2017-06-04 02:49:24 +08:00
## License
2017-04-22 17:08:47 +08:00
2017-08-20 15:03:26 +08:00
```
2017-10-31 17:05:24 +08:00
Magisk, including all git submodules are free software:
2017-08-20 15:03:26 +08:00
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.
2017-04-22 17:08:47 +08:00
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/>.
2017-08-20 15:03:26 +08:00
```
2017-04-22 17:08:47 +08:00
2017-06-04 02:49:24 +08:00
## Credits
2017-10-07 22:48:16 +08:00
**MagiskManager** (`java`)
2017-08-20 15:03:26 +08:00
2017-06-04 02:49:24 +08:00
* Copyright 2016-2017, John Wu (@topjohnwu)
* All contributors and translators
2017-04-22 17:08:47 +08:00
**MagiskSU** (`jni/su`)
2017-08-20 15:03:26 +08:00
2017-04-22 17:08:47 +08:00
* 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`)
2017-08-20 15:03:26 +08:00
2017-04-22 17:08:47 +08:00
* Copyright 2016-2017, John Wu (@topjohnwu)
* Copyright 2015, Pierre-Hugues Husson (phh@phh.me)
* Copyright 2015, Joshua Brindle (@joshua_brindle)
2017-04-28 03:36:16 +08:00
**MagiskHide** (`jni/magiskhide`)
2017-08-20 15:03:26 +08:00
2017-04-28 03:36:16 +08:00
* Copyright 2016-2017, John Wu (@topjohnwu)
2017-10-31 17:05:24 +08:00
* Copyright 2016, Pierre-Hugues Husson (phh@phh.me)
2017-04-28 03:36:16 +08:00
2017-04-22 17:08:47 +08:00
**resetprop** (`jni/resetprop`)
2017-08-20 15:03:26 +08:00
2017-04-22 17:08:47 +08:00
* Copyright 2016-2017 John Wu (@topjohnwu)
* Copyright 2016 nkk71 (nkk71x@gmail.com)
2017-07-31 00:59:41 +08:00
2017-10-31 17:05:24 +08:00
**ndk-busybox** (`jni/external/busybox`)
2017-08-20 15:03:26 +08:00
2017-07-31 00:59:41 +08:00
* Makefile for NDK, generated by [ndk-busybox-kitchen](https://github.com/topjohnwu/ndk-busybox-kitchen): Copyright 2017, John Wu (@topjohnwu)
* Patches for NDK: Many contributors along the way, all placed in [osm0sis/android-busybox-ndk](https://github.com/osm0sis/android-busybox-ndk)
* The copyright message for busybox should be included in its own directory
2017-04-22 17:08:47 +08:00
2017-10-31 17:05:24 +08:00
**Others Not Mentioned** (exclude `jni/external`)
2017-08-20 15:03:26 +08:00
2017-04-22 17:08:47 +08:00
* Copyright 2016-2017, John Wu (@topjohnwu)