Установка и настройка рабочей среды

Рейтинг: 77.2% · 13 голосов
Полный курс по Android Debug Bridge: установка, подключение, shell, логи, dumpsys, автоматизация, root, беспроводная отладка. Уроки по главам с обсуждением.
Ответить
Аватара пользователя
android_roman
Сообщения: 45
Зарегистрирован: 11 май 2026, 05:31

Установка и настройка рабочей среды

Сообщение android_roman »

АкадемияADB: Android Debug BridgeГлава 2 из 29
Оглавление курса (29)
  1. Введение в Android Debug Bridge
  2. Установка и настройка рабочей среды (вы здесь)
  3. Подключение устройства (проводное и беспроводное)
  4. Базовые команды ADB и управление сервером
  5. Команды состояния и перезагрузки
  6. Навигация по файловой системе
  7. Управление пакетами приложений
  8. Логирование с помощью logcat
  9. Системные дампы и диагностика (dumpsys)
  10. Анализ производительности в реальном времени
  11. Эмуляция ввода (input)
  12. Управление Activity и Intent (am)
  13. Работа с оконным менеджером (wm)
  14. Захват экрана и запись видео
  15. Root-доступ и его применение
  16. Модификация системных настроек через settings
  17. Команды для поставщиков контента (content)
  18. Резервное копирование и восстановление (backup)
  19. Проброс портов и туннелирование
  20. Беспроводная отладка (Wi-Fi)
  21. Взаимодействие с эмуляторами
  22. Написание скриптов на Bash/CMD/PowerShell
  23. ADB в языках программирования
  24. Автоматизация тестирования с ADB
  25. Безопасность и лучшие практики
  26. ADB на Android TV, Wear OS и IoT
  27. Восстановление и низкоуровневые операции
  28. Расширенные возможности оболочки и инструменты
  29. Отладка самого ADB и устранение неполадок
В первой главе мы разобрали архитектуру ADB: клиент, сервер и демон adbd на устройстве. Теперь поставим инструмент так, чтобы он запускался из любого каталога, был свежей версии и не конфликтовал со старыми копиями, которые таскают с собой всякие "прошивальщики". Не торопитесь пролистывать: большая часть будущих проблем с ADB закладывается именно на этапе установки.

Откуда брать Platform Tools:

adb входит в пакет Platform Tools вместе с fastboot и парой вспомогательных утилит. Пакет обновляется отдельно от Android Studio, инсталлятора у него нет, это просто архив с бинарниками. Актуальная ветка на июнь 2026 года - 37.x.

Способ первый, SDK Manager. Если у вас стоит Android Studio, откройте Settings, затем Languages and Frameworks, Android SDK, вкладка SDK Tools. Отметьте Android SDK Platform-Tools, нажмите Apply. Файлы лягут в каталог SDK:

Код: Выделить всё

Windows: %LOCALAPPDATA%\Android\Sdk\platform-tools
macOS:   ~/Library/Android/sdk/platform-tools
Linux:   ~/Android/Sdk/platform-tools
Тот же пакет ставится из консоли утилитой sdkmanager (лежит в cmdline-tools/latest/bin внутри SDK):

Код: Выделить всё

sdkmanager "platform-tools"
[=======================================] 100% Unzipping... platform-tools/adb
Способ второй, ручная загрузка. Подходит, если Android Studio вам не нужна (тестировщику или администратору она и правда ни к чему). Google раздает архивы по постоянным ссылкам, качайте только отсюда:

Код: Выделить всё

https://dl.google.com/android/repository/platform-tools-latest-windows.zip
https://dl.google.com/android/repository/platform-tools-latest-darwin.zip
https://dl.google.com/android/repository/platform-tools-latest-linux.zip
Сторонние "сборки ADB" с файлопомоек регулярно оказываются версией 1.0.32 десятилетней давности, которая не умеет ни adb pair, ни нормальную беспроводную отладку. Если корпоративный прокси режет dl.google.com, скачайте архив с другой машины, но не меняйте источник.

