विकास के लिए डिवाइस सेट अप करें (???????????? कोई अनुमति नहीं)


282

मैं एक सैमसंग गैलेक्सी नेक्सस फोन ( एंड्रॉइड 4.0 प्लेटफॉर्म) का उपयोग कर रहा हूं ।

मैं Ubuntu linux OS पर Android ऐप विकसित कर रहा हूं। मैं अपना एप्लिकेशन सीधे सैमसंग हैंडसेट डिवाइस पर चलाना चाहता हूं, इसलिए मैंने निम्नलिखित सेटअप चरणों का पालन किया:

  1. मेरी परियोजना AndroidManifest.xmlफ़ाइल में, तत्व में जोड़ा android:debuggable="true"गया<application>

  2. डिवाइस में, सेटिंग्स में> सुरक्षा ने अज्ञात स्रोतों को सक्षम किया

  3. डिवाइस में, सेटिंग> डेवलपर विकल्पों में यूएसबी डिबगिंग सक्षम है

  4. मेरे कंप्यूटर पर, /etc/udev/rules.d/51-android.rulesनिम्न सामग्री वाली फ़ाइल बनाई :

    SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev" 
  5. मेरे कंप्यूटर पर, chmod a+r /etc/udev/rules.d/51-android.rulesकमांड चलाएँ

फिर, अपने कंप्यूटर पर मैंने एक टर्मिनल खोला और adb devicesकमांड को निष्पादित किया , मुझे मिला:

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

चूँकि मैंने अपना डिवाइस नहीं देखा था ???????????? no permissions, लेकिन केवल तब, मैं निम्नलिखित कमांड चलाता हूँ:

 adb kill-server
 adb start-server
 adb devices

लेकिन मुझे अभी भी मिला:

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

क्यों? मैं क्या खो रहा हूँ?


एक्सबेटिंग के बाद अदब किल-सर्वर को यह संदेश मिला कि * डेमॉन नहीं चल रहा है। पोर्ट 5037 * * डेमॉन सफलतापूर्वक प्रारंभ पर अब यह शुरू कर * --- यह कोशिश नहीं करता है, तो जब तक यू इस संदेश मिलता है
एंड्रो सेल्वा

2
यह जांचने की कोशिश करें कि आपका उपयोगकर्ता plugdevसमूह में है या नहीं।
सेर्गेई ग्लोटोव

2
रन => sudo adb स्टार्ट-सर्वर (रूट रन एक्सेस का उपयोग adb)
कन्फ्यूज्ड

अंत में मुझे इस लिंक में मेरे लिए काम करने वाले समाधान github.com/snowdream/51-android
अब्दुलरहमान गमाल

जवाबों:


451

मेरे लिए जो काम करता है वह है एडीबी सर्वर को फिर से मारना और शुरू करना। लिनक्स पर: sudo adb kill-serverऔर फिर sudo adb start-server। फिर यह बॉक्स से बाहर लगभग हर डिवाइस का पता लगाएगा।


1
मैं <android-SDK> / platform-tool / के तहत कमांड "adb devices" निष्पादित करने के लिए रूट का उपयोग करता हूं, मुझे "No कमांड 'adb' मिला", क्यों?
लेम.फिन

8
सुनिश्चित करें कि आपका adb + x मिला है -rwxrwxr-x 1 martin martin 156K 2011-11-09 15:40 adb। सीधे निर्देशिका में जाने की कोशिश करें और "sudo ./adb उपकरणों" के माध्यम से शुरू करें। यदि आप बिना सूडो के दौड़ सकते हैं, तो आपको इसे
सूडो के

8
यदि आपके udev अनुमतियाँ सही ढंग से सेट हैं, तो आपको adb को रूट के रूप में चलाने की आवश्यकता नहीं है। नीचे grebulons का उत्तर देखें, या Android दस्तावेज़ देखें: developer.android.com/tools/device.html
gnac

4
एक महत्वपूर्ण सुझाव USB केबल को डिस्कनेक्ट करता है, इसलिए आप adb को रीसेट करते हैं, केबल को कनेक्ट करते हैं और यह काम करता है। मेरी स्थिति में, जब मैंने केबल के साथ प्रक्रिया को जोड़ा था तो यह मेरे लिए काम नहीं करता है।
androidevil

