|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to AppControlX. |
| 4 | + |
| 5 | +## [1.0.0] - 2024-12 |
| 6 | + |
| 7 | +### Added |
| 8 | + |
| 9 | +#### Core Features |
| 10 | +- Setup wizard with mode selection (Root/Shizuku/View-Only) |
| 11 | +- Disclaimer screen with risk acknowledgment |
| 12 | +- App list with User/System app filter |
| 13 | +- Status filter (All/Running/Stopped/Frozen/Restricted) |
| 14 | +- Search functionality for apps |
| 15 | +- Batch selection and operations with progress tracking |
| 16 | + |
| 17 | +#### App Actions |
| 18 | +- Freeze/Unfreeze apps (disable without uninstall) |
| 19 | +- Force Stop running apps |
| 20 | +- Restrict/Allow Background (both buttons always visible) |
| 21 | +- Clear Cache with size preview |
| 22 | +- Clear Data |
| 23 | +- Uninstall (current user) |
| 24 | +- Launch App |
| 25 | +- Open System Settings (AOSP App Info) |
| 26 | + |
| 27 | +#### App Detail |
| 28 | +- Quick actions grid layout (3 columns) |
| 29 | +- Background state display (RUN_IN_BACKGROUND / WAKE_LOCK) |
| 30 | +- Real-time status refresh after actions |
| 31 | + |
| 32 | +#### Tools |
| 33 | +- Activity Launcher with search, expand/collapse, hold to copy path |
| 34 | +- QColor / Display Color (Qualcomm, MediaTek MiraVision, AOSP, Samsung) |
| 35 | +- Extra Dim (Android 12+) |
| 36 | +- Notification Log |
| 37 | +- Notification History |
| 38 | +- Battery Optimization |
| 39 | +- Power Mode |
| 40 | +- Device Info |
| 41 | +- Device Diagnostic |
| 42 | +- Unknown Sources management |
| 43 | +- Manage Apps (AOSP) |
| 44 | + |
| 45 | +#### Action Logs & Rollback |
| 46 | +- Action history with timestamps |
| 47 | +- Rollback support for battery actions (Freeze/Unfreeze, Restrict/Allow) |
| 48 | +- State snapshots before actions |
| 49 | +- Works with both Root and Shizuku modes |
| 50 | + |
| 51 | +#### Settings |
| 52 | +- Theme selection (System/Light/Dark) |
| 53 | +- Language (System/English/Indonesian) |
| 54 | +- Mode switching with restart prompt |
| 55 | +- Safety settings (Confirm actions, Protect system apps) |
| 56 | +- View action logs with count |
| 57 | +- Clear snapshots |
| 58 | +- Reset setup wizard |
| 59 | + |
| 60 | +#### About Page |
| 61 | +- App info with version |
| 62 | +- Stats (User apps, System apps, Actions count) |
| 63 | +- Device info (Model, Android version) |
| 64 | +- Quick links (GitHub, Star, Bug Report, Share) |
| 65 | +- Sticky footer with credits |
| 66 | + |
| 67 | +#### Safety & Security |
| 68 | +- SafetyValidator blocks critical system apps |
| 69 | +- Protected packages: AOSP, Google, Xiaomi/MIUI, Samsung, OPPO, Vivo, Huawei, OnePlus, Nothing, ASUS, Sony, Motorola |
| 70 | +- Command whitelist in RootExecutor |
| 71 | +- Package name validation |
| 72 | + |
| 73 | +#### Platform Support |
| 74 | +- Root mode via libsu |
| 75 | +- Shizuku mode with UserService (full features, no root) |
| 76 | +- View-Only mode for browsing |
| 77 | + |
| 78 | +#### UI/UX |
| 79 | +- Material 3 design |
| 80 | +- Dark mode support |
| 81 | +- ViewBinding |
| 82 | +- Card-based layouts |
| 83 | +- Status badges (Running, Stopped, Frozen, Restricted) |
| 84 | +- Haptic feedback on selections |
| 85 | +- Icons for all tools |
| 86 | +- Compact About page with sticky footer |
| 87 | + |
| 88 | +### Changed |
| 89 | +- Running detection uses inverse logic (no STOPPED/FROZEN badge = RUNNING) |
| 90 | +- Action logs readable without active executor |
| 91 | +- Tools redesigned with icons and better organization |
| 92 | +- About page made more compact |
| 93 | + |
| 94 | +### Removed |
| 95 | +- Timber logging (replaced with android.util.Log) |
| 96 | +- Unused presentation/viewmodel folder |
| 97 | +- Unused data/repository folder |
| 98 | +- Unused worker folder |
| 99 | +- Gradient backgrounds |
| 100 | +- Emoji in UI hints |
| 101 | + |
| 102 | +### Fixed |
| 103 | +- QColorActivity typo (case sensitive) |
| 104 | +- Action logs not saving |
| 105 | +- Shizuku executor service binding |
| 106 | +- Settings log count for all modes |
| 107 | +- App list refresh after actions |
| 108 | +- Background state parsing from appops |
| 109 | +- Running filter sync with badge logic |
| 110 | + |
| 111 | +--- |
| 112 | + |
| 113 | +## Architecture |
| 114 | + |
| 115 | +``` |
| 116 | +com.appcontrolx/ |
| 117 | +├── data/local/ # Room Database (DAO, Entity) |
| 118 | +├── di/ # Hilt modules |
| 119 | +├── executor/ # RootExecutor, ShizukuExecutor |
| 120 | +├── model/ # AppInfo, ExecutionMode |
| 121 | +├── rollback/ # RollbackManager, ActionLog |
| 122 | +├── service/ # AppFetcher, BatteryPolicyManager, PermissionBridge |
| 123 | +├── ui/ # Activities, Fragments, Adapters, BottomSheets |
| 124 | +└── utils/ # Constants, SafetyValidator |
| 125 | +``` |
| 126 | + |
| 127 | +## Tech Stack |
| 128 | + |
| 129 | +- Kotlin 1.9 |
| 130 | +- Min SDK 29 (Android 10) |
| 131 | +- Target SDK 34 (Android 14) |
| 132 | +- MVVM + Hilt DI |
| 133 | +- Material 3 |
| 134 | +- Coroutines + Flow |
| 135 | +- libsu (Root) |
| 136 | +- Shizuku-API |
0 commit comments