`totalsize` might be a big (invalid) number so instead of checking the end address we check the size of the image. Fix #4049
Introduction
Magisk is a suite of open source tools for customizing Android, supporting devices higher than Android 4.2. It covers fundamental parts of Android customization: root, boot scripts, SELinux patches, AVB2.0 / dm-verity / forceencrypt removals etc.
Here are some feature highlights:
- MagiskSU: Provide root access to your device
- Magisk Modules: Modify read-only partitions by installing modules
- MagiskHide: Hide Magisk from root detections / system integrity checks
Downloads
Please note that the only source of official Magisk information and downloads is Github. Beware of any other websites.
Useful Links
- Installation Instruction
- Frequently Asked Questions
- Magisk Documentation
- Magisk Troubleshoot Wiki (by @Didgeridoohan)
Android Version Support
- Android 4.2+: MagiskSU and Magisk Modules Only
- Android 4.4+: All core features available
- Android 6.0+: Guaranteed MagiskHide support
- Android 7.0+: Full MagiskHide protection
Bug Reports
Only bug reports from Canary builds will be accepted.
For installation issues, upload both boot image and install logs.
For Magisk issues, upload boot logcat or dmesg.
For Magisk app crashes, record and upload the logcat when the crash occurs.
Building and Development
- Magisk builds on any OS Android Studio supports. Install Android Studio and do the initial setups.
- Clone sources:
git clone --recurse-submodules https://github.com/topjohnwu/Magisk.git
- Install Python 3.6+
(Windows only: select 'Add Python to PATH' in installer, and runpip install colorama
after install) - Configure to use the JDK bundled in Android Studio:
- macOS:
export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home"
- Linux:
export PATH="/path/to/androidstudio/jre/bin:$PATH"
- Windows: Add
C:\Path\To\Android Studio\jre\bin
to environment variablePATH
- macOS:
- Set environment variable
ANDROID_SDK_ROOT
to the Android SDK folder (can be found in Android Studio settings) - Run
./build.py ndk
to let the script download and install NDK for you - To start building, run
build.py
to see your options.
For each action, use-h
to access help (e.g../build.py all -h
) - To start development, open the project with Android Studio. The IDE can be used for both app (Kotlin/Java) and native (C++/C) sources.
- Optionally, set custom configs with
config.prop
. A sampleconfig.prop.sample
is provided. - To sign APKs and zips with your own private keys, set signing configs in
config.prop
. For more info, check Google's Documentation.
Translation Contributions
Default string resources for the Magisk app and its stub APK are located here:
app/src/main/res/values/strings.xml
stub/src/main/res/values/strings.xml
Translate each and place them in the respective locations ([module]/src/main/res/values-[lang]/strings.xml
).
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/>.