Linux android 真机调试


Linux下面开发Android应用时,有时想用真的Android机来进行调试。但是发现在Linux下面不能识别Android机子,出现 ????? 这种情况。那么下面的方法可以帮你解决问题:

PS:请确定你的Android真机不是定制机,不然下面的办法有可能是不管用的,还是识别不了你的真机。

下面我以 Motorola xt615 为例:

首先查看一下你的Android设备机是否连接上来了:

lsusb

效果如图:

[xxxx@Ubuntu:shell]$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 003: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)
Bus 001 Device 004: ID 138a:0008 Validity Sensors, Inc. VFS300 Fingerprint Reader
Bus 002 Device 003: ID 192f:0416 Avago Technologies, Pte. 
Bus 002 Device 004: ID 0c45:6481 Microdia 
Bus 001 Device 005: ID 413c:8161 Dell Computer Corp. Integrated Keyboard
Bus 001 Device 006: ID 413c:8162 Dell Computer Corp. Integrated Touchpad [Synaptics]
Bus 001 Device 007: ID 413c:8160 Dell Computer Corp. Wireless 365 Bluetooth
Bus 002 Device 005: ID 22b8:2de6 Motorola PCS 


最下面的那个机子就是我自己的手机信息:

Bus 002 Device 005: ID 22b8:2de6 Motorola PCS

Motorola PCs 是我的真机的描述信息

22b8 为我真机的vendor id 

然后在 /etc/udev/rules.d/ 这个目录下面 新建一个文件,命名为: android-rules 或者 70-android-rules 前面加数字不知道代表什么意思,但是不加数字好象也没有关系。

cd /etc/udev/rules.d/
>android-rules
chmod u+x android-rules

android-rules 里面的内容可以是:

SUBSYSTEM=="usb",ATTRS{idVendor}=="22b8",ATTRS{idProduct}="2de6",MODE="0666"

或者

SUBSYSTEM=="usb", SYSFS("Motorola PCS")=="22b8",MODE="0666"

或者

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"


使用下面的命令把上面内容中的其中一个写到android-rules文件中

echo SUBSYSTEM=="usb",ATTRS{idVendor}=="22b8",ATTRS{idProduct}="2de6",MODE="0666" > android-rules

然后给 adb 创建一个执行文件连接:

ln -s /home/xxx/local/eclipse-plugins/android-sdk/android-sdk-linux/platform-tools/adb /usr/local/bin/


上面的 /home/xxxx/local/eclipse-plugins/android-sdk/android-sdk-linux/platform-tools/adb 为你自己的android sdk 安装目录位置。

执行下面的语句:


sudo service udev restart
sudo adb kill-server
sudo adb start-server
adb devices


内容为:
List of devices attached 
IRMM0100329912	device

说明你的Android真机可以被识别了。

如果你要测试的真机类型比较多,你可以把下面的内容都添加到android-rules 里面:

#Acer      0502  
SUBSYSTEM=="usb", SYSFS{idVendor}=="0502", MODE="0666"  
##Dell     413c  
SUBSYSTEM=="usb", SYSFS{idVendor}=="413c", MODE="0666"  
##Foxconn     0489  
SUBSYSTEM=="usb", SYSFS{idVendor}=="0489", MODE="0666"  
##Garmin-Asus     091E  
SUBSYSTEM=="usb", SYSFS{idVendor}=="091e", MODE="0666"  
##HTC     0bb4  
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"  
##Huawei     12d1  
SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", MODE="0666"  
##Kyocera     0482  
SUBSYSTEM=="usb", SYSFS{idVendor}=="0482", MODE="0666"  
##LG     1004  
SUBSYSTEM=="usb", SYSFS{idVendor}=="1004", MODE="0666"  
##Motorola     22b8  
SUBSYSTEM=="usb", SYSFS{idVendor}=="22b8", MODE="0666"  
##Nvidia     0955  
SUBSYSTEM=="usb", SYSFS{idVendor}=="0955", MODE="0666"  
##Pantech     10A9  
SUBSYSTEM=="usb", SYSFS{idVendor}=="10A9", MODE="0666"  
##Samsung     04e8  
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"  
##Sharp     04dd  
SUBSYSTEM=="usb", SYSFS{idVendor}=="04dd", MODE="0666"  
##Sony Ericsson     0fce  
SUBSYSTEM=="usb", SYSFS{idVendor}=="0fce", MODE="0666"  
##ZTE     19D2  
SUBSYSTEM=="usb", SYSFS{idVendor}=="19D2", MODE="0666"





【备注】关于上面的USB Vendor ID,不同的厂商可能不同,参考:

Company USB Vendor ID
Acer 0502
ASUS 0b05
Dell 413c
Foxconn 0489
Fujitsu 04c5
Fujitsu Toshiba 04c5
Garmin-Asus 091e
Google 18d1
Hisense 109b
HTC 0bb4
Huawei 12d1
K-Touch 24e3
KT Tech 2116
Kyocera 0482
Lenovo 17ef
LG 1004
Motorola 22b8
MTK 0e8d
NEC 0409
Nook 2080
Nvidia 0955
OTGV 2257
Pantech 10a9
Pegatron 1d4d
Philips 0471
PMC-Sierra 04da
Qualcomm 05c6
SK Telesys 1f53
Samsung 04e8
Sharp 04dd
Sony 054c
Sony Ericsson 0fce
Teleepoch 2340
Toshiba 0930
ZTE 19d2


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值