From e476bf6aeb58ccdf1ae4e44c2e9319b52fe22001 Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Tue, 9 Feb 2016 12:50:49 -0800 Subject: [PATCH] Delete only the target user bug:27094971 Change-Id: I5b43d59ff6edeefc0e05a6ec90d04d388e707c29 --- .../java/com/android/server/pm/PackageManagerService.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 819250cf73a5..04e4a8cebb46 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -14397,7 +14397,6 @@ public class PackageManagerService extends IPackageManager.Stub { if (DEBUG_REMOVE) Slog.d(TAG, "deletePackageLI: " + packageName + " user " + user); PackageSetting ps; - int removeUser = -1; synchronized (mPackages) { ps = mSettings.mPackages.get(packageName); @@ -14412,7 +14411,9 @@ public class PackageManagerService extends IPackageManager.Stub { Slog.d(TAG, "Uninstalled child package:" + packageName + " for user:" + ((user == null) ? UserHandle.USER_ALL : user)); } - if (!clearPackageStateForUser(ps, removeUser, outInfo)) { + final int removedUserId = (user != null) ? user.getIdentifier() + : UserHandle.USER_ALL; + if (!clearPackageStateForUser(ps, removedUserId, outInfo)) { return false; } markPackageUninstalledForUserLPw(ps, user); @@ -14436,9 +14437,9 @@ public class PackageManagerService extends IPackageManager.Stub { if (ps.isAnyInstalled(sUserManager.getUserIds()) || keepUninstalledPackage) { // Other user still have this package installed, so all // we need to do is clear this user's data and save that - // it is uninstalled. - if (DEBUG_REMOVE) Slog.d(TAG, "Still installed by other users"); - if (!clearPackageStateForUser(ps, removeUser, outInfo)) { + // it is uninstalled. + if (DEBUG_REMOVE) Slog.d(TAG, "Still installed by other users"); + if (!clearPackageStateForUser(ps, user.getIdentifier(), outInfo)) { return false; } scheduleWritePackageRestrictionsLocked(user); @@ -14455,7 +14456,7 @@ public class PackageManagerService extends IPackageManager.Stub { // we need to do is clear this user's data and save that // it is uninstalled. if (DEBUG_REMOVE) Slog.d(TAG, "Deleting system app"); - if (!clearPackageStateForUser(ps, removeUser, outInfo)) { + if (!clearPackageStateForUser(ps, user.getIdentifier(), outInfo)) { return false; } scheduleWritePackageRestrictionsLocked(user); -- 2.11.0