Adb не видит телефон с Linux

Обновлено: 02.07.2024

adb (android debug bridge) — официальный инструмент для разработки под Android.

Обычно он активируется простым подключением устройства Android, выбором USB-отладки и проверкой подключения с помощью команды «adb devices», которая должна вернуть список с серийными номерами подключенных устройств.

Это теория. В реальном мире автоматически распознаются только устройства от известных производителей, таких как HTC, Motorola, Samsung... если ваше устройство от какого-то малоизвестного или нового производителя или даже от дешевого китайского устройства, вы получите что-то вроде этого:

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

Чтобы ваше устройство было распознано, его идентификатор должен быть добавлен в файл adb_usb.ini.

Как определить производителя:

Подключите устройство к USB-порту компьютера (включите отладку по USB).

Linux: введите команду lsusb и просмотрите список устройств


$ lsusb
Шина 001 Устройство 001: ID 1d6b:0002 Корневой концентратор Linux Foundation 2.0
Шина 002 Устройство 001: ID 1d6b:0002 Корневой концентратор Linux Foundation 2.0
Шина 001 Устройство 002: ID 8087:0020 Корпорация Intel Интегрированный концентратор согласования скорости
Шина 002 Устройство 002: ID 8087:0020 Корпорация Intel Интегрированный концентратор согласования скорости
Шина 001 Устройство 003: ID 10ab:0816 USI Co ., Ltd
Шина 002 Устройство 003: ID 04f2:b1da Chicony Electronics Co., Ltd
Шина 002 Устройство 004: ID d324:9018

Устройство Android указано последним в списке. Первая группа из четырех цифр после идентификатора — это VendorID, код, который нам нужен

Примером устройства является планшет Genesis GT-7250. Отсутствие описания производителя при использовании lsusb характерно для китайских устройств, выпускаемых в спешке и без надлежащего ухода. Обычно они просто используют базовый дизайн, выпущенный производителем ЦП и набора микросхем.

Windows: откройте Панель управления -> Система и безопасность -> Система -> Диспетчер устройств и найдите свойства устройства с именем Android Phone или Android ADB Interface.

Щелкните правой кнопкой мыши на этом устройстве и выберите "Свойства". Перейдите на вкладку "Сведения" и выберите в поле со списком идентификаторы оборудования.

Значение перед текстом USB\VID_ – это VendorID.

Как обновить файл:

Linux: в вашем домашнем каталоге должен быть скрытый каталог с именем .android, файл adb_usb.ini находится внутри этого каталога.

Обновите этот файл на своем устройстве с помощью команды

эхо 0xd324 >> adb_usb.ini

Windows: в вашей личной папке должна быть папка с именем .android, файл adb_usb.ini находится внутри этой папки.

Откройте этот файл в редакторе без специального формата, например в блокноте, и добавьте строку с VendorID

0xd324

Убедитесь, что на вашем устройстве включена отладка по USB, и проверьте, идентифицировано ли ваше устройство:

adb kill-server
* сервер не запущен *

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

Если этой папки нет, откройте окно командной строки (проводник Windows не создает папки, имена которых начинаются с точки) и введите следующие команды, чтобы создать папку и файл:

cd /d %USERPROFILE%
md .android
cd .android
echo 0xd324 >> adb_usb.ini

Готово! Теперь вы можете использовать adb и делать приятные вещи на своих устройствах Android, например разрабатывать приложения или получать root-права.

Этот пост является переводом другого поста в этом блоге, так как я понял, что получаю много обращений в поисках этой информации из США и Европы. Я надеюсь, что перевод облегчит читателям, которые не говорят по-португальски, использовать эту информацию. Не стесняйтесь предлагать исправления в грамматике или орфографии, поскольку английский не является моим родным языком.

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

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

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

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

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

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

Когда вы включаете отладку по USB в телефоне, а затем подключаете его через USB, вы должны получить приглашение с вопросом, хотите ли вы разрешить ПК отлаживать телефон, и он покажет вам ключ RSA ПК для его идентификации.< /p>

8 ответов 8

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

После этого устройства adb вернулись

с запросом на авторизацию RSA на устройстве. После авторизации

устройства adb теперь возвращаются

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

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

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

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

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

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

Я уже включил параметр "Отладка по USB", но не получаю никаких уведомлений о подключении к компьютеру

