mirror of
https://github.com/topjohnwu/Magisk.git
synced 2024-11-24 02:25:28 +00:00
The Magic Mask for Android
906b4aad9e
Introduce a new communication method between Magisk and Magisk Manager. Magisk used to hardcode classnames and send broadcast/start activities to specific components. This new method makes no assumption of any class names, so Magisk Manager can easily be fully obfuscated. In addition, the new method connects Magisk and Magisk Manager with random abstract Linux sockets instead of socket files in filesystems, bypassing file system complexities (selinux, permissions and such) |
||
---|---|---|
app | ||
chromeos | ||
docs | ||
gradle/wrapper | ||
native | ||
scripts | ||
snet | ||
utils | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
build.gradle | ||
build.py | ||
config.prop.sample | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
README.MD | ||
settings.gradle |
Magisk
Building Environment Requirements
- Python 3.5+: run
build.py
script - Java Development Kit (JDK) 8: Compile Magisk Manager and sign zips
- Latest Android SDK: set
ANDROID_HOME
environment variable to the path to Android SDK - Android NDK: Install NDK along with SDK (
$ANDROID_HOME/ndk-bundle
), or optionally specify a custom pathANDROID_NDK_HOME
- (Windows Only) Python package Colorama: Install with
pip install colorama
, used for ANSI color codes
Building Notes and Instructions
- Clone sources with submodules:
git clone --recurse-submodules https://github.com/topjohnwu/Magisk.git
- Building is supported on macOS, Linux, and Windows. Official releases are built and tested with FrankeNDK; point
ANDROID_NDK_HOME
to FrankeNDK if you want to use it for compiling. - Set configurations in
config.prop
. A sample fileconfig.prop.sample
is provided as an example. - Run
build.py
with argument-h
to see the built-in help message. The-h
option also works for each supported actions, e.g../build.py binary -h
- By default,
build.py
build binaries and Magisk Manager in debug mode. If you want to build Magisk Manager in release mode (via the-r, --release
flag), you need a Java Keystore filerelease-key.jks
(onlyJKS
format is supported) to sign APKs and zips. For more information, check out Google's Official Documentation.
Bug Reports
Make sure to install the latest Canary Build before reporting any bugs! Please DO NOT report bugs that is already fixed upstream.
Follow the instructions in the Canary Channel XDA Thread, and report a bug either by opening an issue on GitHub or directly in the thread.
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/>.