Ändern Sie die 30-Sekunden-Verzögerung für eine falsche PIN

Wie kann ich die 30-Sekunden-Verzögerung ändern/deaktivieren, nachdem ich die falsche PIN 5 Mal versucht habe? Das Gerät ist ein Nexus 7-Root mit SmoothRom 4.4

Antworten (1)

Dies ist möglich (tatsächlich ist alles in Android möglich. Das ist die Schönheit und Kraft, die Android hat, Open Source zu sein :)). Sie müssen den Android-Quellcode bearbeiten.

Zuerst eine kleine Info. frameworks_base/packages/Keyguard/res/values/strings.xmlDieser Text ist eine Zeichenfolge, die sich im Android-Quellcode befindet .

Die eigentliche String-Deklaration lautet:

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

Nun zum Bearbeiten dieses Timeouts.

Die Lockscreen-Steuerelemente werden von einer Bibliothek gesteuert, KeyguardSecurityContainerdie sich in befindetframeworks_base/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java

Sie müssen diese Bibliothek bearbeiten.

Die Methode, die dieses Timeout steuert, ist showTimeoutDialog().

Obwohl der Code je nach Rom- und Android-Version leicht variieren kann.

In CM 12 ist es beispielsweise so deklariert->

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;
        }

Wie Sie sehen können, müssen Sie Ihren neuen Wert der Variablen zuweisen timeoutInSeconds.

HINWEIS: Derzeit ist mein Laptop-Akku ziemlich schwach, um das Rom mit bearbeiteten oder geänderten Werten zu kompilieren und zu testen. Diese Methode ist also ungetestet. Bitte führen Sie alle Änderungen auf eigenes Risiko und nach ordnungsgemäßen Sicherungen durch. Bestenfalls könnte es eine Änderung der Variablen sein, die das Timeout steuert (da ich dies nur kurz gelesen habe). Dies ist jedoch die Bibliothek, die Keyguard-Aktionen steuert.

Nebenbei bemerkt gibt es möglicherweise eine Drittanbieter-App, mit der Sie dies tun können (obwohl ich derzeit keine solche App kenne. Aber falls es eine gibt ...). Ich habe dir gesagt, wie du deinen Lockscreen-Wächter direkt modifizieren kannst.

Hoffe das hilft.