Remove All Ads from XDA

[2019.3.28] Magisk v19.0 - Root & Universal Systemless Interface [Android 4.2+]

1,834 posts
Thanks Meter: 54,290
By topjohnwu, Recognized Developer / Recognized Contributor on 3rd October 2016, 06:00 PM
Thread Closed Email Thread

Stable Magisk Version: v18.1
Beta Magisk Version: v19.0
Magisk Manager Version: v7.1.1

Welcome to the official Magisk Release / Announcement thread!
Installing Magisk will give you ROOT, a super powerful Systemless Interface,
Magisk Modules support, and hide from tons of integrity tests like SafetyNet!

Magisk does NOT have a website. Do NOT download Magisk from unofficial sites.
Official Links: Magisk Github Release

  • Open Source:
    100% open source and easy to build on all Google supported platforms.
  • Magic Mount:
    Modify system (vendor) without tampering the partitions.
  • MagiskSU:
    Unleash your device's root access.
  • MagiskHide:
    Hide Magisk from detections: Google SafetyNet, enterprise / bank system integrity checks, game tamper checks.
  • Resetprop:
    Modify or delete any system properties, including read-only props.
  • Online Module Repo:
    Install Magisk Modules from the community driven Magisk Module Repo.
Android Version Support
  • Android 4.2+: MagiskSU Only (*1)
  • Android 4.4+: All features availible (*2)
  • Android 6.0+: MagiskHide guranteed support (*3)
  • Android 7.0+: MagiskHide full protection
  1. Resetprop and MagiskHide will never be supported. Magic Mount (modules) will be added in the future.
  2. Pre 6.0 kernels are very likely to have no mount ns procfs support, which is required for MagiskHide to work properly. This Linux kernel feature is only required to be added in Android 6.0.
    If your kernel lacks this feature, you can build (or ask your custom kernel dev) with some additional patches. The relevant patches are: set CONFIG_NAMESPACES=y in defconfig, and apply this patch. More info: Namespace file descriptors (2010 original article)
  3. Pre 7.0 does not support hidepid=2, thus cannot provide full protection

InstructionsDownloadsNotes & Troubleshoots
  • Most common issues are documented in Magisk Troubleshoot Wiki (huge thanks to @Didgeridoohan!), check it out before spamming the forums
  • Magisk Manager CANNOT be placed in adoptable storage
  • Q: WebView is crashing on my device when I enable MagiskHide
    A: It's a bug in your ROM, please ask your ROM developer to include this commit to fix the issue
  • @phhusson for the original sepolicy injection tool, boot image tools, superuser, hide su tools
  • @Chainfire for many shell script code, his supolicy in older versions, and the complete documentation How-To SU
  • @nkk71 (RIP) for the original resetprop
  • @osm0sis for unSU, addon.d hack, boot image unpacking knowledge
  • Every contributor of Magisk Manager
Download count of previously XDA hosted files: 25,490,945

