diff options
| author | 2022-09-15 22:17:17 +0000 | |
|---|---|---|
| committer | 2022-09-15 22:17:17 +0000 | |
| commit | b2abf2632c42f7c5af75d19aed0595605570efdd (patch) | |
| tree | d16be3017561a33d0b0e377cf532325ef5d1ca76 | |
| parent | d1afd041a1df448c54fa9d1266b66c42bacb5026 (diff) | |
| parent | dba7ceb57ecdf9485bcfe8eb554510ccf9ad773c (diff) | |
Merge "[pm] forbid deletion of protected packages" into sc-dev
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 14 |
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 { |