ADB на Ubuntu не признает Nexus 4

Я не могу получить свой телефон Nexus 4, признанный ADB на Ubuntu (12.04 с более новым ядром: 3.8.0-30-generic). Режим разработчика включен на телефоне.

Устройство отображается в lsusb :

$ lsusb
...
Автобус 003 Устройство 034: ID 18d1: 4ee5 Google Inc.
...

Но когда я запускаю adb devices , я получаю пустой список. Я нашел много сообщений в Интернете об этой проблеме, но никто из них не решает проблему. Существует два решения.

  • Добавьте правило в /etc/udev/rules.d/51-android.rules . Я нашел различные варианты содержания этого файла. В большинстве случаев значение idVendor и idProduct должно быть установлено на основе вывода lsusb . Ниже приведены некоторые примеры, которые я пробовал
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.

  • Добавьте идентификатор поставщика в ~ /.android /adb_usb.ini.
echo 0x18d1> ~ /.android /adb_usb.ini

Я запускал adb devices как пользователь root и обычного пользователя, но я получаю только пустой список:

$ adb устройства
* daemon не работает. начиная с порта 5037 *
* демон успешно запущен *
Список подключенных устройств

Любые идеи о том, как решить эту проблему? Любая помощь предложений будет принята с благодарностью.

8 голосов | спросил Lespaul86 19 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 19 Sep 2013 14:44:00 +0400 2013, 14:44:00

4 ответа


6

Недостаточно сделать страницу Параметры разработчика в меню настроек (путем многократного нажатия на номер сборки). На этой странице есть опция Отладка USB , которая по умолчанию отключена.

Когда включена USB-отладка, подключение вашего устройства к ПК с помощью USB приводит к появлению уведомления «Отладка USB-подключений», независимо от того, adb в настоящее время выполняется на ПК.

ответил Dan Hulme 19 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 19 Sep 2013 19:43:16 +0400 2013, 19:43:16
1

Для получения более полного набора инструкций о том, как настроить правила Nexus 4 udev на ubuntu, выполните следующие инструкции:

Как найти ваше устройство ID продавца

Идентификатор поставщика для устройств, подключенных к USB, можно найти со следующей командой linux:

lsusb

Это приведет к созданию списка всех подключенных USB-устройств, поэтому убедитесь, что ваше устройство подключено до того, как вы это сделаете.

Bus 001 Device 004: ID 18d1:4ee2 Google Inc.

Первая часть поля после ID - это идентификатор поставщика (18d1), а вторая часть соответствует режиму, в котором подключено устройство. В этом случае 4ee2 соответствует режиму MTP с отладкой.

СОЗДАТЬ ПРАВИЛО UDEV ДЛЯ NEXUS 4

Чтобы иметь возможность обнаруживать телефон Nexus 4 под Ubuntu, сначала нужно создать правильные правила udev, которые позволят системе обнаруживать телефон.

Эти правила udev должны иметь возможность обрабатывать 4 разных случая:

  • телефон подключен в режиме MTP (отключение или отключение USB)
  • телефон подключен в режиме PTP (отключение или отключение USB)
  • телефон подключен в режиме Fastboot
  • телефон, подключенный в режиме восстановления

Они будут объявлены в /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

Если вы только что включили опцию debug ADB на своем телефоне и создали это новое соединение, команда ADB может отображать ваше устройство как unauthorized , Просто проверьте экран своего телефона, затем авторизуйте новое соединение.

Кредиты

Большая часть этой информации была найдена в http: //bernaerts .dyndns.org /android /267-android-nexus4-root-twrp-ubuntu . Это укоренение для nexus 4 на ubuntu. Я использовал только первый шаг этого руководства.

ответил hcpl 6 Jpm1000000pmMon, 06 Jan 2014 14:47:50 +040014 2014, 14:47:50
1

Я запускаю Ubuntu 14.04 LTS, и я обнаружил, что мне нужно запустить adb с правами root для обнаружения моего телефона. Только сейчас я запустил (из каталога инструментов платформы) ./adb devices и создал пустой список. Я перезапустил adb как root, запустив ./adb kill-server, а затем sudo ./adb start-server

List of devices attached 
01d17087d29dec60    device

Если раньше он выглядел так:

Список подключенных устройств

ответил the.laurence 3 J0000006Europe/Moscow 2015, 10:02:41
0

FYI: Недавно я обновил версию Android от 4,4 до 5,0 на моем телефоне, и ADB больше не показывал устройство как подключенное. Кажется, что метод подключения USB MTP был правильным, прежде чем он теперь должен быть PTP .

ответил flowtron 3 J0000006Europe/Moscow 2015, 14:32:43

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132