Google grozi, da bo odstranil aplikacije s storitvami za ljudi s posebnimi potrebami iz Trgovine Play

Google pošilja e-poštna sporočila, v katerih opozarja razvijalce, naj ne uporabljajo storitev dostopnosti zunaj predvidene uporabe, sicer bodo njihove aplikacije odstranjene iz Trgovine Play.

Nadgradnja: LastPass je pravkar odzval na to novico in navaja, da ne bo "takojšnjega vpliva" na njihove aplikacije za Android. Ali to pomeni, da bodo druge aplikacije prizanesljive ali ne, bomo še videli.

Nekatere najbolj inovativne aplikacije v Trgovini Play temeljijo na uporabi API-jev na načine, ki jih Google nikoli ni nameraval. Obstajajo aplikacije, ki lahko preslikajo vaše tipke za glasnost za preskakovanje glasbenih skladb, snemanje in predvajanje vnosov na dotik na spletnih strani ali iger in nudijo celo alternativne navigacijske tipke, tako da lahko uporabljate celotno napravo zaslon. Vsi ti primeri, ki sem jih pravkar omenil, se opirajo na Androidove API-je za dostopnost. Ampak to lahko kmalu spremeniti, saj ekipa trgovine Google Play razvijalcem pošilja e-poštna sporočila, v katerih jim sporoča, da lahko ne izvajajo več storitev dostopnosti, razen če upoštevajo Googlove smernice.


Kaj je storitev dostopnosti?

Da bi razumeli, zakaj je to pomembno, moramo najprej pojasniti, kaj je dostopnost v povezavi z Androidom. Na splošno se dostopnost nanaša na to, da je aplikacija za Android bolj dostopna uporabnikom z določenimi invalidnostmi, kot so slabovidni. Čeprav je v interesu vsakega razvijalca, da svoje aplikacije naredi bolj dostopne uporabnikom s posebnimi potrebami, obstajajo poseben razred aplikacij, ki so zasnovane za izboljšanje uporabnosti vseh aplikacij za Android za uporabnike invalidnosti. Te se imenujejo storitve dostopnosti.

Storitev dostopnosti, običajno imenovana a11y, je aplikacija, ki ji lahko sistem posreduje določene informacije, odvisno od dogodkov storitev Accessibility se registrira za poslušanje. Aplikacija, ki želi implementirati storitev dostopnosti, mora dodati android.permission.BIND_ACCESSIBILITY_SERVICE dovoljenje za datoteko AndroidManifest, tako da se lahko samo sistem poveže s storitvijo aplikacije.

Na primer, če je storitev dostopnosti ustvarjena za poslušanje TYPE_VIEW_CLICKED dogodkov, potem bo ta storitev od sistema prejela informacije o vseh gumbih, ki bi jih lahko uporabnik pritisnil. Storitev dostopnosti se lahko tudi odzove na določene poteze in ključne dogodke ter jih uporabi, preden jih prejmejo druge aplikacije. Končno lahko storitev dostopnosti vnese tudi določene ključne dogodke, kot so gumb za nazaj, razdeljeni zaslon ali nedavne aplikacije.

Tako so lahko storitve dostopnosti izjemno močan in uporaben. Več najbolj priljubljenih, inovativnih aplikacij v trgovini Google Play se pri opravljanju svojih nalog zanaša na a11y. Tukaj je le nekaj primerov, ki sem jih prišel na pamet:

  • Samodejni vnos - prestrezite dogodke KeyEvents in izvajajte kretnje s pritiskom/potegom
  • Gumb Mapper - prestreči ključne dogodke in jih preslikati v druge ključne dogodke
  • Ozeleni - aplikacije samodejno preklopijo v stanje mirovanja tako, da jih prisilno zaprejo, preden se zaslon izklopi
  • Vnos + - zaznavanje, ko je aplikacija za tipkovnico odprta, da prikaže plavajoči akcijski gumb
  • LastPass - skeniranje strani za vnose uporabniškega imena/gesla (potrebno pred Android Oreo)
  • Hitro preklopite - pošlji KeyEvent za gumb za nazaj
  • Tasker - zaznajte, kdaj so aplikacije odprte, da lahko izvedete katero koli uporabniško določeno dejanje
  • Vrsta Stroj - posnemite ves vnos besedila, tako da ne boste nikoli izgubili nobenega vnosa besedila

Nobena od teh aplikacij ne uporablja a11y na način, kot je Google nameraval, to je pomoč uporabnikom s posebnimi potrebami. Stavim, da velika večina aplikacij, ki izvajajo storitev dostopnosti, to počne za funkcije zunaj Googlove pristojnosti. Toda to je lepota Androida in API-jev, kot je Accessibility – Google običajno ne omejuje razvijalcev, kaj lahko in česa ne. Zdi se, da se ta ohlapni pristop z uporabo storitev dostopnosti spreminja, kot je Google Play Ekipa trgovine razvijalcem pošilja e-poštna sporočila, v katerih jih opozarja na prihajajoče spremembe njihove politike glede a11y.


