Что означает ошибка EACCES
ADB возвращает ошибку EACCES (Permission denied), когда сервер инструмента не имеет доступа к файлам системе или устройству Android. Это происходит обычно при попытках выполнить команды adb install, adb shell или adb push без соответствующих прав или когда отладка USB не авторизована.
Когда возникает: сразу после подключения устройства, при попытке установить приложение, или при попытке открыть командную строку устройства.
Симптомы
- Сообщение об ошибке:
error: device unauthorizedилиadb: error: insufficient permissions - Команда завершается с кодом возврата 1
- В списке устройств ADB устройство отображается как
unauthorized
Причины возникновения
- ADB-сервер запущен без прав администратора — особенно на Windows, где нужны elevated права для доступа к портам и устройствам.
- Отладка USB не авторизована на устройстве — на экране Android появляется запрос, который нужно подтвердить.
- Антивирус или фаервол блокируют ADB-процессы — некоторые решения безопасности считают ADB потенциальной угрозой.
- Поврежденный кэш SDK Platform-Tools — устаревшие или поврежденные файлы могут вызывать конфликты.
- Несовместимость версии ADB с версией Android — новая версия Android может требовать новых версий ADB.
Способы решения
Способ 1: Перезапуск ADB-сервера
Самое простое и частое решение. Останавливает текущий процесс сервера и запускает его заново с текущими правами пользователя.
adb kill-server
adb start-server
Если команда adb start-server требует прав администратора, запустите терминал или PowerShell от имени администратора (на Windows) или с помощью sudo (на macOS/Linux). После перезапуска проверьте список устройств командой adb devices.
Способ 2: Запуск ADB от имени администратора
На Windows: найдите командную строку (cmd) или PowerShell, кликните правой кнопкой мыши и выберите «Запуск от имени администратора». Затем выполните adb kill-server и adb start-server.
На macOS и Linux: используйте префикс sudo перед командами ADB, например: sudo adb devices. Вас попросят ввести пароль пользователя.
Способ 3: Разрешение отладки USB на устройстве
На экране устройства Android может появиться окно с вопросом «Разрешить отладку USB?». Нажмите «Разрешить». Если окно не появляется:
- Зайдите в «Настройки» → «Разработчикские опции».
- Отключите переключатель «Отладка USB» и включите его снова.
- Подтвердите запрос на устройстве еще раз.
Способ 4: Переустановка драйверов ADB и платформенных инструментов
Если ошибка сохраняется, кэш SDK может быть поврежден. Выполните следующие шаги:
- Остановите сервер:
adb kill-server. - Удалите устройство из списка: выполните
adb devicesи запомните серийный номер устройства. - Откройте Android Studio → SDK Manager → вкладка «Android SDK» → «Show Package Details».
- Найдите «Platform-Tools» и обновите или переустановите.
- Перезагрузите компьютер и попробуйте команду ADB снова.
Профилактика
Чтобы избежать повторения ошибки EACCES в будущем, соблюдайте следующие рекомендации:
- Всегда запускайте ADB с необходимыми правами (администратор или
sudo). - Не игнорируйте запросы на авторизацию отладки USB на устройстве.
- Регулярно обновляйте SDK Platform-Tools через Android Studio или официальный сайт Google.
- Добавьте папку
android-sdk/platform-tools/в список исключений антивируса, чтобы она не блокировала процессы ADB. - После обновления операционной системы или Android Studio проверяйте работоспособность ADB-команд.
💡 Совет: Если вы часто переключаетесь между несколькими устройствами, используйте команду
adb devices -lдля получения подробной информации о каждом подключенном устройстве. Это поможет быстрее выявлять проблемы с правами доступа.