v1: 8746 v2: 2251 v3: 3790 v4: 1220 v5: 2914
v6: 138838 v7: 119744 v8: 116796 v9: 203836 v10.2: 215176
v11.1: 573322 v11.6:438886 v12.0: 3263706
1300: 274438 1310: 1018692 1320: 403556 1330: 1844372
1350: 39188 1360: 69874 1400: 4456314
1410: 11512 1420: 112020 1437: 247988 1455: 30652
1456: 253042 1468: 85978 1500: 434572 1510: 460120
1520: 927436 1530: 218164 1531: 3143686 1540: 97368
1600: 6043710 1610: 87628 1620: 140382
The Following 3,637 Users Say Thank You to topjohnwu For This Useful Post: [ View ]
3rd October 2016, 06:07 PM |#2  
OP Recognized Developer / Recognized Contributor
Flag Taipei
Thanks Meter: 54,290
Donate to Me
  • 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 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
  • v14.6 (1468)
    - [General] Move all files into a safe location: /data/adb
    - [Daemon] New invincible implementation: use magiskinit_daemon to monitor sockets
    - [Daemon] Rewrite logcat monitor to be more efficient
    - [Daemon] Fix a bug where logcat monitor may spawn infinite logcat processes
    - [MagiskSU] Update su to work the same as proper Linux implementation:
    Initialize window size; all environment variables will be migrated (except HOME, SHELL, USER, LOGNAME, these will be set accordingly),
    "--preserve-environment" option will preserve all variables, including those four exceptions.
    Check the Linux su manpage for more info
    - [MagiskBoot] Massive refactor, rewrite all cpio operations and CLI
    - [MagiskInit][MagiskBoot] Support ramdisk high compression mode
  • v14.5 (1456)
    - [Magiskinit] Fix bootloop issues on several devices
    - [misc] Build binaries with NDK r10e, should get rid of the nasty linker warning when executing magisk
  • v14.5 (1455)
    - [Daemon] Moved internal path to /sbin/.core, new image mountpoint is /sbin/.core/img
    - [MagiskSU] Support switching package name, used when Magisk Manager is hidden
    - [MagiskHide] Add temporary /magisk removal
    - [MagiskHide] All changes above contributes to hiding from nasty apps like FGO and several banking apps
    - [Magiskinit] Use magiskinit for all devices (dynamic initramfs)
    - [Magiskinit] Fix Xiaomi A1 support
    - [Magiskinit] Add Pixel 2 (XL) support
    - [Magiskboot] Add support to remove avb-verity in dtbo.img
    - [Magiskboot] Fix typo in handling MTK boot image headers
    - [script] Along with updates in Magisk Manager, add support to sign boot images (AVB 1.0)
    - [script] Add dtbo.img backup and restore support
    - [misc] Many small adjustments to properly support old platforms like Android 5.0
  • v14.3 (1437)
    - [MagiskBoot] Fix Pixel C installtion
    - [MagiskBoot] Handle special lz4_legacy format properly, should fix all LG devices
    - [Daemon] New universal logcat monitor is added, support plug-and-play to worker threads
    - [Daemon] Invincible mode: daemon will be restarted by init, everything should seamlessly through daemon restarts
    - [Daemon] Add new restorecon action, will go through and fix all Magisk files with selinux unlabled to system_file context
    - [Daemon] Add brute-force image resizing mode, should prevent the notorious Samsung crappy resize2fs from affecting the result
    - [resetprop] Add new "-p" flag, used to toggle whether alter/access the actual persist storage for persist props
  • v14.2
    - [MagicMount] Clone attributes to tmpfs mountpoint, should fix massive module breakage
  • v14.1
    - [MagiskInit] Introduce a new init binary to support skip_initramfs devices (Pixel family)
    - [script] Fix typo in update-binary for x86 devices
    - [script] Fix stock boot image backup not moved to proper location
    - [script] Add functions to support A/B slot and skip_initramfs devices
    - [script] Detect Meizu boot blocks
    - [MagiskBoot] Add decompress zImage support
    - [MagiskBoot] Support extracting dtb appended to zImage block
    - [MagiskBoot] Support patching fstab within dtb
    - [Daemon/MagiskSU] Proper file based encryption support
    - [Daemon] Create core folders if not exist
    - [resetprop] Fix a bug which delete props won't remove persist props not in memory
    - [MagicMount] Remove usage of dummy folder, directly mount tmpfs and constuct file structure skeleton in place
  • v14.0
    - [script] Simplify installation scripts
    - [script] Fix a bug causing backing up and restoring stock boot images failure
    - [script] Installation and uninstallation will migrate old or broken stock boot image backups to proper format
    - [script] Fix an issue with selabel setting in util_functions on Lollipop
    - [rc script] Enable logd in post-fs to start logging as early as possible
    - [MagiskHide] magisk.img mounted is no longer a requirement
    Devices with issues mounting magisk.img can now run in proper core-only mode
    - [MagiskBoot] Add native function to extract stock SHA1 from ramdisk
    - [b64xz] New tool to extract compressed and encoded binary dumps in shell script
    - [busybox] Add busybox to Magisk source, and embed multi-arch busybox binary into update-binary shell script
    - [busybox] Busybox is added into PATH for all boot scripts (post-fs-data.d, service.d, and all module scripts)
    - [MagiskSU] Fully fix multiuser issues
    - [Magic Mount] Fix a typo in cloning attributes
    - [Daemon] Fix the daemon crashing when boot scripts opens a subshell
    - [Daemon] Adjustments to prevent stock Samsung kernel restrictions on exec system calls for binaries started from /data
    - [Daemon] Workaround on Samsung device with weird fork behaviors
  • v13.3
    - [MagiskHide] Update to bypass Google CTS (2017.7.17)
    - [resetprop] Properly support removing persist props
    - [uninstaller] Remove Magisk Manager and persist props
  • v13.2
    - [magiskpolicy] Fix magiskpolicy segfault on old Android versions, should fix tons of older devices that couldn't use v13.1
    - [MagiskHide] Set proper selinux context while re-linking /sbin to hide Magisk, should potentially fix many issues
    - [MagiskBoot] Change lzma compression encoder flag from LZMA_CHECK_CRC64 to LZMA_CHECK_CRC32, kernel only supports latter
    - [General] Core-only mode now properly mounts systemless hosts and magiskhide
  • v13.1
    - [General] Merge MagiskSU, magiskhide, resetprop, magiskpolicy into one binary
    - [General] Add Android O support (tested on DP3)
    - [General] Dynamic link, from system to greatly reduce binary size
    - [General] Remove bundled busybox because it casues a lot of issues
    - [General] Unlock all block devices for read-write support instead of emmc only (just figured not all devices uses emmc lol)
    - [Scripts] Run all ext4 image operations through magisk binary in flash scripts
    - [Scripts] Updated scripts to use magisk native commands to increase compatibility
    - [Scripts] Add addon.d survival support
    - [Scripts] Introduce, used as a global shell script function source for all kinds of installation
    - [MagiskBoot] Moved boot patch logic into magiskboot binary
    - [MagiskSU] Does not fork new process for each request, add new threads instead
    - [MagiskSU] Added multiuser support
    - [MagiskSU] Introduce new timeout queue mechanism, prevent performance hit with poorly written su apps
    - [MagiskSU] Multiple settings moved from prop detection to database
    - [MagiskSU] Add namespace mode option support
    - [MagiskSU] Add master-mount option
    - [resetprop] Updated to latest AOSP upstream, support props from 5.0 to Android O
    - [resetprop] Renamed all functions to prevent calling functions from external libc
    - [magiskpolicy] Updated libsepol from official SELinux repo
    - [magiskpolicy] Added xperm patching support (in order to make Android O work properly)
    - [magiskpolicy] Updated rules for Android O, and Liveboot support
    - [MagiskHide] Remove pseudo permissive mode, directly hide permissive status instead
    - [MagiskHide] Remove unreliable list file monitor, change to daemon request mode
    - [MagiskHide] MagiskHide is now enabled by default
    - [MagiskHide] Update unmount policies, passes CTS in SafetyNet!
    - [MagiskHide] Add more props for hiding
    - [MagiskHide] Remove background magiskhide daemon, spawn short life process for unmounting purpose
    - [Magic Mount] Ditched shell script based mounting, use proper C program to parse and mount files. Speed is SIGNIFICANTLY improved
  • v12.0
    - [General] Move most binaries into magisk.img (Samsung cannot run su daemon in /data)
    - [General] Move sepolicy live patch to late_start service
    This shall fix the long boot times, especially on Samsung devices
    - [General] Add Samsung RKP hexpatch back, should now work on Samsung stock kernels
    - [General] Fix installation with SuperSU
    - [MagiskHide] Support other logcat am_proc_start patterns
    - [MagiskHide] Change /sys/fs/selinux/enforce(policy) permissions if required
    Samsung devices cannot switch selinux states, if running on permissive custom kernel, the users will stuck at permissive
    If this scenario is detected, change permissions to hide the permissive state, leads to SafetyNet passes
    - [MagiskHide] Add built in prop rules to fake KNOX status
    Samsung apps requiring KNOX status to be 0x0 should now work (Samsung Pay not tested)
    - [MagiskHide] Remove all props, since they cause more issues than they benefit...
    - [MagiskBoot] Add lz4 legacy format support (most linux kernel using lz4 for compression is using this)
    - [MagiskBoot] Fix MTK kernels with MTK headers

