Google minaccia di rimuovere app con servizi di accessibilità dal Play Store

Google sta inviando email che avvisano gli sviluppatori di non utilizzare i servizi di accessibilità al di fuori dell'uso previsto, altrimenti le loro app verranno rimosse dal Play Store.

Aggiornamento: LastPass ha appena ha risposto a questa notizia e afferma che non ci sarà "nessun impatto immediato" per le loro app Android. Resta da vedere se ciò significhi o meno che ad altre applicazioni verrà concessa la clemenza.

Alcune delle applicazioni più innovative sul Play Store si basano sull'utilizzo delle API in modi che Google non aveva mai previsto. Esistono app che possono rimappare i tasti del volume per saltare brani musicali, registrare e riprodurre input touch pagine Web o giochi e persino fornire tasti di navigazione alternativi in ​​modo da poter utilizzare l'intero dispositivo schermo. Tutti questi esempi che ho appena citato si basano sulle API di accessibilità di Android. Ma ciò potrebbe presto cambiamento, poiché il team di Google Play Store sta inviando email agli sviluppatori dicendo loro che possono farlo

non implementano più i servizi di accessibilità a meno che non seguano le linee guida di Google.


Cos'è un servizio di accessibilità?

Per capire perché questo sia significativo, dobbiamo prima spiegare cos'è l'accessibilità in relazione ad Android. In generale, l'accessibilità si riferisce al rendere un'app Android più accessibile agli utenti con determinate disabilità, come quelli con problemi di vista. Sebbene sia nell'interesse di ogni sviluppatore rendere le proprie app più accessibili agli utenti con disabilità, esistono una classe speciale di applicazioni progettate per migliorare l'usabilità di tutte le app Android per gli utenti con disabilità. Questi sono chiamati servizi di accessibilità.

Un servizio di accessibilità, comunemente indicato come a11y, è un'app a cui il sistema può fornire determinate informazioni a seconda di cosa eventi il servizio di accessibilità si registra per l'ascolto. Un'app che desidera implementare un servizio di accessibilità deve aggiungere il file android.permission.BIND_ACCESSIBILITY_SERVICE autorizzazione al file AndroidManifest in modo che solo il sistema possa associarsi al servizio dell'app.

Ad esempio, se un servizio di accessibilità è creato per essere in ascolto TYPE_VIEW_CLICKED eventi, quel servizio riceverà informazioni dal sistema su eventuali pulsanti che l'utente potrebbe premere. Un servizio di accessibilità può anche reagire e utilizzare determinati gesti e KeyEvent prima che altre app li ricevano. Infine, un servizio di accessibilità può anche inserire determinati KeyEvent come il pulsante Indietro, schermo diviso o app recenti.

Pertanto, i servizi di accessibilità possono esserlo estremamente potente e utile. Molte delle applicazioni più popolari e innovative sul Google Play Store si affidano a a11y per svolgere le proprie funzioni. Ecco solo alcuni dei pochi esempi che mi sono venuti in mente:

  • Ingresso automatico - intercettare KeyEvents ed eseguire gesti di tocco/scorrimento
  • Mappatore di pulsanti - intercettare KeyEvents e rimapparli su altri KeyEvents
  • Greenify - Iberna automaticamente le app forzandone la chiusura prima che lo schermo si spenga
  • Immettendo+ - rileva quando l'app della tastiera è aperta per mostrare il pulsante di azione mobile
  • LastPass - scansiona le pagine per inserire nome utente/password (necessario prima di Android Oreo)
  • Cambia rapidamente - invia KeyEvent per il pulsante Indietro
  • Tasker - rileva quando le app sono aperte in modo da poter eseguire qualsiasi azione definita dall'utente
  • Tipo Macchina - registra tutto l'input di testo in modo da non perdere mai alcuna voce di testo

Nessuna di queste applicazioni viene utilizzata nel modo previsto da Google, ovvero aiutare gli utenti con disabilità. Scommetto che la stragrande maggioranza delle applicazioni che implementano un servizio di accessibilità lo fanno per funzioni esterne alla competenza di Google. Ma è proprio questo il bello di Android e delle API come Accessibilità: Google di solito non pone limiti a ciò che gli sviluppatori possono e non possono fare. Questo approccio permissivo con l'uso dei servizi di accessibilità sembra tuttavia cambiare con l'avvento di Google Play Il team del negozio ha inviato e-mail agli sviluppatori avvertendoli delle imminenti modifiche alla loro politica in merito a11a.


Cosa sta facendo esattamente Google?

