В списке устройств ADB не отображается телефон

Я недавно установил adb и fastboot:

apt-get install android-tools-adb android-tools-fastboot

После завершения установки я подключил свое устройство и выполнил следующую команду:

$ adb devicesList of devices attached

Я включил отладку в настройках телефона.

Я думаю, что делаю это неправильно - я не знаю. Пожалуйста, объясните мне правильный процесс.

Использование Ubuntu 16.01. Устройство: Ю Юфория

Обновление правка:

После всех неудачных попыток он все еще не обнаружен в adb.Однако в fastboot режим, добавляя команду vendor id для моего устройства, fastboot -i 0x2a96 devices как уже упоминалось здесь работает

fastboot -i 0x2a96 devices

возвращенный

7dd91912        fastboot

Другие команды в fastboot режим, как указано на той же странице, упомянутой выше, также работает, когда была добавлена опция команды идентификатора поставщика.

Наконец-то устройство было обнаружено в adb под adb devices команда путем перезапуска сервера adb с правами root, как указано выше здесь в Диагностика adb раздел.

sudo adb kill-serversudo adb start-server

После этого adb devices возвращенный

7dd91912      unauthorized

с подсказкой на устройстве для авторизации RSA. После авторизации

adb devices теперь возвращается

72291912      device

Вы установили adb запрограммируйте правильно. Отладка Android по умолчанию не активирована. Опция активации скрыта. Вам нужно будет раскрыть его с помощью следующих шагов:

Идти к Настройки> - О телефоне> - (прокрутите до) Номер сборки>> - (Нажмите на него около 7 раз) - (Вы должны получить уведомление Вы включили параметры разработки)

Теперь у вас появится новый пункт меню в настройках под названием Параметры разработчика.

Перейдите в эту опцию и включите Отладка по USB вариант.

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

После включения отладки вам, возможно, придется перезапустить сервер. Вы можете сделать это с помощью следующих команд:

$ adb kill-server$ adb start-server

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

Как настроить обнаружение устройств в Ubuntu Linux:

С помощью sudo, создайте этот файл: /etc/udev/rules.d/51-android.rules.

Используйте этот формат для добавления каждого поставщика в файл:

SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"

В этом примере идентификатор поставщика указан для HTC. Назначение РЕЖИМА определяет разрешения на чтение/запись, а ГРУППА определяет, какой группе Unix принадлежит узел устройства.

Если вы не знаете свой идентификатор поставщика, вы можете получить это из lsusb, это строка после идентификатора. Если lsusb не сообщает о вашем устройстве, попробуйте проверить grep USB /var/log/kern.log | less для идентификатора поставщика (например, строка New USB device found, idVendor=1bbb, idProduct=0167).

После того, как вы создали/обновили 51-android.rules файл, выполнить:

sudo chmod a+r /etc/udev/rules.d/51-android.rules

Жильберто Альбино дал мне ключ к разгадке.
Никто не говорит вам, что некоторые USB-кабели хороши только для зарядки устройств, а не для передачи данных. Вы должны выяснить, что у вас есть для себя.
Я думаю, что кабели только для зарядки тоньше.

У меня была та же проблема, и, перепробовав все вуду, доступные в Интернете, я сам обнаружил, что устройство распознается только по USB-кабелю производителя, который прилагается к устройству.

Я еще не уверен, почему это происходит, но с моим тестовым устройством это распознается только в том случае, если я принимаю временно запрос на отладку. Если я поставлю галочку "всегда разрешать с этого компьютера", он исчезнет с adb devices.

Включите отладку по USB на устройстве

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

Идентифицировать устройство

Сначала нам нужно знать, как устройство идентифицируется по шине USB. Для этого с помощью устройства Android НЕ подключившись, возьмите оболочку и запустите команду lsusb. Затем подключите устройство и снова запустите команду. Найдите новую строку. Для Уайлиф Свифт это "безымянное устройство";:

Bus 004 Device 003: ID 2970:2282

Настройка правил для АБР

Теперь нам нужны цифры в конце приведенной выше строки: 2970:2282. В них указывается поставщик (2970) и само устройство (2282). Имея эти детали, нам нужен корень оболочку на нашей машине Linux для редактирования (или создания, если она еще не существует) /etc/udev/rules.d/51-android.rules файл. Там добавьте строку для вашего устройства. Следующая строка примера показывает, как она выглядит для Уайлиф Свифт:1

SUBSYSTEMS=="usb", ATTRS{idVendor}=="2970", ATTRS{idProduct}=="2282", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"