Magisk Manager
  • 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)
  • v5.9.0/v5.9.1
    - No more on boot notifications
    - Support new mechanism for installing to inactive slot for OTAs on A/B devices
    - Fix restore Magisk Manager settings on Android P
    - Verify existing file checksums to prevent unnecessary re-downloads
    - Update SNET extension to use new Google API, fix "Invalid Response" errors
    - Move fingerprint settings to magisk database to prevent the settings to be easily removed
    - Fingerprint settings are now guarded with fingerprint authentications before it can get changed
    - Prevent any files to be downloaded to /sdcard/MagiskManager
  • v5.8.3
    - Prevent invalid modules in the online repo crashing the app
    - Update Stable and Beta channel URLs
  • v5.8.1
    - Fix a bug that cause the root shell initializer not running in BusyBox environment
  • v5.8.0
    - Remain hidden when upgrading within repackaged Magisk Manager
    - New feature: support reconstructing a proper Magisk environment if error detected (e.g. after factory reset)
    - New uninstall method: download uninstaller and completely remove Magisk + Magisk Manager, following with a reboot
    - Hidden apps are now shown on the top of the list in MagiskHide fragment
    - Tons of under-the-hood bug fixes and improvements
  • v5.7.0
    - Add app shortcuts for Android 7.1+
    - Bump minimal module minMagisk requirement to 1500
    - Adjustments for new sepolicies on v16.4+
    - Fix crashes when refreshing the online repo
  • v5.6.4
    - Remove the blacklisted apps using SafetyNet (e.g. Pokemon GO)
  • v5.6.3
    - Fix repo loading UI logic
  • v5.6.2
    - Cleanup folders if installation failed
    - Add support for Android P
  • v5.6.1
    - Fix database crashes on F2FS with SQLite 3.21.0+
    - Optimize several settings options
    - Use native XML for settings migration
  • v5.6.0
    - Remove JNI requirement, Magisk Manager is now pure Java
    - Update the method of handling su database, may fix the issue that root requests won't save
    - Add the option to restore Magisk Manager after repackaging with random package name
    - Massive under-the-hood optimizations
  • v5.5.5
    - Fix crashes on Lollipop and some devices not following AOSP standards
  • v5.5.4
    - Fix dtbo on-boot detection, should follow configured dtbo patching behavior on Pixel 2 devices
    - Add fingerprint authentication for Superuser requests
  • v5.5.3
    - Update translations
    - Update internal scripts (in sync with Magisk)
    - Minor adjustments
  • v5.5.2
    - Support sorting online repos with last update
    - Fix issue that advanced installation settings won't stick
    - Prevent sudb crashing Magisk Manager
  • v5.5.1
    - Fix an issue in setting up superuser database, which causes some users to experience tons of root issues
  • v5.5.0
    - Fix dynamic resource loading, prevent crashes when checking SafetyNet
    - Update SignAPK to use very little RAM for supporting old devices
    - Support settings migration after hiding Magisk Manager
    - Add reboot menu in modules section
    - Add dark theme to superuser request dialogs
    - Properly handle new HIGHCOMP and add recommended KEEPVERITY and KEEPFORCEENCRYPT flags for installation
    - Support new paths for v14.6
    - Massive improvements in repackaging Magisk Manager
  • v5.4.3
    - Add flags to intent to prevent crashes
    - Update translations
  • v5.4.2
    - Support new paths and setup of v14.5
    - Support repackaging Magisk Manager for hiding (only works on v14.5+)
    - Support hardlinking global su database into app data
    - Support signing boot images (AVB 1.0)
    - Update app icon to adaptive icons
    - Remove app from MagiskHide list if uninstalled
    - Add support to save detailed logs when installing Magisk or modules
    - Fix download progress error if module is larger than 20MB
    - Changed the way how downloaded repos are processed, should be rock stable
    - Prevent crashes when database is corrupted - clear db instead
    - Fix saving wrong UID issue on multiuser mode
    - Add custom update channel support - you can now switch to your own update server!
    - Some UI adjustments and asynchronous UI performance improvements
  • v5.4.0
    - SafetyNet checks now require external code extension (for 100% FOSS)
    - Repo loading will now show real-time progress instead of blank screen
    - Show progress when downloading an online module
    - Allow secondary users to access superuser settings if allowed
    - Fix several places where external storage is needed but forgot to request
    - Fetching online repo info from sever is significantly faster thanks to multithreading
    - Pulling down Download page will now force a full refresh, thanks to the faster loading speed
    - Using new resetprop tool to properly detect MagiskHide status
  • v5.3.5
    - Fix error when MagiskManager folder doesn't exist
    - Offload many logic to scripts: script fixes will also be picked up in the app
    - Add installing Magisk to second slot on A/B partition devices
    - Support file based encryption: store necessary files into DE storage
    - Update uninstall method to self remove app and prompt user to manually reboot
  • v5.3.0
    - Add hide Magisk Manager feature - hide the app from detection
    - Add update channel settings - you can now receive beta updates through the app
    - Proper runtime permission implementation - request storage permission only when needed
    - Add boot image file patch feature - you can patch boot images without root!
    - Rewrite Magisk direct install method - merge with boot image file patch mode
    - Add feature to restore stock boot image - convenient for applying OTAs
  • v5.2.0
    - Fix force close which occurs when failure in flashing zips
    - Remove several external dependencies and rewrite a large portion of components
    - Improve MarkDown support: showing README.MD is much faster and will properly render Unicode characters (e.g. Chinese characters)
    - Add language settings: you can now switch to languages other than system default
    - Remove busybox included within APK; download through Internet if needed
    - Use Magisk internal busybox if detected
    - Busybox is added to the highest priority in PATH to create reliable shell environment
    - Always use global namespace for internal shell if possible
  • v5.1.1
    - Fix Magisk Manager hanging when reading files with no end newline
    - Massive rewrite AsyncTasks to prevent potential memory leak
    - Fix some minor issues with notifications
    - Improve update notification and popup behavior
    - Update internal uninstaller script
  • v5.1.0
    - Introduce a new flash log activity, so you know what is actually happening, just like flashing in custom recoveries!
    - Rewritten Java native shall interface: merged root shell and normal shell
    - Cleaned up implementation of repo recyclerview and adapters
  • v5.0.6
    - Fix crash when installing modules downloading from repos
  • v5.0.5
    - Fix update notifications on Android O
    - Fix crash when trying to install Magisk Manager update
    - Update translations
  • v5.0.4
    - Fix bug in su timeout
  • v5.0.3
    - Fix FC on boot on Android O
    - Adapt to Android O broadcast limitations: re-authenticate app when update is disabled on Android O
  • v5.0.2
    - Rewrite zip signing part, zips downloaded from repo will be properly signed and adjusted for custom recoveries
  • v5.0.1
    - Add namespace mode options
    - Fix a bug in Manager OTA system
  • v5.0.0
    - Support the new Magisk unified binary
    - Properly handle application install / uninstall root management issues
    - Add multiuser mode support
    - Add application upgrade re-authentication feature
    - Add basic integrity check for SafetyNet
    - Merged install fragment and status fragment into Magisk fragment
    - Fix theme switching glitch
    - Update translations
