日期:2014-05-16  浏览次数:20461 次

Ubuntu 将adb加入环境变量 及adb shell 无法启动
客分类: Android开发
android ubuntu.在用户根目录下输入:



Bash代码 

hehangjun@hehangjun-MS-7623:~$ vi .bashrc 在文本的最后一行输入:



Bash代码 

export PATH=/home/hehangjun/android/sdk/android-sdk_eng.scm_linux-x86.complete/platform-tools:$PATH
然后退出vi,执行



Bash代码 

hehangjun@hehangjun-MS-7623:~$ . .bashrc
hehangjun@hehangjun-MS-7623:~$ echo $PATH

这样就可以使用adb命令了,如果要使root也能使用adb命令,则先用 sudo -i 到root权限,重复上面的就行。





adb shell 无法启动 (insufficient permissions for device)


出现如下错误信息:
hehangjun@hehangjun-ubuntu:~$adb shell
error: insufficient permissions for device
hehangjun@hehangjun-ubuntu:~$ adb devices
List of devices attached
????????????    no permissions

[请直接阅读下面的更新部分]
不知为何,现在连接到开发机器上的时候出现如上的错误信息,一直提示权限不正确。
暂的解决办法是使用root权限来启动adb server
hehangjun@hehangjun-ubuntu:~$sudo -s
[sudo] password for hehangjun:
root@hehangjun-ubuntu:~#adb kill-server ; adb start-server
* daemon not running. starting it now *
* daemon started successfully *
root@hehangjun-ubuntu:~#exit
exit
hehangjun@hehangjun-ubuntu:~$
再次执行adb shell就可以了。

可是这样也不是办法,因为这个错误太频繁了,在开发的过程中,很容易执行adb kill-server,然后再切换到root启动adb start-server太不方便。

这个时候就是setuid起作用的时候了。
转到adb所在的目录
hehangjun@hehangjun-ubuntu:~$cd ~/sdk/android-sdk_eng.sdk_linux-x86/tools
hehangjun@hehangjun-ubuntu:~/sdk/android-sdk_eng.sdk_linux-x86/tools$ls -ladb
-rwxr-xr-x 1 shily shily  341694 2010-05-11 05:46 adb
hehangjun@hehangjun-ubuntu:~/sdk/android-sdk_eng.sdk_linux-x86/tools$sudo chown root:root adb
[sudo] password for hehangjun:
hehangjun@hehangjun-ubuntu:~/sdk/android-sdk_eng.sdk_linux-x86/tools$ls -ladb
-rwxr-xr-x 1root root  341694 2010-05-11 05:46 adb
hehangjun@hehangjun-ubuntu:~/sdk/android-sdk_eng.sdk_linux-x86/tools$sudo chmod 7777 adb(四个7是最高的权限了)
hehangjun@hehangjun-ubuntu:~/sdk/android-sdk_eng.sdk_linux-x86/tools$ls -ladb
-rwsr-xr-x 1 root root   341694 2010-05-11 05:46 adb
shily@hh-desktop:~/sdk/android-sdk_eng.sdk_linux-x86/tools$
这样无论哪个用户启动adb 使用的都是root权限,就不会提示权限不足的错误了。