6
और आज्ञाएँ हैं: adb kill-server sudo adb start-serverजाँच करने के लिए:adb devices
आसिम

350

मेरे लिए कुछ भी काम नहीं किया जब तक कि मैं अंत में यहाँ जवाब नहीं मिला: http://ptspts.blogspot.co.il/2011/10/how-to-fix-adb-no-permissions-error-on.html

मैं भविष्य में गायब होने की स्थिति में पाठ की प्रतिलिपि बना रहा हूँ।

निम्नलिखित सामग्री के साथ /tmp/android.rules नामक एक फ़ाइल बनाएं (विक्रेता सूची पृष्ठ से हेक्स विक्रेता संख्याएं ली गई थीं):

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1bbb", MODE="0666"

निम्न आदेश चलाएँ:

sudo cp /tmp/android.rules /etc/udev/rules.d/51-android.rules
sudo chmod 644   /etc/udev/rules.d/51-android.rules
sudo chown root. /etc/udev/rules.d/51-android.rules
sudo service udev restart
sudo killall adb

फोन और कंप्यूटर के बीच यूएसबी केबल को डिस्कनेक्ट करें।

फोन को फिर से कनेक्ट करें।

adb devicesयह पुष्टि करने के लिए चलाएँ कि अब उसके पास फ़ोन तक पहुँचने की अनुमति है।

कृपया ध्यान दें कि फ़ाइल में , USER="$LOGINNAME"इसके बजाय इसका उपयोग करना संभव है , आपके लॉगिन नाम के लिए प्रतिस्थापन , अर्थात क्या प्रिंट।, MODE="0666".rules$LOGINNAMEid -nu

कुछ मामलों में udev नियमों को एक नाम देना आवश्यक हो सकता है, जो अंत के करीब हो, जैसे कि z51-android.rules


7
नोट: उबंटू सटीक के लिए फ़ाइल नाम 70-android.rulesइस पोस्ट के अनुसार है: esausilva.com/2010/05/13/… । हमें यह बताने के लिए भी यश है कि आपको udevसभी adb प्रक्रियाओं को पुनः आरंभ और मारना होगा। एक जादू की तरह काम किया!
एडुआर्ड लुका

एक समान दृष्टिकोण आधिकारिक तौर पर developer.android.com/tools/device.html
bjunix

4
यह अच्छी तरह से काम किया है, लेकिन जैसा कि @luciana ने एक अन्य उत्तर में कहा है, sudo udevadm control --reload-rulesयदि सर्वर को पुनरारंभ करना पर्याप्त नहीं है , तो आपको udev नियमों को ताज़ा करने के लिए कॉल करने की आवश्यकता हो सकती है।
सर्जेली

4
इसे सही उत्तर के रूप में चिह्नित किया जाना चाहिए, क्योंकि sudo-ing adb Linux के लिए एक आवश्यकता नहीं होनी चाहिए
Zac

1
यह यहाँ एकमात्र सही उत्तर है। इसके लिए धन्यवाद्! इसके अलावा, हम यह सुनिश्चित करने के लिए कि इसे शामिल किया गया है, आवश्यक विक्रेता बनाने के लिए lsusb आउटपुट देख सकते हैं। सबसे अजीब, मेरे केवल एक डिवाइस (वनप्लस वन) ने अचानक एंड्रॉइड 7.1.2 (यहां तक ​​कि रूट के रूप में एडीबी चलाने पर) के उन्नयन के बाद काम करना बंद कर दिया, ऊपर वर्णित के रूप में udv नियमों को जोड़ने के बाद, यह फिर से काम करता है।
user1209216

77

निम्नलिखित कमांड दर्ज करें:

adb kill-server sudo ./adb start-server adb devices

समस्या आपके रूट के रूप में नहीं चल रहा है।


4
हालांकि यह विचार स्वीकृत उत्तर के समान है, इसने केवल उदाहरण प्रदान करने के कारण मेरी मदद की। धन्यवाद
user907860

1
@ user907860 यह वास्तव में स्वीकृत उत्तर से बेहतर है क्योंकि यह बताता है कि आपको sudo क्यों लिखना चाहिए :) (जो मैंने स्वीकार किए गए उत्तर को नहीं देखा था)
stan0

btw किसी भी विचार क्यों adb रूट के रूप में चलना चाहिए?
stan0

