Android 7.1+ verfügt über einen „Panikerkennungsmodus“, der hektische Betätigungen der Zurück-Taste erkennt

Android Nougat (7.1+) verfügt über einen Panikerkennungsmodus, der erkennt, ob der Benutzer hektisch die Zurück-Taste drückt. Lesen Sie weiter, um zu erfahren, was es bewirkt.

Während viele Leser von Android-zentrierten Websites wie unserer eigenen weniger wahrscheinlich darauf stoßen In Situationen, in denen eine betrügerische Anwendung ihr System gefährdet, gilt das Gleiche möglicherweise nicht für die allgemeine Anwendung Bevölkerung. Fast jede Woche hören wir von verschiedenen Sicherheitsforschern über neue Malware, die es auf Android-Nutzer abgesehen hat. Die meisten dieser böswilligen Angriffe können vermieden werden, indem Berechtigungen überprüft oder die Installation fragwürdig aussehender Anwendungen vermieden wird Während wir unseren Lesern empfehlen, die Sicherheit ihres Telefons selbst in die Hand zu nehmen, ist Google für die Sicherung jedes Android-Geräts verantwortlich Telefon. Zu diesem Zweck führte das Unternehmen stillschweigend eine neue Sicherheitsfunktion in Android 7.1 Nougat mit dem Namen „

Panikerkennung", das darauf wartet, dass mehrere Zurück-Tasten hintereinander gedrückt werden, und den Benutzer dann zum Startbildschirm zurückbringt.

Ganz einfach: Wenn eine betrügerische Anwendung versucht, den Bildschirm des Benutzers zu kapern und ihn am Verlassen zu hindern (vielleicht durch Durch die Implementierung eines Barrierefreiheitsdienstes zum Abfangen aller wichtigen Ereignisse wird Android selbst die Anwendung überschreiben, um das wiederherzustellen Startbildschirm. Der Benutzer kann die Schadanwendung dann vermutlich über den Launcher deinstallieren.

Diese Funktion blieb verständlicherweise unter dem Radar, da Google der Welt wahrscheinlich nicht mitteilen möchte, wie sie schädliche Anwendungen ausmerzen. Doch ein kurzer Blick auf den Open-Source-Code von Android zeigt, wie diese einfache Funktion auf den Geräten funktioniert, die sie unterstützen.


Prüfung des Kodex

Zunächst einmal: Nur weil auf Ihrem Gerät Android 7.1+ läuft, heißt das nicht, dass dieses Panikerkennungsverhalten tatsächlich aktiviert ist. Der Wert, der bestimmt, ob die Funktion aktiviert ist, finden Sie im config.xml Datei innerhalb der SystemUI APK.


<integername="config_backPanicBehavior">0integer>

Standardmäßig reagiert Android auf panisches Drücken der Zurück-Taste, indem es nichts tut. Wenn der ganzzahlige Wert von config_backPanicBehavior auf 1 gesetzt ist, greift hier jedoch die neue Schutzmaßnahme von Android.

Innerhalb PhoneWindowManager.java Wir können den Großteil der Implementierung dieser Funktion sehen. Zunächst definiert die Datei zwei Dinge: Wie oft muss das System die Zurück-Taste drücken, um festzustellen, dass der Benutzer in „Panik“ gerät, und welche Aktion soll dann basierend auf diesem Zustand ausgeführt werden?

// Number of presses needed before we induce panic press behavior on the back button
staticfinalint PANIC_PRESS_BACK_COUNT = 4;
staticfinalint PANIC_PRESS_BACK_NOTHING = 0;
staticfinalint PANIC_PRESS_BACK_HOME = 1;

Standardmäßig erfordert das System vier aufeinanderfolgende Betätigungen der Zurück-Taste, um in den Panikmodus zu gelangen. Ob die Funktion den ganzzahligen Wert von verwendet oder nicht PANIC_PRESS_BACK_NOTHING oder PANIC_PRESS_BACK_HOME wird durch den Wert in der Konfigurationsdatei im SystemUI APK bestimmt.

Unabhängig von diesem Wert wird bei jedem wiederholten Drücken der Zurück-Taste überprüft, ob es als Panik-Druck gewertet wird. Zuerst fängt das System das Abwärtsdrücken ab KEYCODE_BACK Tastenereignis und prüft, ob das System so eingestellt ist, dass es auf mehrmaliges oder langes Drücken der Taste prüft. Anschließend prüft das System, ob es den Aufwärtsdruck für dasselbe Tastenereignis KEYCODE_BACK an die Benutzer-App weitergeben soll.

Im interceptBackKeyDown() Methode: Wenn der Zähler für das Drücken der Zurück-Taste zwischen 1 und 3 liegt, überspringt das System das Zeitlimit für die Erkennung mehrerer Tastendrücke, da die Panikerkennung mindestens 4 Tastendrücke erfordert, damit eine Aktion ausgeführt werden kann.

Sobald der Benutzer als nächstes seinen Finger von der Zurück-Taste entfernt, was ein Aufwärts-Ereignis auslöst, wird der interceptBackKeyUp Addiert 1 zum Zurück-Tasten-Zähler. Anschließend wird eine Nachricht für 300 Millisekunden in die Warteschlange gestellt. Der Grund dafür ist, dass das System eine Verzögerungszeit von 300 Millisekunden reserviert, wenn es entscheidet, ob das Drücken der Zurück-Taste Teil eines Mehrfachdruckereignisses ist. Wenn dies der Fall ist, gerät der Benutzer beim Drücken der Taste möglicherweise in Panik, sodass das System das Schlüsselereignis nicht an die Benutzeranwendung senden sollte.

Der 300-ms-Zeitüberschreitungswert für mehrere Tastendrücke wird in der sicheren Einstellung „ gespeichert.multi_press_timeout" Wie nachfolgend dargestellt.

/**
* The duration in milliseconds between the first tap's up event and the second tap's
* down event for an interaction to be considered part of the same multi-press.
* @hide
*/
publicstaticfinal String MULTI_PRESS_TIMEOUT = "multi_press_timeout";

Standardmäßig ist dieser Wert auf 300 ms eingestellt.

/**
* Defines the default duration in milliseconds between the first tap's up event and the second
* tap's down event for an interaction to be considered part of the same multi-press.
*/
privatestaticfinalint DEFAULT_MULTI_PRESS_TIMEOUT = 300

Wenn dann tatsächlich ein mehrfaches Drücken erkannt wird (>1 vollständiges Auf-/Abdrücken der Zurück-Taste innerhalb von 300 ms), ruft das System auf backMultiPressAction Methode, um zu bestimmen, welche Maßnahmen ergriffen werden sollen. Abschließend wird der Zurück-Button-Zähler auf 0 zurückgesetzt.

Obwohl es sich um eine sehr kleine, unveröffentlichte Funktion handelt, ist es dennoch schön zu sehen, woran Google hinter den Kulissen arbeitet, um Android für den Durchschnittsnutzer sicherer zu machen.