The Following 1,044 Users Say Thank You to topjohnwu For This Useful Post: [ View ]
3rd October 2016, 06:08 PM |#3  
OP Recognized Developer / Recognized Contributor
Flag Taipei
Thanks Meter: 54,290
Donate to Me

Magisk-v7 is quite a significant update compared to v6. A lot has changed, new features are added, and improved compatibility a lot, especially in selinux issues.

Open Source!
My previous releases has some controversy due to the fact that I included closed source property with unexpected intentions. I had worked hard to create/improve open source tools, so that they can fit my own needs. Magisk is now 100% open source, including the binary it uses.

Brand New Magisk Manager
The Magisk Manager is completely a different application compared to the previous crappy app. It has now packed with features, and it is now part of the core experience of Magisk itself. New features and improvements are still planned, so stay tuned in this application's development!

Repo System, Module Management
We've been putting a lot of effort into constructing this repo system. This change is to make installing Magisk Modules a lot more easier. What I'm aiming is to make Magisk something like Xposed, an interface and a platform for developers to work on. Providing a repo system is a good step towards the goal, as it makes installing new stuffs and receiving updates super simple. I also drastically simplified the Magisk Module template. Right now, I believe anyone with basic knowledge can create their own Magisk Module easily. Changing a few values into a config file should make porting existing mods to Magisk much easier.

