Ripple
On modern Android phones, swiping an app blocker away from the Recents screen or leaving the phone idle overnight often kills its AccessibilityService. This guide covers how to unlock Android 13 to 15 Restricted Settings, configure OEM battery settings on Samsung, Xiaomi, OnePlus, and Pixel, and enable Ripple v0.1.5's on-device wireless debugging self-healing daemon.
When you install an APK directly from GitHub Releases or our official website, Android 13, 14, and 15 initially gray out the Accessibility toggle with a dialog reading “For your security, this setting is currently unavailable (Restricted setting)”. You only need to unlock this once:
Settings › Accessibility › Downloaded apps › Ripple and tap the grayed-out switch so Android shows the Restricted Setting prompt, then tap OK.Settings › Apps › See all apps › Ripple. Tap the three-dot menu (⋮) in the top-right corner of the App Info screen (on Xiaomi HyperOS, scroll to the very bottom of the App Info page) and tap Allow restricted settings. Confirm with your fingerprint or PIN.Configuring your phone’s battery manager prevents the OS from putting the blocker to sleep during overnight Doze windows.
Settings › Apps › Ripple › Battery › select Unrestricted.Settings › Battery › Background usage limits › Never auto sleeping apps › tap + and add Ripple.Settings › Apps › Manage apps › Ripple › enable Autostart (or Background autostart).Battery saver on the same page and select No restrictions.Settings › Apps › App management › Ripple › Battery usage › enable Allow background activity and Allow auto-launch.Settings › Apps › Ripple › App battery usage › toggle on Allow background usage, tap the text itself, and select Unrestricted.Even with Unrestricted battery enabled, swiping an app card away from the Android Recents screen on Xiaomi, OPPO, vivo, or OnePlus force-stops the app process and unbinds its AccessibilityService. Ripple v0.1.5 includes an optional Advanced Protection daemon (ripple_ss) that closes this loophole directly on the phone without needing a PC, USB cable, or root:
Protection › Advanced Protection. Follow the 4-step guide to open Developer Options and Wireless Debugging, tap Pair device with pairing code, and enter the 6-digit code directly into Ripple’s notification banner.setBlockUninstallForUser)Ripple spawns a lightweight JVM daemon (ripple_ss) running under Android’s local shell user (UID 2000) on 127.0.0.1 and locks the package uninstall switch at the OS level.WRITE_SECURE_SETTINGS and monitors its process via Binder death notifications. If you swipe Ripple away from Recents, ripple_ss automatically re-writes enabled_accessibility_services and re-binds the Accessibility service within about 2.5 seconds. It also recovers automatically within about 1 minute after a device reboot.Ripple › Settings › Anti-Uninstall › I want to uninstall Ripple. Once your mandatory monotonic cooldown timer (15 minutes to 2 hours via SystemClock.elapsedRealtime()) finishes or your friend/parent enters the Unlock Code, Ripple automatically unlocks package removal and opens the standard Android uninstall prompt.