2011-04-01 79 views
85

我正在運行Ubuntu 10.10 64位。我安裝了ia32-libs以及Android Debug Bridge版本1.0.26。adb設備命令不起作用

我的問題(S):

  1. adb devices >>> ????????????沒有權限
  2. sudo adb devices >>>>須藤:亞行:找不到命令
  3. adb shell >>>錯誤:設備

權限不足,我想這些都是相關的。這是相關的信息。

$ echo $PATH 
/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/android-sdk-linux_x86/tools:/opt/android-sdk-linux_x86/platform-tools 

$ which adb 
/opt/android-sdk-linux_x86/platform-tools/adb 

$ adb devices 
* daemon not running. starting it now on port 5037 * 
* daemon started successfully * 
List of devices attached 
???????????? no permissions 

$ sudo adb devices 
sudo: adb: command not found 

$ adb shell 
error: insufficient permissions for device 

運行CM6.1的根源化Moto Droid和運行基於CM7的ROM的根G-Tab的結果相同。

我已經審議了以下相關文章:

我想大部分(不是全部)的建議,我一直沒能解決我的問題。我沒有嘗試的東西似乎不合適。我希望提供更多的提示,我會繼續解決問題。

我沒有試過的一件事是編輯/etc/udev/rules.d/70-android.rules。這可能是問題嗎?我看不到這會導致「sudo:adb:command not found」。也許我的問題並不都是相關的。無論如何,在這一點上,我想我需要一些其他人的意見,因爲我不認爲我有其他職位討論的路徑問題或其他常見問題。

編輯:已解決感謝EboMike和RivieraKid。這實際上是兩個不同的問題:

  1. 上述項#2(須藤:亞行:找不到命令)是通過使一個符號鏈接解決如下:

    $ sudo ln -s /opt/android-sdk-linux_x86/platform-tools/adb /usr/local/sbin/adb 
    

    ,讓我那麼做的EboMike建議並使用this solution。這是我的Moto Droid所必需的。 (ADB運行作爲須藤是需要我的優派G-平板電腦,但是。)

  2. 我的另外兩個項目是通過實現udev規則解析爲RivieraKid建議(從這個link)。

+0