Safety Net
My decision to remove root management from Magisk seems to cause some debate. People might wonder why I would remove such feature that made Magisk so popular. Well, I have to emphasize again, Magisk is never meant for bypassing Safety Net. The Xposed and root bypasses are some fun projects that I'm messing with what Magisk is capable of. One of the two main reasons I dropped this feature in Magisk is

1. Xposed is no longer working with Safety Net enabled. I had tried to bypass it with some mounting tricks and process killing, but all of those are not able to fix the issue. Soon suhide is available and it is able to bypass Xposed had made me really frustrated, as I do not want to keep working on a "not complete solution".
2. On the open source side, phh is also developing his own "suhide". phh just released a test build for hiding root (link to his test build), I'm gonna take a look and include it into the Magisk version of phh root.

These two methods are much better than the one I was using. It doesn't need a toggle, it is per app basis, and many more. Also, I'm not creating a root solution, I'm creating an interface that root solutions can rely on. So I decide to give the hiding root "responsibility" to the root solutions, not managed by the interface, Magisk, itself.

Just to let all of you know, one of Magisk Manager's future feature will be a GUI to manage these two root hiding solutions. It will need some time to develop, and I also wanted to do some things in the core Magisk side to add this support natively. So please don't be pissed that I dropped the whole root management thing. It is for a bigger plan
The Following 588 Users Say Thank You to topjohnwu For This Useful Post: [ View ]
4th October 2016, 05:17 AM |#4  
OP Recognized Developer / Recognized Contributor
Flag Taipei
Thanks Meter: 54,290
Donate to Me
Due to a bug in the template zip, there will be issues flashing the zip files if the path has spaces.
This commit in magisk-module-template should fix the issue.
All repos online is updated with this fix, developers please include this patch into your modules.
The Following 304 Users Say Thank You to topjohnwu For This Useful Post: [ View ]
19th October 2016, 01:05 AM |#5  
OP Recognized Developer / Recognized Contributor
Flag Taipei
Thanks Meter: 54,290
Donate to Me
2016.10.19 Magisk v8
This release is aimed for bug fixes, and most importantly the ability to hide itself from Safety Net's detection.

