1
mirror of https://github.com/topjohnwu/Magisk synced 2024-11-18 03:26:26 +01:00
Go to file
2017-12-04 15:32:18 +08:00
app@863b13a694 Massive project restructure 2017-12-04 15:16:41 +08:00
chromeos Massive build script refactor 2017-06-03 20:31:02 +08:00
core Fix Android Studio gradle sync 2017-12-04 15:32:18 +08:00
crypto Massive project restructure 2017-12-04 15:16:41 +08:00
docs Update docs 2017-09-28 05:39:10 +08:00
gradle/wrapper Massive project restructure 2017-12-04 15:16:41 +08:00
scripts Fix is_mounted function 2017-11-22 22:22:29 +08:00
snet Massive project restructure 2017-12-04 15:16:41 +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 Massive project restructure 2017-12-04 15:16:41 +08:00
.gitmodules Massive project restructure 2017-12-04 15:16:41 +08:00
build.gradle Massive project restructure 2017-12-04 15:16:41 +08:00
build.py Massive project restructure 2017-12-04 15:16:41 +08:00
gradle.properties Massive project restructure 2017-12-04 15:16:41 +08:00
gradlew Massive project restructure 2017-12-04 15:16:41 +08:00
gradlew.bat Massive project restructure 2017-12-04 15:16:41 +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-12-04 15:21:06 +08:00
settings.gradle Fix Android Studio gradle sync 2017-12-04 15:32:18 +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. Android NDK: Install NDK along with SDK ($ANDROID_HOME/ndk-bundle), or specify custom path ANDROID_NDK
  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. Magisk can be built with the latest NDK (r16 as of writing), however official released binaries will be built with NDK r10e due to ELF incompatibilities with the binaries built from newer NDKs.
  2. The easiest way to setup a working environment is to import this project into 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.
  3. 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
  4. 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 (app)

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

MagiskSU (core/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 (core/jni/magiskpolicy)

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

MagiskHide (core/jni/magiskhide)

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

resetprop (core/jni/resetprop)

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

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

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