[Ubuntu的:Android設備調試]的可能重複(http://stackoverflow.com/questions/3127539/ubuntu-android-device-debug) – EboMike 2011-04-01 07:28:54

+0

項目#1真的幫了我。不清楚項目#2 – Francisco 2013-04-05 20:08:48

+0

[設置開發設備(??????無權限)]的可能重複](https://stackoverflow.com/questions/9210152/set-up-device-for-development-沒有權限) – 2017-10-21 21:16:36

回答

87

One thing I didn't try was editing /etc/udev/rules.d/70-android.rules. Is that likely to be the issue?

爲什麼你不這樣做的任何特定原因?回答這個問題 - 是的! udev規則是告訴Ubuntu你的設備是什麼,並允許用戶空間工具訪問它。

您將無法使用ADB沒有正確遵循了instructions

考慮到這一點。然而,你不說你使用的是什麼版本的Ubuntu的,但我曾與10.10的問題 - 讓我知道如果你需要我後我的規則文件的內容。

不要擔心通過sudo運行ADB,你不需要它。來自udev規則的MODE="0666"允許您以任何用戶身份訪問設備。


編輯:

不要忘記重新加載規則:

sudo udevadm control --reload-rules 

編輯#2:

由於@Jesse格里克正確地指出,如果亞行已經運行在守護進程模式,您還需要重新啓動這個工作:

sudo adb kill-server 

我在這裏使用了sudo,因爲這樣可以保證adb將被殺死,並且這是官方支持的停止服務器的方法。它會在下次使用adb時自動重新啓動,但是這次使用的是正確的環境。

+1

謝謝你的[鏈接](http://developer.android.com/guide/developing/device.html)。不知道我錯過了這些指示是否正式的事實。我認爲人們是在做一個解決方案。我找到了我的Viewsonic GTablet的供應商代碼並添加了udev規則,現在它可以工作了!謝謝。 – MountainX 2011-04-01 08:40:01

+1

由於某些原因,我無法讓摩托羅拉Droid顯示adb設備。現在我可以得到GTab和一個模擬器來顯示,但不是Droid。 – MountainX 2011-04-01 08:43:03

+0

見上文。以root身份運行adb導致Moto Droid顯示。 – MountainX 2011-04-01 08:46:43

22

您需要以超級用戶身份重新啓動adb服務器。見here

+0

沒有工作。詳細信息: 'me @ desktop:/ opt/android-sdk-linux_x86/platform-tools $ sudo adb kill-server sudo:adb:command not found me @ desktop:/ opt/android-sdk-linux_x86/platform -tools $ adb kill-server me @ desktop:/ opt/android-sdk-linux_x86/platform-tools $ sudo adb start-server sudo:adb:command not found' – MountainX 2011-04-01 07:37:03

+0

'adb'不在您的路徑中超級用戶。輸入'which adb'來找出它所在的路徑,然後將其添加到根路徑。 – EboMike 2011-04-01 07:48:11

+0

希望你能閱讀這個。 (我不知道如何格式化註釋以包含換行符。)adb IS位於我的根用戶的路徑中。我在原始帖子中粘貼了哪個adb命令。路徑是/ opt/android-sdk-linux_x86/platform-tools/adb。 $ sudo -s root @ desktop:#echo $ PATH /usr/local/sbin:/ usr/local/bin:/ usr/sbin:/ usr/bin:/ sbin:/ bin:/ usr/X11R6/bin :/ opt/android-sdk-linux_x86/tools:/ opt/android-sdk-linux_x86/platform-tools – MountainX 2011-04-01 08:00:32

1

我通過overiding系統固定我的Debian GNU/Linux系統在這個問題上的規則,方式:

mv /etc/udev/rules.d/51-android.rules /etc/udev/rules.d/99-android.rules 

我使用的文件的鏈接內容: http://rootzwiki.com/topic/258-udev-rules-for-any-device-no-more-starting-adb-with-sudo/

+0

鏈接不工作! – user13107 2014-03-26 02:27:18

+0

http://rootzwiki.com/topic/258-udev-rules-for-any-device-no-more-starting-adb-with-sudo/ – RzR 2014-03-29 19:50:10

13

在我的Gentoo/Funtoo Linux系統我有類似的問題:

我gotting總是不正確的設備說明和足夠的權限:

# sudo ./adb devices 
List of devices attached 
???????????? no permissions 
# ./adb usb 
error: insufficient permissions for device 

對我來說,有助於從谷歌howto。 在我來說,我需要添加udev規則:

# cat /etc/udev/rules.d/51-android.rules 
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" 

和設置文件系統權限

# chmod a+r /etc/udev/rules.d/51-android.rules 

重新插入我的智能手機訪問手機後是成功的,但現在也出現在Eclipse中「Android設備選配:

# sudo ./adb devices 
List of devices attached 
3XXXXXXXXXXXXXC device 
# sudo ./adb usb 
restarting in USB mode 

您還必須檢查你的用戶的成員到plugdev -group。

2

請注意IDEs IntelliJ IDEA往往會啓動自己的adb服務器。

即使手動查殺服務器和運行使用sudo不會在這裏幫助一個新的實例,直到你讓你的IDE殺死服務器本身。

3

我讀過的每個答案都表示SUBSYSTEM=="usb"。但是,我的(也許是古代的)udev需要將其更改爲DRIVER=="usb"。最後,我可以以非root用戶身份運行adb服務器... yay。

它可以啓發看udevmonitor --env的輸出,隨後

udevinfo -a -p <DEVICE_PATH_AS_REPORTED_BY-udevmonitor> 
+0

如果你的機器上不存在'udevmonitor'和'udevinfo' ,請改用'udevadm monitor'和'udevadm info -a -p ...'。 – Josh 2017-04-23 12:16:20

0

的HTC One M7運行新鮮的CyanogenMod 11

電話連接USB和圈養我的輸出數據連接。

然後我得到這個驚喜:

[email protected]:~/temp/htc_m7/2015-11-11$ adb shell 
error: insufficient permissions for device 

[email protected]:~/temp/htc_m7/2015-11-11$ adb devices 
List of devices attached 
???????????? no permissions 

解決方法:打開手機圈養OFF。

[email protected]:~/temp/htc_m7/2015-11-11$ adb devices 
List of devices attached 
HT36AW908858 device 
-3

我剛剛得到了同樣的情況,工廠數據重置對我很好。

+0

當然這是一條評論? – 2016-07-26 12:28:47

+0

我的不好。我想說,重置設備和清理數據對我來說工作得很好。 – 2016-07-26 14:15:07

2

以root用戶身份重新啓動adb服務器。見:

[email protected]:~/Downloads$ adb sideload angler-ota-mtc20f-5a1e93e9.zip 
loading: 'angler-ota-mtc20f-5a1e93e9.zip' 
error: insufficient permissions for device 
[email protected]:~/Downloads$ adb devices 
List of devices attached 
XXXXXXXXXXXXXXXX no permissions 

[email protected]:~/Downloads$ adb kill-server 
[email protected]:~/Downloads$ sudo adb start-server 
* daemon not running. starting it now on port 5037 * 
* daemon started successfully * 
[email protected]:~/Downloads$ adb devices 
List of devices attached 
XXXXXXXXXXXXXXXX sideload