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.

6jhjdctojrbaqpyy3lcv8nwfs8k.png


Ни одно из вышеперечисленных приложений не использует службу 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).

© Geektimes