Android security tags, read closely by Lightrion

CVE-2026-0021 AI-generated analysis

platform/packages/apps/Settings, applications/AppInfoBase (app info pages) and AndroidManifest.xml

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

In packages/apps/Settings, AppInfoBase's caller permission check now, on devices with activity embedding (multi-pane) enabled, verifies that the SettingsActivity's initial calling package holds INTERACT_ACROSS_USERS_FULL instead of relying on getLaunchedFromUid, and the Settings$AppUsageAccessSettingsActivity intent-filter gets android:priority="1".

Root cause

AppInfoBase has a method (its name is not shown in the hunk header) that, after confirming the host activity is a SettingsActivity, decides whether the caller is allowed through by using ActivityManager.getService().getLaunchedFromUid(activity.getActivityToken()). Per the commit title ('Check permission of the calling package in multi-pane devices'), this check was not adequate on devices where ActivityEmbeddingUtils.isEmbeddingActivityEnabled(activity) is true. The material does not show exactly why the launched-from UID check fails in that mode. Separately, the Settings$AppUsageAccessSettingsActivity intent-filter for android.settings.USAGE_ACCESS_SETTINGS with data scheme "package" had no priority, while its sibling Settings$UsageAccessSettingsActivity already declares priority 1.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to March 2026 · Findings