USB-драйвер Google Android и ADB

Я ищу руководство или окончательный ответ на следующее. Я хочу использовать USB-драйвер Google Android и изменить android_winusb.inf для поддержки любого количества устройств Android. Мне удалось успешно добавить планшет HTC Evo, но когда я пытаюсь добавить LG (Optimus) или Samsung (Indulge, Admire), драйвер, кажется, устанавливается нормально, но ADB его не видит.

Можете ли вы заставить драйвер Google Android работать на любом телефоне Android? Если да... как?

Я пробовал много перестановок %SingleAdbInterface% и %CompositeAdbInterface% с вариациями идентификаторов поставщиков и продуктов.


person pqu3    schedule 14.03.2012    source источник
comment
Перейдите на сайт поддержки производителя устройства. Для устройств, с которыми универсальный драйвер не работает, производитель обычно предоставляет драйвер для загрузки, который активирует ADB.   -  person FoamyGuy    schedule 15.03.2012
comment
Вы уже пробовали мое предложение? Если это сработало, пожалуйста, +1 и примите в качестве ответа. Это поможет улучшить ваш профиль и повысит вероятность того, что люди будут помогать вам в будущем. Спасибо   -  person prolink007    schedule 15.03.2012
comment
Я пытаюсь не поддерживать несколько драйверов устройств. У меня есть приложение, которое общается с устройствами Android через ADB, и я не хочу управлять установкой n драйверов. Я также не хочу, чтобы пользователь беспокоился об установке нескольких драйверов.   -  person pqu3    schedule 15.03.2012
comment
Я запутался, в своей работе вы сказали, что поддерживаете любое количество устройств Android, но здесь вы говорите, что я пытаюсь не поддерживать несколько драйверов устройств. Может быть, я единственный, кто сейчас запутался в вашем вопросе, но мог бы, пожалуйста, объяснить его немного по-другому. Спасибо   -  person prolink007    schedule 15.03.2012
comment
У меня есть приложение, с которым я хочу общаться с любым устройством Android через ADB. Я не хочу устанавливать несколько драйверов, но хотел бы поддерживать их через один драйвер Google Android ADB. Мне удалось настроить этот драйвер для нескольких устройств (Nexus, Moto, ADB) путем редактирования файла android_winusb.inf. Но безуспешно с некоторыми устройствами (LG, Samsung). Я хотел бы понять, почему тот же метод редактирования android_winusb.inf не работал для этих устройств, но работал для других.   -  person pqu3    schedule 15.03.2012
comment
попробуйте мой способ сделать действительно универсальный драйвер ktnr74.blogspot.com/2014/11/   -  person Alex P.    schedule 13.11.2014


Ответы (9)


Вам нужно изменить 3 вещи, чтобы драйвер Google USB работал на любом телефоне Android в любой Windows:

  1. Добавьте идентификатор вашего устройства в android_winusb.inf файл
  2. Цифровая подпись модифицированного драйвера
  3. Добавьте идентификатор поставщика вашего устройства в белый список adb_usb.ini (больше не требуется)

а вот подробности:

<сильный>1. Добавьте идентификатор вашего устройства в android_winusb.inf файл

формат для добавления:

;Comment usually the device name
%SingleAdbInterface% = USB_Install, USB\; here you put VID and PID
%CompositeAdbInterface% = USB_Install, USB\; same as above but add the MI

прежде чем я продолжу, VID — это идентификатор поставщика USB.

Как получить vid и pid: они находятся в драйверах, которые вы объединяете; но если у вас нет драйвера для устройства, вы можете получить его, открыв диспетчер устройств; затем щелкните правой кнопкой мыши устройство — выберите свойства — в новом диалоговом окне перейдите на вкладку «Сведения»> в раскрывающемся меню свойств выберите идентификаторы оборудования. например, вы видите что-то вроде:

hid

USB\VID_2207&PID_0000&REV_0222&MI_01
USB\VID_2207&PID_0000&MI_01

возьмите это значение для составного устройства adb и удалите MI для одного устройства adb, вы получите

;MSI WindPad Enjoy 7 plus
%SingleAdbInterface%        = USB_Install, USB\VID_2207&PID_0000
%CompositeAdbInterface%     = USB_Install, USB\VID_2207&PID_0000&REV_0222&MI_01
;

скопируйте эти 2 строки ДВАЖДЫ, один раз в раздел [Google.NTx86], а другой в раздел [Google.NTamd64].

ПОВТОРЯЙТЕ для каждого устройства, которое вы хотите поддерживать

Теперь необязательная правка для раздела [Strings]: edit

[Strings]
ProviderName                = “Google, Inc.”
SingleAdbInterface          = “Android ADB Interface”
CompositeAdbInterface       = “Android Composite ADB Interface”
SingleBootLoaderInterface   = “Android Bootloader Interface”
WinUSB_SvcDesc              = “Android USB Driver”
DISK_NAME                   = “Android WinUsb installation disk”
ClassName                   = “Android Device”

To:

