Skip to content
本页内容

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:

  • New magisk.img mountpoint: /sbin/.magisk/img
  • New internal busybox PATH: /sbin/.magisk/busybox
  • The folder <img>/.core is no longer used in any places. magisk.img is solely used for storing modules, no other functionality depends on it.
  • Symlinks are created so all old paths will still work. None of the existing apps/scripts depending on these internal paths should break, but please migrate to the new paths ASAP.

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

原始文档版本:2023年01月18日
在GPL-3.0许可下发布