Я не могу заставить мой телефон Nexus 4 распознаваться ADB в Ubuntu (12.04 с установленным более новым ядром: 3.8.0-30-generic). На телефоне включен режим разработчика.
Устройство отображается в lsusb :
$ лсусб ... Шина 003 Устройство 034: ID 18d1:4ee5 Google Inc. ...
Но когда я запускаю устройства adb, я получаю пустой список. Я нашел много сообщений в Интернете об этой проблеме, но ни один из них не решает проблему. Есть два решения.
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4ee5", MODE="0666" GROUP="androiddev", SYMLINK+="android%n" SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", SYMLINK+="android_adb", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee5", MODE="0666", OWNER="my-login"
После добавления этого я установил разрешения для файла правил на 644 и перезагрузил ПК / перезапустил udev, перезапустил телефон и подключил свой Nexus 4.
эхо 0x18d1 >> ~/.android/adb_usb.ini
Я запускал устройства adb как root и обычный пользователь, но получаю только пустой список:
$ adb устройства * демон не запущен. запустив его сейчас на порту 5037 * * демон успешно запущен * Список подключенных устройств
Любые идеи о том, как решить эту проблему? Любая помощь предложений будет принята с благодарностью.
Недостаточно сделать так, чтобы страница параметров разработчика появилась в меню настроек (путем многократного нажатия на номер сборки). На этой странице есть параметр Отладка по USB , который по умолчанию отключен.
Когда отладка по USB включена, при подключении вашего устройства к ПК через USB появляется уведомление «Отладка по USB подключена» независимо от того adb
, запущена ли она в данный момент на ПК.
Для получения более полного набора инструкций о том, как настроить правила Nexus 4 udev в Ubuntu, следуйте этим инструкциям:
Вы можете найти идентификатор поставщика для устройств, подключенных через usb, с помощью следующей команды linux:
lsusb
Это создаст список всех подключенных USB-устройств, поэтому перед этим убедитесь, что ваше устройство подключено.
Bus 001 Device 004: ID 18d1:4ee2 Google Inc.
Первая часть поля после идентификатора — это идентификатор поставщика (18d1), а вторая часть соответствует режиму, в котором подключено устройство. В этом случае 4ee2 соответствует режиму MTP с включенной отладкой.
Чтобы иметь возможность обнаруживать телефон Nexus 4 под Ubuntu, в первую очередь необходимо создать правильные правила udev, которые позволят системе обнаруживать телефон.
Эти правила udev должны обрабатывать 4 разных случая:
Они будут объявлены в /etc/udev/rules.d/99-android.rules
. Если файл уже существует, просто добавьте его содержимое в конец.
# sudo gedit /etc/udev/rules.d/99-android.rules
Ниже содержание должно быть добавлено. Обязательно замените поле your-login вашим правильным именем пользователя, под которым вы вошли в систему.
# Google Nexus 4 16 Gb
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee1", MODE="0666", OWNER="your-login" # MTP media (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0666", OWNER="your-login" # MTP media with USB debug on(multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee5", MODE="0666", OWNER="your-login" # PTP media (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee6", MODE="0666", OWNER="your-login" # PTP media with USB debug on (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0666", OWNER="your-login" # Bootloader
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666", OWNER="your-login" # Recovery
После этого сервис udev необходимо перезапустить.
# sudo service udev restart
Обратите внимание, что в некоторых случаях также необходимо перезапустить adb с помощью:
adb kill-server
adb start-server
Или полностью перезагрузите систему командой:
sudo reboot -n
Повторное подключение USB-кабеля (вместо перезагрузки) также может помочь.
Если вы только что включили параметр отладки ADB на своем телефоне и создали это новое соединение, команда ADB может отображать ваше устройство как unauthorized
. Просто проверьте экран своего телефона, чтобы авторизовать новое соединение.
Большая часть этой информации была найдена на http://bernaerts.dyndns.org/android/267-android-nexus4-root-twrp-ubuntu . Это руководство по рутированию для Nexus 4 на Ubuntu. Я использовал только первый шаг этого руководства.
sudo
. Телефон подключается в режиме MTP с отключенной отладкой.Я использую Ubuntu 14.04 LTS и обнаружил, что мне нужно запустить adb с правами root, чтобы он мог обнаружить мой телефон. Только что я запустил (из каталога platform-tools) ./adb devices
и получил пустой список. Я перезапустил adb как root, запустив, ./adb kill-server
а затем sudo ./adb start-server
. Теперь adb devices
возвращает:
List of devices attached
01d17087d29dec60 device
А раньше это выглядело так:
Список подключенных устройств
К вашему сведению: недавно я обновил версию Android с 4.4 до 5.0 на своем телефоне, и ADB больше не отображал устройство как подключенное. Кажется, что метод подключения USB MTP был правильным, прежде чем теперь должен быть PTP .
Луис де Соуза
Дэн Халм
Луис де Соуза
adb
, потому что сенсорный экран сломан. У меня нет доступа ни к одному из его меню и приложений. Есть ли другой способ активировать эту функцию отладки USB?