Google dreigt apps met toegankelijkheidsservices uit de Play Store te verwijderen

Google stuurt e-mails waarin ontwikkelaars worden gewaarschuwd Toegankelijkheidsservices niet te gebruiken buiten het beoogde gebruik, anders worden hun apps uit de Play Store verwijderd.

Update: LastPass heeft zojuist reageerde op dit nieuws en stelt dat er "geen onmiddellijke impact" zal zijn voor hun Android-apps. Of dit betekent dat ook andere aanvragen clementie zullen krijgen, valt nog te bezien.

Enkele van de meest innovatieve applicaties in de Play Store zijn gebaseerd op het gebruik van API's op manieren die Google nooit heeft bedoeld. Er zijn apps die uw volumetoetsen opnieuw kunnen toewijzen om muzieknummers over te slaan en aanraakinvoer op te nemen en af ​​te spelen webpagina's of games, en bieden zelfs alternatieve navigatietoetsen, zodat u het hele apparaat kunt gebruiken scherm. Al deze voorbeelden die ik zojuist heb genoemd, zijn afhankelijk van de toegankelijkheids-API's van Android. Maar dat kan binnenkort veranderen, aangezien het team van de Google Play Store e-mails naar ontwikkelaars stuurt om hen te vertellen dat dit mogelijk is

geen toegankelijkheidsservices meer implementeren, tenzij ze de richtlijnen van Google volgen.


Wat is een toegankelijkheidsservice?

Om te begrijpen waarom dit belangrijk is, moeten we eerst uitleggen wat toegankelijkheid is in relatie tot Android. Over het algemeen verwijst toegankelijkheid naar het toegankelijker maken van een Android-app voor gebruikers met bepaalde handicaps, zoals mensen met een visuele beperking. Hoewel het in het belang van elke ontwikkelaar is om zijn apps toegankelijker te maken voor gebruikers met een beperking, zijn die er wel een speciale klasse applicaties die zijn ontworpen om de bruikbaarheid van alle Android-apps voor gebruikers te verbeteren handicaps. Dit worden toegankelijkheidsdiensten genoemd.

Een toegankelijkheidsservice, gewoonlijk a11y genoemd, is een app waaraan het systeem bepaalde informatie kan doorgeven, afhankelijk van wat evenementen de Toegankelijkheidsdienst registreert om naar te luisteren. Een app die een Toegankelijkheidsdienst wil implementeren, moet de android.permission.BIND_ACCESSIBILITY_SERVICE toestemming voor het AndroidManifest-bestand, zodat alleen het systeem verbinding kan maken met de service van de app.

Als er bijvoorbeeld een toegankelijkheidsservice is gebouwd om naar te luisteren TYPE_VIEW_CLICKED gebeurtenissen, dan ontvangt die dienst informatie van het systeem over eventuele knoppen die de gebruiker kan indrukken. Een toegankelijkheidsservice kan ook reageren op bepaalde gebaren en KeyEvents en deze gebruiken voordat andere apps deze ontvangen. Ten slotte kan een toegankelijkheidsservice ook bepaalde KeyEvents injecteren, zoals de knop Terug, gesplitst scherm of Recente apps.

Toegankelijkheidsdiensten kunnen dat dus zijn extreem krachtig en nuttig. Verschillende van de meest populaire, innovatieve applicaties in de Google Play Store zijn afhankelijk van a11y om hun taken uit te voeren. Hier zijn slechts enkele van de weinige voorbeelden die ik uit mijn hoofd bedacht:

  • Automatische invoer - KeyEvents onderscheppen en tik-/veeggebaren uitvoeren
  • Knoptoewijzer - KeyEvents onderscheppen en opnieuw toewijzen aan andere KeyEvents
  • Vergroenen - apps automatisch in de slaapstand zetten door ze geforceerd te sluiten voordat het scherm wordt uitgeschakeld
  • Invoeren+ - detecteren wanneer de toetsenbordapp open is om de zwevende actieknop weer te geven
  • LastPass - pagina's scannen op gebruikersnaam/wachtwoord (noodzakelijk vóór Android Oreo)
  • Snel schakelen - stuur KeyEvent voor de terugknop
  • Tasker - detecteren wanneer apps open zijn, zodat u elke door de gebruiker gedefinieerde actie kunt uitvoeren
  • Typemachine - neem alle tekstinvoer op, zodat u nooit tekstinvoer kwijtraakt

Geen van deze applicaties gebruikt a11y op de manier die Google bedoeld heeft, namelijk om gebruikers met een handicap te helpen. Ik durf te wedden dat de overgrote meerderheid van de applicaties die een toegankelijkheidsservice implementeren dit doen voor functies die buiten het bereik van Google vallen. Maar dat is het mooie van Android en API's als Toegankelijkheid: Google beperkt doorgaans niet wat ontwikkelaars wel en niet kunnen doen. Die lakse aanpak met het gebruik van Toegankelijkheidsdiensten lijkt echter aan het veranderen als Google Play Het Store-team heeft e-mails naar ontwikkelaars gestuurd waarin ze worden gewaarschuwd voor aankomende wijzigingen in hun beleid met betrekking tot a11j.


