Ошибка could not read OK from ADB server: причины и способы исправления

Ошибка could not read OK from ADB server возникает в тот момент, когда клиент adb отправляет запрос фоновому серверу, но не получает от него ожидаемый ответ OKAY — обычно из-за того, что сервер не запустился, повис или его порт занят другим процессом. В результате команды вроде adb devices либо зависают, либо выдают сообщение об ошибке, и подключение к смартфону становится невозможным.

Проблема встречается на Windows чаще всего, но возможна и на macOS с Linux. Хорошая новость: в подавляющем большинстве случаев она решается программно, без переустановки системы и без риска для данных на устройстве. Ниже разберём, как устроен обмен между клиентом и сервером ADB, что именно ломается и какие шаги проверять в первую очередь.

Что означает эта ошибка и как работает ADB

Инструмент ADB (Android Debug Bridge) состоит из трёх компонентов: клиента, который вы запускаете в терминале, сервера, работающего в фоне на компьютере, и демона adbd на самом Android-устройстве. Когда вы вводите команду, клиент подключается к серверу через локальный TCP-порт 5037 и ждёт от него служебный ответ.

Сообщение could not read OK from ADB server означает, что это рукопожатие сорвалось: сервер либо не ответил вообще, либо ответил не так, как ожидал клиент. Типичные причины — несовпадение версий клиента и сервера, занятый порт, повреждённый процесс сервера или блокировка со стороны антивируса.

  • 🔌 Конфликт версий — на ПК установлено несколько копий adb.exe (например, из Android Studio, из отдельного архива platform-tools и из комплекта прошивальщика), и клиент одной версии пытается говорить с сервером другой.
  • 🚪 Занятый порт 5037 — другой процесс уже слушает этот порт, и сервер ADB не может стартовать.
  • 🛡️ Антивирус или брандмауэр — блокирует локальное соединение или сам исполняемый файл.
  • 📱 Эмуляторы и сторонние утилитыBlueStacks, LDPlayer, Nox и подобные программы используют собственные копии ADB и перехватывают подключение.

Быстрая диагностика: с чего начать

Прежде чем менять настройки, выполните простую проверку. Откройте командную строку и введите команду adb version. Если клиент отвечает и показывает номер версии, сам исполняемый файл в порядке — проблема на стороне сервера или окружения.

Затем проверьте, запущен ли сервер и не завис ли он. Для этого используйте последовательность команд:

adb kill-server

adb start-server

adb devices

Если после перезапуска список устройств отображается (даже пустой), сервер работает, и дальше стоит искать проблему в кабеле, драйверах или разрешении отладки на смартфоне. Если же ошибка повторяется — переходите к проверке порта и конфликтующих процессов.

Проверка порта 5037 и конфликтующих процессов

Сервер ADB по умолчанию слушает порт 5037. Если его заняла другая программа, сервер не сможет запуститься корректно. В Windows проверить это можно командой:

netstat -ano | findstr :5037

В выводе будет указан PID процесса, который использует порт. Найдите его в Диспетчере задач на вкладке «Подробности» и определите, что это за программа. Если это старая копия adb.exe, завершите процесс и повторите запуск сервера. Если порт заняла сторонняя утилита — закройте её или удалите, если она не нужна.

⚠️ Внимание: не завершайте процессы, назначение которых вам неизвестно, особенно системные. Завершайте только те, что точно относятся к ADB или установленным вами эмуляторам и прошивальщикам.

☑️ Проверка конфликтов ADB

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

Конфликт нескольких копий ADB на компьютере

Одна из самых частых причин ошибки — несколько версий platform-tools на одном ПК. Клиент новой версии при старте проверяет версию уже запущенного сервера, и при несовпадении обмен может завершиться именно этой ошибкой.

Чтобы найти все копии, выполните в командной строке where adb. Если путей несколько, оставьте одну актуальную версию — например, свежий пакет platform-tools с официального сайта для разработчиков Android — и удалите или переименуйте остальные. Также проверьте переменную окружения PATH: в ней не должно быть устаревших путей к старым копиям ADB.

