[Magisk] topjohnwu:
Changelog

Magisk

v20.3

- [MagiskBoot] Fix lz4_legacy decompression

v20.2

- [MagiskSU] Properly handle communication between daemon and application (root request prompt)

- [MagiskInit] Fix logging in kmsg

- [MagiskBoot] Support patching dtb/dtbo partition formats

- [General] Support pre-init sepolicy patch in modules

- [Scripts] Update magisk stock image backup format

v20.1

- [MagiskSU] Support component name agnostic communication (for stub APK)

- [MagiskBoot] Set proper header_size in boot image headers (fix vbmeta error on Samsung devices)

- [MagiskHide] Scan zygote multiple times

- [MagiskInit] Support recovery images without /sbin/recovery binary. This will fix some A/B devices unable to boot to recovery after flashing Magisk

- [General] Move acct to prevent daemon being killed

- [General] Make sure "--remove-modules" will execute uninstall.sh after removal

v20.0

- [MagiskBoot] Support inject/modify mnt_point value in DTB fstab

- [MagiskBoot] Support patching QCDT

- [MagiskBoot] Support patching DTBH

- [MagiskBoot] Support patching PXA-DT

- [MagiskInit] [2SI] Support non A/B setup (Android 10)

- [MagiskHide] Fix bug that reject process names with ":"

- [MagicMount] Fix a bug that cause /product mirror not created

v19.4

- [MagiskInit] [SAR] Boot system-as-root devices with system mounted as /

- [MagiskInit] [2SI] Support 2-stage-init for A/B devices (Pixel 3 Android 10)

- [MagiskInit] [initramfs] Delay sbin overlay creation to post-fs-data

- [MagiskInit] [SARCompat] Old system-as-root implementation is deprecated, no more future changes

- [MagiskInit] Add overlay.d support for root directory overlay for new system-as-root implementation

- [MagiskSU] Unblock all signals in root shells (fix bash on Android)

- [MagicMount] Support replacing files in /product

- [MagiskHide] Support Android 10's Zygote blastula pool

- [MagiskHide] All random strings now also have random length

- [MagiskBoot] Allow no recompression for ramdisk.cpio

- [MagiskBoot] Support some weird Huawei boot images

- [General] Add new "--remove-modules" command to remove modules without root in ADB shell

- [General] Support Android 10 new APEX libraries (Project Mainline)

v19.3

- [MagiskHide] Hugely improve process monitor implementation, hopefully should no longer cause 100% CPU and daemon crashes

- [MagiskInit] Wait for partitions to be ready for early mount, should fix bootloops on a handful of devices

- [MagiskInit] Support EROFS used in EMUI 9.1

- [MagiskSU] Properly implement mount namespace isolation

- [MagiskBoot] Proper checksum calculation for header v2

v19.2

- [General] Fix uninstaller

- [General] Fix bootloops on some devices with tmpfs mounting to /data

- [MagiskInit] Add Kirin hi6250 support

- [MagiskSU] Stop claiming device focus for su logging/notify if feasible

This fix issues with users locking Magisk Manager with app lock, and prevent

video apps get messed up when an app is requesting root in the background.

v19.1

- [General] Support recovery based Magisk

- [General] Support Android Q Beta 2

- [MagiskInit] New sbin overlay setup process for better compatibility

- [MagiskInit] Allow long pressing volume up to boot to recovery in recovery mode

- [MagicMount] Use proper system_root mirror

- [MagicMount] Use self created device nodes for mirrors

- [MagicMount] Do not allow adding new files/folders in partition root folder (e.g. /system or /vendor)

v19.0

- [General] Remove usage of magisk.img

- [General] Add 64 bit magisk binary for native 64 bit support

- [General] Support A only system-as-root devices that released with Android 9.0

- [General] Support non EXT4 system and vendor partitions

- [MagiskHide] Use Zygote ptracing for monitoring new processes

- [MagiskHide] Targets are now per-application component

- [MagiskInit] Support Android Q (no logical partition support yet!)

- [MagiskPolicy] Support Android Q new split sepolicy setup

- [MagiskInit] Move sbin overlay creation from main daemon post-fs-data to early-init

- [General] Service scripts now run in parallel

