Что означает ошибка ADB command failed
Ошибка ADB command failed возникает, когда Android Debug Bridge не может выполнить запрошенную команду. Текст может отличаться в зависимости от среды, но обычно выглядит так:
adb: error: failed to copy ...adb: command failed: insufficient permissions for deviceadb: error: closedadb: no devices/emulators found(с последующим сбоем команды)
Она появляется в терминале при попытке установить APK, загрузить/скачать файлы, запустить shell или перезагрузить устройство в режимы bootloader/recovery. Сбой может возникать как на Windows, macOS, так и на Linux.
Причины возникновения
- Разорвана или нестабильна USB-связь (кабель, порт, режимы USB на устройстве).
- Отозвано или не подтверждено разрешение на отладку по USB на устройстве.
- Устаревшие, некорректные или конфликтующие драйверы ADB.
- ADB-сервер завис, работает со старой авторизацией или запущен без прав доступа к устройству.
- Блокировка со стороны антивируса/брандмауэра или конфликт с другими программами, использующими 5037 порт.
- Попытка выполнить команду, требующую повышенных привилегий, в непривилегированном терминале.
Способы решения
Способ 1: Переподключить устройство и обновить авторизацию
Отключите кабель USB. На устройстве в Настройки → Для разработчиков отзовите все разрешения для отладки (если есть пункт «Отозвать права отладки»). Переподключите устройство, включите режим «Только зарядка» → «Передача файлов» или «MTP», и при появлении запроса разрешите отладку по USB. Проверьте:
adb devices
Убедитесь, что устройство отображается как device, а не unauthorized.
Способ 2: Перезапустить ADB-сервер
Зависший или «забывший» сервер часто вызывает ADB command failed. В терминале выполните:
adb kill-server
adb start-server
После этого снова проверьте список устройств:
adb devices
Если устройство появилось, попробуйте повторить изначальную команду.
Способ 3: Проверить и обновить драйверы
На Windows некорректные драйверы — частая причина. Откройте Диспетчер устройств и найдите устройство. Должно отображаться как Android ADB Interface или Google USB Driver. Если стоит желтый восклицательный знак или указан «неизвестный USB-устройство», обновите драйвер:
- Скачайте актуальные драйверы с сайта производителя телефона или установите Google USB Driver через Android Studio (SDK Manager).
- Укажите системе искать драйвер в папке с Android SDK, например:
%LOCALAPPDATA%\Android\Sdk\extras\google\usb_driver.
На Linux и macOS обычно достаточно правильных правил udev (Linux) или отсутствия системных блокировок (macOS), но при сбоях стоит проверить вывод lsusb и права доступа к узлам /dev/bus/usb/.
Способ 4: Запустить терминал с правами администратора
Нехватка прав может приводить к отказам доступа к сокету ADB или узлам USB. Запустите терминал (командную строку, PowerShell или консоль) от имени администратора и повторите команду. Это особенно актуально для Windows при операциях, затрагивающих системные пути или перемонтирование разделов.
Способ 5: Временно отключить конфликтующие программы и брандмауэр
Антивирусы, брандмауэры или другие утилиты управления Android могут блокировать порт 5037 или доступ к устройству. Временно отключите их и проверьте, выполняется ли команда. Если заработает — добавьте исключение для adb.exe (Windows) или настройте фильтрацию портов, чтобы не отключать защиту полностью.
Способ 6: Использовать ADB по Wi-Fi (обход USB)
Если проблема связана с кабелем или драйверами, можно выполнить команды по сети. Подключите устройство по USB, выполните:
adb tcpip 5555
Отключите кабель и подключитесь по IP:
adb connect <IP_УСТРОЙСТВА>:5555
После этого команды будут идти через Wi-Fi. Это помогает локализовать проблему: если по Wi-Fi всё работает, виноваты кабель, порт или драйверы USB.
Профилактика
Чтобы минимизировать риск появления ADB command failed, придерживайтесь простых правил:
- Используйте качественные кабели и стабильные USB-порты; избегайте удлинителей.
- Не отключайте устройство во время выполнения команд и не прерывайте передачу файлов через ADB.
- Регулярно обновляйте Android SDK и драйверы под вашу ОС.
- Сразу после обновления системы или прошивки проверяйте разрешения отладки и, при необходимости, обновляйте авторизацию.
- Избегайте одновременного запуска нескольких копий ADB-сервера (например, из разных IDE или терминалов) — это может вызывать конфликты на порту 5037.