Как предоставить права ADB на Android

Команда adb shell pm grant — основной способ предоставить приложению системное разрешение, которое нельзя выдать через обычные настройки Android: например, WRITE_SECURE_SETTINGS, DUMP или READ_LOGS. Если при вводе команды вы видите ошибку device unauthorized или no devices found, проблема почти всегда в том, что отладка по USB не включена, драйвер не установлен или на смартфоне не подтверждён запрос на авторизацию компьютера.

Ниже разберём полный путь: от активации режима разработчика до проверки выданных разрешений. Инструкция подходит для большинства смартфонов на Android, однако названия пунктов меню могут отличаться в зависимости от оболочки — MIUI, One UI, ColorOS и других. Если пункт не находится, воспользуйтесь поиском по настройкам.

Что такое права ADB и когда они нужны

ADB (Android Debug Bridge) — инструмент командной строки, который позволяет компьютеру взаимодействовать со смартфоном: устанавливать приложения, передавать файлы, выполнять системные команды. Часть действий требует повышенных прав, которые система не выдаёт обычным приложениям через стандартный диалог разрешений.

Типичный сценарий: приложение для жестов, автоматизации или тонкой настройки системы просит выполнить команду вида adb shell pm grant com.example.app android.permission.WRITE_SECURE_SETTINGS. Без этого разрешения функции приложения работать не будут, а через интерфейс настроек выдать его невозможно — такова политика безопасности Android.

Важно понимать: ADB не даёт root-доступ. Это ограниченный канал управления, который действует до перезагрузки устройства или до отзыва разрешения, и он не изменяет системные разделы.

Подготовка: включение отладки по USB

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

  • ⚙️ Откройте Настройки → О телефоне и найдите строку «Номер сборки».
  • 👆 Нажмите на неё несколько раз подряд (обычно семь), пока не появится сообщение «Вы стали разработчиком».
  • 🔓 Вернитесь в настройки и откройте раздел Для разработчиков (может находиться внутри «Система» или «Расширенные настройки»).
  • 🔌 Включите переключатель Отладка по USB и подтвердите действие.

На некоторых оболочках, например MIUI, может потребоваться дополнительно включить пункт Установка через USB или Отладка по USB (настройки безопасности) — без этого выдача отдельных разрешений блокируется. Наличие таких пунктов зависит от конкретной прошивки.

Установка ADB на компьютер

Для работы нужен пакет Platform Tools — официальный набор утилит от Google, в который входит исполняемый файл adb. Скачивать его следует только с официального сайта для разработчиков Android: сторонние сборники могут содержать устаревшие или изменённые версии.

Распакуйте архив в отдельную папку, например C:\platform-tools на Windows. Затем откройте командную строку в этой папке: в проводнике Windows можно ввести cmd в адресной строке. На macOS и Linux используется терминал с переходом в каталог командой cd.

На Windows дополнительно может потребоваться USB-драйвер производителя смартфона. Если устройство не определяется системой даже в обычном режиме передачи файлов, проверьте диспетчер устройств: неизвестное устройство с жёлтым значком — признак отсутствующего драйвера.

⚠️ Внимание: используйте качественный USB-кабель и порт напрямую на материнской плате, а не на хабе. «Зарядочные» кабели без линий данных — частая причина, по которой команда adb devices возвращает пустой список.

Авторизация устройства и проверка подключения

Подключите смартфон кабелем и выполните первую проверочную команду:

adb devices

При первом подключении на экране смартфона появится диалог «Разрешить отладку по USB?» с отпечатком ключа компьютера. Отметьте «Всегда разрешать с этого компьютера» и нажмите «ОК». Если диалог не появился — отключите и заново подключите кабель, либо перезапустите сервер командой adb kill-server с последующим повторным вводом adb devices.

☑️ Проверка перед выдачей прав

Выполнено: 0 / 5

Правильный результат — строка вида XXXXXX device. Статус unauthorized означает, что запрос на смартфоне не подтверждён, а пустой список — что устройство не распознано.

📊 С какой проблемой вы столкнулись при работе с ADB?
Устройство не определяется компьютером
Статус unauthorized
Ошибка при выполнении pm grant
Всё получилось с первого раза

