diff options
-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 7e28c4f..977dd6f 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(); |