You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Eliminated Accessibility Input Filter Dual-Dispatch: Fixed a race condition where rapid, concurrent Secure Settings wipes during service initialization caused Android's AccessibilityManagerService to maintain both an active binding and a crashed service connection, resulting in doubled D-pad remote inputs across the entire OS.
Early Return in Secure Settings Write: tryEnableViaSecureSettings() now checks whether the service is already listed in enabled_accessibility_services and exits immediately without tearing down the existing binder connection.
Stable Key Filtering & Native Pass-Through
Removed Runtime Filter Flag Flapping: Eliminated dynamic mutations of FLAG_REQUEST_FILTER_KEY_EVENTS via setServiceInfo() in RemoteButtonRemapService. Key events that should not be intercepted (including unmapped volume and navigation keys) now pass through natively by returning false in onKeyEvent(), preventing system-level input filter rebuilds and queue desynchronization.
Clean Volume Hold Engine: Retained the active software volume repeat generator for devices with suppressed hold repeats without disturbing system key filtering state.
Package Replacement & Startup Hardening
Package Update Grace Period: Added an initial delay in PackageReplacedReceiver so Android OS can complete its native accessibility service rebinding without interference after an APK update.
Eliminated Redundant Cold Boot Writes: Removed eager tryEnableViaSecureSettings() invocations from Application.onCreate() that raced against system service startup.
Window Token Attachment Buffer: Postponed DockOverlayManager prewarming by 500ms to guarantee WindowManager token readiness and avoid BadTokenException on cold connection.