Ошибка system/bin/sh: adb: not found — что она значит и как её исправить

Сообщение system/bin/sh: adb: not found появляется, когда команду adb пытаются выполнить внутри shell-окружения самого Android-устройства — например, через adb shell, эмулятор терминала на смартфоне или при работе по su в root-консоли. Интерпретатор sh ищет исполняемый файл adb в каталогах из переменной PATH (обычно /system/bin, /system/xbin), не находит его там и возвращает эту ошибку.

Ключевой момент, который нужно понять сразу: adb — это клиентская утилита для компьютера, а не команда внутри Android. Бинарник adb входит в состав Android SDK Platform-Tools и запускается на ПК (Windows, macOS, Linux). На самом устройстве работает только демон adbd, который принимает подключения, — утилиты командной строки adb в пользовательской прошивке обычно нет.

Почему возникает ошибка adb: not found

Причин несколько, и от сценария зависит способ решения. Чаще всего пользователь открывает терминал на телефоне (например, Termux или эмулятор терминала) и вводит adb devices, ожидая увидеть список устройств. Система отвечает not found, потому что исполняемого файла просто нет.

Вторая типичная ситуация — ошибка встречается на ПК в виде adb: command not found (Linux/macOS) или «adb не является внутренней или внешней командой» (Windows). Это уже другая формулировка, но суть та же: система не находит бинарник, потому что Platform-Tools не установлены или путь к ним не добавлен в PATH.

  • 🔍 Команда введена в терминале на самом Android-устройстве, где adb отсутствует
  • 💻 На ПК не установлен пакет Android SDK Platform-Tools
  • 📂 Папка с adb не добавлена в переменную окружения PATH
  • 🔧 Команда выполняется внутри adb shell или root-сессии вместо обычной консоли ПК
  • 📦 Используется устаревшая или неполная сборка инструментов

Как отличить сценарий: устройство или компьютер

Посмотрите на приглашение командной строки. Если перед вводом стоит что-то вроде $ с именем устройства или вы предварительно выполнили adb shell, — вы уже внутри Android, и команда adb там работать не будет. Выйдите командой exit и повторите ввод в консоли ПК.

Если ошибка возникает в PowerShell, cmd или терминале Linux сразу после ввода — проблема в установке или настройке PATH. Проверить это просто: введите adb version. Если система снова отвечает, что команда не найдена, переходите к установке Platform-Tools.

📊 Где вы столкнулись с ошибкой adb
not found?:В терминале на Android-смартфоне
В PowerShell или cmd на Windows
В терминале Linux или macOS
Внутри adb shell или root-консоли

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

Правильный способ — скачать официальный архив SDK Platform-Tools с сайта для разработчиков Android. Это единственный источник, которому можно доверять: сторонние «установщики ADB» нередко содержат устаревшие версии или лишние компоненты.

После скачивания распакуйте архив в удобную папку, например C:\platform-tools на Windows или ~/platform-tools на Linux/macOS. Дальше есть два варианта: каждый раз запускать adb из этой папки или добавить её в PATH для удобства.

cd C:\platform-tools

adb version

adb devices

На Linux пакет также доступен в репозиториях многих дистрибутивов (например, adb или android-tools — точное имя пакета зависит от дистрибутива, сверьтесь с его документацией). Установка через пакетный менеджер автоматически прописывает путь.

☑️ Проверка установки ADB

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

Добавление ADB в переменную PATH

Чтобы не переходить каждый раз в папку с инструментами, добавьте её в системную переменную PATH. На Windows это делается через «Система → Дополнительные параметры системы → Переменные среды»: найдите переменную Path, добавьте туда полный путь к папке platform-tools и перезапустите терминал.

На Linux и macOS путь прописывается в файле конфигурации оболочки — ~/.bashrc, ~/.zshrc или аналогичном, в зависимости от используемой оболочки:

export PATH="$PATH:$HOME/platform-tools"

После правки выполните source ~/.bashrc (или соответствующий файл) либо откройте новое окно терминала. Проверка — команда adb version должна отработать из любой директории.

