Releases: topjohnwu/Magisk
Magisk (8e82113b) (27007)
- [MagiskBoot] Properly support vendor boot images
- [Core] Update boot image detection logic to support more devices
Diffs to v27.0
- [General] Support 16k page size
- [General] Add baisc support for RISC-V (not built in releases)
- [General] Use a minimal libc to build static executables (
magiskinit
andmagiskboot
) for smaller sizes - [Core] Remove unnecessary mirror for magic mount
- [Core] Update boot image detection logic to support more devices
- [MagiskInit] Rewrite 2SI logic for injecting
magiskinit
asinit
- [MagiskInit] Update preinit partition detection
- [Zygisk] Update internal JNI hooking implementation
- [MagiskPolicy] Preserve sepolicy config flag after patching
- [MagiskPolicy] Optimize patching rules to reduce the amount of new rules being injected
- [DenyList] Support enforcing denylist when Zygisk is disabled
- [Resetprop] Improve implementation to workaround several property modification detections
- [Resetprop] Update to properly work with property overlays
- [App] Major internal code refactoring
- [App] Support patching Samsung firmware with images larger than 8GiB
- [App] Use user-initiated job instead of foreground services on Android 14
- [App] Support Android 13+ built-in per-app language preferences
- [MagiskBoot] Support spliting kernel images without decompression
- [MagiskBoot] Properly support vendor boot images
Magisk (0495468d) (27006)
- [MagiskInit] Fix regression with
sepolicy.rule
loading
Diffs to v27.0
- [General] Support 16k page size
- [General] Add support for RISC-V
- [General] Use a minimal libc to build static executables (
magiskinit
andmagiskboot
) for smaller sizes - [Core] Remove unnecessary mirror for magic mount
- [MagiskInit] Rewrite 2SI logic for injecting
magiskinit
asinit
- [MagiskInit] Update preinit partition detection
- [Zygisk] Update internal JNI hooking implementation
- [MagiskPolicy] Preserve sepolicy config flag after patching
- [MagiskPolicy] Optimize patching rules to reduce the amount of new rules being injected
- [DenyList] Support enforcing denylist when Zygisk is disabled
- [Resetprop] Improve implementation to workaround several property modification detections
- [Resetprop] Update to properly work with property overlays
- [App] Major internal code refactoring
- [App] Support patching Samsung firmware with images larger than 8GiB
- [App] Use user-initiated job instead of foreground services on Android 14
- [App] Support Android 13+ built-in per-app language preferences
- [MagiskBoot] Support spliting kernel images without decompression
Magisk (7b81e2d2) (27005)
- [Zygisk] Update internal JNI hooking implementation
- [MagiskInit] Update preinit partition detection
Diffs to v27.0
- [General] Support 16k page size
- [General] Add support for RISC-V
- [General] Use a minimal libc to build static executables (
magiskinit
andmagiskboot
) for smaller sizes - [Core] Remove unnecessary mirror for magic mount
- [MagiskInit] Rewrite 2SI logic for injecting
magiskinit
asinit
- [MagiskPolicy] Preserve sepolicy config flag after patching
- [MagiskPolicy] Optimize patching rules to reduce the amount of new rules being injected
- [DenyList] Support enforcing denylist when Zygisk is disabled
- [Resetprop] Improve implementation to workaround several property modification detections
- [Resetprop] Update to properly work with property overlays
- [App] Major internal code refactoring
- [App] Support patching Samsung firmware with images larger than 8GiB
- [App] Use user-initiated job instead of foreground services on Android 14
- [App] Support Android 13+ built-in per-app language preferences
- [MagiskBoot] Support spliting kernel images without decompression
Magisk v27.0
- [Zygisk] Introduce new code injection mechanism
- [Zygisk] Support new signature introduced in U QPR2
- [SEPolicy] Update libsepol to properly set some policy config bits
- [MagiskBoot] Support compressing
init
so Magisk is installable on devices with small boot partitions - [ResetProp] Add new wait for property feature
resetprop -w
Full Changelog: here
Magisk v26.4
- [MagiskBoot] Don't pad zeros if signed boot image is larger
- [MagiskPolicy] Fix
genfscon
andfilename_trans
- [MagiskPolicy] Fix bug in
libsepol
- [Zygisk] Fix and simplify file descriptor sanitization logic
- [App] Prevent OOM when patching AP tarfiles
- [App] Fix bug in device configuration detection
- [Daemon] Fix certificate parsing of APKs
- [General] Fix logging errors from C++ code being ignored
Full Changelog: here
Magisk v26.3
- [General] Fix device information detection script
- [General] Update BusyBox to 1.36.1
- [General] Update toolchain that produces broken arm32 executables
- [App] Fix root service unable to bind on OnePlus devices
Full Changelog: here
Magisk v26.2
- [MagiskBoot] Support extracting boot image from
payload.bin
- [MagiskBoot] Support cpio files containing character files
- [MagiskBoot] Support listing cpio content
- [MagiskBoot] Directly handle AVB 1.0 signing and verification without going through Java implementation
- [Daemon] Make daemon socket a fixed path in MAGISKTMP
- [resetprop] Support printing property context
- [resetprop] Support only printing persistent properties from storage
- [resetprop] Properly support setting persistent properties bypassing property_service
- [MagiskSU] Support
-g
and-G
options - [MagiskSU] Support switching mount namespace to PID with
-t
- [MagiskPolicy] Fix patching extended permissions
- [MagiskPolicy] Support more syntax for extended permissions
- [MagiskPolicy] Support printing out the loaded sepolicy rules
- [App] Support patching boot image from ROM zips
- [App] Properly preserve
boot.img
when patching Samsung firmware withinit_boot.img
Full Changelog: here
Magisk v26.1
Changes from v26.0
- [App] Fix crashing when revoking root permissions
- [MagiskInit] Always prefer
ext4
partitions overf2fs
when selecting the pre-init partition - [General] Restore module files' context/owner/group from mirror. This is a regression introduced in v26.0
(The following is the same as v26.0 release notes)
Hey! Long time no see!
Bumping Minimum Android Version to 6.0
Magisk's support for Android Lollipop has been pretty broken for a while without it being noticed. Also, none of the active developers of Magisk have actual hardware to run Android Lollipop. We rely on using the official Android emulator for regression testing on older platforms, however Google never shipped a Lollipop emulator image with SELinux support, leaving us with no option but to drop Lollipop support since we don't feel comfortable supporting Android Lollipop without adequate testing.
New Magic Mount Implementation
Magic Mount, the feature that make modules modify partitions, has gone through a major rewrite. The existing implementation doesn't work well with OEMs injecting overlays into their system using overlayfs
. The new implementation fundamentally changes how filesystem mirrors are created, giving us a more accurate clone of the unmodified filesystem.
New sepolicy.rule
Implementation
Magisk allows modules to provide custom SELinux patches by including the file sepolicy.rule
. Due to the complicated nature of SELinux patching, the compatibility of this functionality has been pretty spotty; many devices are not supported. In this release, a brand new pre-init partition detection mechanism has been designed to support even more devices. Due to complicated reasons, this detection mechanism cannot be performed in a custom recovery environment.
This means that any installation of Magisk v26+ using custom recovery will be incomplete; a subsequent re-installation through the Magisk app after booting up is required.
Zygisk Updates
The new Zygisk API v4 is now live! It comes with new features and a refined PLT function hook API. The implementaton of Zygisk has also gone through some major refactoring, including new code loading/unloading mechanisms and a new PLT function hook implementation.
Head over to the Zygisk Module Sample repository to check out the new API and documentation!
Full Changelog: here
Magisk v26.0
Hey! Long time no see!
Bumping Minimum Android Version to 6.0
Magisk's support for Android Lollipop has been pretty broken for a while without it being noticed. Also, none of the active developers of Magisk have actual hardware to run Android Lollipop. We rely on using the official Android emulator for regression testing on older platforms, however Google never shipped a Lollipop emulator image with SELinux support, leaving us with no option but to drop Lollipop support since we don't feel comfortable supporting Android Lollipop without adequate testing.
New Magic Mount Implementation
Magic Mount, the feature that make modules modify partitions, has gone through a major rewrite. The existing implementation doesn't work well with OEMs injecting overlays into their system using overlayfs
. The new implementation fundamentally changes how filesystem mirrors are created, giving us a more accurate clone of the unmodified filesystem.
New sepolicy.rule
Implementation
Magisk allows modules to provide custom SELinux patches by including the file sepolicy.rule
. Due to the complicated nature of SELinux patching, the compatibility of this functionality has been pretty spotty; many devices are not supported. In this release, a brand new pre-init partition detection mechanism has been designed to support even more devices. Due to complicated reasons, this detection mechanism cannot be performed in a custom recovery environment.
This means that any installation of Magisk v26+ using custom recovery will be incomplete; a subsequent re-installation through the Magisk app after booting up is required.
Zygisk Updates
The new Zygisk API v4 is now live! It comes with new features and a refined PLT function hook API. The implementaton of Zygisk has also gone through some major refactoring, including new code loading/unloading mechanisms and a new PLT function hook implementation.
Head over to the Zygisk Module Sample repository to check out the new API and documentation!
Full Changelog: here
Magisk v25.2
Maintenance release fixing various issues.
- [MagiskInit] Fix a potential issue when stub cpio is used
- [MagiskInit] Fix reboot to recovery when stub cpio is used
- [MagiskInit] Fix sepolicy.rules symlink for rootfs devices
- [General] Better data encryption detection
- [General] Move the whole logging infrastructure into Rust