Wat doet Google precies?

Het bedrijf informeert ontwikkelaars dat als hun applicatie een toegankelijkheidsservice gebruikt om een ​​andere reden dan het assisteren van gebruikers met een beperking, zij moeten het gebruik van deze toestemming binnen 30 dagen intrekken, anders wordt hun applicatie uit de Play Store verwijderd. Het niet naleven van deze vereiste kan resulteren in een overtreding tegen het Play Store-account van een ontwikkelaar uiteindelijk leiden tot beëindiging van het account.

Voor de weinige apps die wel gebruik maken van a11y om gebruikers met een beperking te helpen, stelt Google dat deze ontwikkelaars hoeven eenvoudigweg een prominente, op de gebruiker gerichte openbaarmaking toe te voegen van de reden waarom hun app de app nodig heeft toestemming. Zoals ik echter al eerder zei, worden toegankelijkheidsservices veel vaker gebruikt in apps die uiteindelijk dit nieuwe beleid zouden schenden.

Volledige e-mail verzonden naar ontwikkelaars

Hallo ontwikkelaars bij ****,

We nemen contact met u op omdat uw app, ****, met pakketnaam **** de 'android.toestemming. BIND_ACCESSIBILITY_SERVICE.' Apps die om toegankelijkheidsdiensten vragen, mogen alleen worden gebruikt om gebruikers met een handicap te helpen Android-apparaten en -apps te gebruiken. Uw app moet voldoen aan onze Rechten beleid en de Prominent Disclosure-vereisten van onze Gebruikersgegevens beleid.

Actie vereist: als u dit nog niet doet, moet u gebruikers uitleggen hoe uw app de 'android.toestemming. BIND_ACCESSIBILITY_SERVICE' om gebruikers met een handicap te helpen Android-apparaten en -apps te gebruiken. Apps die niet binnen 30 dagen aan deze vereiste voldoen, kunnen van Google Play worden verwijderd. Als alternatief kunt u verzoeken voor toegankelijkheidsservices binnen uw app verwijderen. U kunt er ook voor kiezen om de publicatie van uw app ongedaan te maken.

Als u wijzigingen in uw apps moet aanbrengen, volgt u deze stappen:

  • Lees door de Rechten En Gebruikersgegevens beleid voor meer informatie en zorg ervoor dat uw app voldoet aan alle beleidsregels die worden vermeld in de Programmabeleid voor ontwikkelaars.
  • Als u de machtiging BIND_ACCESSIBILITY_SERVICE niet nodig heeft in uw app of als de machtiging wordt gebruikt voor iets anders dan het helpen van gebruikers met een beperking bij het gebruik van Android-apparaten en -apps:
    1. Verwijder uw verzoek om deze toestemming uit het manifest van uw app.
    2. Meld u aan bij uw Play Console en upload uw aangepaste, beleidsconforme APK.
  • Of als u de machtiging BIND_ACCESSIBILITY_SERVICE in uw app nodig heeft om gebruikers met een beperking te helpen Android-apparaten en -apps te gebruiken:
    1. Neem het volgende fragment op in de beschrijving van de winkelvermelding van uw app: 'Deze app maakt gebruik van toegankelijkheidsservices.'
    2. Zorg voor een prominente, op de gebruiker gerichte openbaarmaking van dit gebruik voordat u de gebruiker vraagt ​​deze toestemming in uw app in te schakelen. Uw openbaarmaking moet aan elk van de volgende vereisten voldoen:
      • Openbaarmaking dient te geschieden via de Android: samenvatting En Android: beschrijving elementen van de klasse AccessibilityServiceInfo
      • Openbaarmaking moet de functionaliteit beschrijven die de machtiging Toegankelijkheidsservice voor uw app mogelijk maakt. Elke functie die bij het verzoek om een ​​toegankelijkheidsservice wordt gebruikt, moet met motivering in uw openbaarmaking worden vermeld.

U kunt er ook voor kiezen om de publicatie van de app ongedaan te maken.

Alle overtredingen worden bijgehouden. Ernstige of herhaalde schendingen van welke aard dan ook zullen resulteren in de beëindiging van uw ontwikkelaarsaccount en onderzoek en mogelijke beëindiging van gerelateerde Google-accounts.

Als u het beleid heeft gelezen en denkt dat we mogelijk een fout hebben gemaakt, neem dan contact op met ons beleidsondersteuningsteam. Eén van mijn collega's neemt binnen 2 werkdagen contact met u op.

Groeten,

Het Google Play-beoordelingsteam

Lees verder


Waarom verwijdert Google Toegankelijkheidsservices uit de Play Store?