- [MagiskInit] Directly inject magisk services to init.rc

- [General] Use lzma2 compressed ramdisk in extreme conditions

- [MagicMount] Clone attributes from original file if exists

- [MagiskSU] Use ACTION_REBOOT intent to workaround some OEM broadcast restrictions

- [General] Use skip_mount instead of auto_mount: from opt-in to opt-out

v18.1

- [General] Support EMUI 9.0

- [General] Support Kirin 960 devices

- [General] Support down to Android 4.2

- [General] Major code base modernization under-the-hood

v18.0

- [General] Migrate all code base to C++

- [General] Modify database natively instead of going through Magisk Manager

- [General] Deprecate path /sbin/.core, please start using /sbin/.magisk

- [General] Boot scripts are moved from <magisk_img>/.core/<stage>.d to /data/adb/<stage>.d

- [General] Remove native systemless hosts (Magisk Manager is updated with a built-in systemless hosts module)

- [General] Allow module post-fs-data.sh scripts to disable/remove modules

- [MagiskHide] Use component names instead of process names as targets

- [MagiskHide] Add procfs protection on SDK 24+ (Nougat)

- [MagiskHide] Remove the folder /.backup to prevent detection

- [MagiskHide] Hide list is now stored in database instead of raw textfile in images

- [MagiskHide] Add "--status" option to CLI

- [MagiskHide] Stop unmounting non-custom related mount points

- [MagiskSU] Add FLAG_INCLUDE_STOPPED_PACKAGES in broadcasts to force wake Magisk Manager

- [MagiskSU] Fix a bug causing SIGWINCH not properly detected

- [MagiskPolicy] Support new av rules: type_change, type_member

- [MagiskPolicy] Remove all AUDITDENY rules after patching sepolicy to log all denies for debugging

- [MagiskBoot] Properly support extra_cmdline in boot headers

- [MagiskBoot] Try to repair broken v1 boot image headers

- [MagiskBoot] Add new CPIO command: "exists"

v17.3

- [MagiskBoot] Support boot image header v1 (Pixel 3)

- [MagiskSU] No more linked lists for caching su_info

- [MagiskSU] Parse command-lines in client side and send only options to daemon

- [MagiskSU] Early ACK to prevent client freezes and early denies

- [Daemon] Prevent bootloops in situations where /data is mounted twice

- [Daemon] Prevent logcat failures when /system/bin is magic mounting, could cause MagiskHide to fail

- [Scripts] Switch hexpatch to remove Samsung Defex to a more general pattern

- [Scripts] Update data encryption detection for better custom recovery support

v17.2

- [ResetProp] Update to AOSP upstream to support serialized system properties

- [MagiskInit] Randomize Magisk service names to prevent detection (e.g. FGO)

- [MagiskSU] New communication scheme to communicate with Magisk Manager

v17.0/17.1

- [General] Bring back install to inactive slot for OTAs on A/B devices

- [Script] Remove system based root in addon.d

- [Script] Add proper addon.d-v2 for preserving Magisk on custom ROMs on A/B devices

- [Script] Enable KEEPVERITY when the device is using system_root_image

- [Script] Add hexpatch to remove Samsung defex in new Oreo kernels

- [Daemon] Support non ext4 filesystems for mirrors (system/vendor)

- [MagiskSU] Make pts sockets always run in dev_pts secontext, providing all terminal emulator root shell the same power as adb shells

- [MagiskHide] Kill all processes with same UID of the target to workaround OOS embryo optimization

- [MagiskInit] Move all sepolicy patches pre-init to prevent Pixel 2 (XL) boot service breakdown

v16.7

- [Scripts] Fix boot image patching errors on Android P (workaround the strengthened seccomp)

- [MagiskHide] Support hardlink based ns proc mnt (old kernel support)

- [Daemon] Fix permission of /dev/null after logcat commands, fix ADB on EMUI

- [Daemon] Log fatal errors only on debug builds

- [MagiskInit] Detect early mount partname from fstab in device tree

v16.6

- [General] Add wrapper script to overcome weird LD_XXX flags set in apps

- [General] Prevent bootloop when flashing Magisk after full wipe on FBE devices

- [Scripts] Support patching DTB placed in extra sections in boot images (Samsung S9/S9+)

