Ubuntu 17.04 पर कोई अनुमति नहीं है


48

जब मैं कोशिश करता हूं:

$ adb devices

मुझे इसका परिणाम मिलता है:

List of devices attached 
????????????    no permissions

समस्या क्या है?

एक Ubuntu 16.04 मशीन पर कोशिश की और यह पूरी तरह से काम किया। एक 7.1.1 डिवाइस की कोशिश की और यह भी पूरी तरह से काम किया।


कोशिश करो sudo adb devices। यदि वह महान काम करता है, लेकिन स्मृति से मुझे संलग्न उपकरणों की जांच करने के लिए रूट नहीं होना चाहिए।
shmink

1
यह sudo के साथ काम नहीं करेगा लेकिन रूट लॉगिन के साथ होगा। समस्या यह है कि एंड्रॉइड स्टूडियो केवल एक गैर रूट सत्र से एडीबी प्रीफॉर्म करता है, और इसे जक्सडूड के साथ चलाने से यह मेरी फाइलों को पहचान नहीं पाएगा।
नादव तशेर

मैंने एंड्रॉइड स्टूडियो के साथ समान रूप से पाया है और आमतौर पर जेटब्रायन द्वारा बनाई गई कुछ भी। जब आप Android स्टूडियो स्थापित करते हैं तो क्या आपने इसे रूट के रूप में किया था?
shmink

रूट के रूप में स्थापित / usr / स्थानीय / और 777 -R के लिए choded, रूट के रूप में नहीं चला तो यह सेटिंग्स और skk पहचान लेंगे।
नदव तशेर

कैसे इसे रूट के रूप में चलाने के लिए और बस सेटिंग्स को बदलने और उचित रूप से एसडीके।
shmink

जवाबों:


64

Adb सर्वर को पुनरारंभ करने का प्रयास करें।

sudo adb kill-server

और फिर

sudo adb start-server

फिर अपने डिवाइस को चालू करें डिबगिंग चालू करें और टाइप करें

adb devices

2
यह काम करता है .. की तरह। ऐसा करने के बाद, वास्तव में, adb devicesअब चल रहा डिवाइस दिखाता है (और मुझे फिंगरप्रिंट डायलॉग मिलता है)। हालाँकि, यह अभी भी एंड्रॉइड स्टूडियो के साथ काम नहीं करता है। इसके अलावा, जब मैं एंड्रॉइड स्टूडियो चलाता हूं, और फिर मैं adb devicesएक कंसोल से चलता हूं, तो मुझे "एडीबी सर्वर पुराना है" और एडीबी सर्वर पुनरारंभ होता है। उसके बाद, मैं फिर से "कोई अनुमति नहीं" स्थिति में पहुंचता हूं।
शेड

यह काम नहीं करता। adb डिवाइस कुछ नहीं दिखाता है और हेडसेट कभी भी दोबारा अनुमति नहीं मांगता है।
टायगुए 7

62

एक ही समस्या थी। यह सुनिश्चित करना कि डिवाइस USB मोड चार्ज नहीं है, केवल इसे हल किया है।


5
यहाँ भी, मैंने बिना किसी परिणाम के Udev नियमों को संशोधित किया था, USB को फाइलिंग और प्रीस्टो में बदल दिया। डिवाइस को पिछले ubuntu संस्करण में कोई udev नियम या विशिष्ट USB मोड की आवश्यकता नहीं थी।
फको पी।

3
यह सही उत्तर होना चाहिए (adb पुनरारंभ सर्वर नहीं)
RumburaK

1
मेरे लिए सही उत्तर।
अल्वारो गुटिरेज़ पेरेस

1
सही उत्तर नहीं होना चाहिए लेकिन काम किया।
उज़ुमाकी डी। इचिगो

1
हां, यह सही उत्तर है।

39

बहुत संभावना है कि udv गलत तरीके से आपके डिवाइस को जोड़ रहा है। मेरे पास भी यह समस्या थी और अपेक्षाकृत सरल समाधान था।

अपने डिवाइस को lsusb में खोजें

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
Bus 001 Device 002: ID 05c8:03a2 Cheng Uei Precision Industry Co., Ltd (Foxlink) 
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

इस मामले में रुचि के बिंदु:

Bus 001 Device 006: ID 18d1:4ee7 Google Inc.

संबंधित डिवाइस फ़ाइल देखें

$ ls -l /dev/bus/usb/001/006

संभवत: आपको कुछ ऐसा दिखाई देगा

