Magisk-but-Expressive

July 4, 2026 · View on GitHub

About

Magisk-but-Expressive is an independent and unofficial fork of Magisk featuring a completely rewritten Android application interface.

The original Magisk app interface has been replaced with a new implementation built using Jetpack Compose, with a modern design inspired by Material 3 Expressive.

The project remains based on the upstream Magisk source code and preserves the main Magisk functionality, including root management, modules, Zygisk and boot image patching.

Release builds are packaged with precompiled native binaries independently extracted from publicly distributed Magisk Alpha builds.

The source code used to develop the Magisk Alpha binaries is not publicly available.

magisk@android:~$ whoami
Magisk-but-Expressive

magisk@android:~$ echo "platform"
Android 6.0+ (Marshmallow and above)

magisk@android:~$ echo "interface"
Jetpack Compose + Material 3 Expressive

magisk@android:~$ echo "repo"
https://github.com/Anto426/Magisk-but-expressive

magisk@android:~$ echo "telegram"
https://t.me/magiskBe

Magisk is an open-source Android customization suite providing systemless root, module support, boot image tooling and process-level runtime extensions.

Magisk-but-Expressive replaces the original Android application interface while keeping the underlying Magisk functionality available through a new Compose-based frontend.

Important

Magisk, Magisk Alpha and Magisk-but-Expressive are separate projects.

Magisk-but-Expressive is not maintained, endorsed or officially supported by the developers of Magisk or Magisk Alpha.

Highlights

  • Completely rewritten Android application interface.
  • Built using Jetpack Compose.
  • Modern design inspired by Material 3 Expressive.
  • Dynamic color support.
  • Light, dark and AMOLED appearance modes.
  • Custom color theme support.
  • Systemless root and Android customization.
  • Superuser permission management.
  • Magisk module installation and management.
  • Zygisk support for process-level runtime extensions.
  • Boot image patching and installation tooling.
  • Compatibility with the Magisk module ecosystem.
  • Support for Android 6.0 and newer.
  • Open-source development based on the upstream Magisk project.

Downloads

Download Magisk-but-Expressive APKs and release artifacts only from the official GitHub repository:

Release announcements, project updates and important information are also published on the official Telegram channel:

For installation instructions, follow the official Magisk installation guide:

Warning

Rooting and modifying boot images may cause bootloops, instability or data loss.

Before installing, back up your original boot, init_boot or other relevant device images and make sure you have a working recovery method.

Binary Source and Versioning

Release builds of Magisk-but-Expressive include precompiled native binaries independently extracted from publicly distributed Magisk Alpha builds.

The source code used to develop these Magisk Alpha binaries is not publicly available.

Magisk-but-Expressive does not claim ownership of the Magisk Alpha binaries and is not affiliated with the Magisk Alpha developers.

The binaries were not specifically provided or officially distributed by the Magisk Alpha developers for use in this project.

The Magisk-but-Expressive version follows the corresponding Magisk Alpha binary build, for example:

e8a58776-alpha

This identifier represents the Magisk Alpha build used by the application.

It does not describe the development maturity of the Magisk-but-Expressive interface and does not mean that the project itself is in its first alpha release.

The application, stub, daemon and native components must remain compatible with one another. Mixing components from different versions or changing the version identifier independently may cause installation failures, incompatibilities or unexpected behaviour.

Screenshots

Magisk-but-Expressive screen 1 Magisk-but-Expressive screen 2 Magisk-but-Expressive screen 3 Magisk-but-Expressive screen 4 Magisk-but-Expressive screen 5 Magisk-but-Expressive screen 6 Magisk-but-Expressive screen 7 Magisk-but-Expressive screen 8 Magisk-but-Expressive screen 9

Building and Development

Setup Environment

Supported platforms:

  • Linux x64
  • macOS x64
  • macOS arm64
  • Windows x64

On Windows, enable Developer Mode because symbolic link support is required.

Install Python

Install Python 3.8 or newer.

  • On Linux and macOS, install python3 using your preferred package manager.
  • On Windows, install Python from the official Python website.
  • On Windows, enable Add Python to PATH during installation.
  • Optionally install colorama:
pip install colorama

