Пользователь
0,0
рейтинг
7 ноября 2012 в 14:56

Разработка → Ручная установка драйвера ADB tutorial

Я хочу поделиться с вами простым способом установки ADB драйвера под Windows. Эта статья понадобится тем, у кого этот драйвер или не устанавливается вовсе, или устанавливается, но adb все равно в упор не видит устройство(как было у меня), или вы вообще этот драйвер не нашли. Так что всех, у кого есть/были похожие проблемы, или кому просто интересно, прошу под кат.

Начну с предыстории. Решил я купить себе недорогой планшетик на Android для чтения книг(DJVU/PDF), и выбор пал на устройство российского конечно же китайского производства TeXet TM-7025. Жаба давила покупать что-то дорогое, а для простого чтения книг каких-то сверх-характеристик не требуется. Позже я обнаружил что на нем неплохо идут большинство игрушек, удобно полазить в инете пока ты сидишь in da kabin и т. д. А поскольку передо мной маячило изучение Android, я решил, что будет весьма удобно пользоваться для этого железным девайсом вместо мучений с эмуляторами.

И вот тут меня ждал неприятный сюрприз — то ли родной драйвер оказался кривым, то ли винда, то ли провод… вообщем драйвер то встал, диспетчер устройств Windows рапортовал о полной работоспособности девайса, но на запрос adb devices в консоли я получал пустой список и, естественно, тестировать приложение на планшете не удавалось.

Я написал запрос в службу поддержки TeXeT, мне даже ответили ссылкой на сам драйвер, который, как я уже убедился, не работал. Я начал искать ответ в интернете и нашел кучу разных сборок этого драйвера и мануалов, но все равно ни один из них не завелся как надо, и даже родной драйвер из SDK вообще никак не становился, что повергло меня в уныние… но не отчаяние.

Вот тут я решил попробовать свои силы в написании драйверов старом добром методе научного тыка и открыл inf-файл драйвера. Надежду мне давало понимание, что софтверная часть adb интерфейса со стороны планшета должна быть идентичной для всех устройств, а USB и так работал. И вот, после нескольких неудачных проб ручной правки inf-файла я нашел рецепт лечения приправы inf-файла так, чтобы оно поставилось и, главное, работало.

Итак, приступим.

Шаг 1. Скачать драйвер. Если вы этого еще не сделали, откройте Android SDK Manager, найдите раздел Extras, поставьте галочку напротив Google USB Driver и нажмите Install Packages. Все просто. Ждете, пока загрузится.

Шаг 2. Найдите драйвер и сделайте его копию в отдельную папку. Зайдите в папку %android-sdk%\extras\google\ и увидите там заветную папочку usb_driver. Вот ее скопируйте куда-то, и там же будем проводить дальнейшие манипуляции. В принципе, можете править и «оригинал», но я предпочел сохранить оригинал нетронутым на всякий пожарный.

Шаг 3. Правим inf-файл. В папочке открываем файл android_winusb.inf и ищем там строки такого вот вида:
;Google Nexus One
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_0D02
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_0D02&MI_01
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_4E11
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4E12&MI_01

Делаем копию этих строк, заменяем Google Nexus One на %имя_вашего_девайса% для идентификации в будущем и… открываем диспетчер устройств Windows. Ищем там наше устройство(Android, Android Composite ADB Interface или что-то в этом стиле). Открываем свойства устройства, вкладка «Сведения», в списке выбираем пункт «ИД оборудования» и видим такую вот картину.

Копируем строчку, которая больше всего похожа на ту, что показана на рисунке(Она, по идее просто немного короче), и вставляем ее в наш inf-файл.
;TEXET TM-7025
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_0003
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_0003&MI_01
%SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_0003
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_0003&MI_01

В %SingleAdbInterface% мы конец строки удаляем, как видно, в %CompositeAdbInterface% вставляем целиком. Повторять два раза все, наверное, не надо, но у меня уже все стоит и мне лень экспериментировать :)
Сохраняемся(будьте внимательны — в некоторых случаях для этого нужно запускать блокнот с правами администратора, т. к. в пользовательском режиме вам не дадут перезаписать inf-файл).
Шаг 4. Установка драйвера. Теперь, когда все подготовлено, возвращаемся в диспетчер устройств и удаляем все ранее установленные adb драйверы(если были). Обновляем список устройств и видим наш девайс без драйверов. Открываем его свойства и выбираем «обновить драйверы», выбираем установку из папки, указываем папку с поправленым inf-ом и запускаем установку — наш драйвер моментально находится, но при установке он может ругаться о несовместимости с вопросом «продолжать ли, насяльнека?». Продолжаем. Все, драйвер установлен.
Шаг 5. Финал. Для точности делаем вынь-всунь USB-порта, ждем пока все обнаруживается, открываем консоль(Win+R, вводим cmd) и пишем adb devices. Если все прошло хорошо — видим заветный пункт списка, обозначающий, что adb теперь видит наш девайс.

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

Если команда adb у вас вообще не работает. Компьютер -> Свойства -> Переменные среды. Ищем переменную Path и в конце дописываем(ни в коем случае не перезаписываем) в конце точку с запятой, а после адрес папки, где живет adb(обычно %android-sdk%\platform-tools\). После перезагрузки должно заработать.
Иногда adb не запускается автоматически при старте системы. Запустите вручную.

