Modificar retraso de PIN incorrecto de 30 segundos

¿Cómo puedo modificar/deshabilitar el retraso de 30 segundos después de intentar el PIN incorrecto 5 veces? El dispositivo es un nexus 7 rooteado con SmoothRom 4.4

Respuestas (1)

Esto es posible de hacer (de hecho, todo es posible en Android. Esa es la belleza y el poder que Android tiene al ser de código abierto :)). Deberá 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.xmldel código fuente de Android.

La declaración de cadena real es:

<string name="kg_too_many_failed_attempts_countdown">Try again in <xliff:g id="number">%d</xliff:g> seconds.</string>

Ahora veamos cómo editar este tiempo de espera.

Los controles de la pantalla de bloqueo están controlados por una biblioteca KeyguardSecurityContainerque reside enframeworks_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 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 puede ver, deberá asignar su nuevo valor a la variable timeoutInSeconds.

NOTA: Actualmente, la batería de mi computadora portátil está bastante baja para compilar y probar la rom con valores editados o modificados. Así que este método no está probado. 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 una lectura rápida). Pero esta es la biblioteca que controla las acciones de bloqueo de teclas.

Además, como nota al margen, puede 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 de bloqueo.

Espero que esto ayude.