From a83500e548584005e35a7836b7362333460c8c99 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. BUG: 73447744 Change-Id: 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 900e18873193c..d1abd63667762 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -10206,6 +10206,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