diff options
author | Tetsutoki Shiozawa <tetsutoki.x.shiozawa@sonymobile.com> | 2015-11-25 23:02:36 +0900 |
---|---|---|
committer | akihiro miura <akihiro.miura@sony.com> | 2018-03-07 17:26:37 +0900 |
commit | a83500e548584005e35a7836b7362333460c8c99 (patch) | |
tree | 52392037356d0e2b900d15b70a42c103d1ba9a74 | |
parent | 1c81aa6375acfeec0a996170fae4849eb57121f5 (diff) | |
download | base-a83500e548584005e35a7836b7362333460c8c99.tar.gz |
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
-rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 900e18873193..d1abd6366776 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 |