[Strings]
ProviderName                = “Google, Inc.”
SingleAdbInterface          = “MSI ADB Interface”
CompositeAdbInterface       = “MSI Composite ADB Interface”
SingleBootLoaderInterface   = “MSI Bootloader Interface”
WinUSB_SvcDesc              = “MSI USB Driver”
DISK_NAME                   = “MSI WinUsb installation disk”
ClassName                   = “MSI Tablet”

<сильный>2. Подпишите измененный драйвер цифровой подписью:

Хотя оригинальный USB-драйвер Google был подписан Google, изменение android_winusb.inf предотвратит его установку в Windows 8 с сообщением об ошибке хеш-ошибка

The hash file is not present in the specified catalog file. The file is likely
corrupt    or the    victim of tampering.

Это только в Windows 8. В Windows 7 и более ранних версиях это сообщение об ошибке не отображается. Вам необходимо заново сгенерировать файл каталога (возможно, с помощью Windows SDK) и подписать

Обходной путь: обходным путем для внутреннего тестирования является отключение проверки подписи Windows: либо временно, либо постоянно:

временно:

Перейдите в левый верхний или нижний угол экрана, чтобы открыть панель чудо-кнопок, и нажмите чудо-кнопку настроек.

выберите Изменить настройки ПК

выберите Общие

Прокрутите вниз и нажмите «Перезагрузить сейчас» в разделе «Расширенный запуск».

Нажмите «Устранение неполадок». Нажмите «Дополнительные параметры». Нажмите «Параметры запуска Windows». Нажмите «Перезагрузить».

or

запустите cmd и введите:

shutdown -o -r -t 0

затем после перезапуска выберите из списка «Отключить обязательное использование подписи драйверов». установите драйвер перед перезапуском.

Постоянно:

нажмите Окно+Q

поиск командной строки

щелкните правой кнопкой мыши cmd

выберите запуск от имени администратора на панели действий

введите в cmd:

bcdedit -set loadoptions DISABLE_INTEGRITY_CHECKS
bcdedit -set TESTSIGNING ON

<сильный>3. Добавьте идентификатор производителя вашего устройства в adb_usb.ini белый список (больше не требуется):

adb раньше имел жестко закодированный белый список поддерживаемых идентификаторов поставщиков. Если производителя вашего устройства не было в списке - adb полностью его игнорировал. Чтобы adb распознавал такие устройства, пользователям приходилось вручную добавлять свои идентификаторы поставщиков в %USERPROFILE%\.android\adb_usb.ini — по одному идентификатору в строке.

в командной строке:

echo 0x2207 >> "%USERPROFILE%\.android\adb_usb.ini"

К счастью, Google удалил фильтрацию VendorID в более поздних версиях adb. Так что этот шаг больше не требуется.

Наконец-то вы можете протестировать установку:

adb kill-server
adb start-server
adb devices

и включение отладки в параметрах разработчика на устройстве Android

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

person Muhammad Annaqeeb    schedule 25.03.2013
comment
Большое спасибо, это сэкономило мне много времени. Я забыл, что в Windows 8 нужно отключить подпись перед установкой устройства. Счастливый код - person edisonthk; 16.06.2013
comment
@edisonTHK Добро пожаловать! - person Muhammad Annaqeeb; 16.06.2013
comment
Cпасибо за ответ! Кто-нибудь знает больше о подписании драйверов в Windows? кажется, начиная с win10 вам нужен сертификат EV...? - person h0ru5; 31.01.2016
comment
пункт № 1 излишне усложнен (см. ktnr74.blogspot.com/2014/11/ ), а пункт № 3 устарел (в любом случае это была не ошибка, а функция), поэтому пункт № 2 был единственной полезной частью. - person Alex P.; 19.01.2017

Найдите следующий файл

C:\Users\[ваше имя]\.android\adb_usb.ini

И внесите следующие изменения:

# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x2207

Я добавил 0x2207 в файл. Этот номер является частью идентификатора оборудования, который можно найти в информации об оборудовании устройства.

Мой был:

USB\VID_2207&PID_0010&MI_01

(Я пытался выполнить android update adb, но это ничего не дало.)

person user1450232    schedule 14.11.2012

Можете ли вы дать нам лучшее описание и пример того, что вы делаете? Потому что все, что мне нужно сделать, это ввести строку для устройства, а затем сохранить файл. Теперь просто снова подключите устройство, и оно работает.

Я обычно использую что-то похожее на эту строку:

;
;some name for the phone (this seems to be arbitrary)
%CompositeAdbInterface%     = USB_Install, THE_HARDWARE_ID

Что я делаю, это:

  1. подключите устройство к компьютеру.
  2. Зайдите в диспетчер устройств.
  3. Щелкните правой кнопкой мыши устройство, которое вы подключили.
  4. Перейти к свойствам. Затем выберите идентификаторы оборудования.
  5. Затем получите то значение, которое указано там.
  6. Теперь добавьте его в строку, которую вы создали в файле android_winusb.inf.
  7. Отключите устройство и снова подключите
  8. Вернитесь в диспетчер устройств
  9. Щелкните правой кнопкой мыши устройство и выберите «Обновить» или «Установить драйвер».
  10. Выберите поиск драйвера на вашем компьютере.
  11. Выберите каталог Your_Android_SDK_Directory/extras/google/usb_driver/
  12. Нажмите ок