@red_speck Когда вы подключаете свое устройство, вы получаете USB-браузер содержимого или возможность просмотра содержимого? Кроме того, попробуйте запустить перезапуск сервера adb с добавленными в мой ответ kill-server и start-server.

Я не совсем понимаю: "У вас есть USB-браузер содержимого или возможность просмотра содержимого?" но если я догадываюсь, что вы имеете в виду, я думаю, что это файловый браузер USB (я могу просматривать файлы телефона - я использовал все три доступных варианта подключения USB для своего устройства - MTP, PTP и только зарядка). Я попытался перезапустить adb с помощью указанных вами команд.

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

Согласен, после целого дня, проведенного с моим компьютером и телефоном, выяснилось, что они не разговаривали из-за кабеля.

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

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

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

В этом примере идентификатор поставщика относится к HTC. Назначение MODE указывает права на чтение/запись, а GROUP определяет, какая группа Unix владеет узлом устройства.

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

Все это я сделал (идентификатор производителя для моего устройства 2a96), а также создал файл adb_usb.ini в формате .android из этого поста

Лучший способ определить идентификатор поставщика — запустить lsusb дважды: с подключенным мобильным телефоном и без него, а затем сравнить, чего не хватает.

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

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

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

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

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

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

Настройка правил для ADB

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

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

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

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

Возможно, вы заметили, что устройства adb сообщают вам что-то вроде 0123456789ABCDEF неавторизованный . Это нормально и для вашей (устройства) безопасности: сначала ваш компьютер должен быть авторизован, чтобы иметь доступ к устройству. Так что просто запустите оболочку adb сейчас, которая будет закрыта с ошибкой: устройство неавторизовано. Пожалуйста, проверьте диалоговое окно подтверждения на вашем устройстве. Следуйте этому совету (при желании установите флажок, чтобы авторизовать компьютер на постоянной основе), и все готово: теперь вы можете использовать adb для доступа к своему устройству.

Обновления:

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

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

При повсеместном распространении смартфонов возникает необходимость передачи файлов с персонального компьютера на смартфон и наоборот. Мало того, вам может понадобиться отладить определенные приложения или установить новые и т. д., для чего часто используется утилита командной строки под названием ADB или Android Debug Bridge.

Иногда люди сталкиваются с проблемой невозможности подключиться к своим смартфонам, хотя, по их словам, они все сделали правильно. Ну, не волнуйтесь, это то, для чего мы здесь. Это руководство расскажет вам, как решить проблему «Ошибка: устройство не найдено». Так что расслабьтесь, расслабьтесь и следуйте инструкциям.

Устройство ADB не найдено

Что вызывает ошибку «Устройство ADB не найдено»?

Прежде чем мы перейдем к решениям, вы можете узнать, что вызывает эту проблему. Что ж, причиной этой проблемы может быть многое —

  • Драйверы не обновлены. Драйверы — это субъекты, ответственные за взаимодействие с интерфейсом и вашей ОС. Если он не обновлен, вы можете столкнуться с этой ошибкой.
  • Отладка по USB не включена. Этот режим необходим для работы ADB на вашем Android-устройстве.
  • Выбор неправильного режима подключения. Для типа передачи, которую вы хотите инициировать, следует выбрать правильный режим подключения.

Примечание. Убедитесь, что у вас установлен ADB.

Способ 1. Включите параметры разработчика и отладку по USB

Для начала убедитесь, что на вашем устройстве включена отладка по USB, поскольку в противном случае ADB не работает. Для этого:

Способ 2: изменить режим подключения

У Android есть разные режимы подключения, которые иногда могут вызывать эту проблему. В случае с adb нам нужен MTP (Media Transfer Protocol). Следует отметить, что на вашем смартфоне могут быть файлы передачи вместо MTP, что то же самое. Для этого вам нужно сделать следующее:

Способ 3: обновить интерфейс ADB

