Ripple LogoRipple

How to Stop Android 14/15 (Samsung, Xiaomi, Pixel, OnePlus) from Killing Your App Blocker Accessibility Service

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.

Direct Download APK v0.1.5 (8.57 MB) GitHub Releases (v0.1.5)
v0.1.5 · 8.57 MB (arm64-v8a) · SHA-256: a5f2e43e...5a7a038 · 100% Free & No Ads

Step 1: Unlock Android 13 / 14 / 15 “Restricted Settings” for Sideloaded APKs

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:

  1. Trigger the grayed-out toggle onceGo to Settings › Accessibility › Downloaded apps › Ripple and tap the grayed-out switch so Android shows the Restricted Setting prompt, then tap OK.
  2. Enable “Allow restricted settings” in App InfoOpen 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.
  3. Turn on Accessibility & Device AdminReturn to Accessibility Settings and toggle Ripple on, then enable Device Administrator as guided in the app.

Step 2: OEM Battery & Background Settings (Samsung, Xiaomi, OnePlus, Pixel)

Configuring your phone’s battery manager prevents the OS from putting the blocker to sleep during overnight Doze windows.

Samsung (One UI 6 / 7)

  • Unrestricted Battery: Settings › Apps › Ripple › Battery › select Unrestricted.
  • Never Auto-Sleep: Settings › Battery › Background usage limits › Never auto sleeping apps › tap + and add Ripple.
  • Lock in Recents: Open Recents, tap the Ripple icon at the top of the card, and select Keep open.

Xiaomi / POCO (HyperOS & MIUI)

  • Background Autostart: Settings › Apps › Manage apps › Ripple › enable Autostart (or Background autostart).
  • Battery Saver: Tap Battery saver on the same page and select No restrictions.
  • Lock Card in Recents: Open Recents, long-press or pull down on the Ripple card, and tap the padlock icon.

OnePlus / OPPO (OxygenOS & ColorOS 14/15)

  • Allow Background Activity: Settings › Apps › App management › Ripple › Battery usage › enable Allow background activity and Allow auto-launch.
  • Lock in Recents: Open Recents, tap the three-dot menu next to Ripple’s name, and choose Lock.

Google Pixel & Stock Android 14/15

  • Allow Background Usage: Settings › Apps › Ripple › App battery usage › toggle on Allow background usage, tap the text itself, and select Unrestricted.
  • Disable Unused App Pausing: Toggle off Manage app if unused on the App Info page.

Step 3: 2.5-Second Self-Healing via On-Device Wireless Debugging (No PC or Root)

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:

  1. One-time on-device pairingOpen Ripple and go to 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.
  2. OS-level uninstall lock (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.
  3. Automatic Accessibility restoration in ~2.5 secondsThe daemon grants Ripple 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.
Clean Uninstallation Anytime: Whenever you legitimately want to remove Ripple, open 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.