Overview
A chronic frustration among Xiaomi, Redmi, and POCO users running HyperOS is the operating system’s tendency to revoke accessibility service permissions. Power users relying on automation tools (such as Tasker, Macrodroid), password managers (Bitwarden, 1Password), or accessibility overlays frequently discover that their background services have been quietly turned off.
Developed by chkndrp, hyperos-accessibility-fix addresses the root architectural cause of this issue in HyperOS and systemlessly ensures that configured accessibility services stay enabled.
Root Cause: AccessibilityManagerService Behavior
In standard Android, when an application hosting an accessibility service is force-stopped via ActivityManager, Android’s internal AccessibilityManagerService removes the component from Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES.
While stock Android rarely invokes full force-stops during normal background handling, Xiaomi’s HyperOS firmware triggers hard force-stops during aggressive battery routines—notably LockScreenClean and when activating Ultra Battery Saver mode:
I ActivityManager: Force stopping com.urbandroid.lux appid=10415 user=0: LockScreenClean
D ActivityManager: Force removing proc 8855:com.urbandroid.lux:background/u0a415
Because HyperOS forcibly strips the component from the secure settings store, the user must manually re-navigate system settings and toggle the permission back on.
How the Module Solves It
The module deploys a lightweight background monitoring daemon:
- Boot Initialization: At startup, the service queries current accessibility services via
settings get secure enabled_accessibility_servicesand records them into/data/adb/modules/hyperos-accessibility-fix/a11y_watchlist.txt. - Event Detection: The daemon listens to framework logcat events. If a user manually changes accessibility settings, it updates the watchlist. If the system strips a service due to a background force-stop or battery cleaner event, the daemon detects the unexpected removal.
- Automated Restoration: The module immediately reapplies the component identifiers to
Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, ensuring services resume uninterrupted operation.
Installation & Configuration
- Download the latest
hyperos-accessibility-fix.zipfrom GitHub releases. - Install the archive via Magisk or KernelSU.
- Reboot your device.
- Enable your required accessibility services once in Android Settings. The module will automatically add them to
/data/adb/modules/hyperos-accessibility-fix/a11y_watchlist.txtand keep them persistent.
