From 1b7a2f88160445915b7e8e6f913b5723222751ac Mon Sep 17 00:00:00 2001 From: Tetsutoki Shiozawa Date: Wed, 25 Nov 2015 23:02:36 +0900 Subject: [PATCH] Store package restriction settings at shutdown Symptom: Disabled package was re-enabled by restarting a device. Root cause: PMS postpones storing the package restriction settings in 10 seconds by design. When a package gets disabled right before shutdown, PMS fails to store the last changes. Solution: Store package restriction settings at shutdown. Test: Manually: 1. Run "pm suspend " 2. Press power and reboot device within 10 seconds 3. Verify that remains suspended BUG: 73447744, 79209078 Change-Id: I4fe76c1f003e51653304cfaeaa5129d84803ce1e Merged-In: I4fe76c1f003e51653304cfaeaa5129d84803ce1e --- .../com/android/server/pm/PackageManagerService.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 84e9d02d6577c..bcbfb93c45941 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -9414,6 +9414,17 @@ public class PackageManagerService extends IPackageManager.Stub mPackageUsage.writeNow(mPackages); mCompilerStats.writeNow(); mDexManager.writePackageDexUsageNow(); + + // This is the last chance to write out pending restriction settings + synchronized (mPackages) { + if (mHandler.hasMessages(WRITE_PACKAGE_RESTRICTIONS)) { + mHandler.removeMessages(WRITE_PACKAGE_RESTRICTIONS); + for (int userId : mDirtyUsers) { + mSettings.writePackageRestrictionsLPr(userId); + } + mDirtyUsers.clear(); + } + } } @Override