diff options
-rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 9 |
1 files changed, 7 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 04059fceecc1..8c2dab0f075b 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -11928,7 +11928,7 @@ public class PackageManagerService extends IPackageManager.Stub { if (DEBUG_REMOVE) Slog.d(TAG, "Still installed by other users"); removeUser = user.getIdentifier(); appId = ps.appId; - mSettings.writePackageRestrictionsLPr(removeUser); + scheduleWritePackageRestrictionsLocked(removeUser); } else { // We need to set it back to 'installed' so the uninstall // broadcasts will be sent correctly. @@ -11943,7 +11943,7 @@ public class PackageManagerService extends IPackageManager.Stub { if (DEBUG_REMOVE) Slog.d(TAG, "Deleting system app"); removeUser = user.getIdentifier(); appId = ps.appId; - mSettings.writePackageRestrictionsLPr(removeUser); + scheduleWritePackageRestrictionsLocked(removeUser); } } } @@ -11960,6 +11960,11 @@ public class PackageManagerService extends IPackageManager.Stub { mInstaller.clearUserData(packageName, removeUser); removeKeystoreDataIfNeeded(removeUser, appId); schedulePackageCleaning(packageName, removeUser, false); + synchronized (mPackages) { + if (clearPackagePreferredActivitiesLPw(packageName, removeUser)) { + scheduleWritePackageRestrictionsLocked(removeUser); + } + } return true; } |