Android security tags, read closely by Lightrion

CVE-2025-26444 AI-generated analysis

platform/frameworks/base, services/voiceinteraction (VoiceInteractionManagerService, assistant role handling)

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 (5 corrections). Verify against the commit before relying on it.

Removes the code in VoiceInteractionManagerService's PackageMonitor.onHandleForceStop that ran when the current voice interactor package was force stopped. That code nulled the interactor and recognizer settings, reset the current assistant, re-ran initForUser and cleared the ROLE_ASSISTANT role holders (falling back to the roles.xml default). Now the service is only shut down and restarted.

Root cause

In services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java, the anonymous PackageMonitor's onHandleForceStop(Intent, String[] packages, int uid, boolean doit) checks whether any force-stopped package equals the current interactor's package (hitInt). When hitInt && doit was true, the old code shut down mImpl and then called setCurInteractor(null, userHandle), setCurRecognizer(null, userHandle), resetCurAssistant(userHandle) and initForUser(userHandle), followed by RoleManager.clearRoleHoldersAsUser(RoleManager.ROLE_ASSISTANT, 0, UserHandle.of(userHandle), ...). The commit message says this behaviour 'seems to be accidental' and grew out of fixes for b/20882522, b/121104681 and b/124450140. The net effect was that force stopping a third-party assistant reset the default assistant (role and settings) to the fallback app set in roles.xml, instead of just restarting the service.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to May 2025 · Findings