Распаковывайте архив в каталог без пробелов и кириллицы в пути, например C:\platform-tools или ~/platform-tools. Путь вида C:\Users\Дмитрий\Рабочий стол\adb рано или поздно сломает какой-нибудь скрипт.

Установка на Windows:

Распаковали в C:\platform-tools, теперь добавим каталог в PATH, чтобы не писать полный путь к adb.exe. Надежный способ: Win+R, ввести sysdm.cpl, вкладка "Дополнительно", "Переменные среды", в списке переменных пользователя выбрать Path, "Изменить", "Создать", вписать C:\platform-tools.

То же самое из PowerShell:

Код: Выделить всё

$p = [Environment]::GetEnvironmentVariable('Path', 'User')
[Environment]::SetEnvironmentVariable('Path', "$p;C:\platform-tools", 'User')
Команду setx для этого использовать не надо: setx обрезает PATH до 1024 символов и можно молча потерять кусок переменной. После изменения PATH откройте новое окно терминала, уже запущенные окна старое значение не подхватят. Проверка:

Код: Выделить всё

where adb
C:\platform-tools\adb.exe
Если where показывает два пути, у вас в системе живет вторая копия adb (часто от MiFlash, Odin-наборов или древнего "ADB Installer 1.4.3"). Лечится удалением лишнего каталога из PATH, иначе будете ловить сообщение о несовпадении версий клиента и сервера.

Теперь драйверы. Windows общается с ADB-интерфейсом телефона через USB-драйвер. На Windows 10/11 свежие устройства часто подхватываются автоматически через Windows Update, но рассчитывать на это не стоит. Правило такое: для Pixel и Nexus ставится Google USB Driver, для остальных - драйвер производителя (OEM). Google USB Driver устанавливается через тот же SDK Manager (пакет Google USB Driver на вкладке SDK Tools) и попадает в:

Код: Выделить всё

%LOCALAPPDATA%\Android\Sdk\extras\google\usb_driver
Дальше Диспетчер устройств, устройство с желтым значком, "Обновить драйвер", "Найти драйверы на этом компьютере", указать каталог выше. Для Samsung драйвер ставится вместе с Smart Switch или отдельным пакетом Samsung USB Driver с официального сайта, у Xiaomi, Huawei и прочих свои пакеты. Полный список OEM-драйверов есть на developer.android.com, страница "Install OEM USB drivers". Признак успеха: в Диспетчере устройств появляется Android Composite ADB Interface без восклицательных знаков. И учтите: ADB-интерфейс виден только когда на телефоне включена отладка по USB, этим займемся в главе 3.

При первом запуске adb брандмауэр Windows может спросить разрешение для adb.exe, разрешайте, иначе будут проблемы с эмуляторами и беспроводным подключением.

Установка на macOS:

Самый короткий путь, если есть Homebrew:

Код: Выделить всё

brew install --cask android-platform-tools
Бинарники попадут в Caskroom, а симлинки в стандартный каталог brew, который уже в PATH:

Код: Выделить всё

which adb
/opt/homebrew/bin/adb
На Intel-маках путь будет /usr/local/bin/adb. Обновление потом одной командой brew upgrade.

Ручной вариант без Homebrew:

Код: Выделить всё

cd ~
curl -O https://dl.google.com/android/repository/platform-tools-latest-darwin.zip
unzip platform-tools-latest-darwin.zip
echo 'export PATH="$HOME/platform-tools:$PATH"' >> ~/.zshrc
source ~/.zshrc
Про права. Утилита unzip сохраняет исполняемые биты, поэтому chmod обычно не нужен. А вот если архив скачан браузером и распакован двойным кликом, macOS навешивает на файлы карантинный атрибут, и Gatekeeper при запуске может ругаться, что разработчик не подтвержден. Снимается так:

Код: Выделить всё

