adb डिवाइस कमांड काम नहीं कर रहा है


86

मैं Ubuntu 10.10 64 बिट चला रहा हूं। मेरे पास Android डीबग ब्रिज संस्करण 1.0.26 के साथ ia32-lib स्थापित है।

मेरी समस्या:

  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

मैं एक रूट किए गए Moto Droid के CM6.1 और एक जड़ वाले G-Tab के साथ CM7- आधारित ROM चलाने के समान परिणाम प्राप्त करता हूं।

मैंने निम्नलिखित संबंधित पदों की समीक्षा की है:

मैंने सुझावों की सबसे (सभी की नहीं) कोशिश की और मैं अपने मुद्दे को हल करने में सक्षम नहीं हूं। जिन चीजों की मैंने कोशिश नहीं की, वे अनुचित लगीं। मैं कुछ और सुझावों की सराहना करता हूँ और मैं समस्या निवारण करता रहूँगा।

एक चीज़ जो मैंने कोशिश नहीं की थी वह /etc/udev/rules.d/70-android.rules को संपादित करना था। क्या यह मुद्दा होने की संभावना है? मैं नहीं देख सकता कि कैसे "sudo: adb: कमांड नहीं मिला"। हो सकता है मेरी समस्याएँ सभी संबंधित न हों। वैसे भी, इस बिंदु पर मुझे लगता है कि मुझे अन्य लोगों से कुछ इनपुट की आवश्यकता है क्योंकि मुझे विश्वास नहीं है कि मुझे एक पथ समस्या है या उन अन्य पोस्ट में चर्चा की गई अन्य सामान्य समस्याएं हैं।

EDIT: EboMike और RivieraKid के लिए धन्यवाद। यह वास्तव में दो अलग-अलग समस्याएं थीं:

  1. आइटम # 2 ऊपर (sudo: adb: कमांड नहीं मिला) को एक सिमलिंक बनाकर हल किया गया था:

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

    तब मुझे EboMike ने सुझाव दिया और इस समाधान का उपयोग करने की अनुमति दी । ऐसा करना मेरे Moto Droid के लिए जरूरी था। ( हालांकि मेरे Viewsonic G-Tablet के लिए sudo के रूप में रनिंग अदब की आवश्यकता नहीं थी।)

  2. मेरे अन्य दो आइटमों को udv शासन लागू करके हल किया गया था जैसा कि रिवेराकिड ने सुझाव दिया था (इस लिंक से )।



आइटम # 1 ने वास्तव में मेरी मदद की। आइटम # 2 के बारे में निश्चित नहीं है
फ्रांसिस्को क्विंटो

जवाबों:


87

एक चीज़ जो मैंने कोशिश नहीं की थी वह /etc/udev/rules.d/70-android.rules को संपादित करना था। क्या यह मुद्दा होने की संभावना है?

कोई विशेष कारण कि आपने ऐसा क्यों नहीं किया? प्रश्न का उत्तर देने के लिए - हाँ! Udev नियम वे हैं जो उबंटू को सूचित करते हैं कि आपका उपकरण क्या है और उपयोगकर्ता-स्पेस टूल्स को इसकी अनुमति देता है।

आप निर्देशों का पालन किए बिना सही तरीके से अदब का उपयोग नहीं कर पाएंगे ।

हालांकि, यह ध्यान में रखते हुए, आप यह नहीं कहते कि आप उबंटू के किस संस्करण का उपयोग कर रहे हैं, लेकिन मेरे पास 10.10 के साथ समस्याएं थीं - मुझे बताएं कि क्या आपको मेरी नियम फ़ाइल की सामग्री को पोस्ट करने की आवश्यकता है।

Sudo के माध्यम से adb चलाने के बारे में चिंता न करें, आपको इसकी आवश्यकता नहीं है। MODE="0666"Udev नियम से आप किसी भी उपयोगकर्ता के रूप में डिवाइस का उपयोग करने की अनुमति देता है।


संपादित करें:

नियमों को पुनः लोड करना न भूलें:

sudo udevadm control --reload-rules

EDIT # 2:

जैसा कि @Jesse Glick सही तरीके से बताती है, अगर adb पहले से ही डेमॉन मोड में चल रहा है, तो आपको काम करने के लिए इसे फिर से शुरू करना होगा:

sudo adb kill-server

मैंने यहाँ sudo का उपयोग किया है, क्योंकि यह गारंटी देगा कि adb को मार दिया जाएगा, और यह सर्वर को रोकने के लिए आधिकारिक रूप से समर्थित तरीका है। अगली बार अदब का इस्तेमाल होने पर यह अपने आप फिर से चालू हो जाएगा, लेकिन इस बार सही माहौल के साथ।


1
लिंक के लिए धन्यवाद । मुझे यकीन नहीं है कि मैंने इस तथ्य को कैसे याद किया कि वे निर्देश आधिकारिक थे। मुझे लगा कि लोग काम कर रहे हैं। मैंने अपने Viewsonic GTablet के लिए विक्रेता कोड पाया और udev नियम जोड़ा और अब यह काम करता है! धन्यवाद।
MountainX

1
किसी कारण से मैं अदब उपकरणों के साथ दिखाने के लिए मोटोरोला ड्रॉयड प्राप्त नहीं कर सकता। अब मुझे जीटीएबी और एमुलेटर दिखाने के लिए मिल सकता है, लेकिन ड्रॉइड नहीं।
MountainX