Template Cache Module Fix
Due to a bug in the template script, if your module is a cache module, your scripts might not be executed correctly, also flashing in Magisk Manager will cause the UI to break.
This particular commit is the fix, only cache modules are needed to be updated, other modules are working fine.

Search Bar in Download Section
Magisk Manager 2.1 brings search bar to the "Downloads Section", so that it's easier to find a module once the list gets too long.

SuperSU Integration
In the previous release (v7), I decided to automatically convert SuperSU into a Magisk module while installing Magisk. In this release (v8), I make Magisk 100% compatible with SuperSU out of box, not needed to modify how SuperSU work in anyway. For v8 and future releases, Magisk will detect SuperSU patched boot image, and only add the required additional patches to the boot image.
Also, I created further integration for Magisk and SuperSU: Magisk will create a script placed in /data/ when SuperSU detected. What this means is that the next time you upgrade SuperSU by flashing SuperSU zip in custom recovery, Magisk will automatically be injected. You can also apply OTA updates with FlashFire, and enable SuperSU injection, which will also inject Magisk on-the-go!

For users that was using v7 with SuperSU along with the Helper Module, please manually restore your boot image (should be stored in /data/stock_boot.img), and flash the latest SuperSU, then flash Magisk-v8.

Magisk Hide
This feature should've been released a few weeks ago, but university is killing me lately; overwhelming schoolwork prevents me to finalize the tool, so please pardon my absence and lack of support. But it's still better late than nothing .
In the weeks I have been inactive, Safety Net got a couple updates, each makes bypassing more of an hassle. Magisk v8 introduce "Magisk Hide", the tool to properly hide Magisk, preventing Magisk to break Safety Net features. What it can do is hide all Magisk modules' files and mounts from target processes (e.g. Safety Net), including Magisk compatible phh root maintained by myself.
It cannot hide SuperSU, it cannot hide Xposed. If you want to hide any of them, please use suhide developed by Chainfire.