⚠️ Внимание: после изменения переменных среды уже открытые окна терминала не подхватывают новые значения. Обязательно закройте и заново откройте консоль, иначе ошибка «command not found» сохранится, хотя настройка выполнена верно.

Что делать, если нужно выполнить adb с самого устройства

Иногда требуется управлeть одним Android-устройством с другого — без ПК. Это возможно, но не через штатный бинарник, которого нет в прошивке. Варианты:

  • 📱 Termux с пакетом android-tools — даёт настоящий adb-клиент на устройстве; подключение ко второму устройству идёт по Wi-Fi или через OTG-кабель
  • 🌐 Беспроводная отладка (на поддерживаемых версиях Android) — сопряжение устройств по сети через код pairing
  • 💻 Всё же использовать компьютер — самый стабильный и предсказуемый вариант

Учтите, что беспроводная отладка и её точное расположение в настройках зависят от версии Android и оболочки производителя. Ищите пункт в разделе «Для разработчиков»; если его там нет — сверьтесь с документацией своей модели.

Как включить отладку по USB

Откройте «Настройки → О телефоне» и несколько раз нажмите на «Номер сборки», пока не появится сообщение о разблокировке режима разработчика. Затем в разделе «Для разработчиков» активируйте «Отладка по USB». Точные названия пунктов могут отличаться в зависимости от оболочки (MIUI, One UI, ColorOS и др.).

Типичные ошибки после установки

Даже когда adb запускается, могут возникнуть сопутствующие проблемы. Ниже — частые сообщения и их значение:

СообщениеВероятная причинаЧто проверить
adb: not foundНет бинарника или нет пути в PATHУстановку Platform-Tools и переменную PATH
device unauthorizedНе подтверждён запрос на устройствеОкно разрешения отладки на экране смартфона
device offlineСбой соединения или устаревший adbПерезапуск adb kill-server, обновление tools
Пустой список в adb devicesОтключена отладка, кабель или драйверНастройки разработчика, кабель, драйверы USB
⚠️ Внимание: на Windows для некоторых устройств требуется отдельный USB-драйвер от производителя. Если смартфон не определяется даже при включённой отладке, установите драйвер с официального сайта вендора — без него adb устройство не увидит.

Если устройство видно, но со статусом unauthorized, — разблокируйте экран смартфона и подтвердите RSA-отпечаток компьютера во всплывающем диалоге. Отозвать старые разрешения можно пунктом «Отменить авторизацию отладки по USB» в настройках разработчика.

Проверка результата

Финальная проверка занимает меньше минуты. Выполните последовательно:

adb version

adb devices

Команда adb version должна вывести номер версии — это подтверждает, что бинарник найден и запускается. Команда adb devices должна показать серийный номер устройства со статусом device. Если обе проверки пройдены, ошибка system/bin/sh: adb: not found полностью устранена, и можно выполнять нужные команды.

Частые вопросы

Почему в Termux команда adb не работает сразу после установки?

В Termux adb появляется только после установки пакета android-tools командой pkg install android-tools. Без этого пакета бинарника в окружении нет, и shell отвечает «not found».

Можно ли запустить adb без компьютера вообще?

Да, через Termux с пакетом android-tools и беспроводную отладку, если её поддерживает ваша версия Android. Потребуется сопряжение по коду и подключение по сети. Стабильность такого способа ниже, чем при работе с ПК.

adb devices показывает пустой список — это та же ошибка?

Нет. Пустой список означает, что adb работает, но не видит устройство. Проверьте включённую отладку по USB, кабель (некоторые кабели передают только питание), драйверы и разрешение на экране смартфона.

Нужны ли root-права для работы adb?

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

Ошибка появляется в скрипте, хотя вручную adb запускается. В чём дело?

Скорее всего, скрипт выполняется в окружении с другим PATH (например, через cron или планировщик задач). Укажите в скрипте полный путь к бинарнику adb — это устраняет зависимость от переменных окружения.