Google amenință să elimine aplicațiile cu servicii de accesibilitate din Magazinul Play

click fraud protection

Google trimite e-mailuri prin care îi avertizează dezvoltatorii să nu folosească serviciile de accesibilitate în afara utilizării prevăzute, sau aplicațiile lor vor fi eliminate din Magazinul Play.

Actualizați: LastPass tocmai are răspunse la această știre și afirmă că nu va exista „niciun impact imediat” pentru aplicațiile lor Android. Rămâne de văzut dacă acest lucru înseamnă sau nu că altor aplicații vor primi clemență.

Unele dintre cele mai inovatoare aplicații din Magazinul Play se bazează pe utilizarea API-urilor în moduri pe care Google nu le-a propus niciodată. Există aplicații care vă pot remapa tastele de volum pentru a sări peste melodii, pentru a înregistra și a reda intrările tactile pagini web sau jocuri și chiar oferiți taste de navigare alternative, astfel încât să puteți utiliza întregul dispozitiv ecran. Toate aceste exemple pe care tocmai le-am menționat se bazează pe API-urile de accesibilitate Android. Dar asta poate în curând schimbare, deoarece echipa Magazinului Google Play trimite e-mailuri dezvoltatorilor prin care le spune că pot

nu mai implementează Serviciile de accesibilitate decât dacă urmează regulile Google.


Ce este un serviciu de accesibilitate?

Pentru a înțelege de ce acest lucru este semnificativ, mai întâi trebuie să explicăm ce este accesibilitatea în raport cu Android. În general, accesibilitatea se referă la a face o aplicație Android mai accesibilă pentru utilizatorii cu anumite dizabilități, cum ar fi cei cu deficiențe de vedere. Deși este în interesul fiecărui dezvoltator să își facă aplicațiile mai accesibile pentru utilizatorii cu dizabilități, există o clasă specială de aplicații care sunt concepute pentru a îmbunătăți gradul de utilizare a tuturor aplicațiilor Android pentru utilizatorii cu dizabilități. Acestea se numesc Servicii de accesibilitate.

Un serviciu de accesibilitate, denumit în mod obișnuit a11y, este o aplicație la care sistemul poate furniza anumite informații, în funcție de ce evenimente Serviciul de accesibilitate se înregistrează pentru a asculta. O aplicație care dorește să implementeze un serviciu de accesibilitate trebuie să adauge android.permission.BIND_ACCESSIBILITY_SERVICE permisiunea la fișierul AndroidManifest, astfel încât numai sistemul să se poată lega de serviciul aplicației.

De exemplu, dacă un serviciu de accesibilitate este creat pentru a asculta TYPE_VIEW_CLICKED evenimente, atunci acel serviciu va primi informații de la sistem despre orice butoane pe care utilizatorul le-ar putea apăsa. Un serviciu de accesibilitate poate reacționa și consuma anumite gesturi și evenimente cheie înainte ca alte aplicații să le primească. În cele din urmă, un serviciu de accesibilitate poate injecta și anumite evenimente cheie, cum ar fi butonul din spate, ecran divizat sau aplicații recente.

Astfel, Serviciile de Accesibilitate pot fi extrem de puternic și util. Câteva dintre cele mai populare și inovatoare aplicații de pe Google Play Store se bazează pe a11y pentru a-și îndeplini sarcinile. Iată doar câteva dintre puținele exemple pe care le-am venit din capul meu:

  • Intrare automată - interceptați KeyEvents și efectuați gesturi de atingere/glisare
  • Buton Mapper - interceptați KeyEvents și remapați-le la alte KeyEvents
  • Greenify - hibernați automat aplicațiile prin închiderea forțată a acestora înainte ca ecranul să se închidă
  • Introducerea+ - detectează când aplicația de tastatură este deschisă pentru a afișa butonul de acțiune plutitor
  • LastPass - scanați paginile pentru nume de utilizator/parolă (necesar înainte de Android Oreo)
  • Comutați rapid - trimite KeyEvent pentru butonul înapoi
  • Tasker - detectează când aplicațiile sunt deschise, astfel încât să poți efectua orice acțiune definită de utilizator
  • Tip Mașină - înregistrați tot textul introdus, astfel încât să nu pierdeți niciodată nicio intrare de text

Niciuna dintre aceste aplicații nu utilizează a11y în modul în care a intenționat Google, care este de a ajuta utilizatorii cu dizabilități. Aș paria că marea majoritate a aplicațiilor care implementează un serviciu de accesibilitate fac acest lucru pentru funcții care nu țin de competența Google. Dar aceasta este frumusețea Androidului și a API-urilor precum Accesibilitatea — de obicei, Google nu limitează ceea ce dezvoltatorii pot și nu pot face. Această abordare laxă cu utilizarea Serviciilor de accesibilitate pare să se schimbe, totuși, odată cu Google Play Echipa magazinului a trimis e-mailuri dezvoltatorilor care îi avertizează cu privire la modificările viitoare ale politicii lor cu privire la a11y.


