For quite a while now, Magisk has been the top rooting method (or at least the most preferred method) in the Android rooting community, due to the advantages of having a systemless root versus a system root. Magisk Modules have also helped bridge the gap of pros vs cons, by allowing users to install apps that typically require a system root into a systemlessly rooted device, and replacing files on the Android’s /system partition without actually touching the /system partition – which means Magisk doesn’t (usually) trip SafetyNet and other root-detection methods.
Having said all that, Magisk v17.1 has just been released with much better support for A/B partition devices, and the latest Android Pie – as well as supporting the Samsung Galaxy S9, Samsung Galaxy S9+, and the Samsung Galaxy Note 9 (which has been notoriously difficult to /system root, particularly the Exynos variants of these Samsung devices).
Furthermore, this latest Magisk update brings the ability to hide root to sub-services of applications as well, and root loss from a repackaged MagiskHide has been fixed – in other words, this update is a giant bug fix update that overall makes the rooting process a whole lot smoother on Android, and now Android devices with A/B partitions as well (many of them were losing their Magisk installation after applying OTA updates).
In fact, keeping your Magisk installation after applying OTA updates is now easier than ever, if you follow these steps:
“Disable Automatic system updates in developer options, so it won’t install OTAs without your acknowledgement.
When an OTA is available, first go to (Magisk Manager → Uninstall → Restore Images). Do not reboot or you will have Magisk uninstalled. This will restore your boot (and dtbo if applicable) back to 100% untouched stock images in order to pass pre-OTA block verifications. This step is required before doing any of the following steps written below!”
Devices with A/B Partitions
Due to the fact that these devices have two separate partitions, it is possible to have the OTA installed to the inactive slot and have Magisk Manager to install Magisk onto the updated partition. The out-of-the-box OTA installation works seamlessly and Magisk can be preserved after the installation.
- After restoring stock boot image, apply OTAs as you normally would (Settings → System → System Update).
- Wait for the installation to be fully done (both step 1 and step 2 of the OTA), do not press the restart button!! Instead, go to (Magisk Manager → Install → Install to Inactive Slot) and install Magisk to the slot that the OTA engine just updated.
- After installation is done, press the reboot button in Magisk Manager. Under-the-hood Magisk Manager forces your device to switch to the updated slot, bypassing any possible post-OTA verifications.
- After the reboot, your device should be fully updated, and most importantly, Magisk is still installed to the updated system!
If you have already updated to this latest Magisk 17.1 release and your phone is in a bootloop, you need to flash the uninstaller and then update to version 17.1 – the bootloops are being caused by a database incompatibility issue, which comes from version 16.0, thus the only solution is to uninstall and reinstall Magisk.
Additional new features and enhancements in Magisk 17.1 include SafetyNet checker being brought back to the Magisk Manager app, a new module template (due to conflicts with File Based Encrypted), and just overall a ton of bug fixes – read the changelog below to see it all for yourself.
Magisk v17.1 Changelog
- [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
- Magisk Manager v5.9.1 Changelog
- 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
Download Magisk 17.1 from its XDA thread here.