Android security tags, read closely by Lightrion

CVE-2025-22425 AI-generated analysis

platform/frameworks/base, packages/PackageInstaller (InstallStart activity)

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

PackageInstaller's InstallStart activity stops identifying the originating package via Activity.getCallingPackage() and uses getLaunchedFromPackage() instead. A follow-up commit removes the now-dead null-check branch that replaced the calling package with the PackageInstaller session's installer package name.

Root cause

InstallStart.onCreate() got `callingPackage` from Activity.getCallingPackage(). The commit message says this API is unreliable (go/getcallingpackage-misuse). The value feeds getSourceInfo(callingPackage). Per the surrounding code comment, the uid from the resulting ApplicationInfo is preferred as the source package uid, over the uid from getLaunchedFromUid(). So the package name used to identify the install source might not match the package that actually launched the activity. Also, when getCallingPackage() returned null for a session-based install, the code filled callingPackage from sessionInfo.getInstallerPackageName(). That value comes from the session, not from the actual launcher. getCallingPackage() only reflects a caller that used startActivityForResult() and is otherwise null (general platform knowledge).

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to May 2025 · Findings