ShizuStore

AppControlX

risunCode

3.1.0 · GitHub

Download APK
Software management Android 10+ 7 months ago GPL-3.0
193 ShizuStore
11.2k GitHub
169 Stars
1 MB Size

More about this app

Freeze, force stop, uninstall apps, change background optimization and more

AppControlX

AppControlX is a native Android app management utility built with Kotlin and Jetpack Compose.

What It Does

  • Freeze/unfreeze apps
  • Force stop apps
  • Clear app cache/data
  • Uninstall apps for current user
  • Launch hidden settings and activities
  • Monitor CPU, RAM, storage, battery, and device stats
  • Keep action history with rollback for supported operations

Architecture (v4 Native)

  • UI: Jetpack Compose + Material 3
  • State: ViewModel + StateFlow
  • DI: Hilt
  • Persistence: DataStore + kotlinx.serialization
  • Execution layer: libsu (root) and Shizuku

No WebView, React, or JavaScript bridge is used in v4.

Requirements

  • Android 10+ (API 29+)
  • Android SDK 34
  • JDK 17
  • Root (Magisk/KernelSU) or Shizuku for privileged actions

Build

./gradlew lintDebug testDebugUnitTest assembleDebug

Debug APK output:

app/build/outputs/apk/debug/

Signed Release Build

Release builds require signing environment variables. There is no debug-key fallback for release.

Required variables:

  • KEYSTORE_FILE
  • KEYSTORE_PASSWORD
  • KEY_ALIAS
  • KEY_PASSWORD

Build command:

./gradlew assembleRelease

Release APK output:

app/build/outputs/apk/release/

CI

  • build.yml runs lint, unit tests, and debug APK build.
  • release.yml validates signing secrets, builds signed release APK, uploads artifact, and publishes GitHub release on v* tags.

Permissions and Network Behavior

The app requests INTERNET permission in the manifest. Core app-management and monitoring flows are local/on-device and do not rely on a remote backend service.

License

GPL-3.0

Close

How Shizuku is used

Can freeze, force stop, uninstall, clear data and limit background activity via `pm`, `am` and `appops` commands through Shizuku.

This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.

How this app uses Shizuku

AppControlX uses Shizuku to run privileged app management commands that normally need shell access.

  • Freeze and unfreeze apps: disable or re-enable a selected app for the main user with the pm disable-user and pm enable shell commands through Shizuku.
  • Force stop apps: immediately stop a running app with the am force-stop shell command through Shizuku.
  • Uninstall apps: remove a selected app while keeping its data directory with the pm uninstall shell command through Shizuku.
  • Clear cache and data: erase cached files or all app data with the pm clear shell commands through Shizuku.
  • Control background activity: set an app to be ignored or allowed in the background with the appops set shell command through Shizuku.
  • Detect running apps: check which apps are currently running by reading dumpsys activity processes output through Shizuku, used for the running status in the app list.

Android APIs or commands used

  • pm disable-user
  • pm enable
  • am force-stop
  • pm uninstall
  • pm clear
  • appops set
  • dumpsys activity processes
Close

Changelog

What's new for version 3.1.0

Full Changelog: https://github.com/risunCode/AppControl-X/compare/v1.1.0...v3.0.0

Not tested with su/shizuku

  • please give feedback or open a issue!

Known issue

  • Network detection,
  • some ui modal need to be polished
Close

Permissions

4 permissions requested

  • android.permission.QUERY_ALL_PACKAGES
  • android.permission.INTERNET
  • moe.shizuku.manager.permission.API_V23
  • com.appcontrolx.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Close