- [Scripts] Add support for addon.d-v2 (untested)

- [Scripts] Fix custom recovery console output in addon.d

- [Scripts] Fallback to parsing sysfs for detecting block devices

- [Daemon] Check whether a valid Magisk Manager is installed on boot, if not, install stub APK embedded in magiskinit

- [Daemon] Check whether Magisk Manager is repackaged (hidden), and prevent malware from hijacking com.topjohnwu.magisk

- [Daemon] Introduce new daemon: magisklogd, a dedicated daemon to handle all logcat related monitoring

- [Daemon] Replace old invincible mode with handshake between magiskd and magisklogd, one will respwan the other if disconnected

- [Daemon] Support GSI adbd bind mounting

- [MagiskInit] Support detecting block names in upper case (Samsung)

- [MagiskBoot] Check DTB headers to prevent false detections within kernel binary

- [MagiskHide] Compare mount namespace with PPID to make sure the namespace is actually separated, fix root loss

- [MagiskSU] Simplify su_info caching system, should use less resources and computing power

- [MagiskSU] Reduce the amount of broadcasting to Magisk Manager

- [ImgTool] Separate all ext4 image related operations to a new applet called "imgtool"

- [ImgTool] Use precise free space calculation methods

- [ImgTool] Use our own set of loop devices hidden along side with sbin tmpfs overlay. This not only eliminates another possible detection method, but also fixes apps that mount OBB files as loop devices (huge thanks to dev of Pzizz for reporting this issue)

v16.4

- [Daemon] Directly check logcat command instead of detecting logd, should fix logging and MagiskHide on several Samsung devices

- [Daemon] Fix startup Magisk Manager APK installation on Android P

- [MagiskPolicy] Switch from AOSP u:r:su:s0 to u:r:magisk:s0 to prevent conflicts

- [MagiskPolicy] Remove unnecessary sepolicy rules to reduce security penalty

- [Daemon] Massive re-design /sbin tmpfs overlay and daemon start up

- [MagiskInit] Remove magiskinit_daemon, the actual magisk daemon (magiskd) shall handle everything itself

- [Daemon] Remove post-fs stage as it is very limited and also will not work on A/B devices; replaced with simple mount in post-fs-data, which will run ASAP even before the daemon is started

- [General] Remove all 64-bit binaries as there is no point in using them; all binaries are now 32-bit only.

Some weirdly implemented root apps might break (e.g. Tasker, already reported to the developer), but it is not my fault :)

- [resetprop] Add Protobuf encode/decode to support manipulating persist properties on Android P

- [MagiskHide] Include app sub-services as hiding targets. This might significantly increase the amount of apps that could be properly hidden

v16.3

- [General] Remove symlinks used for backwards compatibility

- [MagiskBoot] Fix a small size calculation bug

v16.2

- [General] Force use system binaries in handling ext4 images (fix module installation on Android P)

- [MagiskHide] Change property state to disable if logd is disabled

v16.1

- [MagiskBoot] Fix MTK boot image packaging

- [MagiskBoot] Add more Nook/Acclaim headers support

- [MagiskBoot] Support unpacking DTB with empty kernel image

- [MagiskBoot] Update high compression mode detection logic

- [Daemon] Support new mke2fs tool on Android P

- [resetprop] Support Android P new property context files

- [MagiskPolicy] Add new rules for Android P

v16.0

- [MagiskInit] Support non skip_initramfs devices with slot suffix (Huawei Treble)

- [MagiskPolicy] Add rules for Magisk Manager

- [Compiler] Workaround an NDK compiler bug that causes bootloops

v15.4

- [MagiskBoot] Support Samsung PXA, DHTB header images

- [MagiskBoot] Support ASUS blob images

- [MagiskBoot] Support Nook Green Loader images

- [MagiskBoot] Support pure ramdisk images

- [MagiskInit] Prevent OnePlus angela sepolicy_debug from loading

- [MagiskInit] Obfuscate Magisk socket entry to prevent detection and security

- [Daemon] Fix subfolders in /sbin shadowed by overlay

- [Daemon] Obfuscate binary names to prevent naive detections

- [Daemon] Check logd before force trying to start logcat in a loop

v15.3