Выдача разрешений командой pm grant

Основной синтаксис команды выглядит так:

adb shell pm grant имя.пакета.приложения android.permission.ИМЯ_РАЗРЕШЕНИЯ

Например, выдача разрешения на изменение защищённых настроек:

adb shell pm grant com.example.app android.permission.WRITE_SECURE_SETTINGS

Имя пакета приложения нужно указывать точно — это не название из меню, а технический идентификатор вида com.developer.appname. Узнать его можно в описании приложения, в его настройках (Настройки → Приложения → выбранное приложение) или через само приложение: многие программы, требующие ADB, показывают готовую команду для копирования.

Какие разрешения чаще всего выдаются через ADB:

  • 🔧 WRITE_SECURE_SETTINGS — изменение защищённых системных параметров.
  • 📊 DUMP — доступ к диагностической информации системы.
  • 📋 READ_LOGS — чтение системных журналов.
  • WRITE_SECURE_SETTINGS совместно с настройкой службы специальных возможностей — для приложений автоматизации.

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

Типичные ошибки и их решение

ОшибкаВероятная причинаЧто проверить
no devices/emulators foundУстройство не распознаноКабель, драйвер, включена ли отладка по USB
unauthorizedНе подтверждён запрос на смартфонеЭкран разблокирован, диалог авторизации подтверждён
SecurityException при pm grantРазрешение нельзя выдать даже через ADBПоддерживается ли разрешение данной версией Android
Unknown packageНеверное имя пакетаТочный идентификатор приложения в настройках
adb не распознано как командаТерминал открыт не в папке Platform ToolsПереход в каталог с adb или настройка PATH

Отдельно стоит ошибка SecurityException: часть разрешений Google исключила из выдачи через ADB в новых версиях Android, а некоторые производители дополнительно ограничивают pm grant на своих прошивках. Если приложение перестало получать разрешение после обновления системы, возможная причина — именно такое ужесточение, и обойти его без root обычно нельзя.

⚠️ Внимание: на ряде прошивок отладка по USB автоматически отключается после перезагрузки или отзыва авторизаций. Если команды внезапно перестали работать, первым делом проверьте, активен ли переключатель отладки в разделе для разработчиков.
Как отозвать выданное разрешение

Используйте команду adb shell pm revoke имя.пакета android.permission.ИМЯ_РАЗРЕШЕНИЯ — синтаксис полностью аналогичен grant. Полный сброс авторизаций компьютеров выполняется в разделе для разработчиков пунктом «Отозвать авторизацию отладки по USB».

Безопасность при работе с ADB

Держать отладку по USB постоянно включённой не стоит: при подключении к чужому компьютеру или зарядной станции она создаёт дополнительный вектор атаки. После выполнения нужных команд переключатель можно выключить — выданные приложениям разрешения при этом обычно сохраняются.

Не выполняйте команды из непроверенных источников, особенно те, что содержат adb shell pm uninstall, wipe или изменение системных параметров. Команда, скопированная с форума без понимания её действия, способна удалить системное приложение или сбросить настройки устройства.

Часто задаваемые вопросы

Нужен ли root для выдачи прав через ADB?

Нет. ADB работает на стоковой прошивке без root-доступа, и это одно из его главных преимуществ. Root потребуется только для действий, которые не покрывает даже отладочный мост.

Сбрасываются ли выданные разрешения после перезагрузки?

Разрешения, выданные через pm grant, сохраняются после перезагрузки. Они отзываются при удалении приложения, сбросе устройства или явной отмене командой pm revoke.

Можно ли выдать права ADB без компьютера?

В Android 11 и новее появилась беспроводная отладка, но для первичного сопряжения всё равно нужен либо компьютер, либо второе устройство с поддержкой pairing. Полностью автономного способа без внешнего устройства на стоковой прошивке нет.

Почему приложение просит выполнить команду снова после обновления?

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

Что делать, если диалог авторизации не появляется на смартфоне?

Разблокируйте экран, смените USB-порт и кабель, выполните adb kill-server и повторите adb devices. Также помогает отзыв авторизаций в разделе для разработчиков с последующим переподключением.