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) {