xattr -dr com.apple.quarantine ~/platform-tools
Загрузка через curl этой проблемы не создает, карантин вешается только на файлы из браузера. Текущие сборки darwin универсальные, на Apple Silicon работают нативно, Rosetta не нужна.

Установка на Linux:

Вариант через пакетный менеджер:

Код: Выделить всё

sudo apt install adb fastboot      # Debian / Ubuntu
sudo dnf install android-tools     # Fedora
sudo pacman -S android-tools       # Arch
Минус: в репозиториях LTS-дистрибутивов пакет отстает, в Ubuntu 24.04 лежит ветка 34.x при актуальной 37.x. Для повседневной работы хватит, но adb из дистрибутива может не знать новых флагов и хуже дружить с Android 15/16. Если нужна свежая версия, распакуйте архив Google и пропишите PATH:

Код: Выделить всё

cd ~
curl -O https://dl.google.com/android/repository/platform-tools-latest-linux.zip
unzip platform-tools-latest-linux.zip
echo 'export PATH="$HOME/platform-tools:$PATH"' >> ~/.bashrc
source ~/.bashrc
Каталог дописан в начало PATH, поэтому свежий adb перекроет системный из apt.

Главная линуксовая специфика - права доступа к USB. Демон adb работает от обычного пользователя, и если udev не выдал права на устройство, увидите вот это:

Код: Выделить всё

