Google sa vyhráža odstránením aplikácií so službami dostupnosti z Obchodu Play

Spoločnosť Google posiela e-maily s varovaním vývojárov, aby nepoužívali Služby dostupnosti mimo zamýšľaného použitia, inak budú ich aplikácie odstránené z Obchodu Play.

Aktualizovať: LastPass má práve odpovedal na túto správu a uvádza, že ich aplikácie pre Android nebudú mať „žiadny okamžitý vplyv“. Či to znamená, že ďalšie žiadosti budú zhovievavejšie, sa uvidí.

Niektoré z najinovatívnejších aplikácií v Obchode Play sú postavené na používaní rozhraní API spôsobmi, ktoré spoločnosť Google nikdy nezamýšľala. Existujú aplikácie, ktoré dokážu premapovať vaše tlačidlá hlasitosti, aby ste mohli preskakovať hudobné skladby, nahrávať a prehrávať dotykové vstupy webové stránky alebo hry a dokonca poskytujú alternatívne navigačné klávesy, aby ste mohli používať celé zariadenie obrazovke. Všetky tieto príklady, ktoré som práve spomenul, sa spoliehajú na rozhrania API dostupnosti systému Android. Ale to môže byť čoskoro zmeniť, pretože tím Obchodu Google Play posiela vývojárom e-maily, v ktorých im hovorí, že môžu

už nebudú implementovať služby dostupnosti, pokiaľ nebudú dodržiavať pokyny spoločnosti Google.


Čo je to služba dostupnosti?

Aby sme pochopili, prečo je to dôležité, musíme najprv vysvetliť, čo je dostupnosť vo vzťahu k Androidu. Dostupnosť vo všeobecnosti znamená, že aplikácia pre Android bude prístupnejšia pre používateľov s určitým postihnutím, ako sú napríklad ľudia so zrakovým postihnutím. Hoci je v najlepšom záujme každého vývojára, aby boli jeho aplikácie prístupnejšie pre používateľov so zdravotným postihnutím, existujú špeciálna trieda aplikácií, ktoré sú navrhnuté tak, aby zlepšili použiteľnosť všetkých aplikácií pre Android pre používateľov s postihnutí. Tieto sa nazývajú služby dostupnosti.

Služba dostupnosti, bežne označovaná ako a11y, je aplikácia, do ktorej môže systém poskytovať určité informácie v závislosti od toho, čo diania služba dostupnosti sa zaregistruje na počúvanie. Aplikácia, ktorá chce implementovať službu dostupnosti, musí pridať android.permission.BIND_ACCESSIBILITY_SERVICE povolenie k súboru AndroidManifest, aby sa k službe aplikácie mohol pripojiť iba systém.

Napríklad, ak je služba dostupnosti vytvorená na počúvanie TYPE_VIEW_CLICKED udalosti, potom táto služba dostane zo systému informácie o všetkých tlačidlách, ktoré používateľ môže stlačiť. Služba dostupnosti môže tiež reagovať na určité gestá a kľúčové udalosti a využívať ich predtým, ako ich prijmú iné aplikácie. Nakoniec, služba dostupnosti môže tiež vložiť určité kľúčové udalosti, ako napríklad tlačidlo Späť, rozdelená obrazovka alebo tlačidlo nedávnych aplikácií.

Služby dostupnosti teda môžu byť mimoriadne výkonný a užitočný. Niektoré z najpopulárnejších a najinovatívnejších aplikácií v obchode Google Play sa pri plnení svojich povinností spoliehajú na a11y. Tu sú niektoré z mála príkladov, ktoré som si z hlavy vymyslel:

  • AutoInput - zachytiť KeyEvents a vykonávať gestá ťuknutia / potiahnutia
  • Mapovač tlačidiel - zachytiť KeyEvents a premapovať ich na iné KeyEvents
  • Greenify - automaticky hibernovať aplikácie vynúteným zatvorením pred vypnutím obrazovky
  • Zadávanie + - zistiť, kedy je otvorená aplikácia klávesnice, aby sa zobrazilo plávajúce tlačidlo akcie
  • LastPass - skenovanie stránok na zadanie používateľského mena/hesla (potrebné pred Android Oreo)
  • Rýchlo prepnite - odoslať KeyEvent pre tlačidlo späť
  • Tasker - zistiť, kedy sú aplikácie otvorené, aby ste mohli vykonať akúkoľvek akciu definovanú používateľom
  • Typ Stroj - Zaznamenajte všetok textový vstup, takže nikdy nestratíte žiadny text

Žiadna z týchto aplikácií nepoužíva a11y tak, ako to Google zamýšľal, teda pomáhať používateľom so zdravotným postihnutím. Stavil by som sa, že prevažná väčšina aplikácií, ktoré implementujú Službu prístupnosti, tak robí pre funkcie mimo pôsobnosti spoločnosti Google. Ale to je krása Androidu a rozhraní API, ako je dostupnosť – Google zvyčajne neobmedzuje, čo vývojári môžu a nemôžu robiť. Zdá sa však, že tento laxný prístup k používaniu služieb dostupnosti sa mení, pretože Google Play Tím obchodu posiela vývojárom e-maily s upozornením na nadchádzajúce zmeny v ich pravidlách a11r.


