22
33A powerful Android application for controlling app behavior, battery optimization, and system management — using Root or Shizuku.
44
5- ## Overview
6-
7- AppControlX provides granular control over installed applications without requiring manual user interaction. It executes shell commands directly via Root or Shizuku to freeze, unfreeze, uninstall apps, and manage battery optimization settings.
8-
95## Features
106
117### App Control
128- ** Freeze/Unfreeze** - Disable apps without uninstalling (keeps data intact)
139- ** Uninstall** - Remove apps for current user while preserving data
1410- ** Force Stop** - Immediately terminate running applications
15- - ** Batch Operations** - Apply actions to multiple apps simultaneously
11+ - ** Clear Cache/Data** - Clean app storage with size preview
12+ - ** Batch Operations** - Apply actions to multiple apps with progress tracking
1613
1714### Battery Optimization
1815- ** Restrict Background** - Block apps from running in background
1916- ** Allow Background** - Permit background execution
20- - ** Wake Lock Control** - Prevent apps from keeping CPU awake
21- - ** Doze Whitelist** - Exclude apps from battery optimization
17+ - ** Real-time Status** - View current background restriction status per app
18+
19+ ### Tools
20+ - ** Activity Launcher** - Launch hidden activities from any app
21+ - ** Extra Dim** - Reduce screen brightness below minimum
22+ - ** Notification Log/History** - Access notification records
23+ - ** Battery Usage** - View app battery consumption
24+ - ** Power Mode** - Quick access to power settings
25+ - ** Device Info & Diagnostic** - System information
26+
27+ ### UI/UX
28+ - ** Material 3 Design** - Modern, clean interface
29+ - ** Dark Mode** - Full dark theme support
30+ - ** Multi-language** - English & Indonesian
31+ - ** Search & Filter** - Quick app discovery
32+ - ** Action Logs** - History of all operations
33+
34+ ## Platform Support
2235
23- ### Platform Support
2436| Platform | Version | Support |
2537| ----------| ---------| ---------|
2638| Android Stock | 10 - 15 | Full |
27- | MIUI | 12 - 14 | Full |
28- | HyperOS | 1.0 - 2.0 | Full |
39+ | MIUI/HyperOS | 12+ | Full |
2940| Custom ROM | Android 10+ | Full |
3041
31- ### Safety Features
32- - ** Rollback System** - Automatically saves state before actions, allows restoration
33- - ** Safety Validation** - Blocks actions on critical system apps
34- - ** Fallback Mode** - Opens system settings if commands fail
35-
3642## Requirements
3743
3844- Android 10+ (API 29)
@@ -53,105 +59,74 @@ git clone https://github.com/risunCode/AppControl-X.git
5359cd AppControl-X
5460./gradlew assembleDebug
5561```
56- Output: ` app/build/outputs/apk/debug/app-debug.apk `
5762
5863## Architecture
5964
60- The app follows ** MVVM (Model-View-ViewModel) ** architecture with ** Repository pattern ** and uses ** Hilt** for dependency injection.
65+ MVVM architecture with Hilt dependency injection.
6166
6267```
6368com.appcontrolx/
64- ├── data/
65- │ ├── local/ # Room Database, DataStore
66- │ └── repository/ # Data repositories
6769├── di/ # Hilt modules
6870├── executor/ # Command execution (Root/Shizuku)
6971├── model/ # Data classes
70- ├── presentation/
71- │ └── viewmodel/ # ViewModels
72- ├── rollback/ # State management & rollback
72+ ├── rollback/ # Action logs & rollback
7373├── service/ # Business logic
7474├── ui/ # Activities, Fragments, Adapters
75- ├── utils/ # Helpers & validators
76- └── worker/ # WorkManager workers
75+ └── utils/ # Helpers & validators
7776```
7877
7978### Key Components
8079
8180| Component | Description |
8281| -----------| -------------|
83- | ` AppRepository ` | Central data access layer |
84- | ` AppListViewModel ` | UI state management for app list |
85- | ` PermissionBridge ` | Detects available execution mode (Root/Shizuku/None) |
82+ | ` PermissionBridge ` | Detects execution mode (Root/Shizuku/None) |
8683| ` RootExecutor ` | Executes commands via libsu with security validation |
87- | ` ShizukuExecutor ` | Executes commands via Shizuku UserService |
8884| ` BatteryPolicyManager ` | Manages appops and battery settings |
89- | ` RollbackManager ` | Saves snapshots and restores previous state |
85+ | ` RollbackManager ` | Action logs and state snapshots |
9086| ` SafetyValidator ` | Prevents actions on critical system apps |
91- | ` SettingsDataStore ` | Persistent settings with DataStore |
92- | ` AppDatabase ` | Room database for action logs |
9387
9488## Tech Stack
9589
9690- ** Language** : Kotlin 1.9
97- - ** Architecture** : MVVM + Repository Pattern
98- - ** DI** : Hilt 2.50
91+ - ** Min SDK** : 29 (Android 10)
92+ - ** Target SDK** : 34 (Android 14)
93+ - ** Architecture** : MVVM + Hilt
9994- ** UI** : Material 3, ViewBinding
100- - ** Database** : Room 2.6
101- - ** Preferences** : DataStore
10295- ** Async** : Coroutines + Flow
103- - ** Navigation** : Jetpack Navigation Component
104- - ** Background** : WorkManager
105- - ** Root** : [ libsu] ( https://github.com/topjohnwu/libsu ) by topjohnwu
106- - ** Shizuku** : [ Shizuku-API] ( https://github.com/RikkaApps/Shizuku-API ) by RikkaApps
107- - ** Build** : Gradle 8.2, AGP 8.2.0
108- - ** CI/CD** : GitHub Actions
109-
110- ## Localization
111-
112- | Language | Code | Status |
113- | ----------| ------| --------|
114- | English | ` en ` | Default |
115- | Indonesian | ` id ` | Complete |
116-
117- ## Theme Support
118-
119- - Light Mode
120- - Dark Mode
121- - System Default (follows device setting)
96+ - ** Root** : [ libsu] ( https://github.com/topjohnwu/libsu )
97+ - ** Shizuku** : [ Shizuku-API] ( https://github.com/RikkaApps/Shizuku-API )
12298
12399## Commands Reference
124100
125101### App Control
126102``` bash
127103pm disable-user --user 0 < package> # Freeze
128104pm enable < package> # Unfreeze
129- pm uninstall -k --user 0 < package> # Uninstall (keep data)
105+ pm uninstall -k --user 0 < package> # Uninstall
130106am force-stop < package> # Force stop
107+ pm clear --cache-only < package> # Clear cache
108+ pm clear < package> # Clear data
131109```
132110
133111### Battery Control
134112``` bash
135113appops set < package> RUN_IN_BACKGROUND ignore # Restrict
136114appops set < package> RUN_IN_BACKGROUND allow # Allow
137115appops set < package> WAKE_LOCK ignore # Disable wake lock
138- cmd deviceidle whitelist +< package> # Doze whitelist
139116```
140117
141118## Contributing
142119
1431201 . Fork the repository
144- 2 . Create a feature branch (` git checkout -b feature/amazing-feature ` )
145- 3 . Commit your changes (` git commit -m 'Add amazing feature' ` )
146- 4 . Push to the branch (` git push origin feature/amazing-feature ` )
147- 5 . Open a Pull Request
121+ 2 . Create a feature branch
122+ 3 . Commit your changes
123+ 4 . Push and open a Pull Request
148124
149125## License
150126
151- This project is licensed under the GPL-3.0 License - see the [ LICENSE] ( LICENSE ) file for details.
127+ GPL-3.0 License - see [ LICENSE] ( LICENSE )
152128
153129## Acknowledgments
154130
155131- [ libsu] ( https://github.com/topjohnwu/libsu ) - Root shell library
156132- [ Shizuku] ( https://github.com/RikkaApps/Shizuku ) - Elevated API access
157- - [ Don't Kill My App] ( https://dontkillmyapp.com/ ) - Vendor battery restriction database
0 commit comments