Das Autofill-Framework von Android O wird endlich ein seit langem bestehendes Verzögerungsproblem bei Passwort-Managern lösen

Das neue Autofill-Framework in Android O wird ein seit langem bestehendes Verzögerungsproblem im Zusammenhang mit den Barrierefreiheitsdiensten von Passwort-Managern beheben.

Es ist bereits einen Monat her, seit Google das veröffentlicht hat erste Android O Developer Preview (Die Zeit vergeht wie im Flug!) und wie bei jeder neuen Android-Version gibt es viel zu entdecken. Wir haben veröffentlicht jede Menge Artikel über Android O bereits, aber es gibt eine Funktion, die meiner Meinung nach nicht wirklich die Aufmerksamkeit erhalten hat, die sie verdient: die Autofill-Framework.

Automatisches Ausfüllen in Android O

Passwort-Manager gibt es heutzutage wie Sand am Meer (bei uns allerdings schon). Teil des Open-Source-KeePass), aber erst mit Android O unterstützt Google Passwort-Manager wirklich offiziell. Mit Android O können Anwendungen von Drittanbietern die Rolle eines Autofill-Dienstes übernehmen, die über das neue Autofill Framework mit Apps kommunizieren. Apps, die Standard verwenden Sicht

Elemente funktionieren standardmäßig mit dem Autofill-Framework, es gibt jedoch zusätzliche Schritte, die Entwickler unternehmen können Für automatisches Ausfüllen optimieren um sicherzustellen, dass alle benutzerdefinierten Ansichten der App automatisch ausgefüllt werden können.

Wenn eine automatisch ausfüllbare Ansicht in den Fokus gelangt, ruft das Autofill-Framework eine Autofill-Anfrage auf. Der Autofill-Dienst antwortet, indem er bestimmte Autofill-Datensätze (wie Benutzername, Passwort, Adresse, Kreditkartennummern usw.) zurücksendet, die der Benutzer dann auswählen kann. Der Autofill-Dienst wird vom Benutzer unter Einstellungen -> Apps & Benachrichtigungen -> Standard-Apps -> Autofill-App angegeben.

Autofill-App in Android O. Credits: Letzter Pass.

Die obige Erläuterung des neuen Autofill-Frameworks ist nur eine kurze Zusammenfassung dessen, was sowohl auf der Seite der anfordernden App als auch auf der Seite des Autofill-Dienstes passiert. Was für Ihr Verständnis hier am wichtigsten ist, sind nicht die genauen Details, wie das automatische Ausfüllen in Android O funktioniert, sondern die Tatsache, dass Passwort-Manager-Apps selbst erkennen nicht mehr, wann eine Ansicht automatisch ausgefüllt werden kann.


Literatur-Empfehlungen: AgileBits zeigt, wie das Autofill Framework von Android O aussehen wird


Autofill vor Android O

Vergleichen Sie das mit der Funktionsweise des automatischen Ausfüllens vor Android O. Bevor Passwort-Manager über eine offizielle Methode verfügten, um zu erkennen, wann eine Ansicht automatisch ausgefüllt werden konnte Die Anwendung musste einen Barrierefreiheitsdienst implementieren, um die aktuelle Ansicht zu scannen und automatisch ausfüllbare Elemente zu finden Felder.

Die Nutzung eines Barrierefreiheitsdienstes kann jedoch zu erheblichen Verzögerungen führen unter bestimmten Bedingungen. Die mit dem Barrierefreiheitsdienst Ihres typischen Passwort-Managers verbundene Verzögerung ist jedoch so offensichtlich, dass dies bei beliebten Diensten wie LastPass sogar der Fall ist Support-Seiten über das Problem informiert. Auf diesen Support-Seiten erfahren Sie in der Regel, dass Ihre einzige Möglichkeit zur Bewältigung übermäßiger Verzögerungen besteht, die durch sie verursacht werden Der Barrierefreiheitsdienst besteht darin, entweder den Barrierefreiheitsdienst zu deaktivieren oder zur Verwendung einer eigenen benutzerdefinierten Eingabe zu wechseln Methode. In jedem Fall verlieren Sie jegliche Möglichkeit zum automatischen Ausfüllen.

