2018.12.7 Magisk v18.0

Here comes a stable release, this time with quite a few major updates!

MagiskHide Improvements

Starting from v18, the process monitor matches component names instead of process names. Android allow app services to name their process arbitrarily, and many apps starting to use dedicated services to detect root; it used to require adding all of these service process names to the list to hide Magisk effectively. Component names have the format: <package name>/<java class name>, which means we can always know which application spawned a given process.

TL;DR, ALL processes spawned from the applications on the hide list will be targeted.

Recently I discovered a very widespread Linux kernel bug affecting tons of Android devices (full write-up: Medium Article). This bug exposes the supposedly protected procfs, which is abused in some apps to detect Magisk with information leaked from other processes. Magisk will patch this bug on all Android 7.0+ devices. Yes, a fully effective MagiskHide requires the enhanced Android Sandbox in modern Android versions.

Path Changes

The name of the folder /sbin/.core is confusing and will no longer be used; it is replaced with /sbin/.magisk. Another major change is the location to store general boot scripts. As these boot scripts should still run even if magisk.img is not mounted, they are moved out of magisk.img, from <img>/.core/<stage>.d to /data/adb/<stage>.d (stage is either post-fs-data or service). Say goodbye to stupid paths like /sbin/.core/img/.core/post-fs-data.d!

Quick recap:

Dropping Legacy Support

The NEXT Magisk Manager upgrade (not this one) will only support v18+, please upgrade ASAP. Magisk Manager is always designed to be fully functional across a wide range of Magisk versions. However, to enforce full obfuscation, I will have to drop legacy support eventually.

This is also a good opportunity to push the whole community forward, all module developers should forget about backward compatibility (e.g. stop supporting the old Magisk paths, please don’t torture yourself…). I expect very few structural changes in the near future, so again, please upgrade ASAP :)

Modern C++ Code Base

Although this has nothing to do with the end user, tons of effort was done to migrate Magisk to a more modern C++ code base instead of the previous good plain old C. This makes the code easier to maintain and allows me to utilized many C++ language features.

Full Changelog: here