क्षमा करें, मुझे याद नहीं है
iancrowther

2
adb रूट के रूप में नहीं चलना चाहिए। यदि यह आवश्यक है, तो आपका सिस्टम गलत है। सब कुछ के सामने "सूडो" फेंकना बंद करो, इसमें भारी सुरक्षा निहितार्थ हैं।
21

55

सब से ऊपर की कोशिश की, कोई भी काम नहीं किया .. आखिरकार तब काम किया जब मैं MTP से कैमरा (PTP) से जुड़ा था।


3
उन लोगों के लिए जो यह करना चाहते हैं ... सिस्टम सेटिंग्स> स्टोरेज> ऊपरी दायां बटन: USB कंप्यूटर कनेक्शन> मीडिया डिवाइस (MTP) के बजाय चयन कैमरा (PTP) के रूप में कनेक्ट करें
Thaddeus Albers

3
आदमी, मैं दो घंटे जैसे समाधान की तलाश में था, यह मेरे लिए ubuntu 16.04 पर काम करता है, धन्यवाद
जोरिअस

यह जाँच करने वाली पहली चीज़ होनी चाहिए। मेरे लिए काम करता है
m50

32

वहाँ बुरा जवाब इस सवाल चल रहा है पर जोर से लेकर पोस्ट के एक बहुत हैं adbके रूप में rootपूरी तरह से असंबंधित मुद्दों को सुलझाने के लिए (जो केवल या भी सुझाए गए समाधान के रूप में बताया नहीं किया जाना चाहिए)।

यहाँ एक ही बार में सभी उपकरणों adbऔर fastbootउपकरणों की अनुमति लेने के लिए सबसे छोटा और सबसे सार्वभौमिक नुस्खा है :

echo 'ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:ff420?:*", MODE="0666"' | sudo tee /etc/udev/rules.d/99-android.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --verbose --action=add --subsystem-match=usb

या आप थोड़े लंबे संस्करण का उपयोग कर सकते हैं जो मैंने इस जिस्ट में पोस्ट किया है ।

ओपी ने अपने सवाल में जो खास बात की, वह गलत है - यह फाइल को udevसंपादित करने के बाद नियमों को फिर से लोड करना नहीं था .rules

साथ ही ओपी ने यह नहीं बताया कि उनके फोन पर कौन सा एंड्रॉइड बिल्ड (उर्फ रोम) है। idVendorमूल्य सॉफ्टवेयर में सेट किया गया है और इसलिए यह ROM पर निर्भर करता है। इसलिए 04E8उन्होंने अपने मूल नियम में जिस मूल्य का इस्तेमाल किया था , वह केवल सैमसंग स्टॉक रोम वाले उपकरणों के लिए काम करता था। लेकिन यह इस udevनियम के लिए कोई समस्या नहीं है - यह सभी उपकरणों के साथ adbया fastbootउनके वेन्डरआईडी की परवाह किए बिना इंटरफेस से मेल खाता है ।


यह देखने के लिए केवल अनुपस्थित कदम अदब उपकरणों से पहले अदब किल-सर्वर है।
mstrange

1
यह एंड्रॉइड 8.1 पर अब काम नहीं करता है। आपको कैसे पता चला कि डिवाइस आईडी के रूप में एडीबी क्या रिपोर्ट करता है?
काकपा

मेरे लिए एंड्रॉइड 7.1.2 पर काम किया
Amerzilla

@ कछपा, यह सभी एंड्रॉइड संस्करणों के साथ काम करता है। यहां तक ​​कि नवीनतम (मेरे लिखने के समय) एंड्रॉइड पी प्रीव्यू 4 एक ही एडीबी इंटरफ़ेस आईडी का उपयोग करता है - android.googlesource.com/platform/system/core/+/-/
एलेक्स पी।

अभी भी एंड्रॉइड 11 के साथ काम करता है android.googlesource.com/platform/system/core/+/…
एलेक्स पी।

16

आर्कलिनक्स में यह कभी-कभी हो सकता है। जोड़:

$ sudo -s
# adb kill-server
# adb start-server

मुझे यकीन नहीं है कि अगर वह एकमात्र चीज थी जो इसे काम करती है ... मैंने उपरोक्त सामान की कोशिश की। लेकिन w / o इस पोस्ट को VBox पर ubuntu ने मेरे एलजी जी 3 को अधिकृत नहीं किया। शुक्रिया कीनन
लास्टबॉय

