Как ограничить доступ любому приложению к буферу обмена на Android без рут-прав

2.5k

2

Зачастую, вместо того, чтобы набирать текст на клавиатуре гораздо проще его вырезать/копировать и вставить в необходимое поле. Особенно это касается некоторых длинных фрагментов, такие как адреса, пароли или ссылки на различные страницы сайтов. В таком случае использование функции копирования/вставки, безусловно, облегчает поставленную задачу, ведь нужно безошибочно напечатать каждый символ. Но, к огромному сожалению, буфер обмена в Android не особо безопасен, потому как любое приложение, установленное на вашем устройстве, может читать его без вашего ведома. Именно поэтому обычно рекомендуется никогда не копировать какие-либо конфиденциальные данные.

Для контекста, в ОС Android фреймворк копирования/вставки позволяет любому приложению читать буфер обмена или записывать в него. Благодаря наличию именно этого компонента, в Google Play появились сторонние менеджеры буферов обмена. И хотя эти утилиты, а также некоторые другие (например, Google Переводчик) «правильно» используют данный фреймворк, нет абсолютно никаких сведений о том, что другие приложения могут совершать с этими данными. Большинство программ запрашивают разрешения при выполнении определённых действий и «прозрачны» в отношении того, что они делают с той или иной информацией. Однако вы будете удивлены тем, сколько приложений на вашем телефоне имеют возможность читать ваш буфер обмена. Именно поэтому большинство менеджеров паролей на Android рекомендуют вам использовать собственную клавиатуру при вводе паролей — они хотят защитить вас от приложений, которые могут украсть ваш пароль из буфера обмена.

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

Вместо предупреждения

Запретив доступ к буферу обмена для какого-либо приложения, вы больше не сможете использовать функцию «вставить» при вводе текста. Это не должно быть проблемой для различных игр, но может вызвать определённые неудобства для других приложений.

Руководство по запрету приложениям доступа к буфера обмена

  1. Создать папку с именем Android в корне диска C:\.
  2. Установить USB-драйвера для вашего устройства (здесь можно найти ссылки на универсальные драйвера для некоторых устройств).
  3. В некоторых случаях для установки драйверов потребуется отключить проверку подлинности.
    • Для Windows 7:
      Во время включения компьютера, после загрузки BIOS, необходимо нажать клавишу F8. В появившимся меню «Дополнительные варианты загрузки» выбрать «Отключение обязательной подписи драйверов». Данный способ может сработать не с первого раза, поэтому следует повторить действие либо открыть командную строку от имени администратора и ввести две команды:
      «bcdedit.exe /set loadoptions DDISABLE_INTEGRITY_CHECKS»;
      «bcdedit.exe /set TESTSIGNING ON».
    • Для Windows 8:
      Нужно нажать сочетание клавиш Win+I, зажать клавишу Shift и выбрать пункт «Выключение» > «Перезагрузка». При включении компьютера выбрать «Диагностика» > «Дополнительные параметры» > «Параметры загрузки» > «Перезагрузить». При загрузке выбрать режим «Отключить обязательную проверку подписи драйверов», нажав клавишу F7.
    • Для Windows 10:
      Необходимо зажать клавишу Shift и выбрать меню «Пуск» > «Выключение» > «Перезагрузка». После загрузки выбрать «Поиск и устранение неисправностей» > «Дополнительные параметры» > «Параметры загрузки» > «Перезагрузить». Затем выбрать пункт «Отключить обязательную проверку подписи драйверов», нажав клавишу F7.
  4. Скачать архив adb-fastboot.zip и распаковать файлы в папку Android.
  5. Активировать пункт «Отладка по USB» на смартфоне.
    Сделать это можно в разделе «Для разработчиков». Как его открыть, можно узнать здесь.
  6. Подключить телефон к компьютеру по USB-кабелю.
    Рекомендуется использовать оригинальный или кабель хорошего качества, а также порт USB 2.0, расположенный на материнской плате (для ПК).
  7. Изменить тип подключения с «Только зарядка» на «Передача файлов (MTP)».
    Это не обязательно делать на каждом устройстве, но многие производители требуют этого в качестве меры безопасности, прежде чем разрешить работу с ADB.
  8. Открыть командную строку и перейти в созданную папку Android командой «cd c:\Android\» (команды пишутся без кавычек).
  9. Убедиться, что компьютер находит устройство по ADB.
    Для этого необходимо ввести «adb devices» в командную строку. На появившейся запрос на телефоне о разрешении об отладке по ADB на данном компьютере необходимо нажать «Ok», при этом выбрав пункт «Всегда разрешать с этого компьютера». Если устройство видно, то выведется текст «List of devices attached» и список всех устройств (например,xxxxxxx device). Если же вместо «device» будет написано «offline» либо список окажется пустым, то необходимо обновить ADB, проверить драйвера/шнур, поменять порт USB/компьютер.
  10. В командной строке ввести «adb shell».
  11. Теперь ввести «cmd appops query-op --user 0 READ_CLIPBOARD allow», чтобы узнать, какие установленные на устройстве приложения имеют доступ к буферу обмена.
    В результате на экран выведется список пакетов. Некоторые из перечисленных могут быть очевидными, к какому приложению они относятся, но если нет, утилита App Inspector поможет разобраться.
  12. Для запрета доступа к буферу обмена ввести «cmd appops set name.of.package READ_CLIPBOARD ignore», где name.of.package — имя нужного пакета.
    Если после ввода команды не выведено никаких ошибок и появилась новая строка для ввода, значит всё сработало верно.
  13. Чтобы вернуть изменения и снова открыть доступ к буферу обмена, нужно ввести «cmd appops set name.of.package READ_CLIPBOARD allow».
  14. Чтобы посмотреть список всех пакетов, которым доступ к чтению буфера обмена заблокирован, нужно ввести «cmd appops query-op --user 0 READ_CLIPBOARD ignore».
Если команды на этапах с 11 по 14 не работают, попробуйте запустить их без «cmd». Это может потребоваться для некоторых устройств под управлением Android 6.0 Marshmallow или ниже.

Как это работает?

Любые приложения, объявляющие разрешение «android.permission.READ_CLIPBOARD» (для чтения буфера обмена) в файле AndroidManifest.xml, автоматически получают его при установке. И хотя многие устройства имеют доступ к системе управления разрешениями в настройках, данное разрешение не входит в список того, что пользователи могут изменять по своему усмотрению. Конечно, если вы не используете кастомную прошивку, например LineageOS.

Тем не менее, существует скрытый способ ограничить приложениям доступ для чтения вашего буфера обмена. Как раз этот метод и описан выше. Мы использовали скрытый интерфейс «appops», позволяющий ограничивать большее количество разрешений, чем показано в настройках устройства. Первая команда, которую мы сделали, query-ops, вывела список установленных приложений, которым было предоставлено разрешение на чтение буфера обмена. Глядя на этот список, мы можем решить, каким программам мы хотим запретить читать буфер обмена. Если вы решите ограничить данное разрешение каждому стороннему приложению, вы можете даже начать безопасно копировать и вставлять свои пароли, не беспокоясь о том, что какое-нибудь приложение сможет их украсть.

Напишите в комментариях ниже, помогла ли вам данная руководство и каким приложениям вы запретили доступ к буферу обмена.

Похожие посты

Регистрация прошла успешно