Der akzeptable Sperrtyp kann von Ihrem Systemadministrator vorgegeben werden.
Wo kann ich definieren, was akzeptabel ist? Bei Bedarf kann ich das Zertifikat neu generieren.
So kann ich den Slide Lockscreen wieder verwenden.
(Ich verwende CM9 RC1, Android 4.0.4)
Das Problem beim Deaktivieren der Sperrbildschirmsicherheit mit dem Umschalter/Profil besteht darin, dass die Sperrbildschirm-Widgets ebenfalls nicht angezeigt werden, sodass Sie nicht zum Entsperren schieben können. Wenn Sie Ihr Telefon neu starten, funktionieren die Tasten auch nicht, bis Sie die Einstellung erneut umschalten.
Eine andere Möglichkeit besteht darin, das Zertifikat wie gewohnt zu installieren und dann die Verzeichnisse /data/misc/keychain und keystore mit etwas zu sichern, das die ACLs beibehält, z. B. Root Explorer, an einem Speicherort, der ACLs unterstützt. Ich schlage vor, sie nach /tmp zu kopieren. Löschen Sie dann die Anmeldeinformationen aus den Einstellungen und aktivieren Sie Slide To Unlock. Kopieren Sie dann die Ordner aus /tmp zurück. Die Zertifizierungsstelle wird installiert.
Wie genau das geht, habe ich auf meiner Seite "Installieren von CAcert-Zertifikaten auf Android als 'System'-Anmeldeinformationen ohne Sperrbildschirm - Anleitung" unter http://wiki.pcprobleemloos.nl/android/cacert beschrieben
Ich habe es auch im Cyanogenmod-Forum gepostet: http://forum.cyanogenmod.com/topic/82875-installing-cacert-certificates-on-android-as-system-credentials-without-lockscreen/
Grundsätzlich sind die Befehle:
openssl x509 -inform PEM -subject_hash_old -in root.crt | head -1
Um den korrekten Dateinamen zu erhalten, konvertieren Sie dann das Zertifikat:
cat root.crt > 5ed36f99.0
openssl x509 -inform PEM -text -in root.crt -out /dev/null >> 5ed36f99.0
Kopieren Sie sie nach /system/etc/security/cacerts/ und ändern Sie die neuen .0-Dateien in „644“. Neustarten und überprüfen. Wählen Sie auf Ihrem Android-Gerät „Zertifikate löschen“ und Sie können die PIN entfernen (indem Sie die PIN eingeben und Ihren Sperrbildschirm auf „Keine“ oder „Löschen“ ändern.
Hier habe ich das Stammzertifikat CAcert verwendet, aber Sie möchten wahrscheinlich auch das Zertifikat class3.crt oder verwenden Sie Ihre eigenen Zertifikate.
140342119224992:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: TRUSTED CERTIFICATE
. Wenn Sie mit Unable to load certificate in openssl prüfen , sollte die .pem
Datei übereinstimmen. Aber Ihr letzter Befehl ändert nichts. Stimmt etwas nicht, oder wird das für eine selbstsignierte/erstellte Zertifizierungsstelle erwartet? Und bevor ich anfange zu hacken: sollte das trotzdem funktionieren?openssl x509 -inform PEM -text -fingerprint -in cacert.pem > d6a2705a.0
, dann den base64-Block mit einem Texteditor nach oben verschieben, die Datei in einfügen, /system/etc/security/cacerts/
ausführen chown root:root d6a2705a.0
und chmod 0644 d6a2705a.0
aus dem Verzeichnis heraus – et voila, es taucht als vertrauenswürdiges Systemzertifikat auf . Yeehaa!-----END CERTIFICATE-----Certificate:
was auch einen Parsing-Fehler verursachte.Ich habe eine Lösung entdeckt, die ohne zusätzliche Software oder manuelles Kopieren von Dateien funktioniert:
Das System ist jetzt auf "Swipe unlock" eingestellt, aber das Benutzerzertifikat ist weiterhin verwendbar (getestet mit dem Webbrowser und einer benutzerdefinierten App mit DefaultHttpClient).
Getestet auf einem Android 4.1.2 auf einem Galaxy Tab 2 10.1.
Ich wollte nur eine Antwort hinzufügen, die eine Variante von guttermonk für einen bestimmten Anwendungsfall ist: Installieren eines Zertifikats auf einer Bluestacks-Instanz. Während ich dies schreibe, wurde die Einstellungs-App für Bluestacks so geändert, dass das Festlegen einer PIN oder eines Passworts nicht möglich ist und somit auch das Hinzufügen eines Benutzerzertifikats nicht möglich ist. Aber wir können mit dem Ansatz von guttermonk und einigen anderen Schritten ein Root-Zertifikat in das System bekommen. Ich konnte ein Zertifikat ohne PIN oder Passwort installieren und ohne es jemals im Zertifikatsspeicher des Benutzers zu installieren.
Voraussetzungen:
In meinem Fall hatte ich die Zertifikatsdatei in Bluestacks heruntergeladen und hatte dort kein openssl zur Verfügung. Wir können die Datei in das mit Windows freigegebene Verzeichnis kopieren :
cp /sdcard/Download/mycert.cer /sdcard/windows/BstSharedFolder
In Windows können wir das openssl verwenden, um den Hash des Zertifikats zu erhalten (ich nehme an, das ist es).
cd C:\ProgramData\BlueStacks\Engine\UserData\SharedFolder # in CMD
cd /c/ProgramData/BlueStacks/Engine/UserData/SharedFolder # in Bash
openssl x509 -inform PEM -subject_hash_old -in mycert.cer | head -1
# e.g. abcd1234
Zurück in Android können wir die Systempartition beschreibbar machen , das Zertifikat in das Verzeichnis der Systemzertifikate kopieren und seine Berechtigungen und seinen Besitz reparieren. Hängen Sie die Systempartition aus Sicherheitsgründen danach nur lesend ein.
mount -o rw,remount /system
cd /system/etc/security/cacerts/
cp /sdcard/Download/mycert.cer ./abcd1234.0
chmod 644 abcd1234.0
chown system:system abcd1234.0
mount -o ro,remount /system
Sie können die Profile von CyanogenMod verwenden .
(Für andere Leser: Dies erfordert die benutzerdefinierte CyanogenMod Rom Version 9+)
Erstellen oder ändern Sie einfach ein vorhandenes Profil und schalten Sie dort die „Bildschirmsperre“ aus.
Es ist: Systemeinstellungen->Profile->Standard->Sperrbildschirmmodus->Deaktiviert
Integrieren Sie Ihr Zertifikat in die standardmäßige Android-Keystore-Datei
Sehen Sie sich hier die ausgezeichnete Anleitung von CAcert an
Ich bin mir jedoch nicht sicher, ob Sie dies mit einem selbstsignierten Zertifikat tun können (möglicherweise müssen Sie zu einer selbst erstellten Zertifizierungsstelle wechseln (verwenden Sie tinyca für ein nettes GUI-Tool auf * nix)).
Ich habe einen Weg gefunden, das Problem zu lösen, aber es erfordert Root und funktioniert möglicherweise nur mit Root-, selbstsignierten oder Zwischenzertifizierungsstellen.
Wenn Sie ein Zertifikat haben, dem Android nicht vertraut, wird es beim Hinzufügen in den persönlichen Zertifikatspeicher verschoben. Wenn Sie diesem persönlichen Zertifikatsspeicher ein Zertifikat hinzufügen, erfordert das System eine höhere Sicherheitsstufe, um das Gerät zu entsperren. Wenn Sie es jedoch schaffen, Ihr Zertifikat zum Systemspeicher hinzuzufügen, haben Sie diese Anforderung nicht. Natürlich ist Root erforderlich, um ein Zertifikat zum Systemspeicher hinzuzufügen, aber es ist ziemlich einfach.
So geht's:
1 - Fügen Sie Ihr Zertifikat normal hinzu. Zum Beispiel hieß mein Zertifikat some.crt
. Es wird in Ihrem persönlichen Speicher gespeichert und Android fragt Sie nach einer PIN / einem Passwort ... Fahren Sie fort.
2 - Durchsuchen Sie mit einem Dateimanager mit Root-Fähigkeiten Dateien in /data/misc/keychain/cacerts-added
oder /data/misc/keystore
. Sie sollten hier eine Datei sehen 1000_USRCERT_some
, die das Zertifikat heißt, das Sie in Schritt 1 hinzugefügt haben.
3 - Verschieben Sie diese Datei nach system/etc/security/cacerts
(Sie müssen die Systempartition r/w mounten)
4 - Starten Sie das Telefon neu
5 - Sie können jetzt die PIN/das Passwort löschen, die bzw. das Sie zum Entsperren des Geräts festgelegt haben.
Funktionierte für mich mit einem selbstsignierten Zertifikat unter Android 4.4.2. Ich hoffe es hilft!
rdlu
GAThrawn
Izzy