Kaj točno počne Google?

Podjetje obvešča razvijalce, da če njihova aplikacija uporablja storitev dostopnosti iz kakršnega koli razloga, razen za pomoč uporabnikom s posebnimi potrebami, morajo odstraniti uporabo tega dovoljenja v 30 dneh ali pa bo njihova aplikacija odstranjena iz Trgovine Play. Neupoštevanje te zahteve lahko povzroči kršitev razvijalčevega računa Play Store, kar lahko sčasoma vodi do ukinitve računa.

Za nekaj aplikacij, ki uporabljajo a11y za pomoč uporabnikom s posebnimi potrebami, Google navaja, da ti razvijalci morajo preprosto dodati vidno, uporabniku usmerjeno razkritje razloga, zakaj njihova aplikacija potrebuje dovoljenje. Vendar, kot sem že omenil, se storitve dostopnosti veliko pogosteje uporabljajo v aplikacijah, ki bi na koncu kršile ta novi pravilnik.

Celotno e-poštno sporočilo je bilo poslano razvijalcem

Pozdravljeni razvijalci na ****,

Pišemo vam, ker vaša aplikacija, ****, z imenom paketa **** zahteva "android.permission. BIND_ACCESSIBILITY_SERVICE.' Aplikacije, ki zahtevajo storitve za ljudi s posebnimi potrebami, se smejo uporabljati samo za pomoč uporabnikom s posebnimi potrebami pri uporabi naprav in aplikacij Android. Vaša aplikacija mora biti v skladu z našimi Dovoljenja politiko in zahteve po vidnem razkritju našega Uporabniški podatki politika.

Potrebno je ukrepanje: Če tega še ne počnete, morate uporabnikom razložiti, kako vaša aplikacija uporablja »android.permission. BIND_ACCESSIBILITY_SERVICE' za pomoč uporabnikom s posebnimi potrebami pri uporabi naprav in aplikacij Android. Aplikacije, ki v 30 dneh ne bodo izpolnile te zahteve, bodo morda odstranjene iz Googla Play. Lahko pa tudi odstranite vse zahteve za storitve dostopnosti v svoji aplikaciji. Izberete lahko tudi preklic objave aplikacije.

Če morate spremeniti svoje aplikacije, sledite tem korakom:

  • Preberite Dovoljenja in Uporabniški podatki pravilnike za več podrobnosti in poskrbite, da bo vaša aplikacija skladna z vsemi pravilniki, navedenimi v Pravilniki programa za razvijalce.
  • Če v svoji aplikaciji ne potrebujete dovoljenja BIND_ACCESSIBILITY_SERVICE ali se dovoljenje uporablja za kaj drugega kot za pomoč uporabnikom s posebnimi potrebami pri uporabi naprav in aplikacij Android:
    1. Odstranite zahtevo za to dovoljenje iz manifesta aplikacije.
    2. Prijavite se v konzolo Play Console in naložite spremenjeni APK, skladen s pravilniki.
  • Če pa potrebujete dovoljenje BIND_ACCESSIBILITY_SERVICE v svoji aplikaciji, da uporabnikom s posebnimi potrebami pomagate uporabljati naprave in aplikacije Android:
    1. V opis objave aplikacije v trgovini vključite naslednji delček: »Ta aplikacija uporablja storitve dostopnosti«.
    2. Preden uporabnika prosite, naj omogoči to dovoljenje v vaši aplikaciji, na vidnem mestu razkrijte to uporabo. Vaše razkritje mora izpolnjevati vsako od naslednjih zahtev:
      • Razkritje mora biti posredovano prek android: povzetek in android: opis elementov razreda AccessibilityServiceInfo
      • Razkritje mora opisati funkcionalnost, ki jo dovoljenje za storitev dostopnosti omogoča za vašo aplikacijo. Vsako funkcijo, uporabljeno z zahtevo storitve dostopnosti, je treba navesti v vašem razkritju z utemeljitvijo.

Lahko pa se odločite tudi za preklic objave aplikacije.

Vse kršitve se spremljajo. Resne ali ponavljajoče se kršitve kakršne koli narave bodo povzročile ukinitev vašega računa razvijalca ter preiskavo in morebitno ukinitev povezanih računov Google.

Če ste pregledali pravilnik in menite, da smo se morda zmotili, se obrnite na našo skupina za podporo politiki. Eden od mojih sodelavcev se vam bo javil v 2 delovnih dneh.

S spoštovanjem,

Skupina za pregled Google Play

Preberi več


Zakaj Google odstranjuje storitve dostopnosti iz Trgovine Play?