मैं नहीं जानता कि क्यों लेकिन sudo adb kill-server; sudo adb start-serverकाम नहीं किया लेकिन यह एक किया।
रितिक

9

डेबियन का उपयोग करने वालों के लिए, "/etc/udev/rules.d/51-android.rules" फ़ाइल बनाने के लिए उबंटू के तहत एक उपकरण स्थापित करने के लिए गाइड काम नहीं करता है। मैंने यहां से निर्देशों का पालन किया । संदर्भ के लिए यहाँ नीचे डाल रहा है।

इस फ़ाइल को सुपरयुसर के रूप में संपादित करें

sudo nano /lib/udev/rules.d/91-permissions.rules

इसके समान पाठ ढूंढें

# usbfs-like devices 
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, \ MODE=”0664

फिर नीचे की तरह मोड को 0666 में बदलें

# usbfs-like devices 
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, \ MODE=”0666

यह adb को काम करने की अनुमति देता है, हालाँकि हमें अभी भी डिवाइस सेट करने की आवश्यकता है ताकि इसे पहचाना जा सके। हमें इस फ़ाइल को सुपरयुसर के रूप में बनाने की आवश्यकता है,

sudo nano /lib/udev/rules.d/99-android.rules

और दर्ज करें

SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, ATTRS{idVendor}==”0bb4″, MODE=”0666

उपरोक्त लाइन एचटीसी के लिए है, पूरी सूची के लिए @ grebulon के पोस्ट का पालन करें।

फ़ाइल सहेजें और फिर सुपर उपयोगकर्ता के रूप में udev को पुनरारंभ करें

sudo /etc/init.d/udev restart

फोन को USB के माध्यम से कनेक्ट करें और जब आप प्रोजेक्ट संकलित करें और चलाएं तो इसका पता लग जाए।


5

मेरे पास एक ही समस्या थी, समाधान साथी के रूप में है: (वैसे, आपको अपने डिवाइस को रूट करने की आवश्यकता नहीं है।)

  1. सुपर उपयोगकर्ता पर स्विच करने के लिए "सु" टाइप करें।
  2. अपने पथ / एडीबी मार सर्वर।
  3. आपका पथ / एडीबी स्टार्ट-सर्वर।
  4. यदि कोई त्रुटि नहीं होती है, तो आप रूट खाते में "अपने पथ / एडीबी उपकरणों" के साथ डिवाइस सूची देख सकते हैं।
  5. सुपर उपयोगकर्ता से बाहर निकलें।
  6. अब आप अपने खाते में "adb devices" कर सकते हैं।

का आनंद लें।


1
मामले में आप का उपयोग कर लॉगिन करने के लिए प्रबंधन नहीं कर सकते su, उपयोग sudo su। मैंने किया। और यह भी, यदि आप नहीं जानते कि उपयोगकर्ता कैसे छोड़ें - उपयोग करें exit
पीज्यूसन

4

मुझे पता है कि यह थोड़ा देर से हो सकता है, लेकिन यहां एक बहुत अच्छा लेख है कि एंड्रॉइड एडीबी यूएसबी चालक को मैन्युअल रूप से कैसे जोड़ा जाए। Ubuntu 14.04 LTS में Android ADB USB ड्राइवर को मैन्युअल रूप से जोड़ना

लिंक सामग्री जोड़ने के लिए संपादित किया गया

कदम

नोट: सुनिश्चित करें कि आपने अपने Android डिवाइस को USB डिबगिंग मोड में कनेक्ट किया है

टर्मिनल खोलें ( CTRL + ALT + T) और कमांड दर्ज करें: lsusb

अब आपको इसका समान उत्तर मिल सकता है:
Bus 002 Device 013: ID 283b:1024

नोट: इस के संदर्भ मेंBus 002 Device 008: ID 283b:1024
{idVendor}==”283b” {idProduct}==”1024″

अब निम्नलिखित कमांड दर्ज करें: sudo gedit /etc/udev/rules.d/51-android.rules
यह एंड्रॉइड रूल्स फ़ाइल बनाता है ( 51-android.rules) या मौजूदा स्थान में मौजूदा एक को खोलता है ( /etc/udev/rules.d)

