summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Joanne Chung <joannechung@google.com> 2023-05-09 05:29:22 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-05-09 05:29:22 +0000
commitd359469b9b62ced566b6cf61e4436383b907c801 (patch)
treed47134efc9b783c7f6b589fb44ac9ec80c013f02
parent37b8ca636b16fd8456b0a6b2b24b17f3aa25277e (diff)
parentf8489cf667a0e5831b84c033e1fcd6a18337d4ed (diff)
Merge "Validate checkInstallConstraints() installer package name" into udc-dev
-rw-r--r--services/core/java/com/android/server/pm/PackageInstallerService.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java
index 1721f83538ff..a3651946da12 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerService.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerService.java
@@ -1316,6 +1316,11 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
final var snapshot = mPm.snapshotComputer();
final int callingUid = Binder.getCallingUid();
+ final var callingPackageName = snapshot.getNameForUid(callingUid);
+ if (!TextUtils.equals(callingPackageName, installerPackageName)) {
+ throw new SecurityException("The installerPackageName set by the caller doesn't match "
+ + "the caller's own package name.");
+ }
if (!PackageManagerServiceUtils.isSystemOrRootOrShell(callingUid)) {
for (var packageName : packageNames) {
var ps = snapshot.getPackageStateInternal(packageName);