Кажется, это всегда работает для меня, это то, что вы делаете? Или это даже помогает?

person prolink007    schedule 14.03.2012
comment
У меня есть приложение, которое общается с устройствами Android через ADB, и я не хочу управлять установкой n драйверов. Я также не хочу, чтобы пользователь беспокоился об установке нескольких драйверов. - person pqu3; 15.03.2012
comment
Я пробовал метод выше для телефона, который я указал, и не работал. Я попробовал с HTC Evo, и это сработало. Не повезло с Samsung или LG. - person pqu3; 15.03.2012
comment
Я не уверен, что делать дальше этого момента. Это всегда работает для меня, и я не могу воспроизвести проблему. - person prolink007; 20.03.2012
comment
Что вы делаете после добавления строк? Вы перезагружаете или переподключаете устройство и оно распознается? - person Vrashabh Irde; 01.08.2012
comment
Работает для людей с WideFly Wireless POS PDA (WF360) .. Спасибо, prolink007, я дал вам голос.. - person DortGen; 11.01.2014

  1. изменить android_winusb.inf
  2. Подпишите драйвер
  3. изменить adb

Я также установил общий драйвер adb с http://adbdriver.com/, и он работает.

person Comarex    schedule 02.05.2014
comment
Ответ плохой, но связанный универсальный драйвер великолепен, действительно универсален! Скорее всего, первые две операции он выполняет автоматически. - person MKaama; 09.01.2016
comment
большое спасибо, ссылка у меня работает, +1 за ссылку. - person Basant; 09.04.2018

Ответ 1 отлично сработал для меня. Я протестировал его на новом планшете MID 10'. Вот строки, которые я добавил в файл .inf, и он установился без проблем:

;Google MID
%SingleAdbInterface%        = USB_INSTALL, USB\Vid_18d1&Pid_0003&MI_01
%CompositeAdbInterface%     = USB_INSTALL, USB\Vid_18d1&Pid_0003&Rev_0230&MI_01 
person Bob Campbell    schedule 29.06.2012
comment
Что вы делаете после добавления строк? Как он распознает и устанавливает драйвер? - person Vrashabh Irde; 01.08.2012

Для моего Azpen A727 драйвер Windows был установлен правильно, поэтому был необходим только шаг 3 ответа Мохаммеда.

person VeeTheSecond    schedule 23.08.2014

Похоже, драйверы Google USB были обновлены для поддержки Glass из коробки, поэтому, пока вы используете последние версии драйверов, вы сможете получить доступ к Glass через ADB. В моей конкретной ситуации я подключил Glass к своей машине где-то в середине 2014 года, но ничего с ним не делал. Теперь, когда я пытался подключить его, я не видел, чтобы он отображался в ADB, несмотря на то, что он отображался в диспетчере устройств. После долгих проб и ошибок я понял, что должен:

  1. Войдите в диспетчер устройств
  2. Щелкните правой кнопкой мыши «Android ADB Interface» в разделе «SAMSUNG Android Phone».
  3. Нажмите «Удалить». УБЕДИТЕСЬ, что установлен флажок «Удалить программное обеспечение драйвера для этого устройства».
  4. Отключите и снова подключите Google Glass.

Затем я смог переустановить драйвер через обычное обновление Windows. Это заставило его искать новейший драйвер. Не уверен, почему он не обновлялся раньше, но я надеюсь, что это поможет кому-то, кто все еще борется с этим.

person SirCapsLock    schedule 19.01.2015

Драйвер для Хуавей не найден. Поэтому я использовал универсальный драйвер ADB:

  • Загрузите это:
  • Извлеките ADBDriverInstaller и запустите файл. Убедитесь, что вы подключили свое устройство через USB к компьютеру.
  • Отображается окно.
  • Щелкните Установить.
  • Появится диалоговое окно. Вам будет предложено нажать кнопку Restart.

Перед этим прочитайте эта ссылка:

(The above. in brief, says to press Restart button in the dialog box. Select Troubleshoot. Select Advance Option. Select Startup Setting. Press Restart. After system's been restarted, on the appearing screen press 7)

  • После перезагрузки ПК снова запустите файл ADBDriverInstaller. Выберите свое устройство из вариантов. Нажмите установить.

И дело сделано :)

person arushe    schedule 13.07.2016

вместо изменения файла adb_usb.ini я внес изменения в файл android_winusb.inf в каталоге android-sdk\extras\google\usb_driver\, и это сработало для планшета MID Q88, но я скопировал оба раздела [ Google.NTamd64] и [Google.NTx86]

;Google MID Q88
%SingleAdbInterface%        = USB_INSTALL, USB\VID_18D1&PID_0003&MI_01
%CompositeAdbInterface%     = USB_INSTALL, USB\VID_18D1&PID_0003&REV_0230&MI_01
person mehmetrg    schedule 30.04.2013
comment
Привет! Добро пожаловать в stackoverflow.com. Но какой смысл добавлять ответ, который уже был предоставлен? - person Sankar V; 01.05.2013