1. 程式人生 > >ubuntu下的adb安裝

ubuntu下的adb安裝

原文

連結:http://blog.csdn.net/chychc/article/details/7276294

untun下USB連線Android手機後,使用adb devices 出現如下:

List of devices attached

???????????? no permissions

同時在DDMS中顯示裝置名也顯示????,也無法顯示程序名,無法檢視log。

一、工具介紹
android-sdk-linux_x86/tools下有一堆工具,今天要用的是:Android Debug Bridge,在android開發過程中,這個工具是使用得最多的。(縮寫adb,有點像gcc的gdb似的)

adb start-server – 實際上它會啟動一個adb fork-server server
adb kill-server – kill掉
adb devices – 列出所有的裝置

二、設定usb許可權
因為ubuntu這樣的系統都是預設以非root身份在執行的,要使用usb除錯,需要sudo支援。

$ lsusb
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 413c:2106 Dell Computer Corp.
Bus 002 Device 002: ID 0461:4d81 Primax Electronics, Ltd
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 010: ID 0bb4:0c87 High Tech Computer Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

列表中,Bus 001 Device 010: ID 0bb4:0c87 High Tech Computer Corp. 這一行為htc手機的usb使用埠,記錄一下,id為0bb4(基於上所有的htc都是這個ID)。

$sudo vim /etc/udev/rules.d/70-android.rules

加入以下內容:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0c87",MODE="0666"

其中的idvendor idProduct指的是USB的ID可以使用lsusb查詢得到。
比如我的是:
lsusb

Bus 001 Device 010: ID 0bb4:0c87 High Tech Computer Corp

ID 0bb4 就是idVendor ,0c87就是 idProduct

執行命令,重啟udev:

$sudo chmod a+rx /etc/udev/rules.d/70-android.rules
$sudo service udev restart    

三、重新啟動adb server
(很重要)拔掉usb重新連上再執行:

sudo ./adb kill-server
./adb devices
./adb root (這一步很重要 )

四、使用usb進行除錯
     問題說明中的問題至此已經得到解決。

     在DDMS選擇相應的devices,可以看到log了。。。。

五、知識積累

       1. Gooogle udev

        2.拔插usb,使用以下命令可以實時監視系統資訊
              sudo tail -f /var/log/messages

六、ubuntu 敲 adb devices 裝置列表為空,但lsusb可以檢視到PID與VID

        sudo gedit ~/.android/adb_usb.ini   編輯該檔案

   加入0x0bb4 後執行下面命令

   sudo service udev restart 

   android updateadb  更新服務


七、參考

     1. http://edu.codepub.com/2010/1229/28405.php

     2. http://blog.csdn.net/zhenwenxian/archive/2010/09/23/5901350.aspx

讀後感:

輸入 sudo ./adb start-server後,再輸入./adb devices驗證,問題才解決。

       如果想要在任意路徑下都直接執行adb命令,需要把adb所在的路徑註冊到系統$PATH,方法是:

這時候還需要編輯一下 ~/.bashrc 檔案加入adb tool的路徑

vi ~/.bashrc

在末尾加入,其中紅色部分就是剛下載的工具包解壓的路徑