Google запретит использовать не по назначению функции для инвалидов в Android-приложениях

    Функции для людей с ограниченными возможностями (Accessibility API) исключительно удобны и используются наиболее инновационными приложениями в каталоге Google Play. Например, клавиши громкости на смартфоне можно переназначить на переход к следующему музыкальному треку, запись и воспроизведение нажатий на веб-страницах / в играх или даже для навигации, то есть перелистывания страниц, как в мобильном приложении gReader. Всё это функции для инвалидов, которые находчивые разработчики используют не по назначению. Сейчас компания Google выразила недовольство этим фактом. На сайте XDA Developers сообщают, что из Google Play разработчикам начали приходить предупреждения, что нельзя использовать Accessibility API иначе, чем предусмотрено в документации Google.

    Accessibility API предусматривают работу через специальный сервис в системе Accessibility Service (a11y). Чтобы получить возможность отправлять ему для обработки определённые события, приложение должно добавить в манифест разрешение android.permission.BIND_ACCESSIBILITY_SERVICE. Этот сервис может обрабатывать определённые события в системе (жесты, нажатия клавиш) раньше, чем другие приложения. Кроме того, этот сервис может сам внедрять определённые события KeyEvents, такие как нажатия кнопки «Вернуться назад», кнопки разделения экрана и так далее.

    Из описания функциональности Accessibility Service понятно, что сервис исключительно полезен в разработке интерфейса мобильного приложения. Вот лишь небольшой список приложений, которые используют функциональность для инвалидов в своём интерфейсе:

    • AutoInput
    • Button Mapper
    • Greenify
    • Inputting+
    • LastPass
    • Swiftly Switch
    • Tasker
    • Type Machine

    Например, на скриншоте внизу показано, как приложение LastPass запрашивает разрешение на использование функции для инвалидов, чтобы активировать функцию автозаполнения паролей в других приложениях Android.


    Ни одно из вышеперечисленных приложений не использует службу a11y в соответствии с документацией Google, везде реализованы своеобразные читы. Скорее всего, абсолютное большинство приложений в Google Play, которые используют функции для инвалидов, на самом деле разработаны для вполне себе здоровых людей. До сих пор ни у кого не возникало проблем с этим, потому что Google не накладывала ограничений, как можно использовать API. Сейчас ситуация изменилась.

    В письмах от Google сказано, что разработчики обязаны привести свои программы в соответствие с документацией по Accessibility Service, то есть исключить из приложений любую функциональность, не направленную непосредственную на помощь людям с ограниченными возможностями. Разработчики обязаны сделать это в течение 30 дней, иначе их приложения будут удалены из Play Store. Отказ подчиниться требованию означает также нарушение правил пользования сервисом, что может привести к блокировке аккаунта разработчика.

    В качестве варианта Google рекомендует самостоятельно удалить своё приложение из каталога, чтобы не рисковать блокировкой аккаунта.

    Для тех немногочисленных приложений, которые действительно помогают людям с ограниченными возможностями, рекомендуется добавить ясное объяснение для пользователя, зачем требуется получение разрешения на использование этого сервиса. В описание программы на сайте Google Play следует добавить фразу “This app uses Accessibility services”.

    Ребята с XDA-Developers пытаются предположить, почему Google пошла на такие репрессивные меры. С одной стороны использование Accessibility Service вызывает небольшой лаг в интерфейсе, но вряд ли причина в этом. Скорее всего, Google беспокоится, что этот системный сервис начнут массово использовать вредоносные программы. Из его функциональности понятно, что он отлично подходит для скрытой записи нажатий клавиш (для кейлоггеров), фишинговых эксплоитов и прочих вредоносов. Если для пользователей активация Accessibility Service на устройстве станет привычной рутиной, то это угрожает их безопасности.

    Уже зарегистрировано несколько случаев, когда вредоносному приложению удавалось обманным путём склонить пользователя активации Accessibility Service (см. информацию об эксплоите Cloak & Dagger).
    Поделиться публикацией
    Похожие публикации
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 54
    • +6
      Демонстрация атак с использованием этих служб. Ни один из испытуемых пользователей даже не понял, что происходит что-то не то.
      Поэтому, у меня есть привычка отзывать у приложений доступ к функциям, которые мне не требуются.
      • 0
        Можете подсказать с помощью чего вы отзываете у приложений доступ к ненужным функциям?
        • 0
          Начиная с Android 6 появилась возможность давать разрешение для приложения.
          https://www.kaspersky.ru/blog/android-permissions-guide/14099/
          • 0
            В старых версиях андроида при наличии рута можно воспользоваться LBE Privacy Guard или поставить XPosed + XPrivacy.
            Оба способа более-менее работают, во втором — больше возможностей и геморроя.
        • 0
          Собираюсь написать письмо в Европарламент, с предложением запретить Google и другим рекламным компаниям использовать вычислительные мощности и накопители компьютеров (стационарных и мобильных, включая смартфоны) для сбора, хранения и передачи информации, для начала, о предпочтениях пользователей. Мотив такой, что во-первых, человек приобретая смартфон не приобретает обязательства предоставлять свои мощности для сторонних вычислений, в противном случае это должно оплачиваться компанией, а во-вторых можно надавить на экологический аспект, мол это не экологично тратить столько энергии и евро. Просто я не понимаю, зачем, когда я покупаю себе смартфон, там установлен маркет, сервисы гугл, карты, почтовый сервис и обязательно требуется создавать аккаунт на гугле, это очень не удобно, вынужден выбирать себе смартфоны из совместимых и поддерживаемых проектами, где гугл апсов нет в прошивке.
          • 0
            Не, ну действительно, я покупаю телефон, а не рекламный билборд себе в карман за свои же деньги. Зачем мне на нем гугл маркет, зачем мне отправлять тут же какую-то информацию в гугл? Хочешь, что бы я смотрел рекламу и выступал тестером их ПО — плати деньги гугол. Каждый тактовый сигнал процессора оплачивается из кармана пользователя, каждое обращение к памяти стоит денег, который уже итак заплатил за устройство и ПО деньги.
            • +1

              Я тоже не люблю рекламу, передачу каких-то данных и кучу фоновых сервисов, которые тормозят мой, и без того слабый, смартфон.


              Но пользователи пользуются различными сервисами Google — поиском, картами, почтой, голосовым поиском, которые затрачивают ресурсы Google, и при этом пользователи за них не платят явно.

              • 0
                пользователи пользуются различными сервисами Google

                Вот и пусть с ними Google разбирается. А тех, кто не пользуется, это не должно касаться.

              • +2
                Зачем мне на нем гугл маркет

                Не покупайте. Покупаете — значит соглашаетесь.
                Купите китайца, накатите кастомную прошивку, напишите своё ПО… В чём проблема?
                • 0
                  В отличии от своих главных конкурентов, андроид это открытая система и у пользователя есть полная свобода выбора — при должном упорстве хоть из исходников собирай себе систему. Вы лукавите — у вас огромный выбор устройств с разным набором железа и софта.

                  > плати деньги гугол
                  вам и «платят» предоставляя бесплатно сервисы почты, карт, синхронизации, etc.
                  • 0
                    Я ими не пользуюсь от слова совсем, но у меня смартфон Нексус 5X, брал только потому что они кастомизируются сообществом очень активно. Вот такой вот парадокс, больше никаких преимуществ нет. Просто я не понимаю, почему не продают смартфоны без гапсов и прочего, кому нужен только смартфон или даже просто телефон с камерой, с возможностью каким-нибудь простым способом установить весь вендорский контент кому это необходимо, либо с возможностью легко очистить прошивку для тех, кому совсем не нужно, если сделать скидку гуглу и вендорам.
                    • +3
                      Так а в чем тогда претензия? Накатывайте циаген без гуглоприложений, корпорация добра не принуждает никого пользоваться своей инфраструктурой. Я фанат экосистемы гугла, позвольте мне делать свой выбор.
                      • 0
                        Вот только циан есть на дай бог 1% от всех телефонов (подозреваю — это сильно оптимистичный взгляд). Т.е. покупай ещё и телефон, который ему подходит. Но не подходит мне. Такие вот пироги.

                        На самом деле весь (почти) гуглмусор можно снести и из обычного телефона (потратив некоторое время после каждого большого обновления), Но вот переключения треков кнопкой громкости, так радовавшее на циане, в нём завести так и не удалось. Хочется мучительно убить каждого, кто считает, что лучше меня знает, что мне удобно делать со своей вещью. А тем более — что мне НЕЛЬЗЯ делать со своей вещью.
                      • +5
                        Просто я не понимаю, почему не продают смартфоны без гапсов и прочего, кому нужен только смартфон или даже просто телефон с камерой, с возможностью каким-нибудь простым способом установить весь вендорский контент кому это необходимо, либо с возможностью легко очистить прошивку для тех, кому совсем не нужно, если сделать скидку гуглу и вендорам.


                        Потому что это нужно тысяче-другой пользователей, а гаппсы нужны большинству. Соответственно, логично будет создать неудобства для тысячи юзеров, а не для сотен миллионов.
                      • +2
                        Никакая она не открытая — без проприетарных блобов от копирастов большинство устройств не заработает. А ещё из-за этих блобов нельзя обновить ядро. Из-за этих блобов на legacy устройствах не будет новой версии андроида, а будет только старая и уязвимая. Спасибо копирастам и Лиайнусу и потреб****м, регулярно покупающим новые телефоны, за всё это. Пока большинство устройств не будут полнофункциональны на свободных драйверах (в случае отсутствия свободного драйвера считаем, что свободный драйвер — пустой файл), платформу нельзя назвать открытой.

                        • +1
                          Давайте отделим котлеты от мух. Гугл вам открыл операционную систему. Вы можете требовать открытия блобов от производителей устройств — голосуйте рублем. Пока что большинство голосуют против вас.
                          • +4
                            Проблема в том, что смартфонов без блобов вообще не существует, а значит голосовать рублём тоже довольно проблематично…
                          • 0
                            Хм, вот интересно, у меня в семерке работают некоторые драйвера от XP. И это не нонсенс, а вполне закономерная ситуация. И пофиг, что ядро сменилось уже раз десять, а драйвера при этом — те же блобы.

                            Не выпендривались бы, сделали наконец бинарную совместимость, и прблема сразу стала бы на порядок менее актуальной. Но нет же, швабодка, блин, опасносте.
                            • +1
                              Проблема в том, что «некоторые». Их, на самом деле, очень мало таких. Большинство тех, что работают и на старых ОС, и на новых — были написаны после внедрения новой модели драйверов (после выхода Vista). При этом всё, что является действительно системным — даже в пределах разных сервис-паков одной ОС может не работать легко.
                        • 0

                          Я вот тоже самое про телевизор думаю… Может добавите в свое обращение и про телерекламу?

                        • +3
                          «Запретить использовать вычислительные мощности для сбора, хранения и передачи информации о предпочтениях пользователей».

                          А что, интересная идея.

                          Только попробуйте сначала на себе, пожалуйста. Проверить этот сценарий на удобство достаточно легко — просто каждый раз, когда берёте телефон, чтобы что-нибудь сделать, выполняйте перед тем, что планировали, factory reset.
                          • 0
                            Хорошая шиза.
                            Не нравится — не покупай.
                            • 0

                              А Гугл тут причем? Он вам телефон продал что ли? Производитель смартфона решил, что на свой аппарат он хочет накатить android с сервисами Гугл, заключил с Гугл док, предустановил все и продает вам конечное изделие. Вы вправе не покупать его, а производитель вправе не подстраивать свой массовый товар под вас и все довольны.

                              • 0
                                и обязательно требуется создавать аккаунт на гугле
                                Не создавайте, никто не заставляет. Устанавливайте программы из .apk.
                                • 0

                                  Ведроид же бесплатный, поэтому какие могут быть претензии? А вендор смартов

                                  • 0

                                    Скачиваете себе АОСП андроид без сервисов гугла, пишете себе драйвера под свое оборудование, пользуетесь. Проблемы с чем-то? Тогда оплачивайте готовые изделия.

                                  • +5
                                    Если из читалки пропадет перелистывание страниц клавишами громкости — будет печально.
                                    • +6
                                      и кнопки на пульте от андроид tv-box переназначать не получится :(
                                      API на кнопки все равно нужен. Возможно гуглу стоит лучше проверять приложения, прежде чем их подписывать
                                      • 0
                                        Для меня вообще загадка, почему программа, выводящая звук не может штатно работать с кнопками громкости. Я могу ещё понять полный системный перехват, но тут то почему?
                                        • 0
                                          А для меня загадка зачем вообще этот вопрос контролировать. Если приложение плохое его пользователь может удалить. Если не удалил то значит оно ему нужно без каких либо средств контроля со стороны гугла.
                                          • 0
                                            В комментариях уже приводили примеры. Это могут быть и два хороших, перехватывающих одну и ту же клавишу. И мешающих друг другу. Просто нужно корректно разрешать такие ситуации, а не тупо всё запрещать.
                                      • 0

                                        Можно же просто отключить обновления и пользоваться старой версией приложения, где этот функционал доступен.

                                        • +1
                                          Вообще-то, в нормальных читалках (EBookDroid, Cool Reader и т. д.) не используется этот API, так как в любом приложении можно обрабатывать нажатия клавиш громкости без запроса специальных разрешений (KeyEvent). Если вас сбило упоминание gReader, то оно вероятно делает что-то хитрое.
                                          • 0

                                            Интересно, что в читалке от Google Play Books тоже работает перелистывание громкостью. Интересно, это через a11y API сделано или все-таки есть штатный способ?

                                        • +2

                                          Прочитав заголовок, в первую очередь думаешь: «Опять пользователей ущемляют по каким-нибудь дурацким причинам!»


                                          А на деле — инициатива оправданная. Помимо того, что это можно использовать во вред (см. первый коммент под статьёй тут), можно нарушить работу других сервисов, которые нужны для accessibility. Например, если аппаратные кнопки заменяют кому-то стандартные действия на экране, а приложение их перехватывает — можно вообще оказаться в полной… кхм… филейной части.


                                          Не знаю, насколько актуально именно для этой клавиши, но из-за повреждённого экрана знакомой включил на её телефоне завершение звонка по кнопке питания. Если бы вместо этого использовалась клавиша громкости, например (как для снимков в приложении камеры), то тут точно бы оно сломалось многими приложениями.


                                          Кстати говоря, что насчёт снимков клавишей громкости? У самого гугла это стандартная фича, если не ошибаюсь.

                                          • +1
                                            Да, а ничо что приложение надо добавлять в accessibility ручками чтобы оно заработало?
                                            • 0
                                              А не судьба просто запрещать СОВМЕСТНЫЙ перехват кнопок? Какая может быть проблема, если они перехватываются только одной программой? А если появляется второй желающий — просить явно выбрать того, кому можно. Но нет, давайте просто запретим…
                                            • 0
                                              У меня четверть программ с рут доступом, так что не испугать какими-то там «рисовать поверх окон». Но вообще странно, зачем алиекспрессу или фаерфоксу к примеру эти права. Не припомню, что бы они что-то поверх других приложений рисовали.
                                              • 0
                                                Firefox использует SYSTEM_ALERT_WINDOW здесь, читайте комментарий перед классом.
                                              • 0
                                                Не понятно, что в итоге делать. Моё приложение тоже использует функции для инвалидов: на android < 4.4 считывает уведомления и отправляет их на комп. Получается теперь придётся отказываться от поддержки старых версий системы.
                                                • 0
                                                  думаю этот апи и так сделан абы было, и гуглу глубоко фиолетово будет его кто-то использовать или нет
                                                  а вот если действительно появится вредоносная программа, то пиар будет не самым лучшим, поэтому в перспективе его просто выпилят
                                                  такая вот открытая система
                                                  • 0

                                                    Может, гуглу выпустить специальную версию для инвалидов?

                                                    • 0
                                                      Блин. Только появилась (благодаря именно этому API) НУЖНЕЙШАЯ утилита, позволяющая листать кнопками громкости везде, а не в редких (и не тех, что нужно) приложениях, как тут же выпиливают :(

                                                      Такое ощущение, что фичу листания кнопками маркетолухи гугла специально придерживают на черный день, чтобы было что с помпой показать, если дела плохо пойдут…
                                                      • 0
                                                        Только появилась … как тут же выпиливают

                                                        Не думаю, что отсутствие приложения в GooglePlay должно являть для вас вселенскую проблему. Скорее всего авторы выложат (или уже) его куда бы то ни было ещё. Когда нужное приложение по тем или иным соображениям не попадает в GooglePlay — рядовое явление.

                                                        • 0
                                                          Не думаю, что отсутствие приложения в GooglePlay должно являть для вас вселенскую проблему.

                                                          Мне — нет. Но вот сейчас я могу объяснить человеку по телефону, как эту штуку поставить. А если выпилят из маркета, то даже не буду пытаться. Я понимаю, что с точки зрения некоторых люди-неспециалисты вообще не люди и должны страдать, но, на мой взгляд, это поганая точка зрения.

                                                          И сдается мне, что следующим шагом по выпилу будет выдача этого API по персональному разрешению от гугла, разумеется, во имя добра и света. А вы продолжите говорить «да ну, не проблема». Ну да, если рутануть, не проблема. Следующая итерация…
                                                        • 0
                                                          Если есть люди, которым неудобно листать скроллом по экрану, то наверное, это приложение использует API добросовестно
                                                          • 0
                                                            А как вы в таком случае регулируете громкость?
                                                            Ну и если у вас есть рут — всегда можно переназначить кнопки. И вместо действий VOLUME_UP/VOLUME_DOWN повесить туда PAGE_UP/PAGE_DOWN. Более подробная информация — source.android.com/devices/input/key-layout-files
                                                            • 0
                                                              А как вы в таком случае регулируете громкость?

                                                              Там можно задать, в какой программе громкость, а в какой программе скрол. И это ОЧЕНЬ удобно, т.к. скролл нужен в конкретных программах. Скажем, та же Опера не поддерживает скролл кнопками и без кнопок читать длинные тексты в ней дьявольски неудобно, а единственная альтернатива ей, умеющая так же хорошо масштабировать любой блок текста на странице под ширину экрана — это UC Browser. В котором есть свой скролл, но к нему последнее время прилагается тонна уродской рекламы и дикие тормоза всего телефона, с большим облегчением снес его. Даже Greenify не помогал.
                                                              Ну и если у вас есть рут — всегда можно переназначить кнопки. И вместо действий VOLUME_UP/VOLUME_DOWN повесить туда PAGE_UP/PAGE_DOWN.

                                                              А это, увы, не годится, ибо убивает возможность регулировать громкость там, где надо. Этим я баловался еще на 2.x андроидах. Неудобно.
                                                            • 0
                                                              Что-то не найти! Есть целый комбайн по переназначениям, но действия скролл там не вижу.
                                                              • 0
                                                                Что-то не найти! Есть целый комбайн по переназначениям, но действия скролл там не вижу.

                                                                В маркете, Volkey Scroll называется. Можно поискать com.tafayor.vkscroll
                                                            • 0
                                                              Кстати, когда бегаешь с смартфоном очень не удобно залитый потом экран отрабатывает касания. Удобнее кнопками.
                                                              • 0
                                                                а не проще было все перевести на пользователя, мол смотрите сами, если доверяете приложению и разрабу, разрешайте пользоваться инвалидо-апи, а если вас обманули и что то украли, то сам дурак. Как уже упомянули выше с версии ведра 6.0 и выше(или я шо та напутал) можно отключать нужные разрешения в нужных приложениях.
                                                                • 0

                                                                  В миуи по дефолту запрешен показ оверлеев. И это на уровне оболочки, версия андроида не влияет. Т.е. Гугл сам может сделать разрешение для данной функции "видимым", но не хочет пока что.

                                                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.