d51x.ru - личный блог

О самом разном из своей жизни

Настройка ADB в Ubuntu 10.107 января 2011

Читало: 6542Рубрика: Разное

У кого есть Android-фон, те наверняка знают про утилиту adb (Android Debug Bridge). Утилита идет в комплекте Android SDK. И если с подключением аппарата в Windows особых проблем нет, то в Ubuntu у меня возникли некоторые проблемы. При подключении устройства и выполнении команды

adb devices

я получал в ответ следующее

d51x@d51x-desktop:~$ adb devices 
????????????    no permissions

Как это вылечить?

Кстати, под root'ом работает.


Я скачал Android SDK. Добавил в переменную PATH путь к утилитам из Android SDK, чтобы при наборе в терминале команды adb (без пути) сразу запускалась утилита.

Это сделать можно следующим образом, нужно создать файл, например, android.sh в папке /etc/profile.d/

#!/bin/sh
export PATH=$PATH:/home/d51x/Android/android-sdk-linux_86/platform-tools/

Теперь будем разбираться с adb. Почему нет прав? Во всем виноват udev?


Ну так создадим для него новые правила.

В папке /etc/udev/rules.d/ создадим файл, например, 20-android.rules

SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", OWNER="d51x", GROUP="d51x"
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666"

Для OWNER и GROUP подставьте свои значения. Как их узнать?

В терминале наберите команду

id

В ответ получите следующее

d51x@d51x-desktop:~$ id
uid=1000(d51x) gid=1000(d51x) группы=1000(d51x),4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),119(admin),121(nopasswdlogin),122(sambashare)

Вот отсюда и берете значения uid в скобочках для OWNER и gid для GROUP.


Теперь перезапустим udev

service udev restart

Переподкючаем телефон.

Проверим права на устройство. Набираем команду

sudo lsusb

Увидим, например

Bus 002 Device 004: ID 0bb4:0c87 High Tech Computer Corp.

Далее набираем команду

sudo ls -l /dev/bus/usb/002

002 - это значение Bus из результата предыдущей команды

Получим ответ

crw-rw-rw- 1 d51x d51x      189, 131 2011-01-05 01:24 004

Это означает, что владельцем файла устройства являемся мы и у нас есть полные права на это устройство, т.е. новое правило для udev мы настроили правильно.

Теперь запускаем adb, хотя эту команду можно опустить

adb start-server

 Если до этого adb уже было запущено, то остановим его

adb kill-server

Теперь смотрим список доступных Android-устройств

adb devices

Урра!!! Видим серийник нашего

аппарата вместо бесявой строки???????????? no permissions