Aber warum genau scheint der Barrierefreiheitsdienst von LastPass oder der Barrierefreiheitsdienst eines anderen Passwort-Managers so viel Verzögerung zu verursachen? Der Grund dafür liegt darin, dass diese Passwort-Manager die Barrierefreiheitsdienste nutzen müssen, um Eingabefelder zu erkennen. Ein Barrierefreiheitsdienst Attribute sind in einer definiert XML-Ressourcendatei innerhalb der APK, sodass wir sehen können, wie der Dienst funktioniert, indem wir die APK-Datei dekompilieren.

Unten ist die Ressourcendatei aus der Dekompilierung der LastPass-APK:


"@string/accessibility_service_description"
android: accessibilityEventTypes="typeViewFocused|typeWindowContentChanged"
android: accessibilityFeedbackType="feedbackGeneric"
android: notificationTimeout="200"
android: accessibilityFlags="flagReportViewIds"
android: canRetrieveWindowContent="true"
android: canRequestEnhancedWebAccessibility="true"
xmlns: andro />

Daraus können wir die folgenden Informationen gewinnen: Der Accessibility Service von LastPass fordert zwei Ereignistypen zur Überwachung an – TYPE_VIEW_FOCUSED und TYPE_WINDOW_CONTENT_CHANGED. Dies geschieht, weil es wissen muss, wann sich der Inhalt einer App/Webseite ändert oder in den Fokus rückt, und dann den aktuellen Fensterinhalt abruft, um nach Passworteingabefeldern zu suchen. Da der Dienst dies jedoch ständig bei zwei extrem häufig ausgelösten Barrierefreiheitsereignissen durchführt, kommt es zu Verzögerungen. Für eine ausführlichere Diskussion darüber, wie Barrierefreiheitsdienste Verzögerungen verursachen können, verweise ich auf meinen vorherigen Artikel zu diesem Thema.


Literatur-Empfehlungen: „Funktioniert wie beabsichtigt“ – Eine Untersuchung der Barrierefreiheitsverzögerung von Android


Android O schlägt zwei Fliegen mit einer Klappe

Vor Android O konnten Entwickler von Passwort-Managern nicht viel tun, um diese Verzögerung abzumildern. Das liegt daran, dass Passwort-Manager keine Möglichkeit hatten, zu erkennen, wann ein automatisch ausfüllbares Eingabefeld auf dem Bildschirm angezeigt wurde, ohne einen Eingabehilfedienst zu aktivieren, der dies ständig überwacht. Aber dank des neuen Autofill-Frameworks in Android O können diese Passwort-Manager jetzt ihre Barrierefreiheitsdienste einstellen. Stattdessen fordern die Apps, die selbst eine Dateneingabe benötigen, das Autofill-Framework auf, den Autofill-Dienst aufzurufen, der dann die Daten sendet. Dank dieses neuen Frameworks wird die Passworteingabe für Benutzer nicht nur viel einfacher, da sie nicht mehr auf ein Passwort angewiesen sind zusätzliche Eingabemethode, aber die Verzögerung, die mit der Aktivierung der Barrierefreiheitsdienste von Passwort-Managern verbunden ist, wird ein Problem sein Vergangenheit.

Ich weiß, dass diese Tatsache für einige von Ihnen vielleicht nicht bahnbrechend ist, aber ich dachte, dass es sich vielleicht gelohnt hätte, dieses Thema neu zu entfachen, da die Diskussion rund um den Accessibility Service so stumm war. Nur ein paar Denkanstöße für dieses Wochenende!


Was halten Sie vom neuen Autofill Framework von Android O? Lass es uns unten in den Kommentaren wissen!