इस फ़ाइल में एक नई पंक्ति जोड़ें:
SUBSYSTEM==”usb”, ATTRS{idVendor}==”283b”, ATTRS{idProduct}==”1024″, MODE=”0666″

नोट अपने डिवाइस मूल्यों के साथ संपादित करें idVendorऔर idProductमान। सहेजें और बंद करें।

अब निम्नलिखित कमांड दर्ज करें:
sudo chmod a+rx /etc/udev/rules.d/51-android.rules- अनुदान पढ़ें / निष्पादन की अनुमति
sudo service udev restart- udevसेवा को पुनरारंभ करें

अब हमें इसमें जोड़ना idVendorहै adb_usb.ini। निम्नलिखित कमांड दर्ज करें:
cd ~/.android
gedit adb_usb.ini

निम्न मान जोड़ें 0x283b

यह 0x ( idVendorमान) के अलावा कुछ भी नहीं है । इसलिए मान को बदलें। अपने डिवाइस मान के संबंध में फ़ाइल को सहेजें और बंद करें।

अब निम्नलिखित कमांड दर्ज करें:
sudo service udev restart

एंड्रॉइड डिवाइस को प्लग आउट करें और इसे फिर से कनेक्ट करें।
अब निम्नलिखित कमांड दर्ज करें:
adb kill-server
adb devices

तुम वहाँ जाओ! आपका उपकरण सूचीबद्ध होना चाहिए।

Ubuntu 14.04 LTS में Android ADB USB ड्राइवर को मैन्युअल रूप से जोड़ने से कॉपी किया गया

मेरे लिए काम किया।


4

मुझे अपने गैलेक्सी एस 3 के साथ भी यही समस्या थी। मेरी समस्या यह थी कि idVendorमूल्य 04E8सही नहीं था। सही खोजने के लिए अपने स्मार्टफोन को कंप्यूटर से कनेक्ट करें और lsusbटर्मिनल में चलाएं । यह आपके स्मार्टफोन को इस तरह सूचीबद्ध करेगा:

Bus 002 Device 010: ID 18d1:d002 Google Inc.

तो सही idVendorमूल्य है 18d1। और लाइन में /etc/udev/rules.d/51-android.rulesहोना चाहिए:

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" 

फिर मैं चला sudo udevadm control --reload-rulesऔर सब कुछ काम किया!


1
क्या आपका मतलब हो सकता है:ATTR{idVendor}=="18d1"
तानियास

3

M0Rf30/android-udev-rulesGitHub समुदाय द्वारा बनाए गए udv-rules का उपयोग करें

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

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


1
जब एक ही नियम सभी के लिए काम करता है तो "सूची को बनाए रखने" से परेशान क्यों? stackoverflow.com/a/45006231/1778421
एलेक्स पी।

@AlexP। धन्यवाद मुझे उस विधि के बारे में नहीं पता था। कोई भी विचार क्यों आधिकारिक गाइड इसके बजाय पुनर्संयोजन नहीं करता है?
सिरो सेंटिल्ली 郝海东 冠状 i 事件 法轮功 '21

ज्यादातर आलस्य और ज्ञान जड़ता के कारण। मूल एंड्रॉइड डेवलपर्स ने एक ही विक्रेता आईडी के साथ उपकरणों का उपयोग किया ताकि वे सबसे आसान दृष्टिकोण ले सकें जो वे सोच सकते थे। जब अधिक विक्रेताओं ने अधिक डिवाइस बनाए - डेवलपर्स सिर्फ नियम फ़ाइल में अधिक आईडी जोड़ते रहे।
एलेक्स पी।

2
  1. Http://developer.android.com/guide/developing/device.html (संग्रहीत लिंक) पर दिए गए निर्देशों का पालन करें
  2. के विक्रेता आईडी की जगह 0bb4के साथ 18d1में/etc/udev/rules.d/51-android.rules

    या एक और लाइन जोड़ें जो पढ़ता है:

    SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
  3. कंप्यूटर को पुनरारंभ करें या केवल udev सेवा को पुनरारंभ करें।

1

जब आप udev को पुनरारंभ करते हैं, तो adb सर्वर को मारें और adb सर्वर गोटो android sdk इंस्टॉलेशन पथ को शुरू करें और सभी sudo पर करें। फिर adb डिवाइस चलाएं यह अनुमति समस्या को हल करेगा।


1

