summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Songchun Fan <schfan@google.com> 2022-09-15 22:17:17 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-09-15 22:17:17 +0000
commitb2abf2632c42f7c5af75d19aed0595605570efdd (patch)
treed16be3017561a33d0b0e377cf532325ef5d1ca76
parentd1afd041a1df448c54fa9d1266b66c42bacb5026 (diff)
parentdba7ceb57ecdf9485bcfe8eb554510ccf9ad773c (diff)
Merge "[pm] forbid deletion of protected packages" into sc-dev
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 76c9c0031c43..9836679c1dee 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -21229,6 +21229,20 @@ public class PackageManagerService extends IPackageManager.Stub
final String packageName = versionedPackage.getPackageName();
final long versionCode = versionedPackage.getLongVersionCode();
+
+ if (mProtectedPackages.isPackageStateProtected(userId, packageName)) {
+ mHandler.post(() -> {
+ try {
+ Slog.w(TAG, "Attempted to delete protected package: " + packageName);
+ observer.onPackageDeleted(packageName,
+ PackageManager.DELETE_FAILED_INTERNAL_ERROR, null);
+ } catch (RemoteException re) {
+ }
+ });
+ return;
+ }
+
+
final String internalPackageName;
try {