Medtem ko je uporaba storitev dostopnosti znano, da povzroča kar nekaj zamude, je pravi razlog, zakaj je Google začel zatirati te aplikacije, verjetno povezan z naraščajočo problematiko izkoriščanja, ki izkorišča a11y. Čeprav aplikacije, ki sem jih omenil zgoraj, uporabljajo a11y za koristne namene, jih zlonamerni razvijalci zlahka izkoristijo za zlobne namene. Na primer storitev dostopnosti se lahko uporablja za izvajanje keyloggerja, napada z izsiljevalsko programsko opremo ali izkoriščanja lažnega predstavljanja.

Googlova prizadevanja za zaščito uporabnikov pred zlonamernimi storitvami dostopnosti so se večinoma vrtela okoli razkritja. Trenutno omogočanje storitve dostopnosti, ki se registrira za določene dogodke, kot je npr TYPE_VIEW_TEXT_CHANGED se prikaže pogovorno okno z opozorilom, da lahko aplikacija ukrade vaša gesla. Morda mislite, da bi takšno sporočilo učinkovito preprečilo uporabnikom, da bi neodgovorno podeljevali aplikacije. Vendar pa je bilo veliko dokumentiranih primerov aplikacij, ki so uporabnike pretentale, da bi odobrile a11y. Nekateri napadi gredo še dlje, kot npr Izkoriščanje plašča in bodala in Toast Message Overlay napadi ki uporabnika družbeno inženirsko oblikujejo tako, da podelijo a11y, tako da napačno predstavijo, s čim komunicirajo na zaslonu.

Takšni napadi so učinkoviti na veliki večini naprav Android. Google je naredil velike korake pri preprečevanju napadov na prekrivna sporočila ali toast sporočila (kot je razvidno iz AOSP, če iščete a11y), vendar so stvari prišle do točke, ko se je Google odločil, da je bolje, če omejijo uporabo storitev dostopnosti popolnoma. Je smiselno, vendar je res zanič ker bo ta poteza uničila funkcionalnost številnih inovativnih aplikacij.


Kaj lahko storijo razvijalci?

Na žalost tam razvijalci ne morejo narediti veliko kot odgovor na te spremembe. Razvijalci lahko izpolnijo Googlove zahteve tako, da odstranijo svojo storitev dostopnosti ali pa se soočijo z grožnjo, da bo njihova aplikacija odstranjena in njihov račun morda ukinjen. Preprosto dodajanje razkritja, zakaj njihova aplikacija uporablja a11y, bi delovalo le, če bi bila njihova aplikacija legitimno namenjena pomoči uporabnikom s posebnimi potrebami, kar ne opisuje večine aplikacij, ki trenutno uporabljajo a11y.

Preoblikovanje aplikacij tako, da ne bodo več uporabljale storitve dostopnosti, je možno za nekatere, vendar ne za vse aplikacije, ki smo jih omenili. Upravitelji gesel, kot je LastPass, lahko preselite v ogrodje za samodejno izpolnjevanje, vendar le, če uporabnik uporablja Android 8.0 Oreo ali novejši. Če aplikacija uporablja a11y za spremljanje, kdaj so odprte druge aplikacije, je to aplikacijo mogoče namesto tega napisati s storitvijo anketiranja z API-jem UsageStats. Aplikacije, kot je Tasker, lahko preživijo takšno spremembo. Drugi, kot sta Button Mapper in AutoInput, nimajo sreče – brez korena ni dobrega načina za prestrezanje ključnih dogodkov.

Čeprav se zavedamo nevarnosti, da zlonamerni aplikaciji dovolimo dostop do API-jev za dostopnost, je škoda videti, da Google kastrira nekatere res uporabne aplikacije. Upamo, da je pravilnik, ki ga je določil Google, spremenjen, ali pa preprosto trdijo, da so ga napačno razlagali. Trenutno je besedilo v e-poštnem sporočilu precej jasno – upoštevajte naše smernice ali zapustite Trgovino Play. To je mračen opomnik, da ima Google vso moč glede tega, katere aplikacije spadajo v Trgovino Play, in da vam lahko kadar koli potegne preprogo izpod rok.


Posodobitev 1: zmedena dokumentacija za razvijalce

Googlovi dokumenti za razvijalce za izgradnja storitve dostopnosti se zdi, da so v nasprotju s tem novim fokusom skupine Google Play Store. Stran ima v času tega pisanja naslednje besedilo:

Storitev dostopnosti je aplikacija, ki nudi izboljšave uporabniškega vmesnika za pomoč uporabnikom s posebnimi potrebami ali tistim, ki morda začasno ne morejo v celoti komunicirati z napravo. Na primer, uporabniki, ki vozijo, skrbijo za majhnega otroka ali se udeležijo zelo glasne zabave, morda potrebujejo dodatne ali alternativne povratne informacije vmesnika.

Poleg tega, če primerjate besedilo na strani z arhivirana verzija strani od julija, boste ugotovili, da opomba o izgradnji storitev dostopnosti samo za pomoč uporabnikom s posebnimi potrebami ne obstaja.

Hvala João Dias, ker se je obrnil s temi informacijami.