Merge "ZygoteInit: install AndroidKeyStoreProvider in the Zygote" into nyc-dev am: 44b9f13f9c

am: 3eb0680642

* commit '3eb06806429f444fe87b894308681e20e6871c7d':
  ZygoteInit: install AndroidKeyStoreProvider in the Zygote

Change-Id: Ia3c21577450bc028548e8427a4a0f9f552e4890f
This commit is contained in:
Sergio Giro
2016-05-19 18:21:50 +00:00
committed by android-build-merger
2 changed files with 14 additions and 5 deletions

View File

@@ -102,7 +102,6 @@ import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import android.view.WindowManagerGlobal; import android.view.WindowManagerGlobal;
import android.renderscript.RenderScriptCacheDir; import android.renderscript.RenderScriptCacheDir;
import android.security.keystore.AndroidKeyStoreProvider;
import android.system.Os; import android.system.Os;
import android.system.OsConstants; import android.system.OsConstants;
import android.system.ErrnoException; import android.system.ErrnoException;
@@ -5989,8 +5988,6 @@ public final class ActivityThread {
// Set the reporter for event logging in libcore // Set the reporter for event logging in libcore
EventLogger.setReporter(new EventLoggingReporter()); EventLogger.setReporter(new EventLoggingReporter());
AndroidKeyStoreProvider.install();
// Make sure TrustedCertificateStore looks in the right place for CA certificates // Make sure TrustedCertificateStore looks in the right place for CA certificates
final File configDir = Environment.getUserConfigDirectory(UserHandle.myUserId()); final File configDir = Environment.getUserConfigDirectory(UserHandle.myUserId());
TrustedCertificateStore.setDefaultUserDirectory(configDir); TrustedCertificateStore.setDefaultUserDirectory(configDir);

View File

@@ -31,6 +31,7 @@ import android.os.Process;
import android.os.SystemClock; import android.os.SystemClock;
import android.os.SystemProperties; import android.os.SystemProperties;
import android.os.Trace; import android.os.Trace;
import android.security.keystore.AndroidKeyStoreProvider;
import android.system.ErrnoException; import android.system.ErrnoException;
import android.system.Os; import android.system.Os;
import android.system.OsConstants; import android.system.OsConstants;
@@ -253,20 +254,31 @@ 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 * By doing it here we avoid that each app does it when requesting a service from the
* provider for the first time. * provider for the first time.
*/ */
private static void warmUpJcaProviders() { private static void warmUpJcaProviders() {
long startTime = SystemClock.uptimeMillis(); 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.traceBegin(
Trace.TRACE_TAG_DALVIK, "Starting warm up of JCA providers"); Trace.TRACE_TAG_DALVIK, "Starting warm up of JCA providers");
for (Provider p : Security.getProviders()) { for (Provider p : Security.getProviders()) {
p.warmUpServiceProvision(); p.warmUpServiceProvision();
} }
Log.i(TAG, "Warmed up JCA providers in " Log.i(TAG, "Warmed up JCA providers in "
+ (SystemClock.uptimeMillis()-startTime) + "ms."); + (SystemClock.uptimeMillis() - startTime) + "ms.");
Trace.traceEnd(Trace.TRACE_TAG_DALVIK); Trace.traceEnd(Trace.TRACE_TAG_DALVIK);
} }