adb devices
List of devices attached
2a8f41d7    no permissions (user in plugdev group; are your udev rules wrong?); see [http://developer.android.com/tools/device.html]
Чинится udev-правилом. Сначала узнаем vendor ID устройства:

Код: Выделить всё

lsusb
Bus 003 Device 009: ID 2717:ff48 Xiaomi Inc. Mi/Redmi series (MTP + ADB)
Здесь 2717 и есть vendor ID (Google 18d1, Samsung 04e8). Создаем правило и перечитываем их:

Код: Выделить всё

sudo tee /etc/udev/rules.d/51-android.rules >/dev/null <<'EOF'
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0664", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0664", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="2717", MODE="0664", GROUP="plugdev"
EOF
sudo udevadm control --reload-rules
sudo udevadm trigger
Пользователь должен состоять в группе plugdev:

Код: Выделить всё

sudo usermod -aG plugdev $USER
После usermod нужен повторный вход в сессию, группа в текущей не подхватится. На дистрибутивах с systemd вместо plugdev можно написать TAG+="uaccess", тогда права получит активный пользователь за консолью. В Debian/Ubuntu готовый набор правил ставится пакетом android-sdk-platform-tools-common, при установке adb из apt он подтягивается сам. После правки правил переткните кабель и убейте старый сервер командой adb kill-server, об управлении сервером подробно поговорим в главе 4.

Проверка установки:

На любой ОС проверка одинаковая:

Код: Выделить всё

adb version
Android Debug Bridge version 1.0.41
Version 37.0.0-14910828
Installed as /home/user/platform-tools/adb
Running on Linux 6.8.0-58-generic (x86_64)
Читаем вывод: 1.0.41 это версия протокола клиент-сервер, она не менялась годами, а вот строка Version 37.0.0 это версия самих Platform Tools, и именно на нее смотрим при обновлениях. Строка Installed as показывает, какой именно бинарник запустился, бесценно при охоте на дубликаты в PATH.

Полная справка по командам:

Код: Выделить всё

adb help
Android Debug Bridge version 1.0.41
Version 37.0.0-14910828
global options:
 -a                       listen on all network interfaces, not just localhost
 -d                       use USB device (error if multiple devices connected)
 -e                       use TCP/IP device (error if multiple TCP/IP devices available)
 -s SERIAL                use device with given serial (overrides $ANDROID_SERIAL)
...
Вывод длинный, там сгруппированы все разделы, которые мы будем проходить до конца курса: general, networking, file transfer, app installation. Полезно проглядеть его один раз целиком.

Контрольный запуск сервера:

Код: Выделить всё

adb devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
Пустой список это нормально, устройство мы подключим в следующей главе. Сообщения про daemon означают, что фоновый сервер поднялся на порту 5037.

Частые ошибки напоследок. "adb не является внутренней или внешней командой" - PATH не прописан или терминал открыт до изменения PATH. Команда adb version показывает старую версию при свежескачанном архиве - в PATH раньше стоит другой каталог с adb, ищите через where adb или which -a adb. И классика:

Код: Выделить всё

adb server version (40) doesn't match this client (41); killing...
Это значит, что сервер был запущен другой копией adb (часто его держат фирменные утилиты вроде HiSuite или старый бинарник из другого каталога). Клиент сам перезапустит сервер, но если сообщение выскакивает постоянно, добивайте лишние копии adb на машине, оставьте одну.

Среда готова. В главе 3 подключим реальное устройство: включим режим разработчика, отладку по USB, разберем авторизацию по RSA-ключу и беспроводное подключение.
👍3 ❤️2 🔥4 😄 🤔1
✔ Лучший ответ сформирован автоматически — honkey
android_roman писал(а):setx обрезает PATH до 1024 символов и можно молча потерять кусок переменной подтверждаю на собственной шкуре. года два назад прописывал так adb на рабочей машине, setx молча откусил хвост PATH и у меня отвалился git и половина тулчейна. полдня восстанавливал по памяти. только GUI или PowerShell, как в уроке
Перейти к ответу →
Аватара пользователя
honkey
Сообщения: 1
Зарегистрирован: 15 май 2026, 01:50

Re: Установка и настройка рабочей среды

Сообщение honkey »

✔ Лучший ответ — сформирован автоматически
android_roman писал(а):setx обрезает PATH до 1024 символов и можно молча потерять кусок переменной
подтверждаю на собственной шкуре. года два назад прописывал так adb на рабочей машине, setx молча откусил хвост PATH и у меня отвалился git и половина тулчейна. полдня восстанавливал по памяти. только GUI или PowerShell, как в уроке
👍 ❤️ 🔥1 😄 🤔
Аватара пользователя
sngtag12
Сообщения: 1
Зарегистрирован: 15 май 2026, 20:57

Re: Установка и настройка рабочей среды

Сообщение sngtag12 »

а если на убунте уже стоит adb из apt, а я сверху распаковал свежий архив от гугла, они не подерутся? правильно понял что раз ~/platform-tools дописан в НАЧАЛО PATH, то всегда будет браться свежий, а apt-шный просто лежит мертвым грузом? или лучше apt remove adb сделать для чистоты
👍1 ❤️1 🔥 😄 🤔
Аватара пользователя
medico
Сообщения: 2
Зарегистрирован: 15 май 2026, 00:12

Re: Установка и настройка рабочей среды

Сообщение medico »

на маке м2 ставил каском через brew, вообще никаких танцев с карантином, и обновляется потом через brew upgrade вместе со всем остальным. ручную установку имхо есть смысл делать только если homebrew нет и ставить его лень. кстати спасибо за which -a adb, нашел у себя вторую копию в каталоге от старой студии
👍3 ❤️ 🔥 😄 🤔
Аватара пользователя
kotlinwizard
Сообщения: 2
Зарегистрирован: 21 май 2026, 02:57

Re: Установка и настройка рабочей среды

Сообщение kotlinwizard »

у меня redmi note 12, win 11. телефон в проводнике виден, файлы перекидываются, а adb devices пустой и в диспетчере устройств никаких желтых значков нет. это точно драйвер или я зря грешу на него? отладку по usb на самом телефоне еще не включал, до 3 главы не дошел
👍 ❤️3 🔥 😄 🤔
Ответить
← Предыдущая глава
Введение в Android Debug Bridge
Следующая глава →
Подключение устройства (проводное и беспроводное)

Все главы курса «ADB: Android Debug Bridge»

Поделиться темой: ✈ Telegram VK

Вернуться в «ADB: Android Debug Bridge»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость