Repository navigation
Releases: topjohnwu/Magisk
Release list
Magisk v31.1
This release brings official support for Googlebooks (Aluminium OS), including automatic firmware download suggestions and the ability to patch recovery GPT images directly onto a connected USB drive. Bringing Magisk to Googlebooks also meant supporting Android's Headless System User Mode (HSUM), where user 0 operates strictly as a non-interactive background system user while human users run in secondary user profiles. Adapting Magisk to HSUM created several architectural challenges, as many longstanding features and internal mechanisms were built around the assumption that user 0 is always the primary interactive user.
To address this, the way superuser access is granted to apps has been redesigned, and the traditional interactive root request prompt has been removed. The existing reactive su request flow, which relies on intercepting a root call in the background daemon and launching a blocking UI prompt in the right user session, is fundamentally incompatible with HSUM, especially when handling non-app UIDs like adb shell that are not tied to a foreground user. Instead, superuser access is now explicitly granted to applications ahead of time directly from the Superuser tab in the Magisk app.
Finally, the app hiding (package repackaging) feature has also been removed. Like interactive su prompts, the repackaging and stub management mechanisms are fundamentally incompatible with HSUM. More importantly, truly hiding an installed package from detection is nearly technically impossible on Android. Since interactive root prompts no longer require the Magisk app to remain installed at runtime and Magisk no longer automatically reinstalls the app if it is missing, the most effective way to hide the Magisk app is to simply uninstall it after configuring your superuser policies and modules.
Changelog
- [General] Support Headless System User Mode (HSUM) devices
- [General] Drop support for Android 6.0; Android 7.0 is now the minimum supported version
- [General] Remove the app hiding (repackaging) feature and the stub app; Magisk no longer reinstalls the app automatically if it is missing
- [App] Remove reactive superuser request prompts; superuser access is now explicitly granted ahead of time in the Superuser tab
- [App] Unify the image patching pipeline across local files and remote URLs for raw images, OTA zips, factory image zips, Samsung Odin tars, and Aluminium OS recovery GPT images
- [App] Automatically suggest official firmware downloads for Google Pixel and Googlebook (Aluminium OS) devices
- [App] Support patching Aluminium OS recovery images and writing directly to a connected USB drive on Googlebooks
- [App] Display real-time in-place read/write progress and transfer speeds when downloading and patching images
- [MagiskSU] Remove obsolete superuser access mode and reauthentication settings
- [MagiskSU] Fix
-g/-Gargument handling, forward unknown options to the shell, and fix daemon exec signal handling - [MagiskBoot] Support signing ChromeOS boot images natively and automatically re-sign on repack, removing the external
futilitybinary - [MagiskBoot] Fix AVB 1.0 ECDSA signature verification and signing by using ASN.1 DER encoding
- [MagiskBoot] Preserve Samsung
SignerVer02signatures during boot image repack - [MagiskBoot] Revert updating AVB hash descriptor image size on repack
- [MagiskBoot] Enable architecture-specific BCJ filters for XZ compression and improve
zImagecompressed payload detection - [MagiskBoot] Support building
magiskbootnatively on Linux and macOS hosts - [Core] Fix potential crashes when handling
NULLdatabase strings or failed daemon connections
Full Changelog: here
Magisk v31.0
The highlight of this release is a complete, ground-up rewrite of the Magisk app UI.
Over the years, the Android application codebase had accumulated significant technical debtβspanning legacy XML layouts, Databinding, and KAPT. In this release, the entire UI layer has been rebuilt from scratch with modern Jetpack Compose and Material 3.
This rewrite allowed us to modernize the architecture and introduce substantial UI/UX improvements, with additional new features:
- A new built-in terminal emulator with full TTY and ANSI support for module flashing and action scripts.
- Direct support for streaming and extracting boot images from remote OTA URLs on-the-fly.
Legacy App Still Available
This kind of full rewrite can sometimes introduce unexpected edge cases or bugs. If you encounter issues with the new app, the legacy View-based version will still be built and uploaded for a couple of releases, available for download here.
Changelog
- [App] Complete UI overhaul with Jetpack Compose and Material 3, completely removing the legacy View and Fragment architecture
- [App] Add new built-in terminal emulator with full TTY and ANSI support for module flashing and action scripts
- [App] Support downloading and streaming boot image extraction directly from remote OTA URLs
- [MagiskBoot] Support dynamic zImage payload sizes without requiring exact size padding during repack
- [MagiskBoot] Update AVB hash descriptor image size to match unpacked image size
- [MagiskBoot] Lower default compression preset for XZ and LZMA to reduce memory usage during repacking
- [Zygisk] Support Android 17 (API 37)
- [Zygisk] Support Meta Quest (Horizon OS) lazy partition zygotes
- [MagiskPolicy] Fix identifier parsing for names containing hyphens
- [resetprop] Add
--compact(-c) flag to compact property storage areas - [MagiskInit] Properly prioritize charger mode detection before
force_normal_boot - [DenyList] Add
webview_zygoteas an unmount target
Full Changelog: here
Magisk v30.7
- [MagiskInit] Support Android 16 QPR2 sepolicy format
- [MagiskInit] Support using klogdump partition as pre-init storage
- [Zygisk] Support Android 16 QPR2 and higher
- [Zygisk] Support Android XR and some Nubia devices
- [MagiskSU] Do not drop capabilities by default, even when switching to non-root UIDs. Explicitly use the
--drop-capargument to drop capabilities. - [MagiskBoot] Better lzma format detection
- [MagiskBoot] Fix various commandline argument parsing bugs
Full Changelog: here
Magisk v30.6
Hotfix
- [MagiskInit] Revert a change that could result in bootloops
v30.5 Changelog
- [General] Migrate a significant portion of the codebase to Rust
- [General] Various minor bug fixes
- [General] Support installing Magisk into vendor_boot partition
- [Core] Improve Magisk specific files injection logic
- [MagiskSU] Add ability to restrict Linux capabilities even if running as root (uid=0)
- [MagiskSU] Fallback to older implementation when the kernel doesn't support zero userspace copy APIs
- [MagiskPolicy] Support new sepolicy binary format introduced in Android 16 QPR2
- [resetprop] Reduce property modification traces
- [resetprop] Properly support Android versions with property overrides
Full Changelog: here
Magisk v30.5
- [General] Migrate a significant portion of the codebase to Rust
- [General] Various minor bug fixes
- [General] Support installing Magisk into vendor_boot partition
- [Core] Improve Magisk specific files injection logic
- [MagiskSU] Add ability to restrict Linux capabilities even if running as root (uid=0)
- [MagiskSU] Fallback to older implementation when the kernel doesn't support zero userspace copy APIs
- [MagiskPolicy] Support new sepolicy binary format introduced in Android 16 QPR2
- [resetprop] Reduce property modification traces
- [resetprop] Properly support Android versions with property overrides
Full Changelog: here
Magisk v30.4
- [MagiskSU] Fix several implementation bugs
Diffs to v29.0
- [General] Various minor bug fixes
- [General] Support installing Magisk into vendor_boot partition
- [General] Migrate a significant portion of the codebase to Rust
- [Core] Improve Magisk specific files injection logic
- [MagiskSU] Add ability to restrict Linux capabilities even if running as root (uid=0)
- [MagiskSU] Fallback to older implementation when the kernel doesn't support zero userspace copy APIs
- [MagiskPolicy] Support new sepolicy binary format introduced in Android 16 QPR2
- [resetprop] Reduce property modification traces
Full Changelog: here
Magisk v30.3
- [General] Support installing Magisk into vendor_boot partition
- [MagiskPolicy] Support new sepolicy binary format introduced in Android 16 QPR2
- [Core] Migrate much more code into Rust
- [MagiskSU] Fallback to older implementation when the kernel doesn't support zero userspace copy APIs
Diffs to v29.0
- [General] Various minor bug fixes
- [General] Support installing Magisk into vendor_boot partition
- [General] Migrate a significant portion of the codebase to Rust
- [Core] Improve Magisk specific files injection logic
- [MagiskSU] Add ability to restrict Linux capabilities even if running as root (uid=0)
- [MagiskSU] Fallback to older implementation when the kernel doesn't support zero userspace copy APIs
- [MagiskPolicy] Support new sepolicy binary format introduced in Android 16 QPR2
- [resetprop] Reduce property modification traces
Full Changelog: here
Magisk v30.2
- [Core] Fix an edge case breaking modules when overlayfs is involved
- [Core] Fix module
.replacefunctionality in certain situations - [resetprop] Reduce property modification traces
Diffs to v29.0
- [General] Various minor bug fixes
- [Core] Migrate module implementation to Rust
- [Core] Improve Magisk specific files injection logic
- [MagiskBoot] Migrate compression code to Rust
- [MagiskSU] Add ability to restrict Linux capabilities even if running as root (uid=0)
- [resetprop] Reduce property modification traces
Full Changelog: here
Magisk v30.1
- [Core] Fix bug in module mounting implementation
- [MagiskSU] Add ability to restrict Linux capabilities even if running as root (uid=0)
Diffs to v29.0
- [General] Various minor bug fixes
- [Core] Migrate module implementation to Rust
- [Core] Improve Magisk specific files injection logic
- [MagiskBoot] Migrate compression code to Rust
- [MagiskSU] Add ability to restrict Linux capabilities even if running as root (uid=0)
Full Changelog: here
Magisk v30.0
- [General] Various minor bug fixes
- [Core] Migrate module implementation to Rust
- [Core] Improve Magisk specific files injection logic
- [MagiskBoot] Migrate compression code to Rust