L'azienda informa gli sviluppatori che se la loro applicazione utilizza un servizio di accessibilità per qualsiasi motivo diverso dall'assistere gli utenti con disabilità, allora devono rimuovere l'uso di questa autorizzazione entro 30 giorni altrimenti la loro applicazione verrà rimossa dal Play Store. Il mancato rispetto di questo requisito può comportare un'infrazione contro l'account Play Store di uno sviluppatore, che può eventualmente portare alla chiusura dell'account.

Per le poche app che utilizzano a11y per aiutare gli utenti con disabilità, Google afferma che questi sviluppatori devono semplicemente aggiungere un'informativa ben visibile rivolta all'utente del motivo per cui la loro app ha bisogno di questo autorizzazione. Tuttavia, come ho detto prima, i servizi di accessibilità vengono utilizzati molto più spesso in app che finirebbero per violare questa nuova politica.

E-mail completa inviata agli sviluppatori

Ciao sviluppatori a ****,

Ti stiamo contattando perché la tua app, ****, con il nome del pacchetto **** richiede il "android.permission. BIND_ACCESSIBILITY_SERVICE.' Le app che richiedono servizi di accessibilità devono essere utilizzate solo per aiutare gli utenti con disabilità a utilizzare dispositivi e app Android. La tua app deve essere conforme alla nostra Autorizzazioni politica e i requisiti di divulgazione prominente del nostro Dati utente politica.

Azione richiesta: se non lo fai già, devi spiegare agli utenti come la tua app utilizza il "android.permission. BIND_ACCESSIBILITY_SERVICE' per aiutare gli utenti con disabilità a utilizzare i dispositivi e le app Android. Le app che non soddisfano questo requisito entro 30 giorni potrebbero essere rimosse da Google Play. In alternativa, puoi rimuovere eventuali richieste di servizi di accessibilità all'interno della tua app. Puoi anche scegliere di annullare la pubblicazione della tua app.

Se devi apportare modifiche alle tue app, segui questi passaggi:

  • Leggi il Autorizzazioni E Dati utente policy per maggiori dettagli e assicurati che la tua app sia conforme a tutte le policy elencate nel file Politiche del programma per sviluppatori.
  • Se non hai bisogno dell'autorizzazione BIND_ACCESSIBILITY_SERVICE nella tua app o l'autorizzazione viene utilizzata per scopi diversi dall'aiutare gli utenti con disabilità a utilizzare dispositivi e app Android:
    1. Rimuovi la tua richiesta per questa autorizzazione dal manifest della tua app.
    2. Accedi alla tua Play Console e carica l'APK modificato e conforme alle norme.
  • Oppure, se hai bisogno dell'autorizzazione BIND_ACCESSIBILITY_SERVICE nella tua app per aiutare gli utenti con disabilità a utilizzare dispositivi e app Android:
    1. Includi il seguente snippet nella descrizione della scheda dello Store della tua app: "Questa app utilizza i servizi di accessibilità".
    2. Fornisci un'informativa ben visibile all'utente di questo utilizzo prima di chiedere all'utente di abilitare questa autorizzazione all'interno della tua app. La tua divulgazione deve soddisfare ciascuno dei seguenti requisiti:
      • La comunicazione deve essere fornita tramite il Android: riepilogo E androide: descrizione elementi della classe AccessibilityServiceInfo
      • La divulgazione deve descrivere la funzionalità abilitata dall'autorizzazione del servizio di accessibilità per la tua app. Ogni funzionalità utilizzata con la richiesta del Servizio di Accessibilità deve essere dichiarata nella propria informativa con motivazione.

In alternativa, puoi scegliere di annullare la pubblicazione dell'app.

Tutte le violazioni vengono tracciate. Violazioni gravi o ripetute di qualsiasi natura comporteranno la chiusura del tuo account sviluppatore, nonché indagini e possibile chiusura dei relativi Account Google.

Se hai letto la politica e ritieni che potremmo aver commesso un errore, contatta il nostro gruppo di supporto politico. Uno dei miei colleghi ti risponderà entro 2 giorni lavorativi.

Saluti,

Il team di revisione di Google Play

Per saperne di più


Perché Google rimuove i servizi di accessibilità dal Play Store?

