Sin lector de huellas dactilares después de agregar un certificado autofirmado

Cyanogen OS 12.1 ejecutándose en un ZUK z1. Agregué un certificado de CA autofirmado a las "credenciales de confianza". Desde entonces, Android ya no me permite usar el escáner de huellas dactilares para desbloquear la pantalla. ¿Hay alguna solución a esta característica de seguridad?

¿El dispositivo está rooteado? De lo contrario, AFAIK, la respuesta es de 2 letras: No.
Ay. lamentablemente no esta rooteado
¿Debería colocar una "solución raíz" como respuesta, de todos modos, para que pueda ver si vale la pena? En un dispositivo rooteado, la solución es trivial (incluso si no está familiarizado con shell/línea de comandos). Lo hago en mis dispositivos todo el tiempo.
Sí, por favor, publícalo. Simplemente no me gustan las herramientas como kingroot y la tasa de éxito de rootear mi dispositivo a través de otras formas sigue siendo bastante baja.
Prefiero evitar esas herramientas también si es posible, debido a sus efectos secundarios (al menos por lo que he leído sobre ellas). Verificaré la respuesta, pero debo posponerla para cuando regrese a casa; hay algunos detalles sutiles que no puedo reconstruir de manera confiable sin mis notas :)

Respuestas (1)

Paso 1: haga que los certificados sean compatibles (si aún no lo son)

Al principio, necesitamos calcular el nombre de archivo de nuestro archivo de certificado. El nombre del archivo de certificado es un hash que se puede obtener del propio certificado. Para esto, uno necesita las opensslherramientas. En Unix/Linux, los pasos son los siguientes:

# Obtain the hash – in my case that returned d6a2705a – so we have the file name
openssl x509 -inform PEM -subject_hash_old -in root.crt | head -1
# Copy the original file
cat root.crt > d6a2705a.0
# Append additional data
openssl x509 -inform PEM -text -in root.crt -out /dev/null >> d6a2705a.0

Paso 2: Obtenga el certificado en nuestra cadena de certificados del sistema

Si su dispositivo está rooteado, una solución a esto es importar el certificado como certificado del sistema (no como certificado de usuario). Necesitará la línea de comando para eso, usando adb shelluna aplicación de terminal en el dispositivo. El siguiente fragmento asume que su certificado ya se envió a la tarjeta SD, se guardó como /sdcard/d6a2705a.0(ajústelo a su nombre de certificado) y se encuentra en el símbolo del sistema de su dispositivo.

mount -o remount,rw /system
cp d6a2705a.0 /system/etc/security/cacerts/d6a2705a.0
chown root:root /system/etc/security/cacerts/d6a2705a.0
chmod 0644 /system/etc/security/cacerts/d6a2705a.0
mount -o remount,ro /system

Hecho. Ahora debería poder usar el certificado, y como no tiene ningún "certificado de usuario inseguro", puede usar cualquier mecanismo de desbloqueo que prefiera.


Una verificación rápida muestra que todos estos pasos también se describen en CaCert Wiki sobre cómo crear archivos de certificado compatibles con Android a partir de sus archivos originales. Entonces, mis notas personales de las que tomé lo anterior bien podrían originarse aquí, al menos en parte.