📊 Что помогло вам устранить ошибку could not read OK from ADB server?
Перезапуск сервера (kill-server / start-server)
Удаление лишних копий ADB
Закрытие эмулятора или конфликтующей программы
Переустановка драйверов устройства

Драйверы, кабель и настройки смартфона

Если сервер запускается, но устройство не определяется, проблема может быть на стороне подключения. Проверьте, что на смартфоне включена отладка по USB: обычно она находится в разделе «Для разработчиков», который активируется после нескольких нажатий на пункт «Номер сборки» в сведениях о телефоне. Точные названия пунктов зависят от оболочки производителя — сверьтесь с инструкцией к вашей модели.

Также проверьте сам кабель: часть USB-кабелей поддерживает только зарядку и не передаёт данные. Попробуйте другой кабель и другой USB-порт, желательно напрямую, без хабов. В Диспетчере устройств Windows смартфон не должен отображаться с жёлтым значком ошибки — если отображается, переустановите драйвер производителя.

Сводная таблица симптомов и решений

СимптомВероятная причинаДействие
Ошибка сразу при любой команде adbСервер не запущен или повисadb kill-server, затем adb start-server
Ошибка после установки новой программыКонфликт версий ADBНайти копии через where adb, оставить одну
Порт 5037 занят чужим процессомЭмулятор или старая копия ADBЗавершить процесс через Диспетчер задач
Сервер работает, устройства нет в спискеКабель, драйвер или отладка отключенаСменить кабель, включить отладку, переустановить драйвер
Устройство видно как unauthorizedНе подтверждён запрос на смартфонеРазрешить отладку на экране устройства

Когда ничего не помогает

Если перечисленные шаги не дали результата, попробуйте полностью чистый сценарий: завершите все процессы ADB, удалите все копии platform-tools, перезагрузите компьютер, скачайте свежий архив platform-tools с официального источника и распакуйте его в простую папку без кириллицы в пути, например C:\platform-tools.

Дополнительно временно отключите антивирус и проверьте, не блокирует ли он локальные соединения adb.exe. Если после этого сервер запускается — добавьте папку с ADB в исключения защитного ПО. В редких случаях помогает смена порта сервера через переменную окружения ANDROID_ADB_SERVER_PORT, но делать это стоит только если порт 5037 принципиально недоступен в вашей системе.

⚠️ Внимание: не скачивайте ADB и драйверы с неофициальных сайтов и «сборок» — в таких архивах встречаются устаревшие или модифицированные файлы, которые сами становятся источником ошибок. Используйте официальный пакет platform-tools от Google.
Почему ошибка появляется внезапно, хотя вчера всё работало

Чаще всего виновато фоновое обновление: Android Studio или эмулятор обновили свою копию ADB, и версии клиента и сервера разошлись. Также возможен сценарий, когда система «убила» зависший процесс сервера, а клиент продолжает обращаться к старому соединению.

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

Опасна ли эта ошибка для смартфона или данных?

Нет. Ошибка касается только связи между клиентом и сервером ADB на компьютере. Данные на устройстве не затрагиваются, а команды kill-server и start-server полностью безопасны.

Поможет ли переустановка Windows?

Крайне маловероятно, что это потребуется. Ошибка почти всегда вызвана конфликтом версий ADB, занятым портом или блокировкой антивирусом — всё это решается в рамках текущей системы.

Может ли виноват антивирус?

Да, возможная причина — блокировка локального TCP-соединения или помещение adb.exe в карантин. Проверьте журнал антивируса и добавьте папку platform-tools в исключения.

Что делать, если устройство определяется как unauthorized?

На экране смартфона должен появиться запрос на разрешение отладки — подтвердите его. Если запрос не появляется, отключите и снова включите отладку по USB, переподключите кабель и повторите adb devices.

Нужен ли root для исправления этой ошибки?

Нет. Ошибка возникает на стороне компьютера и не имеет отношения к правам root на устройстве. Разблокировка загрузчика или рутирование для её устранения не требуются.