Mar*_*jes 44 root sudo android environment-variables adb
我正在使用 Ubuntu 12.10 并且我已经安装了 Android SDK,在我的用户中设置了它的路径.bashrc
并且它可以工作。
问题是我的手机需要由 root 运行 adb 以获得权限,但是使用 sudo 运行 adb 我收到以下错误:
须藤:adb:找不到命令
我试图简单地使用sudo -E adb start-server
,但它不起作用。尝试将导出路径行添加到/root/.bashrc
和(在意识到它没有帮助后)添加到/etc/bash.bashrc
.
我记得我可以在我的 Arch Linux 上设置它,但我想我现在的问题是连接到 Ubuntu root 帐户,行为不像我预期的那样。
我不明白的是以下内容:
这些不起作用:
martin@alyx:~$ sudo adb devices
sudo: adb: command not found
Run Code Online (Sandbox Code Playgroud)
这样做(输入完整路径):
martin@alyx:~$ sudo /opt/android-sdk-linux/platform-tools/adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
CM7-Blade device
Run Code Online (Sandbox Code Playgroud)
这不起作用(将 -E 与 sudo 一起使用):
martin@alyx:~$ sudo -E adb devices
sudo: adb: command not found
Run Code Online (Sandbox Code Playgroud)
这有效(以root身份):
martin@alyx:~$ sudo su
root@alyx:/home/martin# adb devices
List of devices attached
CM7-Blade device
Run Code Online (Sandbox Code Playgroud)
我现在完全糊涂了,我希望能澄清一下如何为 sudo 设置路径或如何解决我的问题。
(请不要说 adb 不应该以 root 身份运行。)
提前致谢!
编辑: 通过要求 root 权限,我的意思是我需要它们,否则我会得到:
$ adb devices
List of devices attached
???????????? no permissions
Run Code Online (Sandbox Code Playgroud)
这不会作为超级用户发生。对不起,如果这是误解。
Liv*_*eBT 50
请先阅读以下内容:如何设置 Android ADB?
首先,如果您相应地设置了权限,则不需要 root 权限来运行 ADB。AOSP 站点提供了为 Pixel/Nexus 设备配置 USB 访问的示例。您可以对非 Nexus 设备使用以下方案:
SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", ATTR{idProduct}=="xxxx", MODE="0600", OWNER="<username>"
Run Code Online (Sandbox Code Playgroud)
供应商和产品 ID 可以通过使用lsusb
和搜索您的设备来获取。(注意:该设备实际上是 Galaxy Nexus。)
$ lsusb | grep -i samsung
Bus 002 Device 103: ID 04e8:6860 Samsung Electronics Co., Ltd GT-I9100 Phone [Galaxy S II]
Run Code Online (Sandbox Code Playgroud)
所以我的/etc/udev/rules.d/51-android.rules
udev 规则是这样的:
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="username"
Run Code Online (Sandbox Code Playgroud)
如果需要,您可能希望对其他手机状态(如 fastboot)重复此操作。要让更改生效,请重新加载 udev ( sudo udevadm control --reload
) 或重新启动(推荐)。
我建议在(仅限用户)或(系统范围内)中添加指向可执行文件的符号链接,而不是修改路径变量。~/bin/
/usr/local/bin/
mkdir ~/bin/
ln -s /opt/android-sdk-linux/platform-tools/adb ~/bin/
Run Code Online (Sandbox Code Playgroud)
小智 29
我在使用来自中国的平板电脑(一些奇怪的制造商)时遇到了同样的问题。
除了/etc/udev/rules.d/51-android.rules
文件,我还需要更改~/.android/adb_usb.ini
。
在终端下面运行;
sudo gedit ~/.android/adb_usb.ini
Run Code Online (Sandbox Code Playgroud)
你的adb_usb.ini
文件应该是这样的:
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
# ie 0x2207
0x<!!!Your Vendor ID here!!!>
Run Code Online (Sandbox Code Playgroud)
断开和重新连接的设备,还需要在终端上运行以下命令;
adb kill-server
Run Code Online (Sandbox Code Playgroud)
之后
adb start-server
Run Code Online (Sandbox Code Playgroud)
并检测到该设备。
归档时间: |
|
查看次数: |
229977 次 |
最近记录: |