ऊपर देखो। रूट के रूप में चल रहे अदब ने Moto Droid को दिखाया।
MountainX

$ cat /etc/udev/rules.d/51-android.rules SUBSYSTEM == "usb", SYSFS {idVendor} == "22b8", MODE = "0666" SUBSYSTEM == "usb", SYSFS {idVendor} = = "0955", मोड = "0666"
MountainX

1
... और आपको adbडेमॉन को पुनः आरंभ करने की आवश्यकता है , अगर यह पहले चल रहा था।
जेसी ग्लिक

22

आपको adb सर्वर को रूट के रूप में पुनरारंभ करने की आवश्यकता है। देखें यहाँ


काम नहीं किया। विवरण: 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

adbआपके सुपरयुसर के रास्ते में नहीं है। which adbयह पता लगाने के लिए दर्ज करें कि यह किस पथ में है, फिर इसे रूट के पथ में जोड़ें।
EboMike

आशा है कि आप इसे पढ़ सकते हैं। (मुझे नहीं पता कि कैसे नई टिप्पणियों को शामिल करने के लिए टिप्पणियों को प्रारूपित किया जाए।) मेरे रूट उपयोगकर्ता के मार्ग में adb IS है। मैंने अपनी मूल पोस्ट में किस adb कमांड को चिपकाया है। पथ / ऑप्ट / Android / sdk-linux_x86 / platform-tools / adb है। $ sudo -s root @ डेस्कटॉप: # इको ​​$ PATH / usr / local / sbin: / usr / लोकल / बिन: / usr / sbin: / usr / बिन: / sbin: / bin: / usr / X11R6 / bin: / ऑप्ट / android-sdk-linux_x86 / tools: / opt / android-sdk-linux_x86 / platform-tools
MountainX

1
यहाँ एक अजीब बात है। मुझे "कौन सी अदब" से अलग-अलग परिणाम मिलते हैं, इस पर निर्भर करता है कि मैं इसे रूट के रूप में चलाता हूं या इसे सूडो के साथ चलाता हूं। यहाँ आउटपुट $ sudo है जो adb $
MountainX

पूर्ण पथ निर्दिष्ट करें जब आप एडीबी को रूट के रूप में चलाते हैं।
EboMike

13

मेरे Gentoo / Funtoo linux सिस्टम पर मुझे ऐसी ही समस्याएँ हैं:

मुझे हमेशा सही उपकरण विवरण और अपर्याप्त अनुमति नहीं मिली:

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

मेरे लिए Google से 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

मेरे स्मार्टफ़ोन को फोन तक पहुंचाने में सफल होने के बाद, यह अब ग्रहण के 'एंड्रॉइड डिवाइस चॉसर' में भी दिखाई देता है:

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

आपको अपने उपयोगकर्ता की सदस्यता को प्लगदेव -ग्रुप में भी जांचना होगा


3

मैंने पढ़ा हर उत्तर इंगित करता है SUBSYSTEM=="usb"। हालाँकि, मेरे (शायद प्राचीन) udv को इसे बदलने की आवश्यकता थी DRIVER=="usb"। अंत में मैं एडीबी सर्वर को एक गैर-रूट उपयोगकर्ता के रूप में चला सकता हूं ... याय।

यह udvmonitor --env के आउटपुट को देखने के लिए शिक्षाप्रद हो सकता है, जिसके बाद आउटपुट आ सकता है

udevinfo -a -p <DEVICE_PATH_AS_REPORTED_BY-udevmonitor>

यदि आपकी मशीन पर मौजूद है udevmonitorऔर udevinfoनहीं है, तो उपयोग करें udevadm monitorऔर udevadm info -a -p ...इसके बजाय।
ऐश

2

कृपया ध्यान दें कि IntelliJ IDEA जैसे IDE अपना स्वयं का adb-server शुरू करते हैं।

यहां तक ​​कि मैन्युअल रूप से सर्वर को मारना और सुडो के साथ एक नया उदाहरण चलाना तब तक यहां मदद नहीं करेगा जब तक आप अपना आईडीई सर्वर खुद को नहीं मारते।


2

adb सर्वर को रूट के रूप में पुनरारंभ करना मेरे लिए काम किया। देख:

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

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

मुझे भी: एचटीसी सेंसेशन के साथ लिनक्स मिंट सेरेना 18.1। नोब अलर्ट: मैं इस तरह के सामान के साथ लगभग 2 दिनों से फफक रहा
हूं

1

मैंने इस नियम को अपने डेबियन ग्नू / लिनक्स सिस्टम पर इस तरह से तय किया है:

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

एचटीसी वन m7 चल रहा है ताजा CyanogenMod 11।

फ़ोन USB से जुड़ा है और मेरे डेटा कनेक्शन को टेदर कर रहा है।

तब मुझे यह आश्चर्य हुआ:

cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb shell
error: insufficient permissions for device

cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb devices
List of devices attached
????????????    no permissions

समाधान: फोन पर टेदरिंग बंद करें।

cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb devices
List of devices attached
HT36AW908858    device

-3

मुझे बस वही स्थिति मिली, फ़ैक्टरी डेटा रीसेट ने मेरे लिए अच्छा काम किया।


निश्चित रूप से यह एक टिप्पणी है?
मैथ्यू टेलर

मेरी गलती। मैं यह कहना चाहता था कि डिवाइस को रीसेट करना और डेटा को साफ करना मेरे लिए अच्छा है।
एंड्री क्रॉखिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.