¿Cómo puedo modificar/inhabilitar el retraso de 30 segundos después de intentar el PIN incorrecto 5 veces? El dispositivo es un nexo 7 rooteado que funciona con SmoothRom 4.4
Respuesta
¿Demasiados anuncios?Esto es posible (de hecho, todo es posible en Android. Esa es la belleza y el poder que tiene Android al ser de código abierto :) ). Necesitarás editar el código fuente de Android.
Primero, un poco de información. Este texto es una cadena que reside dentro frameworks_base/packages/Keyguard/res/values/strings.xml
en el código fuente de Android.
La declaración de la cadena actual es:
<string name="kg_too_many_failed_attempts_countdown">Try again in <xliff:g id="number">%d</xliff:g> seconds.</string>
Ahora para saber cómo editar este tiempo de espera.
Los controles de la pantalla de bloqueo son controlados por una biblioteca KeyguardSecurityContainer
que reside en frameworks_base/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
Necesitas editar esta biblioteca.
El método que controla este tiempo de espera es showTimeoutDialog()
.
Aunque el código puede variar ligeramente según la rom y la versión de Android.
Por ejemplo, en el CM 12, se declara así->
private void showTimeoutDialog() {
//This is likely the variable you need to assign your new value to
int timeoutInSeconds = (int) LockPatternUtils.FAILED_ATTEMPT_TIMEOUT_MS / 1000;
int messageId = 0;
switch (mSecurityModel.getSecurityMode()) {
case Pattern:
messageId = R.string.kg_too_many_failed_pattern_attempts_dialog_message;
break;
case PIN:
messageId = R.string.kg_too_many_failed_pin_attempts_dialog_message;
break;
case Password:
messageId = R.string.kg_too_many_failed_password_attempts_dialog_message;
break;
// These don't have timeout dialogs.
case Account:
case Biometric:
case Invalid:
case None:
case SimPin:
case SimPuk:
break;
}
Como puedes ver, tendrás que asignar tu nuevo valor a la variable timeoutInSeconds
.
NOTA: Actualmente la batería de mi portátil está bastante baja para compilar y probar la rom con valores editados o cambiados. Así que este método no está probado. Por favor, realice cualquier modificación bajo su propio riesgo y después de tener las copias de seguridad adecuadas. En el mejor de los casos, podría ser un cambio en la variable que controla el tiempo de espera (ya que simplemente le di a esto una lectura rápida). Pero esta es la biblioteca que controla las acciones de los guardianes de las llaves.
Además, como nota al margen, podría haber alguna aplicación de terceros que le permita hacer esto (aunque actualmente no conozco ninguna aplicación de este tipo. Pero en caso de que exista...). Te dije una forma directa de modificar tu protector de pantalla.
Espero que esto ayude.