crw-rw-r-- 1 root root 189, 5 Sep  8 21:47 /dev/bus/usb/001/006

इसका मतलब यह है कि डिवाइस फ़ाइल का स्वामित्व उपयोगकर्ता रूट और समूह रूट के पास होगा, यही कारण है कि adb इसे रूट के रूप में एक्सेस कर सकता है लेकिन आपके मानक उपयोगकर्ता के रूप में नहीं।

यह एक नया udv नियम बनाकर हल किया जा सकता है - मैंने उपयोग किया /etc/udev/rules.d/51-android.rules- डिवाइस को समूह में जोड़ने के लिए plugdev, जो कि पहले से ही adb आपको सदस्य मानता है (आप shoukd be, check using का उपयोग कर सकते हैं id)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660", 
GROUP="plugdev", SYMLINK+="android%n"

** ATTR {idProduct} == "4ee7" को अपने स्वयं के उत्पाद आईडी से बदलना याद रखें जिसे आपने चरण एक में पाया था। ** (यदि आपका विक्रेता Google Inc. नहीं है, तो विक्रेता आईडी को lsusb में कोलन से पहले वाले के साथ बदलें)।

अब बस अपने डिवाइस को अनप्लग करें और इसे वापस प्लग करें (udev को स्वचालित रूप से नई फ़ाइल पर प्रतिक्रिया देनी चाहिए) और टाडा:

$ adb devices
List of devices attached 
YC873P0G    device

स्रोत: USB डीबगिंग Android उपकरणों के लिए udev नियम जोड़ना - Janos Gyerik


1
इस जवाब ने मेरी समस्या हल कर दी। बहुत बहुत धन्यवाद।
एलेक्सिया

1
धन्यवाद @Paul यह मेरी मदद की। खैर कारण के साथ समझाया। मुझे लगता है कि udev सेवा पुनरारंभ भी आवश्यक है।
गगन

यह निश्चित रूप से सही समाधान है यदि आप सामान के लिए sudo का उपयोग नहीं करना चाहते हैं, जिसके लिए आपको sudo का उपयोग करने की आवश्यकता नहीं होनी चाहिए
ahtt

यह स्वीकृत उत्तर होना चाहिए, क्योंकि यह सही उत्तर है। उच्चतम श्रेणी का उत्तर वास्तव में सिर्फ एक समाधान है।
जोएल क्रॉस

इससे मेरे लिए हल हो गया। कल बिना नियमों के काम किया, लेकिन फिर ubuntu पर अपडेट स्थापित करने के बाद इसने काम करना बंद कर दिया और मुझे यह करना पड़ा।
सिमर्न

2

सुमीत देशमुख के जवाब का विस्तार करने के लिए, उनका दृष्टिकोण सामान्य रूप से काम करता है - यदि आप केवल adbकंसोल से कमांड का उपयोग करना चाहते हैं ।

एंड्रॉइड स्टूडियो, हालांकि, जाहिरा तौर पर अपना स्वयं का एडीबी सर्वर शुरू करता है, हमारी हत्या करता है। इसका मतलब है कि जब हमने sudo के साथ सर्वर को मार दिया है / शुरू कर दिया है, तो स्टूडियो इसे फिर से शुरू करता है, जो शुरुआती स्थिति की ओर जाता है - कोई अनुमति नहीं।

समाधान पहले स्टूडियो शुरू करने के लिए है, फिर सर्वर की शुरुआत / स्टॉप करें। ऐसा करते हुए, मैं स्टूडियो में एक वैध रन लक्ष्य के रूप में दिखाने के लिए अपना Nexus 5X प्राप्त करने में कामयाब रहा।

यह सबसे अच्छी स्थिति नहीं है (हर बार जब आप स्टूडियो शुरू करते हैं, तो कमांड चलाने के लिए), लेकिन यह एक त्वरित और गंदे तरीके से चाल चलता है। यदि मुझे अधिक स्थायी समाधान मिल जाता है, तो मैं इस उत्तर को अपडेट करूंगा।


बहुत-बहुत धन्यवाद, हालाँकि यह एक सिस्टम अपडेट (फोन पर) और स्टूडियो अपडेट द्वारा तय किया गया बग था।
नादव तशरीर

2

फ़ोन से USB मोड को बदलने से मेरे लिए चाल चली गई। (मैंने इसे फाइल ट्रांसफर पर सेट किया है ।)


2