- [Daemon] Fix the bug that only one script would be executed in post-fs-data.d/service.d

- [Daemon] Add MS_SILENT flag when mounting, should fix some devices that cannot mount magisk.img

- [MagiskBoot] Fix potential segmentation fault when patching ramdisk, should fix some installation failures

v15.2

- [MagiskBoot] Fix dtb verity patches, should fix dm-verity bootloops on newer devices placing fstabs in dtb

- [MagiskPolicy] Add new rules for proper Samsung support, should fix MagiskHide

- [MagiskInit] Support non skip_initramfs devices using split sepolicies (e.g. Zenfone 4 Oreo)

- [Daemon] Use specific logcat buffers, some devices does not support all log buffers

- [scripts] Update scripts to double check whether boot slot is available, some devices set a boot slot without A/B partitions

v15.1

- [MagiskBoot] Fix faulty code in ramdisk patches which causes bootloops in some config and fstab format combos

v15.0

- [Daemon] Fix the bug that Magisk cannot properly detect /data encryption state

- [Daemon] Add merging /cache/magisk.img and /data/adb/magisk_merge.img support

- [Daemon] Update to upstream libsepol to support cutting edge split policy custom ROM cil compilations

Magisk Manager

v7.5.1

- Fix toggling app components in MagiskHide screen

- Update translations

v7.5.0

- Support new MagiskSU communication method (ContentProvider)

- Fix several issues with hidden stub APK

- Support using BiometricPrompt (face unlock)

v7.4.0

- Hide Magisk Manager with stub APKs on Android 9.0+

- Allow customizing app name when hiding Magisk Manager

- Generate random keys to sign the hidden Magisk Manager to prevent signature detections

- Fix fingerprint UI infinite loop

v7.3.5

- Sort installed modules by name

- Better pre-5.0 support

- Fix potential issues when patching tar files

v7.3.4

- App is now fully written in Kotlin!

- New downloading system

- Add new "Recovery Mode" to Advanced Settings

v7.3.0/1/2

- HUGE code base modernization, thanks [MENTION=9815783]diareuse[/MENTION]!

- More sweet changes coming in the future!

- Reboot device using proper API (no more abrupt reboot)

- New floating button in Magisk logs to go to bottom

v7.2.0

- Huge UI overhaul

- More sweet changes coming in the future!

v7.1.2

- Support patching Samsung AP firmware

- Much better module downloading mechanism

v7.1.1

- Fix a bug that causes some modules using new format not showing up

v7.1.0

- Support the new module format

- Support per-application component granularity MagiskHide targets (only on v19+)

- Ask for fingerprint before deleting rules if enabled

- Fix the bug that causes repackaging to lose settings

- Several UI fixes

v7.0.0

- Major UI redesign!

- Render Markdown natively (no more buggy WebView!)

- Support down to Android 4.1 (native Magisk only support Android 4.2 though)

- Significantly improve Magisk log disply performance

- Fix post OTA scripts for A/B devices

- Reduce memory usages when verifying and signing boot image

- Drop support for Magisk lower than v18.0

v6.1.0

- Introduce new downloading methods: no longer uses buggy system Download Manager

- Introduce many new notifications for better user experience

- Add support for Magisk v18.0

- Change application name to "Manager" after hiding(repackaging) to prevent app name detection

- Add built-in systemless hosts module (access in settings)

- Auto launch the newly installed app after hiding(repackaging) and restoring Magisk Manager

- Fix bug causing incomplete module.prop in modules to have improper UI

v6.0.1

- Update to use new online module's organizing method

- When fingerprint authentication is enabled, toggling root permissions in "Superuser" section now requires fingerprint beforehand

- Fix crashes when entering MagiskHide section on some devices

- Remove support to Magisk version lower than v15.0

- Ask storage permissions before patching stock boot image

- Update dark theme CardView color

v6.0.0

- Update to latest AndroidX support library

- Fix crashes when online repos contain incomplete metadata

- Optimize BootSigner to use as little memory as possible, prevent OutOfMemoryError

- Support new communication scheme between Magisk v17.2 and Magisk Manager

- Enable excessive obfuscation to prevent APK analysis root detections (still not 100% obfuscated due to backwards compatibility with stable channel)