Google šalje e-poruke s upozorenjima programerima da ne koriste usluge pristupačnosti izvan predviđene upotrebe ili će njihove aplikacije biti uklonjene iz Trgovine Play.
Ažuriraj: LastPass je upravo odgovorio na ovu vijest i navodi da neće biti "trenutačnog utjecaja" na njihove Android aplikacije. Hoće li to značiti da će druge prijave biti popustljive, ostaje za vidjeti.
Neke od najinovativnijih aplikacija u Trgovini Play izgrađene su na korištenju API-ja na načine koje Google nije namjeravao. Postoje aplikacije koje mogu promijeniti tipke za glasnoću za preskakanje glazbenih zapisa, snimanje i reprodukciju dodirnih unosa na web stranice ili igre, pa čak i pružaju alternativne navigacijske tipke kako biste mogli koristiti cijeli uređaj zaslon. Svi ovi primjeri koje sam upravo spomenuo oslanjaju se na API-je pristupačnosti Androida. Ali to bi moglo uskoro promijeniti, budući da tim Google Play Storea šalje e-poruke programerima govoreći im da mogu više ne implementiraju usluge pristupačnosti osim ako slijede Googleove smjernice.
Što je usluga pristupačnosti?
Da bismo razumjeli zašto je to značajno, prvo moramo objasniti što je pristupačnost u odnosu na Android. Općenito, pristupačnost se odnosi na to da Android aplikaciju učinite pristupačnijom korisnicima s određenim invaliditetom, poput onih s oštećenjem vida. Iako je u interesu svakog programera da svoje aplikacije učini pristupačnijim korisnicima s invaliditetom, postoje posebna klasa aplikacija koje su dizajnirane za poboljšanje upotrebljivosti svih Android aplikacija za korisnike s invaliditetima. One se nazivaju uslugama pristupačnosti.
Usluga pristupačnosti, koja se obično naziva a11y, je aplikacija kojoj sustav može dati određene informacije ovisno o tome što događanja usluga pristupačnosti registrira se za slušanje. Aplikacija koja želi implementirati uslugu pristupačnosti mora dodati android.permission.BIND_ACCESSIBILITY_SERVICE
dopuštenje za datoteku AndroidManifest tako da se samo sustav može povezati s uslugom aplikacije.
Na primjer, ako je usluga pristupačnosti stvorena za slušanje TYPE_VIEW_CLICKED
događaja, ta će usluga od sustava primati informacije o svim gumbima koje bi korisnik mogao pritisnuti. Usluga pristupačnosti također može reagirati i iskoristiti određene geste i KeyEvents prije nego što ih druge aplikacije prime. Naposljetku, usluga pristupačnosti također može ubaciti određene ključne događaje kao što su gumb za povratak, podijeljeni zaslon ili nedavne aplikacije.
Stoga, usluge pristupačnosti mogu biti izuzetno moćan i koristan. Nekoliko najpopularnijih, inovativnih aplikacija u Trgovini Google Play oslanjaju se na sve u obavljanju svojih dužnosti. Ovo su samo neki od nekoliko primjera koji su mi pali napamet:
- AutoInput - presretanje ključnih događaja i izvođenje gesta dodira/prijela prstom
- Maper gumba - presresti ključne događaje i preslikati ih na druge ključne događaje
- Pozeleni - automatski hibernira aplikacije prisilnim zatvaranjem prije nego što se zaslon isključi
- Unos+ - otkriti kada je aplikacija tipkovnice otvorena za prikaz plutajućeg akcijskog gumba
- LastPass - skenirajte stranice za unose korisničkog imena/lozinke (potrebno prije Android Oreo)
- Brzo prebacivanje - poslati KeyEvent za gumb za povratak
- Tasker - otkrijte kada su aplikacije otvorene kako biste mogli izvršiti bilo koju radnju koju definira korisnik
- Vrsta Stroj - snimite sav unos teksta tako da nikada nećete izgubiti nijedan unos teksta
Nijedna od ovih aplikacija ne koristi a11y na način na koji je Google namjeravao, a to je da pomogne korisnicima s invaliditetom. Kladio bih se da velika većina aplikacija koje implementiraju uslugu pristupačnosti to čine za funkcije izvan Googleovog djelokruga. Ali to je ljepota Androida i API-ja kao što je Accessibility—Google obično ne ograničava što programeri mogu, a što ne mogu raditi. Međutim, čini se da se taj opušteni pristup s korištenjem usluga pristupačnosti mijenja, kao i Google Play Tim trgovine šalje e-poruke razvojnim programerima upozoravajući ih na nadolazeće promjene u njihovoj politici u vezi s a11y.
Što Google točno radi?
Tvrtka obavještava programere da ako njihova aplikacija koristi uslugu pristupačnosti iz bilo kojeg razloga osim pomoći korisnicima s invaliditetom, tada moraju ukloniti korištenje ove dozvole u roku od 30 dana ili će njihova aplikacija biti uklonjena iz Trgovine Play. Nepoštivanje ovog zahtjeva može rezultirati kršenjem računa razvojnog programera Play Store, što može na kraju dovesti do ukidanja računa.
Za nekoliko aplikacija koje koriste a11y za pomoć korisnicima s invaliditetom, Google navodi da ti programeri moraju jednostavno dodati istaknuto, korisniku okrenuto otkrivanje razloga zašto njihova aplikacija treba dopuštenje. Međutim, kao što sam već spomenuo, usluge pristupačnosti koriste se mnogo češće u aplikacijama koje bi na kraju prekršile ovu novu politiku.
Cijela e-poruka poslana programerima
Pozdrav programerima na ****,
Kontaktiramo vas jer vaša aplikacija, ****, s nazivom paketa **** zahtijeva 'android.dopuštenje. BIND_ACCESSIBILITY_SERVICE.' Aplikacije koje zahtijevaju usluge pristupačnosti trebale bi se koristiti samo za pomoć korisnicima s invaliditetom u korištenju Android uređaja i aplikacija. Vaša aplikacija mora biti u skladu s našim Dozvole politiku i zahtjeve za istaknuto otkrivanje podataka Korisnički podaci politika.
Potrebna akcija: Ako to već ne radite, morate objasniti korisnicima kako vaša aplikacija koristi 'android.dopuštenje. BIND_ACCESSIBILITY_SERVICE' kako bi pomogli korisnicima s invaliditetom da koriste Android uređaje i aplikacije. Aplikacije koje ne ispune ovaj zahtjev u roku od 30 dana mogu biti uklonjene s Google Playa. Alternativno, možete ukloniti sve zahtjeve za uslugama pristupačnosti unutar svoje aplikacije. Također možete poništiti objavu svoje aplikacije.
Ako trebate promijeniti svoje aplikacije, slijedite ove korake:
- Pročitajte Dozvole i Korisnički podaci pravila za više pojedinosti i provjerite je li vaša aplikacija u skladu sa svim pravilima navedenim u Programska pravila za razvojne programere.
- Ako ne trebate dozvolu BIND_ACCESSIBILITY_SERVICE u svojoj aplikaciji ili se dozvola koristi za nešto drugo osim za pomoć korisnicima s invaliditetom u korištenju Android uređaja i aplikacija:
- Uklonite svoj zahtjev za ovo dopuštenje iz manifesta svoje aplikacije.
- Prijavite se na svoju Play konzolu i prenesite svoj modificirani APK usklađen s pravilima.
- Ili, ako vam je potrebna dozvola BIND_ACCESSIBILITY_SERVICE u vašoj aplikaciji kako biste pomogli korisnicima s invaliditetom da koriste Android uređaje i aplikacije:
- Uključite sljedeći isječak u opis unosa svoje aplikacije u trgovini: "Ova aplikacija koristi usluge pristupačnosti."
- Omogućite uočljivo otkrivanje ove upotrebe prije nego što od korisnika zatražite da omogući ovo dopuštenje u vašoj aplikaciji. Vaše otkrivanje mora ispunjavati svaki od sljedećih zahtjeva:
- Objava se mora dostaviti putem android: sažetak i android: opis elementi klase AccessibilityServiceInfo
- Otkrivanje mora opisati funkcionalnost koju dopuštenje usluge pristupačnosti omogućuje za vašu aplikaciju. Svaka značajka koja se koristi uz zahtjev za uslugu pristupačnosti mora biti navedena u vašoj objavi s obrazloženjem.
Alternativno, možete poništiti objavu aplikacije.
Svi prekršaji se prate. Ozbiljna ili opetovana kršenja bilo koje prirode rezultirat će ukidanjem vašeg računa razvojnog programera te istragom i mogućim ukidanjem povezanih Google računa.
Ako ste pregledali pravila i smatrate da smo možda pogriješili, obratite se našem tim za podršku politici. Jedan od mojih kolega javit će vam se u roku od 2 radna dana.
Pozdrav,
Google Play tim za pregled
Čitaj više
Zašto Google uklanja usluge pristupačnosti iz Trgovine Play?
Dok su korištenje usluga pristupačnosti poznato da uzrokuje dosta kašnjenja, pravi razlog zašto se Google počeo obračunavati s tim aplikacijama vjerojatno je povezan s rastućim problemom exploita koji iskorištavaju prednosti a11y. Iako aplikacije koje sam gore spomenuo koriste a11y u korisne svrhe, zlonamjerni programeri ih lako mogu iskoristiti u opake svrhe. Na primjer, usluga pristupačnosti može se koristiti za implementaciju keyloggera, ransomware napada ili phishing exploit-a.
Googleovi napori u zaštiti korisnika od zlonamjernih usluga pristupačnosti uglavnom su se vrtjeli oko otkrivanja. Trenutačno se omogućuje usluga pristupačnosti koja se registrira za određene događaje kao što su TYPE_VIEW_TEXT_CHANGED
rezultirat će dijaloškim okvirom upozorenja da aplikacija može ukrasti vaše zaporke. Možda mislite da bi takva poruka bila učinkovita u sprječavanju korisnika da neodgovorno dodjeljuju aplikacije. Međutim, bilo je dosta dokumentiranih slučajeva u kojima su aplikacije prijevarom navele korisnike da daju a11y. Neki napadi idu i dalje, poput Iskorištavanje plašta i bodeža i Toast Message Overlay napadi koji društveno inžinjeriraju korisnika da mu dodijeli nešto lažnim predstavljanjem onoga s čime su u interakciji na zaslonu.
Napadi poput ovih učinkoviti su na velikoj većini Android uređaja. Google je napravio velike korake u sprječavanju napada preklapanjem ili toast porukama (kao što se može vidjeti u AOSP-u ako tražite a11y), ali stvari su došle do točke kada je Google odlučio da je bolje ograničiti korištenje usluga pristupačnosti u cijelosti. Ima smisla, ali je stvarno je sranje jer će ovaj potez uništiti funkcionalnost mnogih inovativnih aplikacija.
Što programeri mogu učiniti?
Nažalost, tamo programeri ne mogu puno učiniti kao odgovor na te promjene. Programeri mogu ispuniti Googleove zahtjeve uklanjanjem svoje usluge pristupačnosti ili se suočiti s prijetnjom uklanjanja njihove aplikacije i mogućeg ukidanja računa. Jednostavno dodavanje objave o tome zašto njihova aplikacija koristi a11y funkcioniralo bi samo ako je njihova aplikacija legitimno usmjerena na pružanje pomoći korisnicima s invaliditetom, što ne opisuje većinu aplikacija koje trenutačno koriste a11y.
Refaktoriranje aplikacija da više ne koriste uslugu pristupačnosti moguće je za neke, ali ne sve aplikacije koje smo spomenuli. Upravljači lozinkama kao što je LastPass mogu migrirati na Autofill Framework, ali samo ako korisnik koristi Android 8.0 Oreo ili noviji. Ako aplikacija koristi a11y za praćenje kada su druge aplikacije otvorene, ta se aplikacija umjesto toga može napisati s uslugom anketiranja pomoću API-ja UsageStats. Aplikacije poput Taskera mogu preživjeti takvu promjenu. Drugi kao što su Button Mapper i AutoInput nemaju sreće—bez roota nema dobrog načina za presretanje ključnih događaja.
Premda prepoznajemo opasnost u dopuštanju pristupa zlonamjernim aplikacijama API-jima za pristupačnost, šteta je vidjeti kako Google kastrira neke stvarno korisne aplikacije. Nadamo se da je politika koju je Google postavio poništena ili jednostavno tvrde da je pogrešno protumačena. Kako sada stoji, formulacija u e-poruci je prilično jasna - pridržavajte se naših smjernica ili napustite Trgovinu Play. To je sumoran podsjetnik da Google ima svu moć odlučivanja o tome koje aplikacije pripadaju Trgovini Play i da vam mogu izvući tepih ispod vas u bilo kojem trenutku.
Ažuriranje 1: zbunjujuća dokumentacija programera
Googleovi razvojni dokumenti za izgradnja usluge pristupačnosti Čini se da su u suprotnosti s ovim novim fokusom tima Trgovine Google Play. Stranica ima sljedeće riječi u vrijeme pisanja ovog teksta:
Usluga pristupačnosti je aplikacija koja pruža poboljšanja korisničkog sučelja za pomoć korisnicima s invaliditetom ili onima koji možda privremeno ne mogu u potpunosti komunicirati s uređajem. Na primjer, korisnici koji voze, brinu o malom djetetu ili posjećuju vrlo glasnu zabavu možda će trebati dodatne ili alternativne povratne informacije o sučelju.
Nadalje, ako usporedite tekst na stranici s arhivirana verzija stranice iz srpnja, vidjet ćete da napomena o izgradnji usluga pristupačnosti samo za pomoć korisnicima s invaliditetom ne postoji.
Hvala João Dias što nam je poslao ovu informaciju.