A privileged environment for Android that runs on ADB (shell) permissions, or on root when you have it. AxManager keeps a background server alive and builds on it: Magisk-style plugins with a WebUI, per-app privilege control, a Shizuku-compatible API, a shell, and a system settings editor.
Website: axmanager.app, the official site and documentation. Download, activate from the browser, guides and the plugin docs.
Switch to Chinese translation 切换到中文翻译
3.0 is a security release. Every app now gets its own access to the server, bound to its signing certificate and gone the moment you revoke it. Apps built on the Axeron API (
axsh) before 3.0 can't connect; Shizuku-API apps are not affected. See Security in 3.0.
AxManager starts its own server process, either as the shell user (through Wireless Debugging, a computer, or another phone over OTG) or as root. The app, plugins, their WebUIs and the other apps you allow all work through that server. Most features need no root; with root they run with root's reach.
- Root: start directly from the app.
- Wireless Debugging (Android 11+): pair and start on the device itself, without a computer. It waits for Wi-Fi, and switches developer options, USB debugging and wireless debugging on together.
- TCP debugging, with a configurable port.
- Computer: start it with one
adb shellcommand. - Browser: start it over USB from axmanager.app/activate in Chrome or Edge, without installing
adb. - OTG: use this phone as the computer and start AxManager on another phone over a USB cable.
- Start as Shell: run in shell mode even on a rooted device.
- Start on boot: root, or ADB on Android 11+ (experimental), through a service that waits for Wi-Fi and shows each step in a notification.
- An activation log streams each step, so a failure says where it stopped.
- Server status, how it was started (root, root as shell, or ADB) and whether it starts on boot.
- A signature badge (Match, Mismatch or Unverified) that says whether the running server was started by this AxManager, by its signing certificate rather than a package name; tap it for the details.
- A wakelock switch that keeps the server from being suspended.
- Device details: model, Android version, security patch, kernel, supported ABIs, SELinux context.
- An update notice when a newer release is out.
- Grant or deny AxManager access per app, with filters for installed, system and Shizuku-API apps.
- An app that isn't allowed yet asks through AxManager's permission dialog. A permission belongs to the app's signing certificate: the same app signed with another key, or another app that later gets its uid, is asked again.
- Shizuku compatibility: apps built on Shizuku-API connect to AxManager without Shizuku running. Some older apps still require the Shizuku app to be installed (not running), and Settings warns you when it isn't.
- Per-app detail:
- Force stop, clear cache, clear data, and uninstall (system apps for the current user).
- Battery optimization, background activity, and enabling or disabling the app.
- Special access as app-op modes (allow, foreground, ignore, deny, default): display over other apps, usage access, all files access, install unknown apps, alarms, and more.
- Grant or revoke runtime and development permissions; every other permission is listed read-only.
- The page refreshes when you come back, so changes made elsewhere show up.
Modules in the familiar Magisk/KernelSU layout, run by AxManager's server instead of a root daemon. See the plugin docs.
module.prop,customize.sh,post-fs-data.sh,service.sh,system.prop,action.sh,uninstall.sh, andsystem/bin(linked into$AXERONXBIN, which is onPATH).- A full BusyBox (with Standalone Mode),
resetprop, and theAXERON,AXERONVER,AXERONDIR,AXERONBIN,AXERONXBINandTMPDIRenvironment variables. - WebUI with a KernelSU-compatible
ksuJavaScript API and AxManager's ownAxeronAPI. Any plugin's WebUI can be pinned to the home screen with its own name and icon. A WebUI shows only the plugin's own pages: other sites open in the browser and can't reach those APIs. - Process lifecycle: every process a plugin starts (from its scripts, its action or its WebUI) carries an
AXERON_PLUGIN=<id>marker. Disabling or removing the plugin stops all of them, daemons included: SIGTERM first, SIGKILL after 3 seconds. post-fs-data.shanduninstall.shcan block for 40 seconds at most; their output is kept in$AXERONDIR/logs.- Plugins keep running when the server stops, unless you turn on Stop plugins with the server.
- Install several zips at once, filter and sort the list, and re-ignite from the page.
- Developer mode adds a card with the server's paths, version and plugin counts, as plugin scripts see them.
- Run commands with the server's privileges (shell or root, depending on how it was started).
- Save commands and whole scripts as snippets, also from selected text anywhere in the app ("Save snippet" in the selection menu).
- Find in output, unlimited output, a key event blocker, and a compatibility mode that starts sessions through BusyBox.
axshbrings the same privileges to a terminal app: run the manager'slibaxsh.sowith plainsharguments (axsh -c 'id'), nothing to install in that app.
- Browse, search and edit the
system,secureandglobalsettings tables, and add or remove entries. - Quick Settings: keep the values you change often in one list and switch them in one tap.
- AX-Stealth Mode: apps you haven't allowed get no dialog and no answer, as if AxManager weren't installed, Shizuku clients included. You allow new apps from Privilege instead.
- Environment: the Shizuku intercept, stopping plugins with the server, and preferring the system's binaries over BusyBox on
PATH. - Start on boot, and re-ignite plugins every time the app reconnects to the server (by default only on the first connection after the server starts).
- Reset per mode (root, shell, or both).
- A theme that follows the system, dynamic color or a custom palette, and the app language (English, Indonesian, Chinese).
- Developer mode and WebView debugging for plugin WebUIs.
Root and shell mode each keep their own folder, so files made as root never block shell mode.
| Mode | Folder |
|---|---|
| Root | /data/adb/axeron |
| Shell | /data/user_de/0/com.android.shell/axeron |
Each one holds:
| Folder | Contents |
|---|---|
plugins/ |
Installed plugins |
bin/ |
BusyBox and the bundled tools, rebuilt on every start |
xbin/ |
Links to the plugins' system/bin |
cache/ |
$TMPDIR |
logs/ |
Output of post-fs-data.sh and uninstall.sh |
Root mode used to live in /data/user_de/0/android/axeron; it moves to /data/adb/axeron automatically the first time the server starts as root.
- Android 8.0 (API 26) or newer.
- Wireless Debugging activation needs Android 11 or newer.
Download the latest APK from Releases, then follow the user manual to start it.
The API lives in a git submodule, so clone with it:
git clone --recurse-submodules https://github.com/fahrez182/AxManager.git
cd AxManager
./gradlew :manager:assembleDebugAlready cloned without it? Run git submodule update --init. To build against a local copy of the API, set api.useLocal=true and api.dir=<path> in local.properties.
Install the debug build:
adb install manager/build/outputs/apk/debug/manager-debug.apk| Module | What it is |
|---|---|
manager |
The app |
server |
The privileged server and its native starter |
reignite |
The plugin igniter (libaxreignite.so, a dex run in app_process), which starts and stops plugins |
adb |
Wireless Debugging pairing and the ADB client |
api (submodule) |
AIDL, client API, shared server code, Shizuku compatibility, axsh |
Everything is on axmanager.app:
Contributions are welcome. Open an issue, send a pull request, or start a discussion.
- Magisk: BusyBox,
resetprop, and the module system that plugins are modelled on. - Shizuku / Shizuku-API: the starting point and reference for Android IPC and ADB-based permissions.
- KernelSU / KernelSU-Next: inspiration for the UI and the WebUI.
Licensed under the Apache License 2.0. Third-party code, bundled binaries and libraries are listed with their licenses in NOTICE.
AxManager is not affiliated with Shizuku and does not claim to be an official replacement.