Иногда проблема возникает из-за устаревшего драйвера интерфейса ADB. Чтобы обновить драйвер, вам нужно сделать следующее:

  1. На компьютере щелкните правой кнопкой мыши "Мой компьютер" и выберите "Диспетчер устройств".
  2. В разделе «Другие устройства» вы увидите «Интерфейс Android ADB» или «Телефон Android». Щелкните его правой кнопкой мыши и выберите «Обновить программное обеспечение драйвера». Обновление драйвера интерфейса ADB
  3. После этого выберите "Выполнить поиск драйверов на моем компьютере".
  4. Затем выберите "Позвольте мне выбрать из списка драйверов устройств на моем компьютере".
  5. Появится всплывающее окно, убедитесь, что выделен пункт «Показать все устройства», и нажмите «Далее». Выберите Показать все устройства.
  6. Выберите вариант "Установить с диска".
  7. Перейдите туда, где вы установили свой SDK (обычно это
  8. Вы можете попробовать повторно подключить устройство, если оно еще не распознало его.

    Способ 4. Установите универсальный драйвер ADB для Windows

    Если вы уверены, что вышеупомянутые решения не сработают или не сработали для вас, вам может подойти установка универсального драйвера ADB для Windows.Это довольно просто, скачайте драйвер с официального сайта и установите его.

    Способ 5: сброс процесса ADB

    Иногда бывает так, что все остальное работает, но вы все еще не можете найти свой смартфон — это означает, что вы установили драйвер USB, включили отладку USB и т. д. В таких случаях вам может помочь закрытие сервера и его повторный запуск. . Для этого введите в командной строке следующие команды

    ADB Kill/Start Server

    Способ 6. Замените кабель

    Наконец, если у вас ничего не получается, возможно, вам стоит приобрести новый кабель. Вероятность того, что ваш кабель неисправен, высока, а это означает, что независимо от того, что вы делаете, ваша проблема останется, поскольку проблема связана не с вашим драйвером, а с оборудованием. Чтобы проверить, неисправен ли ваш кабель, попробуйте следующее:

    1. Подключите кабель к порту на зарядном устройстве.
    2. Попробуйте зарядить смартфон этим кабелем.

    Если он не начинает заряжаться, это означает, что ваш кабель неисправен, и вам придется найти другой.

    У меня возникла проблема с отображением устройств ADB во время работы:

    Отладка по USB включена. В настройках разработчика включаю отладку по USB и она явно проверяется. На всякий случай я перезагрузил телефон, вышел из системы и снова зашел под своим пользователем Linux.

    добавил себя в группу "пользователей рекламы"

    вышел из системы и снова вошёл (на случай, если потребуется добавить моего пользователя в группу «adbusers»)

    пробовал другие порты USB

    * команда 'lsusb' возвращает:

    Ничего не отображается.

    Я провел поиск по форумам и нашел в основном людей с проблемами драйверов Windows. Я видел даже странные вещи, такие как отключение USB-накопителя. Я нахожусь в другой стране, и моя девушка купила мне Huawei Nova Lite. Это не мой первый выбор телефона, но это НАМНОГО лучше, чем вообще никакого телефона.

    Последнее: я создал

    Несмотря на то, что в руководстве не указано, что нужно ставить «0x» впереди. Я сделал. Я также сделал это без «0x», как показывает lsusb для идентификатора поставщика. Пока ничего.

    Последний раз редактировалось AcousticBruce (2017-06-16 15:56:03)

    Да, у меня есть предложение!

    <р>. Я НЕ состою ни в какой группе, кроме "пользователей".
    . единственные пакеты Android, которые я установил, это «android-tools» и «android-udev».
    . Мой телефон был подключен к компьютеру с помощью USB-кабеля, но ADB не смог увидеть мой телефон.

    Как исправить? Используйте другой порт USB. Мне пришлось использовать USB-порт на ЗАДНЕЙ ЧАСТИ моего компьютера.

    Попробуйте разные комбинации USB-портов и USB-кабелей. Это решит проблему?

    Да, забыл упомянуть, пробовал другие отчеты по USB. К сожалению, это не работает. Спасибо.

    Ну, я перезагрузил телефон в режим восстановления, перезагрузился, и он увидел мой компьютер, и я дал разрешение своему телефону.

    Честно говоря, я понятия не имею, как решить проблему, и это меня беспокоит. Я хочу предположить, что это был телефон и из-за его программного обеспечения.
    Это было сочетание:

    снова и снова менять USB,

    заходим в рекавери (ничего не делаем в рекавери, кроме перезагрузки).

    Я полностью следил за вики Arch Linux.

    Редактировать: одна вещь, я думаю, что поступила иначе, когда я подключил USB, я выбрал «только зарядка». Я также разрешил ADB в режиме «только зарядка», выбранном в настройках Android.

    Читайте также: