Adb не видит телефон linux
Я прочитал много статей об этой проблеме, но не могу ее решить. Я решил установить приложение для разработчиков на телефон с помощью Wi-Fi. Для этого мне нужно кое-что сделать с моим телефоном. Первый шаг - разблокировать загрузчик. Я ставлю на шаг 8, fastboot oem get_identifier_token показывает информацию < waiting to device > . adb видит мое устройство, но fastboot не может. Идея?
Мой телефон HTC Wildfire S и вот шаги, которые я выполняю:
- Я перезагрузил телефон и вошел в FASTBOOT USB режим
- Я пытался запустить fastboot oem get_identifier_token команду, но безуспешно.
Я использую Windows 7 Professional, и мой телефон распознается как HT1CSTR05155 .
Какая модель телефона, и какие инструкции вы следуете? Вы перезагрузили телефон в режиме fastboot (например, с помощью adb reboot bootloader )? Какую ОС вы используете на компьютере, и как он распознает телефон в то время? Вы обновили загрузчик? Вы должны увидеть ***LOCKED*** на экране телефона после загрузки в загрузчик, в противном случае у вас нет правильной версии загрузчика для разблокировки. Также убедитесь, что телефон отображается в Диспетчере устройств без каких-либо вопросительных знаков при вызове fastboot oem get_identifier_token - если вы видите знак вопроса там, это означает, что драйвер fastboot установлен неправильно.Запустите fastboot от имени пользователя root или с помощью sudo.
если sudo fastboot oem unlock не работает, войдите в систему как пользователь root sudo -s , затем запустите fastboot oem unlock .Вы перезагружаете устройство в загрузчик и вводите fastboot USB в меню загрузчика?
adb reboot bootloader
Затем найдите инструкции на экране, чтобы войти в режим быстрой загрузки.
Мой fastboot не обнаружил устройство, но adm работал нормально, и ваш ответ привел меня к тому, что я пропустил.Для ADB и fastboot требуются разные драйверы USB.
Хотя вы можете видеть ваше устройство под adb, когда ваш телефон включен, fastboot не обнаружит его до тех пор, пока вы не установите для него драйвер, и, следовательно, будет отображаться «ожидание устройства».
Вы можете выполнить следующие шаги:
- Откройте диспетчер устройств и перезагрузите устройство для быстрой загрузки, одновременно нажав кнопки увеличения, уменьшения и включения питания.
- Вы заметите, что диспетчер устройств обновляется, и теперь ваш телефон имеет желтый значок
- Загрузите драйвер Google USB , это zip-файл, поэтому распакуйте его в свой локальный каталог.
- Щелкните правой кнопкой мыши на желтом треугольнике для вашего устройства и обновите драйвер, выберите параметр обновления из локального хранилища и выберите папку «usb_driver» в разделе извлеченных файлов на предыдущем шаге.
- Теперь вы готовы, fastboot oem unlock обнаружит устройство сейчас
Я не сразу понял, но есть разные драйверы ADB и драйверы Fastboot. Я установил драйверы google usb с дополнительными компонентами SDK, и ADB работал отлично, но я получил «ожидающее устройство», пытаясь прошиться в режиме fastboot.
Я зашел в диспетчер устройств с панели управления и увидел устройство «Android 1.0» с желтым значком, показывающим, что оно работает неправильно. Мне пришлось обновить драйвер и выбрать из списка существующих драйверов, у которых была запись fastboot.
Единственное, что я сделал перед запуском в fastboot USB, - это установил драйверы HTC для телефона на Windows 7 и проверил, что телефон обнаружен, когда Android запущен и работает.
Проблема: режимы adb и fastboot для одного устройства Android распознаются как отдельные устройства под Windows
Сценарий: устройство отображается с, adb devices но не обнаруживается с, fastboot devices и другие предложения здесь не работают; вы по-прежнему сталкиваетесь с «ожиданием устройства» в Windows и не можете выбрать драйвер для установки с помощью ответа rahul pandey, используя драйвер Google USB .
Возможное решение: вручную обновить драйвер для вашего устройства в диспетчере устройств, пока он подключен в режиме быстрой загрузки
- Загрузите и установите драйверы USB для Android для вашего устройства. Например, драйверы Samsung для телефонов Samsung или (почтенный) Google Galaxy Nexus
- Перезагрузите устройство в режиме fastboot с помощью adb reboot bootloader или одновременно нажимая кнопки Volume Up + Volume Down + Power
- Открыть диспетчер устройств
- Отключите / подключите устройство Android, чтобы вы могли легко найти нераспознанное устройство в списке.
- В разделе « Другие устройства» найдите свой телефон Android с желтым треугольником.
- Щелкните правой кнопкой мыши на ней и выберите: Update driver > Browse my computer for driver software > Let me pick from a list of available drivers on my computer
- Найдите только что установленный драйвер и выберите его. Для моей Google Galaxy Nexus это было Samsung Android ADB Interface .
Если повезет, это решит вашу проблему. Теперь вы можете использовать метод разблокировки загрузчика для вашего устройства (или, в моем случае, прошить OEM ROM).
Планшет Samsung Galaxy Tab 4 10.1, дефолтный android.
При запуске adb devices — пусто.
Если загрузиться в установщик CyanogenMod с флешки и запустить ADB Sideload, пишет Starting ADB sideload feature. и ничего не происходит — прогресс бар пустой, не наполняется, при этом если воткнуть кабель, adb devices показыает устройство 5f1ab95e08477d22 sideload . Потом через несколько минут CyanogenMod показывает Fail, но девайс всё-равно видится.
Что я делаю не так? Планшетом пользуюсь 2,5 дня, сильно не критикуйте.
Как сделать, чтоб adb увидел android?
Возможно, так происходит из-за UDEV. Если девайс видно в lsusb , но не видно в adb devices .
Нужно добавить правило в /etc/udev/rules.d/ .
ещё такой вопрос: его надо рутить, или, если буду ставить cyanogenmode, то не нужно?
lsusb видит, если б не видел — в циане не обнаруживался бы
Если тебе на 1 раз, то sudo adb start-server, если навсегда, то уже подсказали - чини правила удев )
Если перепрошивать будешь, то рутировать оригинальную прошивку не обязательно. Cyanogenmod уже рутированный.
если lsusb видит, udev тут каким боком? флешки у меня работают
то же самое. просто adb тоже демона запускает
Если девайс видно в lsusb, но не видно в adb devices, нужно добавить правило в /etc/udev/rules.d/. я, возможно, тебя не до конца понял. это ты одно предложение на два разделил зачем-то?
Гм, ты прав. Видимо, я сегодня немного не в себе. %)
т.е. правило для udev не нужно? ps. сам сейчас под анти-психическим препаратом
Нет, наоборот, нужно.
Ранее, когда у меня под линуксом возникали проблемы с adb [devices] мне приходилось добавлять правило в udev. Об это написано, например, в инструкции по конфигурации окружения для сборки AOSP.
может, надо указывать другие idVendor и idProduct? если да, то где их взять?
может, надо указывать другие idVendor и idProduct? если да, то где их взять?
Да, там указаны idVendor и idProduct для примера. Для своего девайса их нужно вытащить из lsusb:
xxxx – это idVendor, yyyy – это idProduct.
mono ★★★★★ ( 26.03.15 18:05:29 )Последнее исправление: mono 26.03.15 18:05:48 (всего исправлений: 1)
врядли это с удевом связано. как объяснить, что с CM оно видит девайс?
Enable usb debugging в девелопер меню
в каком ещё девелопер меню?
Настройки -> Для разработчиков.
KivApple ★★★★★ ( 26.03.15 23:01:53 )Последнее исправление: KivApple 26.03.15 23:02:37 (всего исправлений: 1)
у меня в андроиде нету меню "для разработчиков"
мне приходилось добавлять правило в udev.
А можно просто запустить adb от рута.
Даже небольшая сумма может помочь написанию новых статей :)
Или поделитесь ссылкой на эту статью со своими друзьями.
В этой статье инструкция как установить и пользоваться ADB на Linux, на примере дистрибутива Ubuntu 18.04.
ADB это аббревиатура от Android Debug Bridge. Это специальный сетевой интерфейс, который позволяет получить доступ к консольной оболочке (shell) на устройстве под управлением операционной системы Андроид. Тем, кто пользуется ОС Linux, очень просто понять что такое ADB. Когда интерфейс ADB включен, на устройстве (смартфоне или планшете) запускается SSH сервер. И с другого устройства можно подключиться к этому серверу через сетевой интерфейс, используя SSH клиент.
Подключиться к серверу ADB, на устройстве Андроид, можно или через WiFi или через USB. Для подключения через WiFi необходимо чтобы оба устройства были подключены к одной точке доступа. И нужно знать IP адрес целевого устройства (на котором запущен сервер). Подключаться через USB удобнее, если подключение выполняется с компьютера. Для этого, на компьютере, нужно установить драйвер ADB. Этот драйвер эмулирует сетевое подключение через USB порт. Также нужно установить специальный пакет программ, которые реализуют клиентскую часть ADB на компьютере. И драйвер и программа ADB есть и для ОС Windows и для ОС Linux.
В этой статье будет описано как установить клиентскую часть ADB, на компьютер под управлением ОС Linux, на примере дистрибутива Ubuntu 18.04.
Подсказка по терминам интерфейса Андроид
- Тап, тапнуть - короткое прикосновение пальцем к сенсорному экрану. Аналогично левому клику мышью на компьютере.
- Длинный тап - прикосновение с удержанием пальца. Аналогично правому клику мышью на компьютере.
- Свайп - движение пальцем (или несколькими) по сенсорному экрану. Свайпом например выполняется прокрутка содержимого экрана на мобильных устройствах. Или вывод дополнительных панелей управления (свайп от верхней или от боковой кромки экрана).
Как установить ADB на Linux Ubuntu
На Ubuntu установка ADB предельно проста. Нужно открыть терминал и там выполнить команду:
sudo apt-get install adb
Примечание. Пакет adb можно установить и через какую-либо программу с графическим интерфейсом - Программы, Synaptic.
Если у вас другой дистрибутив и у него в репозитарии нет пакета с ADB, тогда можно скачать пакет ADB с официального сайта.
Как пользоваться ADB на Linux Ubuntu
ADB запускается в терминале. Но вначале нужно включить серверную часть, на устройстве (смартфоне или планшете).
Как включить ADB на устройстве Андроид
Для этого нужно, в настройках найти и открыть пункт "Об устройстве". В некоторых сборках Андроид, этот пункт может называться "О телефоне". В этом пункте нужно открыть следующий пункт - "Сведения о ПО". И в этом пункте нужно 9 раз тапнуть на строке "Номер сборки". В некоторых сборках Андроид этот пункт может называться иначе, например "Версия MIUI", на устройствах Xiaomi:
Когда вы будете тапать, на этом пункте, на экране появится подсказка - сколько раз еще нужно тапнуть, чтобы стал доступен режим разработчика. После 9 тапов, будет включен режим разработчика и в настройках появится соответствующий пункт:
Пункт "Для разработчиков" может быть сразу в корневом списке настроек или во вложенном пункте настроек - это зависит от сборки Андроид.
Теперь нужно открыть пункт "Для разработчиков" и там найти и включить опцию "Отладка по USB":
При включении этой опции как раз и запускается сервер ADB на устройстве. И теперь, к этому устройству можно подключиться через ADB интерфейс. Не смотря на то, что в названии опции фигурирует USB, когда эта опция включена, подключение к ADB серверу возможно и через WiFi.
Как пользоваться ADB
Когда вы в первый раз будете подключаться к устройству, на котором включена опция "Отладка по USB", на этом устройстве будет запрос на разрешение подключения, с указанием цифровой подписи компьютера (или другого устройства):
Такой запрос выдается, когда вы соедините USB кабелем компьютер и устройство Андроид.
После подтверждения, устройство будет доступно для выполнения команд ADB. Проверить подключение устройства можно командой "adb devices". На этом скриншоте видно, что через ADB интерфейс подключено одно устройство:
Теперь можно выполнять команды ADB.
Что можно сделать с помощью ADB? Самые распространенные задачи, которые можно выполнить через ADB это:
- Создание резервной копии данных и приложений.
- Удаление предустановленных приложений, которые нельзя удалить через графический интерфейс Андроид.
- Изменение разрешений для какого-либо приложения.
Также, через ADB доступны некоторые консольные команды Linux, такие как ls, cp, top, ps, cat и так далее. Однако на Андроид доступны далеко не все консольные команды Linux.
В общем случае команды ADB выполняются с префиксом "adb shell":
Но можно и войти в shell устройства и выполнять команды уже "внутри".
Команды ADB
Удаление приложений через ADB
Удаление приложения facebook:
adb shell pm uninstall -k --user 0 'com.facebook.katana' adb shell pm uninstall -k --user 0 'com.facebook.system' adb shell pm uninstall -k --user 0 'com.facebook.appmanager'
Удаление некоторых приложений Google :
adb shell pm uninstall -k --user 0 'com.google.android.gm' // GMail adb shell pm uninstall -k --user 0 'com.google.android.apps.tachyon' // Google Duo adb shell pm uninstall -k --user 0 'com.google.android.apps.turbo' // Device Health Services
Через ADB можно удалить приложения, которые нельзя удалить через графический интерфейс Андроид, например GMail. Некоторое неудобство в том, что в команде нужно указывать название пакета приложения. В то время как в графическом интерфейсе отображается его имя. Так что, если вы хотите удалить какое-то приложение, сначала нужно узнать название пакета. Это можно сделать:
- Через свойства приложения, в списке приложений (Настройки - приложения).
- На сайте Google Play Market. Если его открыть в браузере и через поиск (по имени) найти нужное приложение и открыть страницу этого приложения, в URL этой страницы будет имя пакета.
- Через какое-либо приложение, которое работает со списком приложений.
Создание резервной копии приложений и данных
adb backup -all -f
Эта команда делает копию данных всех приложений. Перед ее исполнением, на устройстве будет дан запрос на подтверждение:
В результате будет создан файл-архив с данными всех приложений:
Этот архив даже можно посмотреть в архиваторе. Но для этого нужно этот файл предварительно обработать:
/copy.ab bs=1 skip=24 >
printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" | cat -
И теперь файл copy.tar можно открыть:
Восстановить данные из копии тоже не сложно:
Присвоение разрешений (permissions) приложению через ADB
adb shell pm grant com.gsamlabs.bbm android.permission.BATTERY_STATS
В этой команде, приложению "GSam Battery Monitor" (имя пакета com.gsamlabs.bbm) присваивается разрешение (permission) BATTERY_STATS. Это разрешение на доступ к детальной информации об использовании батареи. После присвоения этого разрешения приложение "GSam Battery Monitor" сможет показывать не только текущий уровень заряда, напряжения и температуры батареи, но все приложения которые работают и "съедают" заряд батареи.
ADB не видит телефон
Если вы соединили USB кабелем компьютер и устройство Андроид, но команда "adb devices" не показывает (не видит) подключенное устройство, то самые частые причины:
- На устройстве (смартфон, планшет) не включена опция "Отладка по USB".
- На устройстве (смартфон, планшет) не подтвержден запрос на подключение с компьютера. Подробнее выше, в разделе "Как пользоваться ADB".
- Используется поврежденный USB кабель или кабель без сигнальной линии. Кабели на некоторых зарядных устройствах не имеют сигнальной линии.
- Устройство (смартфон, планшет) не может работать через стандартный драйвер ADB.
ADB для Windows
На Windows используется точно так же. Только нужно скачать и у стуановить драйвера и скачать программу ADB клиент для Windows. Драйвера ADB, для Windows, можно взять у какого-нибудь производителя смартфонов, например Samsung. Драйвера ADB должны подходить для любого устройства, вне зависимости от производителя. Вот например смартфон Xiaomi, нормально подключен через ADB драйвер Samsung:
Иван Сухов, 2019 г.
Небольшой мануал для тех, кто хочет подготовить свою linux-машину для работы с ADB. Почему небольшой? Потому что настройка будет намного более простой, чем в Windows. Не нужно скачивать дополнительные драйвера, все что Вам потребуется это компьютер и устройство, подключенное по USB к компьютеру. Подробности под катом.
Для начала необходимо активировать отладку по USB в режиме разработчика на Вашем android-устройстве. Делается это через настройки. Как правило пункт меню находится в разделе System, если его нет – значит он скрыт.
Смотрите как активировать его для вашего устройства, но как правило необходимо несколько раз тапнуть по названию прошивки устройства в свойствах, пока режим разработчика не станет доступен.
После чего заходим в него и активируем отладку по USB. На этом настройка устройства закончилась.
Открываем терминал, заходим из под root. Далее необходимо установить ADB на компьютер. Делается это следующими командами:
ADB установлен в систему. Теперь необходимо разрешить пользователю системы работать с устройством. Для этого необходимо настроить udev. Разделение устройств происходит по параметру VID (Vendor ID). Они имеются у каждого устройства, подключенного по USB. Чтобы их узнать, запустите в терминале lsusb, затем подключите устройство к компьютеру и запустите lsusb снова.
Найдите отличия между выводом – это и будет ваше android-устройство. Значение ID x:y где x – VID. Параметры указаны в шестнадцатеричной системе счисления. Запоминаем это значение. По нему и будет даваться доступ к устройству для пользователя. Запускаем текстовый редактор из консоли с созданием нового файла:
Вместо gedit подставьте свой текстовый редактор. Добавляем строчку:
Вместо vid подставляем свое значение, вместо username – имя текущего пользователя (под которым создана сессия). Сохраняем файл, закрываем редактор. Перезапускаем сервис udev
При подключенном устройстве запускаем команду adb devices. Если настройка правильная, Вы увидите список доступных устройств:
Если в списке устройств ничего нет, проверьте внимательно каждый шаг настройки. Возможно откючена отладка по USB на устройстве (при подключении ADB к устройству необходимо на самом устройстве разрешить подключения для этого компьютера).
Имеется китайский смартфон (Huawei Honor 8) с 6 андроидом. Пытаюсь его зарутить, работаю, как обычно, из линукса (Debian 8.7) с ноутбука. И пару дней назад этот линукс внезапно перестал нормально общаться с этим андроидом. То есть, при втыкании смартфона в USB-порт линукс в целом его видит, но:
1) внутренний диск [показывается с именем самого смартфона - FRD AL10] иногда успешно открывается по MTP, а иногда только показывается в гномовском Наутилусе, причём без Mount/Unmount в локальном меню, а при попытке в него зайти: Unable to access "FRD AL10"-Unable to open MTP device '[usb:002,003]'
2) виртуальный CD [на котором лежит некий 华为手机助手安装向导.exe (кажется, это родное хуавейское приложение под винду - HiSuite), и pdf с копирайтами на opensource'ный софт] иногда успешно монтируется (не по MTP, а как обычный CD - /dev/sr0), иногда вообще не видится
3) и главное - adb этого смартфона вообще не видит, в самом смартфоне запросов на разрешение USB debugging не вылезает
4) если смартфон воткнуть в режиме bootloader'а, то fastboot devices его показывает, но при вводе ЛЮБОЙ команды, даже fastboot reboot , выдаёт < waiting for any device > , и ждёт до бесконечности.
Сначала я подумал, что это что-то в смартфоне попортилось, но попробовал воткнуть его в винду на том же самом ноутбуке, а там всё успешно работает.
А сегодня воткнул его в десктоп (с тем же самым Дебианом 8.7), всё работает. Запустил adb (та же версия, что на нотбуке - 1.0.36 Revision 302830efc153-android ) - тоже работает. Попробовал обратно на ноутбуке - не работает, точно как описано выше.
Есть у кого идеи, отчего такое может быть, и как его вылечить?
Upd: Мой линукс живёт на внешнем USB-диске. Я попробовал запустить его на другом ноутбуке, и там всё так же не работает. А из точно такого же Debian'а, установленного на самом этом ноутбуке, всё работает.
С другими смартфонами (HTC Desire S, Desire X, HTC One) и с моего внешнего диска всё успешно работает с обоих ноутбуков. А вот с Honor8 почему-то нет..
Выходит, что дело не в железе, не в ядре, не в драйверах и вообще не в самом линуксе, а в одном конкретном экземпляре его. Но ЧТО там может быть не так.
Upd2: Если смартфон подключить ДО загрузки линукса, то он успешно видится и по MTP, и через adb. А вот если его подключить к уже загруженному линуксу, тогда он стабильно не видится, как описано выше..
Читайте также: