ubuntu下USB連接Android手機(jī),run
運(yùn)行項(xiàng)目時(shí)會(huì)有如下問(wèn)題:
而在 終端 使用 adb devices
出現(xiàn)如下提示:
List of devices attached
???????????? no permissions usb:1-1.2
同時(shí)在DDMS中顯示設(shè)備名也顯示耐薯?逛漫?其徙?谱煤?亥曹,也無(wú)法顯示進(jìn)程名噪服,無(wú)法查看log毡泻。
一、工具介紹
android-sdk-linux/tools下有一堆工具粘优,今天要用的是:Android Debug Bridge牙捉,在android開(kāi)發(fā)過(guò)程中,這個(gè)工具是使用得最多的敬飒。(縮寫(xiě)adb邪铲,有點(diǎn)像gcc的gdb似的)
adb start-server – 實(shí)際上它會(huì)啟動(dòng)一個(gè) adb fork-server server
adb kill-server – kill掉adb服務(wù)
adb devices – 列出所有的設(shè)備
如果終端沒(méi)有adb命令 ,可以使用 sudo apt-get install adb-core
命令安裝
二无拗、設(shè)置usb權(quán)限
因?yàn)閡buntu這樣的系統(tǒng)都是默認(rèn)以非root身份在運(yùn)行的带到,要使用usb調(diào)試,需要sudo支持英染。
- 首先連接手機(jī)揽惹,查看手機(jī)id號(hào)
zhx@ubuntu:~$ lsusb
Bus 002 Device 007: ID 1d57:3103 Xenta
Bus 002 Device 006: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader
Bus 002 Device 005: ID 058f:9254 Alcor Micro Corp. Hub
Bus 002 Device 004: ID 0a5c:219c Broadcom Corp.
Bus 002 Device 003: ID 1a2c:0c21 China Resource Semico Co., Ltd
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 19d2:0398 ZTE WCDMA Technologies MSM
Bus 001 Device 003: ID 0ac8:c33f Z-Star Microelectronics Corp. Webcam
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
想知道哪個(gè)是手機(jī)的usb口,很簡(jiǎn)單的辦法就是插上手機(jī)執(zhí)行一下lusb命令四康,然后拔掉手機(jī)再次執(zhí)行一下lusb比較一下打印結(jié)果搪搏。
列表中 Bus 001 Device 005: ID 19d2:0398 ZTE WCDMA Technologies MSM
這一行為zte手機(jī)的usb使用端口。
- 2.創(chuàng)建手機(jī)驅(qū)動(dòng)配置文件
$sudo vim /etc/udev/rules.d/51-android.rules
加入以下內(nèi)容:
SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0398",MODE="0666"
其中的idvendor
和 idProduct
指的是USB的ID可以使用lsusb查詢得到闪金。比如我的是:Bus 001 Device 005: ID 19d2:0398 ZTE WCDMA Technologies MSM
疯溺,ID 19d2 就是idVendor
论颅,0398就是 idProduct
。
在這一步有時(shí)會(huì)碰到一個(gè)比較怪的問(wèn)題是手機(jī)的usb顯示如下:
Bus 001 Device 007: ID 19d2:0398
只顯示這些內(nèi)容囱嫩。然后執(zhí)行adb devices 也檢測(cè)不到任何設(shè)備恃疯。這時(shí)需要手機(jī)打開(kāi)usb調(diào)試功能(部分手機(jī)在撥號(hào)鍵盤(pán)輸入*#*#717717#*#*
能打開(kāi)usb調(diào)試).
- 3.更改權(quán)限:
$sudo chmod a+rx /etc/udev/rules.d/51-android.rules
- 4.重啟usb設(shè)備:
$sudo /etc/init.d/udev restart
或者
$sudo service udev restart
三、重新啟動(dòng)adb server(很重要):
$ adb kill-server
$ adb start-server
或進(jìn)入adb目錄
$ sudo android-sdk-linux/platform-tools/adb kill-server
$ sudo android-sdk-linux/platform-tools/adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
$ android-sdk-linux/platform-tools/adb devices
到這步可能出現(xiàn)List of devices attached 下面沒(méi)有設(shè)備出現(xiàn)墨闲,這就意味著 adb不識(shí)別新的USB 設(shè)備,執(zhí)行以下操作:
& vi .android/adb_usb.ini
在文末加入一行 : 0x19d2
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x19d2
這個(gè) 0x2717 就是我們得到的設(shè)備號(hào)碼
四今妄、使用usb進(jìn)行調(diào)試
在DDMS選擇相應(yīng)的devices,可以看到log了鸳碧。
最后盾鳞,注意在手機(jī)上允許 usb調(diào)試。