summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sergio Giro <sgiro@google.com> 2016-05-19 18:09:30 +0000
committer android-build-merger <android-build-merger@google.com> 2016-05-19 18:09:30 +0000
commit3eb06806429f444fe87b894308681e20e6871c7d (patch)
treed4ad10cefee44c5bcce40b73f50d0dd8c5a2cd16
parent8f69021a908c9c805d53eefad1c4f2795d43f656 (diff)
parent44b9f13f9cfaf2e1136a1f2baab54b229d221fe4 (diff)
Merge "ZygoteInit: install AndroidKeyStoreProvider in the Zygote" into nyc-dev
am: 44b9f13f9c * commit '44b9f13f9cfaf2e1136a1f2baab54b229d221fe4': ZygoteInit: install AndroidKeyStoreProvider in the Zygote Change-Id: Ia20b312dfd8181fadd38f075817630a1c5ab518f
-rw-r--r--core/java/android/app/ActivityThread.java3
-rw-r--r--core/java/com/android/internal/os/ZygoteInit.java16
2 files changed, 14 insertions, 5 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index d0fa397acbf0..365f9c809779 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -102,7 +102,6 @@ import android.view.Window;
import android.view.WindowManager;
import android.view.WindowManagerGlobal;
import android.renderscript.RenderScriptCacheDir;
-import android.security.keystore.AndroidKeyStoreProvider;
import android.system.Os;
import android.system.OsConstants;
import android.system.ErrnoException;
@@ -5989,8 +5988,6 @@ public final class ActivityThread {
// Set the reporter for event logging in libcore
EventLogger.setReporter(new EventLoggingReporter());
- AndroidKeyStoreProvider.install();
-
// Make sure TrustedCertificateStore looks in the right place for CA certificates
final File configDir = Environment.getUserConfigDirectory(UserHandle.myUserId());
TrustedCertificateStore.setDefaultUserDirectory(configDir);
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index a7fb200ed86f..9c960c04d491 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -31,6 +31,7 @@ import android.os.Process;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.Trace;
+import android.security.keystore.AndroidKeyStoreProvider;
import android.system.ErrnoException;
import android.system.Os;
import android.system.OsConstants;
@@ -253,7 +254,7 @@ public class ZygoteInit {
}
/**
- * Warm up the providers that are already registered.
+ * Register AndroidKeyStoreProvider and warm up the providers that are already registered.
*
* By doing it here we avoid that each app does it when requesting a service from the
* provider for the first time.
@@ -261,12 +262,23 @@ public class ZygoteInit {
private static void warmUpJcaProviders() {
long startTime = SystemClock.uptimeMillis();
Trace.traceBegin(
+ Trace.TRACE_TAG_DALVIK, "Starting installation of AndroidKeyStoreProvider");
+ // AndroidKeyStoreProvider.install() manipulates the list of JCA providers to insert
+ // preferred providers. Note this is not done via security.properties as the JCA providers
+ // are not on the classpath in the case of, for example, raw dalvikvm runtimes.
+ AndroidKeyStoreProvider.install();
+ Log.i(TAG, "Installed AndroidKeyStoreProvider in "
+ + (SystemClock.uptimeMillis() - startTime) + "ms.");
+ Trace.traceEnd(Trace.TRACE_TAG_DALVIK);
+
+ startTime = SystemClock.uptimeMillis();
+ Trace.traceBegin(
Trace.TRACE_TAG_DALVIK, "Starting warm up of JCA providers");
for (Provider p : Security.getProviders()) {
p.warmUpServiceProvision();
}
Log.i(TAG, "Warmed up JCA providers in "
- + (SystemClock.uptimeMillis()-startTime) + "ms.");
+ + (SystemClock.uptimeMillis() - startTime) + "ms.");
Trace.traceEnd(Trace.TRACE_TAG_DALVIK);
}