summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Songchun Fan <schfan@google.com> 2022-09-15 21:29:58 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-09-15 21:29:58 +0000
commitafb5d201a1b33095cece373fdedcf9ef8a64ebbc (patch)
tree617fffa5dedc08a0e9afd98ebd8563a745f9e2c9
parent31a5f9dae577441e4d37c5f3e7a67f8ac8076bdb (diff)
parent12e837e3a9bf92a44814b2ef9431e2c8a6deda5e (diff)
Merge "[pm] forbid deletion of protected packages" into tm-dev am: 12e837e3a9
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19929347 Change-Id: I1211e47dd0fef5309da889830a0630c96f033d6f 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)) {