Android security tags, read closely by Lightrion

CVE-2024-0035 AI-generated analysis

platform/frameworks/base, SystemUI Quick Settings external tiles (packages/SystemUI/src/com/android/systemui/qs/external/TileLifecycleManager.java)

AI-generated: written from the bulletin and the fixing diffs by claude-fable-5-1, then checked against the code by claude-opus-5-5 (4 corrections). Verify against the commit before relying on it.

SystemUI's TileLifecycleManager now overrides ServiceConnection.onNullBinding and calls executeSetBindService(false) so that a TileService returning a null binding is unbound instead of staying bound.

Root cause

TileLifecycleManager.bindServices() binds an app-supplied TileService via Context.bindServiceAsUser with BIND_AUTO_CREATE | BIND_FOREGROUND_SERVICE_WHILE_AWAKE | BIND_WAIVE_PRIORITY, plus BIND_ALLOW_BACKGROUND_ACTIVITY_STARTS when the START_ACTIVITY_NEEDS_PENDING_INTENT compat change is not enabled for the package. Before the fix, the class implemented onServiceConnected and onServiceDisconnected but not onNullBinding. When a null binding was reported, nothing unbound the connection, so SystemUI kept the app's service bound even though no tile wrapper was created.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to February 2024 · Findings