Google угрожает удалить приложения со службами специальных возможностей из Play Store

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

Обновлять: LastPass только что ответил на эту новость и заявляет, что их приложения для Android «не окажут немедленного воздействия». Означает ли это, что другим заявлениям будет предоставлена ​​снисходительность, еще неизвестно.

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

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


Что такое служба доступности?

Чтобы понять, почему это важно, нам сначала нужно объяснить, что такое доступность применительно к Android. В целом, доступность означает, что приложение Android становится более доступным для пользователей с определенными ограниченными возможностями, например для людей с нарушениями зрения. Хотя в интересах каждого разработчика сделать свои приложения более доступными для пользователей с ограниченными возможностями, существуют специальный класс приложений, предназначенный для повышения удобства использования всех приложений Android для пользователей с инвалидность. Они называются службами доступности.

Служба доступности, обычно называемая a11y, — это приложение, которому система может передавать определенную информацию в зависимости от того, что события Служба доступности регистрируется для прослушивания. Приложение, желающее реализовать службу специальных возможностей, должно добавить android.permission.BIND_ACCESSIBILITY_SERVICE разрешение для файла AndroidManifest, чтобы только система могла привязываться к службе приложения.

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

Таким образом, услуги доступности могут быть чрезвычайно мощный и полезный. Некоторые из самых популярных инновационных приложений в Google Play Store полагаются на a11y при выполнении своих функций. Вот лишь некоторые из немногих примеров, которые мне пришли в голову:

  • Автоввод - перехватывать KeyEvents и выполнять жесты касания/смахивания
  • Сопоставитель кнопок - перехватывать KeyEvents и переназначать их на другие KeyEvents
  • Озеленить - автоматически переводить приложения в спящий режим, принудительно закрывая их до выключения экрана
  • Ввод+ - определить, когда приложение клавиатуры открыто, чтобы отобразить кнопку плавающего действия
  • Последний проход - сканировать страницы на наличие записей имени пользователя и пароля (необходимо до Android Oreo)
  • Быстрое переключение - отправить KeyEvent для кнопки «Назад»
  • Таскер - определять, когда приложения открыты, чтобы вы могли выполнять любые действия, определяемые пользователем
  • Тип машины - записывайте весь ввод текста, чтобы вы никогда не потеряли ни одну текстовую запись

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


Что именно делает Google?

Компания информирует разработчиков, что если их приложение использует Службу специальных возможностей по какой-либо причине, кроме помощи пользователям с ограниченными возможностями, то они должны прекратить использование этого разрешения в течение 30 дней, иначе их приложение будет удалено из Play Store.. Несоблюдение этого требования может привести к нарушению учетной записи разработчика в магазине Play Store, что может в конечном итоге приведет к закрытию аккаунта.

Что касается немногих приложений, которые используют a11y для помощи пользователям с ограниченными возможностями, Google заявляет, что эти разработчики нужно просто добавить заметное и понятное пользователю объяснение причины, по которой их приложению нужна разрешение. Однако, как я уже упоминал ранее, службы специальных возможностей гораздо чаще используются в приложениях, которые в конечном итоге нарушают эту новую политику.

Полное письмо отправлено разработчикам

Привет, разработчики ****!

Мы обращаемся к вам, потому что ваше приложение **** с именем пакета **** запрашивает 'Android.разрешение. BIND_ACCESSIBILITY_SERVICE.' Приложения, запрашивающие службы специальных возможностей, должны использоваться только для того, чтобы помочь пользователям с ограниченными возможностями использовать устройства и приложения Android. Ваше приложение должно соответствовать нашим Разрешения политику и требования к заметному раскрытию информации нашей Данные пользователя политика.

Необходимое действие: Если вы еще этого не сделали, вы должны объяснить пользователям, как ваше приложение использует 'Android.разрешение. BIND_ACCESSIBILITY_SERVICE', чтобы помочь пользователям с ограниченными возможностями использовать устройства и приложения Android. Приложения, не соответствующие этому требованию, в течение 30 дней могут быть удалены из Google Play. Кроме того, вы можете удалить любые запросы на услуги специальных возможностей в своем приложении. Вы также можете отменить публикацию приложения.

