summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2018-11-29 22:33:29 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2018-11-29 22:33:29 +0000
commitb6005f9ee9eabdad7fdb0d082caee9e92006c92e (patch)
tree69e0c46526d7831b2faa8a58888f747e27de3677
parent7762547ce24cdba98a02dc62a1957913b1c8acdb (diff)
parentf7e31e6de78eae1841c589d7e64339c2ae6e64dd (diff)
Merge "Fixes incorrect system app deletion logic"
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 1045289ca5c1..c125e9719ed0 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -15246,7 +15246,8 @@ public class PackageManagerService extends IPackageManager.Stub
"inputs not balanced; missing argument for " + installPackageName);
}
final DeletePackageAction deletePackageAction;
- if (prepareResult.replace) {
+ // we only want to try to delete for non system apps
+ if (prepareResult.replace && !prepareResult.system) {
deletePackageAction = mayDeletePackageLocked(res.removedInfo,
prepareResult.originalPs, prepareResult.disabledPs,
prepareResult.childPackageSettings);
@@ -17818,7 +17819,7 @@ public class PackageManagerService extends IPackageManager.Stub
return null;
}
if (isSystemApp(ps)) {
- if (ps.parentPackageName == null) {
+ if (ps.parentPackageName != null) {
Slog.w(TAG, "Attempt to delete child system package " + ps.pkg.packageName);
return null;
}