मेरा उपकरण POSITIVO है और मेरी परिचालन प्रणाली है Ubuntu 14.04 LTS So है, मेरी समस्या चर नाम में थी

मैं फ़ाइल /etc/udev/rules.d/51-android.rules बनाता हूं और डालता हूं SUBSYSTEM=="usb", SYSFS{idVendor}=="1662", MODE="0666"

मैंने उपकरण काट दिया और निष्पादित किया:

$ sudo udevadm control --reload-rules
$ sudo service udev restart

इसके बाद मैंने एंड्रॉइड डिवाइस को फिर से डेवलपर मोड में कनेक्ट किया और

$ adb devices

List of devices attached 
1A883XB1K   device

1

अनपना बिना

सभी प्रदान किए गए उत्तर मान लेते हैं कि आप USB केबल को अनप्लग और पुन: कनेक्ट करने में सक्षम हैं। ऐसी स्थितियों में जहां यह संभव नहीं है (उदाहरण के लिए, जब आप दूरस्थ हैं), तो आप आवश्यक रूप से निम्नलिखित कर सकते हैं कि सुझाए गए udv नियम फिर से प्लग पर क्या करेंगे:

lsusb

वह डिवाइस ढूंढें जिसके बारे में आप परवाह करते हैं, जैसे:

Bus 003 Device 005: ID 18d1:4ee4 Google Inc. Nexus

बस नंबर पर ध्यान दें और फिर निष्पादित करें, जैसे बस के लिए 003:

