Merge "ZygoteInit: install AndroidKeyStoreProvider in the Zygote" into nyc-dev
This commit is contained in:
@@ -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;
|
||||
@@ -5991,8 +5990,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);
|
||||
|
||||
@@ -28,6 +28,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;
|
||||
@@ -223,20 +224,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
|
||||
* provider for the first time.
|
||||
*/
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user