El tipo de bloqueo aceptable puede estar predeterminado por el administrador del sistema.
¿Dónde puedo definir lo que es aceptable? Puedo regenerar el certificado si es necesario.
Entonces puedo usar la pantalla de bloqueo deslizante nuevamente.
(Estoy usando CM9 RC1, Android 4.0.4)
El problema de deshabilitar la seguridad de la pantalla de bloqueo usando el conmutador/perfil es que los widgets de la pantalla de bloqueo tampoco aparecen, por lo que no puede deslizar para desbloquear. Además, cuando reinicia su teléfono, los botones no funcionan hasta que vuelve a cambiar la configuración.
Otra forma es instalar el certificado como de costumbre y luego hacer una copia de seguridad de los directorios /data/misc/keychain y keystore usando algo que conserve las ACL, como Root Explorer, en una ubicación que admita ACL. Sugiero copiarlos en /tmp. Luego borre las credenciales de Configuración y habilite Deslizar para desbloquear. Luego copie las carpetas desde /tmp. Se instalará la CA.
He descrito cómo hacer exactamente esto en mi página, "Instalación de certificados CAcert en Android como credenciales de 'sistema' sin pantalla de bloqueo: instrucciones" en http://wiki.pcprobleemloos.nl/android/cacert
También lo publiqué en el foro de cyanogenmod: http://forum.cyanogenmod.com/topic/82875-installing-cacert-certificates-on-android-as-system-credentials-without-lockscreen/
Básicamente, los comandos son:
openssl x509 -inform PEM -subject_hash_old -in root.crt | head -1
Para obtener el nombre de archivo correcto, convierta el certificado:
cat root.crt > 5ed36f99.0
openssl x509 -inform PEM -text -in root.crt -out /dev/null >> 5ed36f99.0
Cópielos en /system/etc/security/cacerts/ y cambie los nuevos archivos .0 a '644'. Reinicie y verifique. En su dispositivo Android, seleccione 'Borrar certificados' y podrá eliminar el pin (ingresando el pin y cambiando su pantalla de bloqueo a 'ninguno' o 'borrar')
Aquí usé el certificado raíz CAcert, pero probablemente también desee el certificado class3.crt, o use sus propios certificados.
140342119224992:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: TRUSTED CERTIFICATE
. Verificando con No se puede cargar el certificado en openssl , el .pem
archivo debe coincidir. Pero entonces, tu última orden no cambia nada. ¿Algo mal, o se espera eso para una CA autofirmada/creada? Y antes de comenzar a piratear: ¿debería funcionar de todos modos?openssl x509 -inform PEM -text -fingerprint -in cacert.pem > d6a2705a.0
, luego moví el bloque base64 hacia arriba usando un editor de texto, colocando el archivo en /system/etc/security/cacerts/
, ejecutándolo chown root:root d6a2705a.0
y chmod 0644 d6a2705a.0
desde dentro del directorio, et voila, aparece como un certificado de sistema confiable . ¡Yeehaa!-----END CERTIFICATE-----Certificate:
lo que también causó un error de análisis).Descubrí una solución que funciona sin software adicional o copia manual de archivos:
El sistema ahora está configurado para "Desbloquear con deslizamiento", pero el certificado de usuario aún se puede usar (probado con el navegador web y una aplicación personalizada que usa DefaultHttpClient).
Probado en un Android 4.1.2 en un Galaxy Tab 2 10.1.
Solo quería agregar una respuesta que es una variante de guttermonk para un caso de uso particular: instalar un certificado en una instancia de Bluestacks. En este escrito, la aplicación de configuración para Bluestacks se ha modificado para que sea imposible establecer un pin o contraseña, y también es imposible agregar un certificado de usuario. Pero podemos obtener un certificado raíz en el sistema con el enfoque de guttermonk y algunos otros pasos. Pude instalar un certificado sin PIN ni contraseña y sin siquiera instalarlo en el almacén de certificados del usuario.
requisitos previos:
En mi caso, descargué el archivo de certificado dentro de Bluestacks y no tenía Openssl disponible allí. Podemos copiar el archivo al directorio compartido con Windows :
cp /sdcard/Download/mycert.cer /sdcard/windows/BstSharedFolder
En Windows podemos usar el openssl para obtener el hash del certificado (supongo que eso 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
De vuelta en Android, podemos hacer que la partición del sistema sea escribible , copiar el certificado en el directorio de certificados del sistema y arreglar sus permisos y propiedad. Monte la partición del sistema de solo lectura después, por seguridad.
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
Puedes hacer uso de los perfiles de CyanogenMod .
(Para otros lectores: esto necesita la versión personalizada de CyanogenMod Rom 9+)
Simplemente cree o modifique un perfil existente y desactive el "bloqueo de pantalla" allí.
Es: Configuración del sistema->Perfiles->Predeterminado->Modo de pantalla de bloqueo->Deshabilitado
Integre su certificado en el archivo de almacén de claves estándar de Android
Vea el excelente tutorial de CAcert aquí
Sin embargo, no estoy seguro de si puede hacer esto con un certificado autofirmado (quizás tenga que cambiar a una CA hecha por usted mismo (use tinyca para una buena herramienta de interfaz gráfica de usuario en * nix)).
Encontré una manera de resolver el problema, pero requiere root y es posible que solo funcione con CA raíz, autofirmadas o intermedias.
Si tiene un certificado en el que Android no confía, cuando lo agrega, va al almacén de certificados personales. Cuando agrega un certificado en este almacén de certificados personales, el sistema requiere un nivel de seguridad más alto para desbloquear el dispositivo. Pero si logra agregar su certificado al almacén del sistema, entonces no tiene este requisito. Obviamente, se requiere root para agregar un certificado al almacén del sistema, pero es bastante fácil.
Aquí está cómo hacerlo:
1 - Agregue su certificado normalmente. Por ejemplo, mi certificado se llamó some.crt
. Se almacenará en su tienda personal y Android le pedirá un pin/contraseña... Continúe.
2 - Con un administrador de archivos con capacidades de raíz, busque archivos en formato /data/misc/keychain/cacerts-added
o /data/misc/keystore
. Debería ver un archivo aquí llamado 1000_USRCERT_some
es el certificado que agregó en el paso 1.
3 - Mueva este archivo a system/etc/security/cacerts
(necesitará montar la partición del sistema r/w)
4 - Reiniciar el teléfono
5 - Ahora puede borrar el pin/contraseña que configuró para desbloquear el dispositivo.
Trabajó para mí con un certificado autofirmado en Android 4.4.2. ¡Espero eso ayude!
rdlu
gathrawn
izzy