Remove All Ads from XDA

[2019.5.20] Magisk v19.2 - Root & Universal Systemless Interface [Android 4.2+]

1,837 posts
Thanks Meter: 55,632
By topjohnwu, Recognized Developer / Recognized Contributor on 3rd October 2016, 06:00 PM
Thread Closed Email Thread

Stable Magisk Version: v19.2
Beta Magisk Version: v19.2
Magisk Manager Version: v7.2.0

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 and Magisk Modules Only (*1)
  • Android 4.4+: All features available (*2)
  • Android 6.0+: MagiskHide guaranteed support (*3)
  • Android 7.0+: MagiskHide full protection
  1. Resetprop and MagiskHide is not possible to be supported.
  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,710 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: 55,632
Donate to Me
  • 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 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.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)
  • 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,083 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: 55,632
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 602 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: 55,632
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 315 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: 55,632
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:	137092
Size:	146.0 KB
ID:	3907957  
The Following 370 Users Say Thank You to topjohnwu For This Useful Post: [ View ]