android-sdk-linux_x86/tools下有一堆工具,包括Android Debug Bridge(缩写adb,有点像gcc的gdb似的),在android开发过程当中,这个工具是使用得最多的。
adb start-server – 实际上它会启动一个 adb fork-server server
adb kill-server – kill掉
adb devices – 列出全部的设备html
解压到任何地方,不要删除掉就是了linux
http://developer.android.com/sdk/index.htmlandroid
由于ubuntu这样的系统都是默认以非root身份在运行的,要使用usb调试,须要sudo支持。shell
$ lsusbubuntu
查看usb使用状况,经过两次比较,发现以下usb口是当前使用的端口:Bus 002 Devices 004:ID 230b:0100,ID 230b 就是idVendor ,0100就是 idProductvim
而后新建并编辑一个文件71-android.rules(前缀数字更大的配置,会覆盖前缀更小的数字的配置,我试过5一、71,都没啥问题)bash
$ sudo vim /etc/udev/rules.d/71-android.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", ATTRS{idVendor}=="1035", MODE="0666"
SUBSYSTEM=="usb", ATTRS{Google-Inc}=="18d1", ATTRS{Google-Inc}=="0003", MODE ="0666"工具
$ sudo chmod a+rx /etc/udev/rules.d/71-android.rules测试
这时候还须要编辑一下 ~/.bashrc 文件加入adb tool的路径spa
$ vim ~/.bashrc
在末尾加入(每一个人都不一样):
export PATH=${PATH}:/home/zran/platform-tools
或者(每一个人都不一样)
$ sudo vim /etc/profile
export PATH=$PATH=:/zran-share-ubuntu/Develop/adt-bundle-linux-x86_64-20131030/sdk/platform-tools
export CLASSPATH=.
重启了环境后,有可能adb尚未找到命令,sudo reboot便可。
注意,若是此时环境变量配置出错,有可能致使重启后,没法登陆,解决办法见《1-1 ubuntu配置 --- /》(五)系统环境变量出错。
$sudo /etc/init.d/udev restart
如今须要重启一下你的Ubuntu,而后USB链接手机,确保usb调试已打开,在终端下输入
从新启动adb server,拔掉usb从新连上再执行:
adb kill-server
adb devices
adb root
adb shell
adb remount
...
List of devices attached
???????????? no permissions
修改权限便可(通过搜集、实验,发现不用每次有新设备都从新配置udev,至少我测试的全志平台能够这么写,只用第三行配置便可):
$ sudo vim /etc/udev/rules.d/71-android.rules
#SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", ATTRS{idVendor}=="1035", MODE="0666"
#SUBSYSTEM=="usb", ATTRS{Google-Inc}=="18d1", ATTRS{Google-Inc}=="0003", MODE ="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"
设置adb所属用户、用户组zran:root,事实上网上多推荐直接设为root,但我的使用后认为这样多有不便,例如adb pull出来的文件,可能须要再次修改权限后才能使用,因此我认为usr:root的用户、用户组更好。
$ sudo chown zran:root /zran-share-ubuntu/Develop/adt-bundle-linux-x86_64-20131030/sdk/platform-tools/adb
设置adb权限
$sudo chmod a+rx /zran-share-ubuntu/Develop/adt-bundle-linux-x86_64-20131030/sdk/platform-tools/adb
上面两处综合起来就是默认adb是root组用户在运行,而且只有root组用户,或者usr(用户名)有权修改其权限。