So installieren Sie CA-Zertifikate programmgesteuert unter Android ohne Benutzerinteraktion

Ich versuche, Zertifikate zu installieren, ohne den Benutzer dazu aufzufordern. Ich weiß, dass dies keine gute Praxis ist, aber genau das will der Premierminister.

VerwendenKeyChain.createInstallIntent()Ich kann Android veranlassen, den Zertifikatinstallationsdialog durch Aufrufen von zu startenstartActivity. Allerdings, wenn ich die Absicht weitergebesendBroadcast, nichts passiert. Vielleicht unterstützt die Plattform dies aus Sicherheitsgründen nicht?

String CERT_FILE = Environment.getExternalStorageDirectory() + "/test/IAT.crt";
Intent intent = KeyChain.createInstallIntent();
try {
    FileInputStream certIs = new FileInputStream(CERT_FILE);
    byte [] cert = new byte[(int)certFile.length()];
    certIs.read(cert);
    X509Certificate x509 = X509Certificate.getInstance(cert);
    intent.putExtra(KeyChain.EXTRA_CERTIFICATE, x509.getEncoded()); 
    intent.putExtra(KeyChain.EXTRA_NAME, "IAT Cert");
    EapActivity.this.startActivityForResult(intent, 0);  // this works but shows UI
    EapActivity.this.sendBroadcast(intent);  // this doesn't install cert
} catch (IOException e) {

Antworten auf die Frage(6)

Ihre Antwort auf die Frage