कृपया उपयोग करने के लिए सुझाव दे समाधान का पालन नहीं करतेsudo ( sudo adb start-server)! यह रन एडीबी रूट (प्रशासक) के रूप में है और इसे उस तरह नहीं चलाना चाहिए !!! यह एक बड़ा बदलाव है !

रूट के रूप में चलने वाली सब कुछ आपके सिस्टम में कुछ भी कर सकता है, अगर यह एक फाइल बनाता है या संशोधित करता है तो इसकी अनुमति केवल रूट द्वारा उपयोग की जा सकती है। फिर से, नहीं!

ऐसा करना सही , उपयोगकर्ता की अनुमति है की जाँच करने के लिए अपने सिस्टम की स्थापना की है इस गाइड मैं पर लिखा था कि कैसे ठीक से यह करने के लिए।


2

plugdevसमूह में खुद को शामिल करने और मशीन को रिबूट करने के बाद यह मेरे लिए काम नहीं करता था, यह सुनिश्चित करने के लिए कि मेरे सभी शेल सत्रों में परिवर्तन प्रभावी होता है। मैंने तब पाया कि समस्या को ठीक करने के लिए कोई 51-android.rulesफ़ाइल नहीं है /etc/udev/rules.dऔर निम्नलिखित को करना होगा:

# Here the vendor ID is of Google
$ echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0660", GROUP="plugdev"' | sudo tee —append /etc/udev/rules.d/51-android.rules
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
$ sudo udevadm control --reload-rules
$ sudo service udev restart

मुझे अपने Android डिवाइस को अनप्लग और री-प्लग करना पड़ा।


यह मेरे लिए भी काम नहीं करता है ...
Tyguy7

1

आपको अपने Android डिवाइस पर अनुमति प्रदान करने की आवश्यकता है। सेटिंग> डेवलपर विकल्प पर जाएं। Usb डीबगिंग को बंद करने और फिर से चालू करने का प्रयास करें। केबल निकालें और इसे फिर से कनेक्ट करें। डेवलपर विकल्पों से सभी सहेजे गए प्राधिकरणों को हटाने का भी प्रयास करें। अब इसे अपने फोन पर एक संकेत द्वारा डिबगिंग अनुमति के लिए पूछना चाहिए। स्वीकार करें।


काम नहीं करता है, मैं पहले से ही यह कोशिश की, अगर यह मायने रखता है, मैं एंड्रॉयड 7.1.2 का उपयोग कर रहा हूँ, और एक और डिवाइस जो 7.1.1 चल रहा है पर यह काम किया।
नदव तशेर

सभी होस्ट प्राधिकरणों को हटाने की कोशिश की? उसके बाद रिबूट किया गया?
जोएल जी मैथ्यू

रिबूट नहीं किया। मैं कोशिश करूँगा कि अगर यह काम किया तो आपको बताऊंगा।
नदव तशेर

यदि यह काम करता है, तो आप उत्तर स्वीकार कर सकते हैं।
जोएल जी मैथ्यू

बीमार आज बाद में जाँच करें
नदव तशेर

1

M0Rf30/android-udev-rules GitHub समुदाय ने udv-rules बनाए रखा

https://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules

यह सबसे पूर्ण udev-rules सूची है जिसे मैंने अब तक देखा है, यहां तक sudo apt-get install android-tools-adb कि आधिकारिक दस्तावेज पर वर्तमान में अनुशंसित से अधिक , इसे आज़माएं।


0

मुझे नहीं पता कि यह क्यों काम करता है, लेकिन यह एकमात्र समाधान था जो मेरे लिए काम करता था

पता लगाएं कि एडीबी कहां चल रहा है (यदि आप मेरे जैसे हैं तो आपके पास कई संस्करण स्थापित हैं)। ध्यान रखें कि प्रतिक्रिया जैसे उपकरण आपके जीवन को कठिन बनाने के लिए यादृच्छिक अन्य संस्करणों का उपयोग करने का निर्णय ले सकते हैं। मेरे लिए यह है ~/Android/Sdk/platform-tools/adb। तो मैं चलाऊंगा:

sudo chown root:YOUR_USERNAME ~/Android/Sdk/platform-tools/adb
sudo chmod 4550 ~/Android/Sdk/platform-tools/adb

एंड्रॉइड टूल सुपर कष्टप्रद हैं।


0

सेटिंग्स >> मेंटेनेंस >> स्टोरेज पर जाएं। फिर शीर्ष बाएं मेनू की जांच करें और यूएसबी कंप्यूटर कनेक्शन पर क्लिक करें फिर मीडिया डिवाइस (एमटीपी) में बदलें।

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