Terwijl het gebruik van Toegankelijkheidsdiensten dat wel is waarvan bekend is dat het nogal wat vertraging veroorzaakt, heeft de echte reden waarom Google hardhandig begint te optreden tegen deze apps waarschijnlijk te maken met het groeiende probleem van exploits die misbruik maken van a11y. Hoewel de apps die ik hierboven heb genoemd, vaak voor nuttige doeleinden worden gebruikt, kunnen ze gemakkelijk door kwaadwillende ontwikkelaars worden uitgebuit voor snode doeleinden. Bijvoorbeeld een toegankelijkheidsservice kan worden gebruikt om een ​​keylogger, ransomware-aanval of phishing-exploit te implementeren.

De inspanningen van Google om gebruikers te beschermen tegen kwaadwillende toegankelijkheidsservices hebben vooral betrekking op openbaarmaking. Momenteel wordt een toegankelijkheidsservice ingeschakeld die zich registreert voor bepaalde evenementen, zoals TYPE_VIEW_TEXT_CHANGED zal resulteren in een waarschuwingsvenster dat de app uw wachtwoorden kan stelen. Je zou kunnen denken dat een dergelijk bericht effectief zou zijn om te voorkomen dat gebruikers op onverantwoorde wijze apps toestaan. Er zijn echter genoeg gedocumenteerde gevallen waarin apps gebruikers hebben misleid om a11y toe te staan. Sommige aanvallen gaan zelfs nog verder, zoals de Cloak en Dagger-exploit En Toast Message Overlay-aanvallen die de gebruiker sociaal manipuleren om hulp te verlenen door een verkeerde voorstelling te geven van waar hij op het scherm mee communiceert.

Dergelijke aanvallen zijn effectief op de overgrote meerderheid van Android-apparaten. Google heeft grote vooruitgang geboekt bij het voorkomen van overlay- of toast-berichtaanvallen (zoals je kunt zien in AOSP als je zoekt naar a11y), maar de zaken zijn zover gekomen dat Google heeft besloten dat het beter is het gebruik van toegankelijkheidsservices te beperken geheel. Het is logisch, maar het is echt stom omdat deze stap de functionaliteit van veel innovatieve apps zal vernietigen.


Wat kunnen ontwikkelaars doen?

Helaas, daar is niet veel dat ontwikkelaars kunnen doen als reactie op deze veranderingen. Ontwikkelaars kunnen aan de eisen van Google voldoen door hun toegankelijkheidsservice te verwijderen, anders lopen ze het risico dat hun app wordt verwijderd en hun account mogelijk wordt beëindigd. Het simpelweg toevoegen van een toelichting waarom hun app a11y gebruikt, zou alleen werken als hun app legitiem bedoeld was om gebruikers met een handicap te helpen, wat niet de meeste apps beschrijft die momenteel a11y gebruiken.

Het herstructureren van apps om niet langer een toegankelijkheidsservice te gebruiken is mogelijk voor sommige, maar niet alle, apps die we hebben genoemd. Wachtwoordmanagers zoals LastPass kunnen dat wel migreren naar het Autofill Framework, maar alleen als de gebruiker Android 8.0 Oreo en hoger gebruikt. Als een app a11y gebruikt om te controleren wanneer andere apps open zijn, kan die app in plaats daarvan worden geschreven met een pollingservice die gebruikmaakt van de UsageStats API. Apps als Tasker kunnen zo’n verandering overleven. Anderen, zoals Button Mapper en AutoInput, hebben pech: zonder root is er geen goede manier om KeyEvents te onderscheppen.

Hoewel we het gevaar onderkennen dat een kwaadwillende app toegang krijgt tot de Accessibility API's, is het jammer om te zien dat enkele echt nuttige apps door Google worden gecastreerd. We hopen dat het beleid dat Google heeft opgesteld wordt teruggedraaid, anders beweren ze eenvoudigweg dat het verkeerd is geïnterpreteerd. Zoals het er nu uitziet, is de bewoording in de e-mail vrij duidelijk: volg onze richtlijnen of verlaat de Play Store. Het is een grimmige herinnering dat Google alle macht heeft over welke apps in de Play Store thuishoren, en dat ze op elk moment het tapijt onder je vandaan kunnen trekken.


Update 1: Verwarrende ontwikkelaarsdocumentatie

De ontwikkelaarsdocumenten van Google voor het bouwen van een toegankelijkheidsdienst lijken deze nieuwe focus van het Google Play Store-team tegen te spreken. Op het moment dat dit artikel wordt geschreven, heeft de pagina de volgende tekst:

Een toegankelijkheidsservice is een applicatie die verbeteringen in de gebruikersinterface biedt om gebruikers met een beperking te helpen, of die tijdelijk niet in staat zijn om volledig met een apparaat te communiceren. Gebruikers die bijvoorbeeld autorijden, voor een jong kind zorgen of een heel luid feest bijwonen, hebben mogelijk aanvullende of alternatieve interfacefeedback nodig.

Bovendien, als je de tekst op de pagina vergelijkt met een gearchiveerde versie van de pagina uit juli, zult u merken dat de opmerking over het bouwen van toegankelijkheidsservices alleen om gebruikers met een handicap te helpen, niet bestaat.

Bedankt João Dias voor het doorgeven van deze informatie.