sudo chmod a+w /dev/bus/usb/003/*

स्पष्ट रूप से यह आप की तुलना में अधिक अनुमेय हो सकता है (केवल एक से अधिक उपकरण संलग्न हो सकते हैं), लेकिन आपको यह विचार मिलता है।


udevडिवाइस को फिर से कनेक्ट किए बिना नए नियम को लागू करने के लिए सिर्फ udevadm trigger --verbose --action=add --subsystem-match=usbकमांड का उपयोग करें ।
एलेक्स पी।

1

आपको adbसर्वर को रूट के रूप में नहीं चलाना चाहिए क्योंकि अन्य उत्तर सुझा रहे हैं। इसके बजाय यदि आप आर्क लिनक्स का उपयोग कर रहे हैं तो निम्न कार्य करें:

  1. android-udevपैकमैन के साथ पैकेज स्थापित करें
  2. पुनः लोड करें नियम:

    # udevadm control --reload-rules
  3. अपने आप को adbusersसमूह में जोड़ें और फिर लॉगआउट और लॉगिन करें:

    # usermod -aG adbusers $LOGNAME

स्रोत: https://wiki.archlinux.org/index.php/android#Configuring_adb


0

GROUP="plugdev"अपने उपयोगकर्ता के मुख्य समूह का उपयोग करने के बजाय प्रयास करें।


मैं अपने उपयोगकर्ता नाम का उपयोग कर रहा हूं, यह मदद नहीं करता है
Leem.fin 12

0

Ubuntu 12.04 LTS पर मेरे मामले में, मुझे अपने HTC अतुल्य USB मोड को चार्ज से मीडिया में बदलना पड़ा और फिर डिवाइस को adb के तहत दिखाया गया। बेशक, दोनों मामलों में डिबगिंग पहले से ही थी।


0

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

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

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


0

मुझे भी यही समस्या थी और मैंने इन चरणों का पालन किया:

# Clone this repository
git clone https://github.com/M0Rf30/android-udev-rules.git
cd android-udev-rules
# Copy rules file
sudo cp -v 51-android.rules /etc/udev/rules.d/51-android.rules
# OR create a sym-link to the rules file - choose this option if you'd like to update your udev rules using git.
sudo ln -sf "$PWD"/51-android.rules /etc/udev/rules.d/51-android.rules
# Change file permissions
sudo chmod a+r /etc/udev/rules.d/51-android.rules
# If adbusers group already exists remove old adbusers group
groupdel adbusers
# add the adbusers group if it's doesn't already exist
sudo mkdir -p /usr/lib/sysusers.d/ && sudo cp android-udev.conf /usr/lib/sysusers.d/
sudo systemd-sysusers # (1)
# OR on Fedora:
groupadd adbusers
# Add your user to the adbusers group
sudo usermod -a -G adbusers $(whoami)
# Restart UDEV
sudo udevadm control --reload-rules
sudo service udev restart
# OR on Fedora:
sudo systemctl restart systemd-udevd.service
# Restart the ADB server
adb kill-server
# Replug your Android device and verify that USB debugging is enabled in developer options
adb devices
# You should now see your device

उपरोक्त चरणों का वर्णन android-udev-rules पर किया गया है । इसने मेरे लिए काम किया।

बस उस डायलॉग की पुष्टि करना सुनिश्चित करें जो आपके फोन स्क्रीन पर दिखाई देने के बाद उसे रिप्लेस कर देगा।



-1

मैंने सु का इस्तेमाल किया और यह काम करने लगा। जब मैं नियमित उपयोगकर्ता के साथ Jetbrains का उपयोग करता हूं, तो मुझे यह समस्या दिखाई देती है, लेकिन Jetbrains को su मोड में पुनरारंभ करने के बाद, मैं अपने डिवाइस को बिना कुछ देखे देख सकता हूं।

मैं Ubuntu 13.04 और Jetbrains 12.1.4 का उपयोग कर रहा हूं


-1

तुम भी संपादन की कोशिश कर सकते adb_usb.ini , फ़ाइल पर स्थित /home/username/.android/ । इस फ़ाइल में उन डिवाइसों की आईडी विक्रेता सूची है जिन्हें आप कनेक्ट करना चाहते हैं। आप अपने डिवाइस के आईडी विक्रेता को नई लाइन में जोड़ते हैं (यह एक आईडी प्रति लाइन है)। फिर adb सर्वर को रीस्टार्ट करें और अपने डिवाइस को रिप्लेस करें।

इसने मेरे लिए उबंटू 12.10 पर काम किया।


-1

वैसे भी, मैंने इस समस्या को हल करने के लिए ( उबंटू पर ) क्या किया।

  1. इन आदेशों को चलाने के लिए मुझे किन मामलों में परिभाषित करना होगा। अधिकांश ubuntu उपयोगकर्ताओं के लिए एक घर फ़ोल्डर (छिपी हुई फ़ाइल .bashrc) है।

    जिसमें आप इन कमांड के लॉन्च को रिकॉर्ड कर सकते हैं। जब आप bashकंसोल में कमांड दर्ज करते हैं तो ये कमांड ट्रिगर हो जाएंगे ।

  2. चूँकि मेरे पास एक शेल है .zshrc तब मैंने निम्नलिखित कार्य किया:

    खुला कंसोल: gedit .zshrc

जब फ़ाइल खुलती है, तो निम्न पंक्ति जोड़ें:

./.add_device_permissions.sh

पहले या बाद में, हमें यह फ़ाइल बनाने की आवश्यकता है: .add_device_permissions.shजिसमें हम निम्नलिखित लिखते हैं:

#!/bin/bash
# Add permissions
ADB="/home/vadimm/Android/Sdk/platform-tools/adb"
$ADB devices
$ADB kill-server
cat .permissions_redmi_note | sudo -S $ADB devices
$ADB kill-server
cat .permissions_redmi_note | sudo -S $ADB devices

इसके अलावा, हमें अपने पासवर्ड को हार्डकोड करने की आवश्यकता है, जहां .permissions_redmi_note बनाने की आवश्यकता है।

  1. .zshrcअनावश्यक फ़ाइल को जोड़ने के लिए नहीं हम सिस्टम को शुरू करते समय पथ निर्दिष्ट कर सकते हैं:Startup Applications Preferences

जहां हम "जोड़ें" पर दबाते हैं और हमारी कमांड लिखते हैं: /home/vadimm/.add_device_permissions.sh

  1. इसके अलावा आप कमांड लाइन में अगले आदेशों में उपयोग करने की कोशिश कर सकते हैं: ./adb devices ./adb kill-server sudo ./adb devices ./adb kill-server ./adb devices

-2

यदि किसी को निम्न त्रुटि संदेश का सामना करना पड़ता है जब वे उपयोग करते हैं adb devices

no permissions (verify udev rules); see [http://developer.android.com/tools/device.html]

निम्नलिखित को निष्पादित करें

sudo -s 
adb kill-server
adb start-server

कि एक कस्टम बिल्ड एंड्रॉयड डिवाइस पर मेरे लिए इस मुद्दे को तय किया

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