Mentre l'uso dei servizi di accessibilità sono noto per causare un bel po' di ritardo, il vero motivo per cui Google sta iniziando a reprimere queste app è probabilmente legato al crescente problema degli exploit che sfruttano l'a11y. Sebbene le app che ho citato sopra utilizzino a11y per scopi benefici, possono essere facilmente sfruttate da sviluppatori dannosi per scopi nefasti. Ad esempio, un servizio di accessibilità può essere utilizzato per implementare un keylogger, un attacco ransomware o un exploit di phishing.

Gli sforzi di Google nel proteggere gli utenti da servizi di accessibilità dannosi si sono concentrati principalmente sulla divulgazione. Attualmente, abilitando un servizio di accessibilità che si registra per determinati eventi come TYPE_VIEW_TEXT_CHANGED verrà visualizzata una finestra di dialogo di avviso che indica che l'app potrebbe rubare le tue password. Potresti pensare che un messaggio del genere sarebbe efficace nell'impedire agli utenti di concedere in modo irresponsabile le app a11y. Tuttavia, ci sono stati molti casi documentati di app che hanno ingannato gli utenti inducendoli a concedere l'11 anno. Alcuni attacchi vanno addirittura oltre, come il Sfruttamento di Cloak e Dagger E Attacchi di sovrapposizione di messaggi toast che ingegnerizzano socialmente l'utente inducendolo a concedere a11y travisando ciò con cui sta interagendo sullo schermo.

Attacchi come questi sono efficaci sulla stragrande maggioranza dei dispositivi Android. Google ha fatto passi da gigante nel prevenire attacchi di messaggi overlay o toast (come si può vedere in AOSP se si cerca a11y), ma le cose sono arrivate al punto in cui Google ha deciso che sarebbe meglio limitare l'uso dei servizi di accessibilità interamente. Ha senso, ma è così fa davvero schifo perché questa mossa ucciderà la funzionalità di molte app innovative.


Cosa possono fare gli sviluppatori?

Sfortunatamente, lì non è molto che gli sviluppatori possano fare in risposta a questi cambiamenti. Gli sviluppatori possono soddisfare le richieste di Google rimuovendo il loro servizio di accessibilità o affrontare la minaccia che la loro app venga rimossa e il loro account eventualmente chiuso. Aggiungere semplicemente un'informativa sul motivo per cui la loro app utilizza a11y funzionerebbe solo se la loro app fosse legittimamente finalizzata ad assistere gli utenti con disabilità, il che non descrive la maggior parte delle app che attualmente utilizzano a11y.

Il refactoring delle app per non utilizzare più un servizio di accessibilità è possibile per alcune, ma non tutte, le app che abbiamo menzionato. I gestori di password come LastPass possono eseguire la migrazione al framework di compilazione automatica, ma solo se l'utente utilizza Android 8.0 Oreo e versioni successive. Se un'app usa a11y per monitorare quando altre app sono aperte, l'app può invece essere scritta con un servizio di polling utilizzando l'API UsageStats. App come Tasker possono sopravvivere a un simile cambiamento. Altri come Button Mapper e AutoInput sono sfortunati: senza root non esiste un buon modo per intercettare KeyEvents.

Sebbene riconosciamo il pericolo nel consentire a un'app dannosa di accedere alle API di accessibilità, è un peccato vedere alcune app davvero utili essere castrate da Google. Ci auguriamo che la politica delineata da Google venga invertita, altrimenti sostengono semplicemente che è stata interpretata male. Allo stato attuale, il testo dell'e-mail è abbastanza chiaro: rispetta le nostre linee guida o esci dal Play Store. È un triste promemoria del fatto che Google ha tutto il potere di quali app appartengono al Play Store e possono toglierti il ​​tappeto da sotto i piedi in qualsiasi momento.


Aggiornamento 1: documentazione confusa per gli sviluppatori

Documenti per sviluppatori di Google per realizzazione di un servizio di accessibilità sembrano contraddire questa nuova attenzione da parte del team di Google Play Store. Al momento in cui scriviamo la pagina presenta il seguente testo:

Un servizio di accessibilità è un'applicazione che fornisce miglioramenti all'interfaccia utente per assistere gli utenti con disabilità o che potrebbero temporaneamente non essere in grado di interagire completamente con un dispositivo. Ad esempio, gli utenti che guidano, si prendono cura di un bambino o partecipano a una festa molto rumorosa potrebbero aver bisogno di feedback aggiuntivi o alternativi sull'interfaccia.

Inoltre, se confronti il ​​testo della pagina con an versione archiviata della pagina da luglio, scoprirai che la nota sulla creazione di servizi di accessibilità solo per assistere gli utenti con disabilità non esiste.

Grazie João Dias per averci contattato con queste informazioni.