天天看點

Ubuntu adb devices : no permissions 解決方法

ubuntu下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

六、參考

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

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

繼續閱讀