summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Songchun Fan <schfan@google.com> 2022-09-15 21:57:08 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-09-15 21:57:08 +0000
commit689f4b137583fa8783c0a6fdb76cd07e413f87f0 (patch)
tree80980bd34cc4cebc5b54ae45bbb93e9a49193e15
parent384756a667c28fd7ab284ec87877059f83824fcb (diff)
parentafb5d201a1b33095cece373fdedcf9ef8a64ebbc (diff)
Merge "[pm] forbid deletion of protected packages" into tm-dev am: 12e837e3a9 am: afb5d201a1
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19929347 Change-Id: I4de257e1c35fba8ac85e4605540033b80e70f2ae Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/core/java/com/android/server/pm/DeletePackageHelper.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/DeletePackageHelper.java b/services/core/java/com/android/server/pm/DeletePackageHelper.java
index c3b479219853..0915c21dda59 100644
--- a/services/core/java/com/android/server/pm/DeletePackageHelper.java
+++ b/services/core/java/com/android/server/pm/DeletePackageHelper.java
@@ -657,6 +657,18 @@ final class DeletePackageHelper {
final String packageName = versionedPackage.getPackageName();
final long versionCode = versionedPackage.getLongVersionCode();
+ if (mPm.mProtectedPackages.isPackageDataProtected(userId, packageName)) {
+ mPm.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;
+ }
+
try {
if (mPm.mInjector.getLocalService(ActivityTaskManagerInternal.class)
.isBaseOfLockedTask(packageName)) {