Команда 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.
☑️ Проверка перед выдачей прав
Правильный результат — строка вида XXXXXX device. Статус unauthorized означает, что запрос на смартфоне не подтверждён, а пустой список — что устройство не распознано.
Выдача разрешений командой 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. Также помогает отзыв авторизаций в разделе для разработчиков с последующим переподключением.