Ce face Google mai exact?

Compania informează dezvoltatorii că, dacă aplicația lor utilizează un serviciu de accesibilitate din orice alt motiv decât asistența utilizatorilor cu dizabilități, atunci aceștia trebuie să elimine utilizarea acestei permisiuni în termen de 30 de zile, altfel aplicația lor va fi eliminată din Magazinul Play. Nerespectarea acestei cerințe poate duce la o infracțiune împotriva contului Magazinului Play al unui dezvoltator, care poate duce în cele din urmă la închiderea contului.

Pentru puținele aplicații care folosesc a11y pentru a ajuta utilizatorii cu dizabilități, Google afirmă că acești dezvoltatori trebuie să adauge pur și simplu o dezvăluire proeminentă, orientată spre utilizator, a motivului pentru care aplicația lor are nevoie de permisiune. Cu toate acestea, așa cum am menționat anterior, serviciile de accesibilitate sunt utilizate mult mai des în aplicațiile care ar ajunge să încalce această nouă politică.

E-mail complet trimis dezvoltatorilor

Bună, dezvoltatori la ****,

Vă contactăm deoarece aplicația dvs., ****, cu numele pachetului **** solicită „android.permisiune. BIND_ACCESSIBILITY_SERVICE.' Aplicațiile care solicită servicii de accesibilitate ar trebui folosite numai pentru a ajuta utilizatorii cu dizabilități să utilizeze dispozitive și aplicații Android. Aplicația dvs. trebuie să respecte cerințele noastre Permisiuni politica și cerințele de divulgare proeminentă ale noastre Datele utilizatorului politică.

Actiune ceruta: Dacă nu faceți deja acest lucru, trebuie să explicați utilizatorilor cum folosește aplicația dvs. „android.permisiune. BIND_ACCESSIBILITY_SERVICEpentru a ajuta utilizatorii cu dizabilități să folosească dispozitive și aplicații Android. Aplicațiile care nu îndeplinesc această cerință în termen de 30 de zile pot fi eliminate de pe Google Play. Ca alternativă, puteți elimina orice solicitare de servicii de accesibilitate din aplicația dvs. De asemenea, puteți alege să anulați publicarea aplicației.

Dacă trebuie să faceți modificări în aplicațiile dvs., urmați acești pași:

  • Citiți prin Permisiuni și Datele utilizatorului politici pentru mai multe detalii și asigurați-vă că aplicația dvs. respectă toate politicile enumerate în Politicile programului pentru dezvoltatori.
  • Dacă nu aveți nevoie de permisiunea BIND_ACCESSIBILITY_SERVICE în aplicația dvs. sau dacă permisiunea este utilizată pentru altceva decât pentru a ajuta utilizatorii cu dizabilități să utilizeze dispozitive și aplicații Android:
    1. Eliminați solicitarea dvs. pentru această permisiune din manifestul aplicației dvs.
    2. Conectați-vă la Play Console și încărcați APK-ul dvs. modificat, care respectă politica.
  • Sau, dacă aveți nevoie de permisiunea BIND_ACCESSIBILITY_SERVICE în aplicația dvs. pentru a ajuta utilizatorii cu dizabilități să utilizeze dispozitive și aplicații Android:
    1. Includeți următorul fragment în descrierea înregistrării în magazin a aplicației dvs.: „Această aplicație folosește servicii de accesibilitate”.
    2. Furnizați o dezvăluire vizibilă a acestei utilizări înainte de a cere utilizatorului să activeze această permisiune în aplicația dvs. Dezvăluirea dvs. trebuie să îndeplinească fiecare dintre următoarele cerințe:
      • Dezvăluirea trebuie furnizată prin intermediul Android: rezumat și Android: descriere elemente ale clasei AccessibilityServiceInfo
      • Dezvăluirea trebuie să descrie funcționalitatea pe care permisiunea Serviciului de accesibilitate o activează pentru aplicația dvs. Fiecare caracteristică utilizată cu solicitarea Serviciului de accesibilitate trebuie să fie declarată în dezvăluirea dumneavoastră cu justificare.

Alternativ, puteți alege să anulați publicarea aplicației.

Toate încălcările sunt urmărite. Încălcările grave sau repetate de orice natură vor duce la desființarea contului dvs. de dezvoltator și la investigarea și posibila desființare a conturilor Google aferente.

Dacă ați examinat politica și credeți că este posibil să fi greșit, vă rugăm să ne contactați echipa de sprijin pentru politici. Unul dintre colegii mei vă va contacta în termen de 2 zile lucrătoare.

Salutari,

Echipa de examinare Google Play

citeşte mai mult


De ce Google elimină serviciile de accesibilitate din Magazinul Play?