Если у вас другое устройство, замените идентификаторы поставщика и продукта на те, которые вы нашли выше при запуске lsusb. Краткое объяснение строки:

  • SUBSYSTEMS=="usb": очевидно, что это правило предназначено только для USB ;)
  • ATTRS{idVendor}=="2970": идентификатор поставщика устройства, для которого предназначено это правило.
  • ATTRS{idProduct}=="2282": идентификатор устройства
  • MODE="0666": разрешения, которые должен получить узел устройства. 0666 является довольно слабым, предоставляя каждому пользователю в вашей системе разрешение на чтение и запись, поэтому, если вы обеспокоены, вы можете попробовать заменить это на 0660 (предоставляя только владельцу и группе чтение-запись и запрещая все другим).
  • GROUP="androiddev": к какой группе должен принадлежать узел устройства. Это должна быть группа, к которой принадлежат пользователи, предназначенные для работы с устройством.
  • SYMLINK+="android%n": просто чтобы дать узлу красивое имя, чтобы вам было легче найти его в /dev (в моем случае это позже появилось там как /dev/android5)

Это правило, введенное в /etc/udev/rules.d/51-android.rules, мы должны сказать udev чтобы использовать его. Самый безопасный способ (рядом с перезагрузкой ;) - это перезапуск udev обслуживание. В зависимости от вашего дистрибутива Linux это можно сделать либо с помощью service udev restart или /etc/init.d/udev restart.

Сделав это, оставьте корневую оболочку. Отключите и снова подключите свое Android-устройство, попробуйте adb devices снова. Сейчас появилось большинство устройств, но не Уайлиф Свифт – который, очевидно, хочет дополнительных объятий. Если вы находитесь в такой ситуации, откройте (или создайте, если он не существует) файл ~/.android/adb_usb.ini и добавьте к нему одну строку, указав поставщика, с которым вы познакомились lsusb выше; для Быстрый это было бы 0x2970 (да, здесь вам нужно добавить к нему префикс 0x чтобы указать, что это шестнадцатеричное число). Затем перезапустите сервер ADB: adb kill-server && adb start-server. Отключите и снова подключите устройство. Сейчас adb devices должен это увидеть.

Подключение устройства

Возможно, вы заметили adb devices сказал тебе что-то вроде 0123456789ABCDEF unauthorized. Это нормально и для вашей (устройств) безопасности: сначала ваш компьютер должен быть авторизован, чтобы иметь возможность получить доступ к устройству. Так просто выдать adb shell теперь – который будет завершен с помощью error: device unauthorized. Please check the confirmation dialog on your device. Следуйте этому совету (при необходимости установите флажок для постоянной авторизации вашего компьютера), и все готово: теперь вы можете использовать абр чтобы получить доступ к вашему устройству.


Обновления:

1 Обратите внимание, что в более поздних версиях Linux синтаксис правил UDEV немного изменился, например jcomeau_ictx указано в его комментарии. Для значений, которые мы нашли выше, это было бы:

SUBSYSTEM=="usb", ATTR{idVendor}=="2970", ATTR{idProduct}=="2282", MODE="0666", GROUP="plugdev", SYMLINK+="android%n"

Два отличия: теперь это SUBSYSTEM (без множественного числа), и группа изменилась с androiddev к plugdev (первое не существует в последних системах, второе существует и обычно назначается по крайней мере первому пользователю).

Кроме того, вам может потребоваться добавить идентификатор поставщика в свой ~/.android/adb_usb.ini (один идентификатор на строку в шестнадцатеричной системе счисления):

# ANDROID 3RD PARTY USB VENDOR ID LIST# 1 USB VENDOR ID PER LINE.0x2970

Источник

Вы уже авторизовали RSA-ключ компьютера?

Когда вы включаете отладку по USB в телефоне, а затем подключаете его через USB, вы должны получить запрос с вопросом, хотите ли вы разрешить КОМПЬЮТЕРУ отлаживать телефон, и он покажет вам RSA-ключ ПК для его идентификации.

Я не получил никакого такого запроса, когда подключил свой телефон к компьютеру.

@Teekin посмотрим, поможет ли это How to get Vendor ID of an Android-powered device via adb? - Stack Overflow

Я совершенно новичок - не могли бы вы, пожалуйста, объяснить? Спасибо.

На самом деле, я просто попытался выполнить настройку, и перед тем, как дать авторизацию ПК, запустив “adb devices”, телефон был указан как “автономный”, но он был там.

Снимок в темноте: если ваш телефон подключен к порту USB3, попробуйте вместо этого подключить его через USB2.

Наконец, вы могли бы рассмотреть возможность задать этот вопрос на https://android.stackexchange.com / а также

Указан ли телефон в выходных данных lsusb?

Да, телефон указан в lssub. Телефон работает под управлением CyanogenOS. В перечисленных спецификациях указано, что usb 2.0 также не обнаруживается в режиме быстрой загрузки.