diff options
| author | 2011-09-19 14:25:28 -0700 | |
|---|---|---|
| committer | 2011-09-19 15:21:33 -0700 | |
| commit | 553acf0409619ccde09332fb8af3e0b5c7cc4752 (patch) | |
| tree | bb7c9b9167a42e1a1ca9171f8acc3ea9bb9add2c | |
| parent | 79a33ad49e8dd54f36ea7ea5f1a275bf38daf5e8 (diff) | |
Only run "core" apps when encrypting device.
This forces the package manager to only read packages that have
coreApp="true" in their manifest when encrypting the device, since no
non-essential processes or applications should run in that time.
Bug: 5031399
Change-Id: I87e8b27703e42553940167858db9473705d5d843
| -rw-r--r-- | services/java/com/android/server/SystemServer.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 7e28c4f1b26a..977dd6f5d54f 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -64,6 +64,7 @@ import java.util.TimerTask; class ServerThread extends Thread { private static final String TAG = "SystemServer"; + private static final String ENCRYPTING_STATE = "trigger_restart_min_framework"; ContentResolver mContentResolver; @@ -147,9 +148,15 @@ class ServerThread extends Thread { AttributeCache.init(context); Slog.i(TAG, "Package Manager"); + // Only run "core" apps if we're encrypting the device. + String cryptState = SystemProperties.get("vold.decrypt"); + boolean onlyCore = ENCRYPTING_STATE.equals(cryptState); + if (onlyCore) { + Slog.w(TAG, "Detected encryption in progress - only parsing core apps"); + } pm = PackageManagerService.main(context, factoryTest != SystemServer.FACTORY_TEST_OFF, - false); + onlyCore); ActivityManagerService.setSystemProcess(); |