Čo presne robí Google?

Spoločnosť informuje vývojárov, že ak ich aplikácia používa službu dostupnosti z akéhokoľvek iného dôvodu, než je pomoc používateľom so zdravotným postihnutím, potom musia do 30 dní odstrániť používanie tohto povolenia, inak bude ich aplikácia odstránená z Obchodu Play. Nedodržanie tejto požiadavky môže mať za následok porušenie účtu vývojára v Obchode Play, čo môže prípadne viesť k zrušeniu účtu.

Pre niekoľko aplikácií, ktoré používajú a11y na pomoc používateľom so zdravotným postihnutím, Google uvádza, že títo vývojári je potrebné jednoducho pridať nápadné, pre používateľa viditeľné sprístupnenie dôvodu, prečo ich aplikácia potrebuje povolenie. Ako som však už spomenul, Služby dostupnosti sa používajú oveľa častejšie v aplikáciách, ktoré by nakoniec porušili túto novú politiku.

Úplný e-mail bol odoslaný vývojárom

Ahoj vývojári v ****,

Kontaktujeme vás, pretože vaša aplikácia **** s názvom balíka **** vyžaduje „android.povolenie. BIND_ACCESSIBILITY_SERVICE.' Aplikácie vyžadujúce služby dostupnosti by sa mali používať iba na pomoc používateľom so zdravotným postihnutím pri používaní zariadení a aplikácií so systémom Android. Vaša aplikácia musí byť v súlade s našimi Povolenia a našich požiadaviek na zreteľné zverejnenie Použivateľské dáta politika.

Vyžaduje sa akcia: Ak tak ešte nerobíte, musíte používateľom vysvetliť, ako vaša aplikácia používa „android.povolenie. BIND_ACCESSIBILITY_SERVICE“, aby sme pomohli používateľom so zdravotným postihnutím používať zariadenia a aplikácie so systémom Android. Aplikácie, ktoré túto požiadavku nesplnia do 30 dní, môžu byť zo služby Google Play odstránené. Prípadne môžete odstrániť všetky žiadosti o služby dostupnosti v rámci vašej aplikácie. Môžete sa tiež rozhodnúť zrušiť zverejnenie aplikácie.

Ak potrebujete vykonať zmeny vo svojich aplikáciách, postupujte podľa týchto krokov:

  • Prečítajte si cez Povolenia a Použivateľské dáta pravidlá, kde nájdete ďalšie podrobnosti, a uistite sa, že vaša aplikácia je v súlade so všetkými pravidlami uvedenými v Programové pravidlá pre vývojárov.
  • Ak vo svojej aplikácii nepotrebujete povolenie BIND_ACCESSIBILITY_SERVICE alebo sa toto povolenie používa na niečo iné ako na pomoc používateľom s postihnutím používať zariadenia a aplikácie Android:
    1. Odstráňte svoju žiadosť o toto povolenie z manifestu vašej aplikácie.
    2. Prihláste sa do služby Play Console a nahrajte svoj upravený súbor APK, ktorý je v súlade s pravidlami.
  • Alebo ak potrebujete vo svojej aplikácii povolenie BIND_ACCESSIBILITY_SERVICE, aby ste pomohli používateľom so zdravotným postihnutím používať zariadenia a aplikácie Android:
    1. Do popisu záznamu aplikácie v obchode zahrňte nasledujúci úryvok: „Táto aplikácia používa služby dostupnosti.“
    2. Pred požiadaním používateľa, aby toto povolenie povolil vo vašej aplikácii, poskytnite zreteľné informácie o tomto použití používateľom. Vaše zverejnenie musí spĺňať každú z nasledujúcich požiadaviek:
      • Zverejnenie musí byť poskytnuté prostredníctvom android: zhrnutie a android: popis prvky triedy AccessibilityServiceInfo
      • Sprístupnenie musí popisovať funkcie, ktoré povolenie služby dostupnosti umožňuje pre vašu aplikáciu. Každá funkcia použitá so žiadosťou o službu dostupnosti musí byť uvedená vo vašom zverejnení s odôvodnením.

Prípadne môžete zrušiť zverejnenie aplikácie.

Všetky porušenia sú sledované. Závažné alebo opakované porušenia akéhokoľvek charakteru budú mať za následok zrušenie vášho účtu vývojára a prešetrenie a možné zrušenie súvisiacich účtov Google.

Ak ste si prečítali pravidlá a máte pocit, že sme sa mohli mýliť, kontaktujte nás tím podpory politiky. Jeden z mojich kolegov sa vám ozve do 2 pracovných dní.

S pozdravom,

tím kontroly služby Google Play

čítaj viac


Prečo spoločnosť Google odstraňuje Služby dostupnosti z Obchodu Play?