Install Git

  • On Linux and macOS, install git using your preferred package manager.
  • On Windows, install Git from the official Git website.
  • On Windows, enable symbolic link support during installation.

Install Android Studio

Install Android Studio and complete the initial setup wizard.

Set ANDROID_HOME to your Android SDK directory. The SDK path is available in the Android Studio settings.

Configure the JDK

The recommended configuration is to set ANDROID_STUDIO to the Android Studio installation directory.

The build scripts will automatically detect and use the JDK bundled with Android Studio.

Alternatively, configure JDK 21 manually.

Clone the Repository

git clone --recurse-submodules https://github.com/Anto426/Magisk-but-expressive.git
cd Magisk-but-expressive

Install the NDK

On Linux or macOS:

./build.py ndk

On Windows:

python build.py ndk

Building

Build all supported components and generate the final APK:

./build.py all

On Windows:

python build.py all

Display the available build actions:

./build.py

Display help for a specific action:

./build.py binary -h

Build behaviour can be configured using:

config.prop

A sample configuration is available in:

config.prop.sample

IDE Support

Kotlin, Java, C and C++ sources are supported by Android Studio.

Open the repository directly as an Android Studio project.

Before modifying native code, run:

./build.py binary

Some native files and generated sources are created during the build process.

Developing Rust

Install rustup, the official Rust toolchain manager.

The Magisk NDK package, also known as ONDK, includes the Rust toolchain required for normal Magisk builds.

To expose the ONDK Rust toolchain through rustup:

rustup toolchain link magisk "$ANDROID_HOME/ndk/magisk/toolchains/rust"
rustup default magisk

For Visual Studio Code, install the rust-analyzer extension.

For RustRover or IntelliJ with the Rust plugin, install the nightly toolchain for IDE compatibility:

rustup toolchain install nightly
rustup +nightly component add rust-src clippy

Create a wrapper Cargo binary directory:

./build.py rustup ~/.cargo/wrapper

Then set the Rust toolchain location in the IDE to:

~/.cargo/wrapper

Signing and Distribution

In release builds, the certificate used to sign the APK is used by the Magisk root daemon as a trusted identity.

An application signed with a different certificate may be rejected or force-uninstalled to prevent untrusted applications from controlling the root daemon.

For development, use a compatible debug environment and reinstall the appropriate build when changing signing identities.

To distribute builds signed with your own key, configure the signing values in:

config.prop

For information about generating and managing signing keys, see the Android application signing documentation.

Do not redistribute modified builds under the Magisk-but-Expressive name without clearly identifying the modifications and the different signing identity.

Bug Reports

When reporting an issue, provide enough information to reproduce and investigate the problem.

Include:

  • Device manufacturer and model.
  • Android version.
  • ROM name and version.
  • Magisk-but-Expressive version.
  • Installation method.
  • Clear reproduction steps.
  • Relevant screenshots or screen recordings.
  • Complete logs.

For installation problems, provide:

  • The original boot image when appropriate.
  • Installation logs.
  • Information about the partition that was patched.

For Magisk or daemon problems, provide:

  • Boot logcat.
  • dmesg.
  • Magisk logs.

For application crashes, capture logcat while reproducing the crash.

Reports containing only messages such as “it does not work” may not contain enough information to be investigated.

Translation Contributions

Default string resources for the main application and stub APK are located in:

app/core/src/main/res/values/strings.xml
app/stub-res/src/main/res/values/strings.xml

Add translated resources using the appropriate Android resource directory:

[module]/src/main/res/values-[language]/strings.xml

Examples:

values-it/strings.xml
values-fr/strings.xml
values-de/strings.xml

Keep placeholders, formatting tags and resource names unchanged unless the original resource has also been modified.

Credits

  • topjohnwu — creator and maintainer of the original Magisk project.
  • Magisk Alpha — source of the precompiled native binaries integrated into release builds.
  • Anto426 — Magisk-but-Expressive maintainer and author of the rewritten Jetpack Compose interface.
  • All upstream Magisk contributors and module developers.

The mention of Magisk Alpha as the binary source does not imply endorsement, partnership, affiliation or official support.

License

Magisk, including all git submodules, is free software:
you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation,
either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.