Если вам нужно внести изменения в свои приложения, выполните следующие действия:

  • Прочтите Разрешения и Данные пользователя политики для получения более подробной информации и убедитесь, что ваше приложение соответствует всем политикам, перечисленным в Правила программы для разработчиков.
  • Если вам не нужно разрешение BIND_ACCESSIBILITY_SERVICE в вашем приложении или оно используется для чего-то другого, кроме помощи пользователям с ограниченными возможностями в использовании устройств и приложений Android:
    1. Удалите запрос на это разрешение из манифеста вашего приложения.
    2. Войдите в свою консоль Play. и загрузите модифицированный APK-файл, соответствующий правилам.
  • Или, если вам нужно разрешение BIND_ACCESSIBILITY_SERVICE в вашем приложении, чтобы помочь пользователям с ограниченными возможностями использовать устройства и приложения Android:
    1. Включите следующий фрагмент в описание вашего приложения в магазине: «Это приложение использует службы специальных возможностей».
    2. Прежде чем просить пользователя включить это разрешение в вашем приложении, обеспечьте наглядное раскрытие информации об этом использовании. Ваше раскрытие должно соответствовать каждому из следующих требований:
      • Раскрытие информации должно быть предоставлено через андроид: резюме и андроид: описание элементы класса AccessibilityServiceInfo
      • В раскрытии должна описываться функциональность, которую разрешение службы специальных возможностей включает для вашего приложения. Каждая функция, используемая в запросе на Службу доступности, должна быть указана в вашем раскрытии с обоснованием.

Кроме того, вы можете отменить публикацию приложения.

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

Если вы ознакомились с политикой и считаете, что мы, возможно, допустили ошибку, обратитесь к нашему группа поддержки политики. Один из моих коллег свяжется с вами в течение 2 рабочих дней.

С уважением,

Команда проверки Google Play

читать далее


Почему Google удаляет службы специальных возможностей из Play Store?

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

Усилия Google по защите пользователей от вредоносных служб доступности в основном связаны с раскрытием информации. В настоящее время включение службы специальных возможностей, которая регистрируется на определенные события, такие как TYPE_VIEW_TEXT_CHANGED приведет к появлению диалогового окна с предупреждением о том, что приложение может украсть ваши пароли. Вы можете подумать, что такое сообщение будет эффективно предотвращать безответственное предоставление пользователям приложений. Тем не менее, было много задокументированных случаев, когда приложения обманом вынуждали пользователей предоставить a11y. Некоторые атаки идут еще дальше, например, Эксплойт Плаща и Кинжала и Атаки наложения Toast Message Overlay которые социальной инженерией заставляют пользователя давать согласие, искажая то, с чем он взаимодействует на экране.

Подобные атаки эффективны на подавляющем большинстве устройств Android. Google добился значительных успехов в предотвращении атак с наложением или всплывающими сообщениями (что можно увидеть в AOSP, если вы введете в поиск a11y), но дело дошло до того, что Google решил, что им лучше ограничить использование служб специальных возможностей. полностью. Это имеет смысл, но это действительно отстой потому что этот шаг убьет функциональность многих инновационных приложений.


Что могут сделать разработчики?

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

Рефакторинг приложений, чтобы они больше не использовали службу специальных возможностей, возможен для некоторых, но не для всех приложений, которые мы упомянули. Менеджеры паролей, такие как LastPass, могут перейти на платформу автозаполнения, но только если пользователь использует Android 8.0 Oreo и более поздних версий. Если приложение использует a11y для отслеживания открытия других приложений, вместо этого это приложение можно написать с помощью службы опроса с использованием API UsageStats. Такие приложения, как Tasker, могут пережить такие изменения. Другим, таким как Button Mapper и AutoInput, не повезло — без root нет хорошего способа перехватить KeyEvents.

Хотя мы осознаем опасность предоставления вредоносному приложению доступа к API специальных возможностей, очень жаль, что некоторые действительно полезные приложения стерилизуются Google. Мы надеемся, что политика Google будет отменена, или они просто заявят, что она была неверно истолкована. В нынешнем виде формулировка в электронном письме довольно ясна: соблюдайте наши правила или уходите из Play Store. Это мрачное напоминание о том, что Google обладает всей властью над тем, какие приложения должны находиться в Play Store, и они могут выбить почву из-под вас в любой момент.


Обновление 1: запутанная документация для разработчиков

Документы Google для разработчиков создание службы доступности похоже, противоречат этому новому подходу команды Google Play Store. На момент написания статьи страница имела следующую формулировку:

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

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

Спасибо Жоау Диашу за предоставленную информацию.