Zatiaľ čo používanie služieb dostupnosti je je známe, že spôsobuje značné oneskorenie, skutočný dôvod, prečo Google začína zasahovať proti týmto aplikáciám, pravdepodobne súvisí s rastúcim problémom exploitov, ktoré využívajú a11y. Hoci aplikácie, ktoré som spomenul vyššie, používajú a11y na prospešné účely, môžu ich ľahko zneužiť zlomyseľní vývojári na nekalé účely. Napríklad služba dostupnosti možno použiť na implementáciu keyloggeru, ransomvérového útoku alebo zneužitia phishingu.

Úsilie spoločnosti Google pri ochrane používateľov pred škodlivými službami dostupnosti sa väčšinou točí okolo zverejnenia. V súčasnosti je povolená služba dostupnosti, ktorá registruje určité udalosti, ako napr TYPE_VIEW_TEXT_CHANGED výsledkom bude dialógové okno s upozornením, že aplikácia môže ukradnúť vaše heslá. Mohli by ste si myslieť, že takáto správa by mohla účinne zabrániť používateľom v nezodpovednom udeľovaní a11y aplikáciám. Existuje však veľa zdokumentovaných prípadov, keď aplikácie oklamali používateľov, aby udelili a11y. Niektoré útoky idú ešte ďalej, ako napr Využitie plášťa a dýky a Toast Message Overlay útoky ktoré sociálnu inštruktáž používateľa na udelenie a11y tým, že nesprávne vysvetlia, s čím na obrazovke komunikujú.

Takéto útoky sú účinné na veľkej väčšine zariadení so systémom Android. Spoločnosť Google urobila veľké pokroky v predchádzaní útokom na prekryvné alebo toastové správy (ako je možné vidieť v AOSP, ak hľadáte a11y), ale veci sa dostali do bodu, keď sa Google rozhodol, že je lepšie obmedziť používanie služieb dostupnosti úplne. Dáva to zmysel, ale áno naozaj naštve pretože tento krok zabije funkčnosť mnohých inovatívnych aplikácií.


Čo môžu robiť vývojári?

Bohužiaľ, tam vývojári toho veľa urobiť nemôžu v reakcii na tieto zmeny. Vývojári môžu buď splniť požiadavky spoločnosti Google odstránením svojej služby dostupnosti, alebo môžu čeliť hrozbe odstránenia ich aplikácie a možného zrušenia ich účtu. Jednoduché pridanie sprístupnenia informácií o tom, prečo ich aplikácia používa a11y, by fungovalo iba vtedy, ak by ich aplikácia bola legitímne zameraná na pomoc používateľom so zdravotným postihnutím, čo nevystihuje väčšinu aplikácií, ktoré v súčasnosti používajú a11y.

Refaktorovanie aplikácií tak, aby už nepoužívali službu dostupnosti, je možné pre niektoré, ale nie všetky aplikácie, ktoré sme spomenuli. Správcovia hesiel ako LastPass môžu migrovať na Autofill Framework, ale iba v prípade, že používateľ používa systém Android 8.0 Oreo a vyšší. Ak aplikácia používa a11y na monitorovanie, kedy sú otvorené iné aplikácie, túto aplikáciu možno namiesto toho napísať pomocou služby hlasovania pomocou rozhrania UsageStats API. Aplikácie ako Tasker môžu takúto zmenu prežiť. Iné ako Button Mapper a AutoInput majú smolu – bez root neexistuje dobrý spôsob, ako zachytiť udalosti KeyEvents.

Aj keď si uvedomujeme nebezpečenstvo pri umožnení prístupu škodlivej aplikácii k rozhraniam Accessibility API, je škoda, že spoločnosť Google kastruje niektoré skutočne užitočné aplikácie. Dúfame, že pravidlá stanovené spoločnosťou Google sú obrátené, alebo jednoducho tvrdia, že boli nesprávne interpretované. V súčasnosti je znenie e-mailu celkom jasné – dodržujte naše pokyny alebo opustite Obchod Play. Je to pochmúrna pripomienka toho, že Google má všetku silu aplikácií, ktoré patria do Obchodu Play, a kedykoľvek môžu spod vás vytiahnuť koberec.


Aktualizácia 1: Mätúca dokumentácia pre vývojárov

Vývojárske dokumenty Google pre budovanie služby dostupnosti Zdá sa, že sú v rozpore s týmto novým zameraním tímu Obchodu Google Play. Stránka má v čase písania tohto článku nasledovné znenie:

Služba dostupnosti je aplikácia, ktorá poskytuje vylepšenia používateľského rozhrania na pomoc používateľom so zdravotným postihnutím, alebo ktorí môžu byť dočasne neschopní plne interagovať so zariadením. Napríklad používatelia, ktorí šoférujú, starajú sa o malé dieťa alebo sa zúčastňujú veľmi hlasnej párty, môžu potrebovať dodatočnú alebo alternatívnu spätnú väzbu rozhrania.

Okrem toho, ak porovnáte znenie na stránke s archivovaná verzia stránky z júla, zistíte, že poznámka o vytváraní Služieb uľahčenia iba na pomoc používateľom so zdravotným postihnutím neexistuje.

Ďakujeme Joãovi Diasovi za to, že ste nás kontaktovali s týmito informáciami.