În timp ce utilizarea Serviciilor de accesibilitate sunt se știe că provoacă destul de mult întârziere, adevăratul motiv pentru care Google începe să reprime aceste aplicații este probabil legat de problema tot mai mare a exploit-urilor care profită de a11y. Deși aplicațiile pe care le-am menționat mai sus folosesc a11y în scopuri benefice, ele pot fi exploatate cu ușurință de dezvoltatorii rău intenționați în scopuri nefaste. De exemplu, un serviciu de accesibilitate poate fi folosit pentru a implementa un keylogger, un atac ransomware sau un exploit de phishing.

Eforturile Google de a proteja utilizatorii de Serviciile de accesibilitate rău intenționate s-au învârtit în principal în jurul dezvăluirii. În prezent, se activează un serviciu de accesibilitate care se înregistrează pentru anumite evenimente, cum ar fi TYPE_VIEW_TEXT_CHANGED va avea ca rezultat un dialog de avertizare că aplicația vă poate fura parolele. S-ar putea să credeți că un astfel de mesaj ar fi eficient pentru a împiedica utilizatorii să acorde iresponsabil aplicații la 11 ani. Cu toate acestea, au existat o mulțime de cazuri documentate de aplicații care au păcălit utilizatorii să acorde a11y. Unele atacuri merg chiar mai departe, cum ar fi Cloak and Dagger exploatează și Atacurile Toast Message Overlay care determină social utilizatorul să acorde o a11y prin denaturarea cu ce interacționează pe ecran.

Astfel de atacuri sunt eficiente pe marea majoritate a dispozitivelor Android. Google a făcut progrese majore în prevenirea atacurilor de mesaje prin suprapunere sau toast (după cum se poate vedea în AOSP dacă căutați a11y), dar lucrurile au ajuns la punctul în care Google a decis că ar fi mai bine să restricționeze utilizarea Serviciilor de accesibilitate în întregime. Are sens, dar asta chiar nasol deoarece această mișcare va distruge funcționalitatea multor aplicații inovatoare.


Ce pot face dezvoltatorii?

Din păcate, acolo nu este mare lucru pe care dezvoltatorii pot face ca răspuns la aceste schimbări. Dezvoltatorii pot fie să se conformeze cerințelor Google prin eliminarea Serviciului lor de accesibilitate, fie să se confrunte cu amenințarea ca aplicația lor să fie eliminată și ca contul lor să fie eventual desființat. Pur și simplu adăugarea unei dezvăluiri despre motivul pentru care aplicația lor folosește a11y ar funcționa numai dacă aplicația lor ar fi vizat în mod legitim să ajute utilizatorii cu dizabilități, ceea ce nu descrie majoritatea aplicațiilor care folosesc în prezent a11y.

Refactorizarea aplicațiilor pentru a nu mai folosi un serviciu de accesibilitate este posibilă pentru unele dintre aplicațiile pe care le-am menționat, dar nu pentru toate. Managerii de parole precum LastPass pot migrați la Cadrul de completare automată, dar numai dacă utilizatorul rulează Android 8.0 Oreo și versiuni ulterioare. Dacă o aplicație folosește a11y pentru a monitoriza când sunt deschise alte aplicații, acea aplicație poate fi scrisă cu un serviciu de sondare folosind API-ul UsageStats. Aplicații precum Tasker pot supraviețui unei astfel de schimbări. Alții, precum Button Mapper și AutoInput, nu au noroc - fără root, nu există o modalitate bună de a intercepta KeyEvents.

Deși recunoaștem pericolul în a permite accesul unei aplicații rău intenționate la API-urile de accesibilitate, este păcat să vedem că unele aplicații cu adevărat utile sunt neutralizate de Google. Sperăm că politica stabilită de Google este inversată sau pur și simplu susțin că a fost interpretată greșit. Așa cum stau lucrurile, formularea din e-mail este destul de clară – respectați regulile noastre sau părăsiți Magazinul Play. Este un memento sumbru că Google are toată puterea aplicațiilor care aparțin Magazinului Play și pot scoate covorul de sub tine în orice moment.


Actualizarea 1: Documentația pentru dezvoltatori confuză

Documentele pentru dezvoltatori Google pentru construirea unui serviciu de accesibilitate par să contrazică această nouă focalizare a echipei Magazinului Google Play. Pagina are următoarea formulare la momentul scrierii acestui articol:

Un serviciu de accesibilitate este o aplicație care oferă îmbunătățiri ale interfeței cu utilizatorul pentru a ajuta utilizatorii cu dizabilități sau care pot fi temporar în imposibilitatea de a interacționa complet cu un dispozitiv. De exemplu, utilizatorii care conduc, au grijă de un copil mic sau participă la o petrecere foarte tare ar putea avea nevoie de feedback suplimentar sau alternativ de interfață.

În plus, dacă comparați textul de pe pagină cu un versiunea arhivată a paginii din iulie, veți descoperi că nota despre crearea Serviciilor de accesibilitate numai pentru a ajuta utilizatorii cu dizabilități nu există.

Mulțumesc João Dias pentru că ne-ai contactat cu aceste informații.