Что это было?
На самом деле все просто. В силу неких причин(винда мастдай/у прогеров кривые руки/гугловский инф-файл писался только для родных гугловских девайсов/в вашем компьютере все испортили бозоны Хиггса) винда не хочет кушать гугловский драйвер для негугловских девайсов, не записанніх в inf-файл. Видимо, там все как раз завязано на этих ИД-оборудования. Но ведь софтверная часть на подавляющем большинстве андроид-устройств в части дебаггер-коннектора к ПК идентична, потому драйвер должен нормально общаться с любым Андроид-устройством. Наша задача — обмануть Windows и заставить ее принять девайс за «драйверо-подходящий», что мы и сделали путем дописывания его ИД в inf-файл драйвера.

Надеюсь, кому-то данный мануал поможет завести свой китайский или другой девайс, для которого при сборке системы забыли сделать нормальный драйвер adb, или тем, кого задалбывает качать официальный драйвер от производителя устройства(это бывает настолько гемморно, что быстрей сделать все вышеописанное — у меня так было с драйвером для телефона LG E510).

P. S. Я не проводил массового тестирования данного метода, так что не могу гарантировать, что он заработает в 100% во всех случаях. Но у меня он заработал на Windows 7, а после и на Windows 8. Файл приходилось править для каждого раза отдельно, но не думаю, что это такая уж проблема.
Андрей @denonlink
карма
11,0
рейтинг 0,0
Пользователь
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (26)

  • 0
    Что такое MI_01?
    • 0
      Понятия не имею, если честно)
  • 0
    О нет, этот ужасный угловатый интерфейс Windows 8…

    По теме: ADB-драйвер из пакета драйверов, который идет в комплекте с Samsung Kies подходит, как мне показалось, почти ко всем девайсам. К моему THL V9 даже подошел. Я просто вытащил из Kies MSI-установщик драйвера и держу его отдельно на всякий случай. Действительно универсальная штука.
    • 0
      Мне больше всех понравился UI из Release Preview, некая смесь Aero и Metro :) Смотрелось очень симпотично! С конечным вариантом просто пришлось смириться…
      • 0
        Да, смириться с ним можно. Но вот с новым меню «Пуск» и с глючными и малофункциональными Windows UI программами — нет. Я не смог. Но это тема для другого топика.
      • 0
        Эм, то есть эта прелесть из релиза убрана? Чёрт, а я так проникся, что даже на рабочую «семёрку» накатил соответствующую угловатую тему.
  • 0
    … ADB требует драйвер на Windows?
    Ахренеть, если честно.
    Я думал, он везде заводится с пол-пинка, а это коварный линукс виноват…
  • 0
    Вопрос к автору как к новичку — Вы с какой книги/сайта обучаться программированию под андроид начали?
    • 0
      startandroid.ru

      Но мануал по установке и настройке всего я брал не там, и уже вообще не помню где. Просто конкретно мой планшет в упор не хотел заводиться под разработку, но до этого я уже работал на телефоне некоторое время.
  • +1
    тоже китайпланшет, та же проблема. но кроме правки inf-файлов мне ещё пришлось дописать VendorID в файл %USERPROFILE%\.android\adb_usb.ini — без этого ADB не работал

    этот рецепт я вычитал здесь: www.slatedroid.com/topic/32498-firmware-teclast-a15-ice-cream-sandwich-ics-403/page__st__40
    • 0
      Повторюсь, пожалуй, но у меня драйвера из пакета Kies от Samsung подошли даже к Ainol Novo7 Paladin, как ни странно.
      • 0
        У меня не было телефона Samsung, не было Kies, так что решил проблему вот так)
        • +1
          Вот тут можно взять :)
          • 0
            Мне уже не нужно, но все равно спасибо :)
            • 0
              Пригодится :) Я вот недавно переустанавливал ОС — сносил Win8 и ставил Win7. Пригодилось.
              • 0
                Вот если бы установщик драйвера без всего Kies…
                • +1
                  Попробуйте скачать отсюда. Я выкладывал в свое время.
                  • 0
                    Запрашиваемая информация не существует, перемещена или удалена. :(
                    • +1
                      Наверное это из-за того, что Вы не залогинены. Вот еще, точно рабочая.
                      • 0
                        Этот скачался. Спасибо.
      • 0
        если выбирать между официальными дровами от гугла из Android SDK, немного допиленными вручную и Самсунговым пакетом Kies, то я выберу первое.
        • 0
          И это, пожалуй, будет правильно. Но мне надоело «допиливать». А драйвера от Samsung ничем не хуже и работают из коробки :)
    • 0
      По счастливой случайности у меня тоже китай планшет, причем с USB\VID_18D1&PID_0003&MI_01 как у автора статьи.
      Подскажите, можно на основе VID и PID заключить что это совершенно то же железо и шиться прошивками TeXet TM-7025, благо их на 4PDA есть из чего выбрать.
  • 0
    Запрашиваемая информация не существует, перемещена или удалена. :(
  • +1
    Официально гугловский драйвер для Windows поддерживает только гугловские девайсы, о чём и написано в документации.
    А так, описанный способ всегда помогал.
  • 0
    Kindle Fire задружил с adb этим же методом.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.