summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Songchun Fan <schfan@google.com> 2022-09-19 18:19:25 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-09-19 18:19:25 +0000
commitae7a1df57df8680ee221c64c995287131364fd8c (patch)
treee6c56e0f705bef107dea381767e5cce1f1095664
parent7588fa68660be986abf983eddfe2beb6d7db5085 (diff)
parentb625b562c41cd3f68aebdd33f96f766209ecfa15 (diff)
Merge "[pm] forbid deletion of protected packages" into qt-dev am: b625b562c4
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19935572 Change-Id: Ic0c235c82f13e4e8f09b35bb9f30134cfcf8617e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-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 14198ba100fd..0472985affaa 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -18390,6 +18390,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;
synchronized (mPackages) {
// Normalize package name to handle renamed packages and static libs