Skip to content

Releases: topjohnwu/Magisk

Magisk (8e82113b) (27007)

23 Aug 08:22
Compare
Choose a tag to compare
Pre-release
  • [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 and magiskboot) 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 as init
  • [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)

25 Jul 06:23
Compare
Choose a tag to compare
Pre-release
  • [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 and magiskboot) for smaller sizes
  • [Core] Remove unnecessary mirror for magic mount
  • [MagiskInit] Rewrite 2SI logic for injecting magiskinit as init
  • [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)

24 Jul 00:53
Compare
Choose a tag to compare
Pre-release
  • [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 and magiskboot) for smaller sizes
  • [Core] Remove unnecessary mirror for magic mount
  • [MagiskInit] Rewrite 2SI logic for injecting magiskinit as init
  • [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

03 Feb 07:33
Compare
Choose a tag to compare
  • [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

06 Nov 07:35
Compare
Choose a tag to compare
  • [MagiskBoot] Don't pad zeros if signed boot image is larger
  • [MagiskPolicy] Fix genfscon and filename_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

04 Sep 07:05
Compare
Choose a tag to compare
  • [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

28 Aug 08:12
Compare
Choose a tag to compare
  • [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 with init_boot.img

Full Changelog: here

Magisk v26.1

11 Apr 09:06
Compare
Choose a tag to compare

Changes from v26.0

  • [App] Fix crashing when revoking root permissions
  • [MagiskInit] Always prefer ext4 partitions over f2fs 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

05 Apr 18:05
Compare
Choose a tag to compare

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

21 Jul 03:15
Compare
Choose a tag to compare

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

Full Changelog: here