It should not cause issues as I have been testing quite some while, but if you replace some files with Magisk (known: /system/etc/customize/ACC/default.xml), Google Play Service will constantly crash. Due to this fact, this feature is not enabled by default. You have to manually enable it in the settings of Magisk Manager v2.1 after you upgraded to Magisk v8, and reboot to apply the settings.
Right now, you can manage your own hide list with ways similar to suhide, no GUI:
(All commands should be run in a root shell)
# Show current list

# Add new process (the package name should work fine)
/magisk/.core/magiskhide/add <process name or package name>

# Remove a process (might need a reboot to make an effect)
/magisk/.core/magiskhide/rm <process name or package name>
The process (Safety Net) will always automatically be added to the list if Magisk Hide is enabled, so if you just want to bypass Safety Net, just enable in Magisk Manager and you're good to go.

Safety Net - The Already Lost Cat-And-Mouse Game
Keep in mind, in the latest update of Safety Net that just happened in a few hours, Google seems to step up the game, and it might got to the point that no modifications are allowed, and might be impossible to bypass.
Currently on my HTC 10, no matter what I did to the boot image, even just a repack of 100% stock boot image, Safety Net will not pass under any circumstances. On the other hand, my Nexus 9 running stock Nougat seems bypass without issues, with root and modules all enabled and working fine. The boot verification might vary from one OEM to another, HTC's implementation might just be one of the first included into Safety Net, but eventually all major OEMs' method will be included, and at that time I think any Android "mod", including custom kernels, will pretty much break Safety Net. These verification should be coded deep into the bootloader, which is not that easy to crack. So the conclusion is that I will not spend that much time bypassing Safety Net in the future.

The attachment is a screenshot about where to enable Magisk Hide in the app
Attached Thumbnails
Click image for larger version

Name:	magisk_hide_screenshot.png
Views:	134054
Size:	146.0 KB
ID:	3907957  
The Following 360 Users Say Thank You to topjohnwu For This Useful Post: [ View ]