adb Ubuntu 17.04 tarihinde izinsiz


47

Denediğimde:

$ adb devices

sonucu alıyorum:

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

sorun nedir?

Bir Ubuntu 16.04 makinesinde denedim ve mükemmel çalıştı. 7.1.1 cihazı denedi ve mükemmel çalıştı.


Dene sudo adb devices. Bu harika çalışıyorsa ancak bellekten ekli cihazları kontrol etmek için root olmam gerekmedi.
shmink

1
sudo ile çalışmayacak ama root login ile çalışacak. Sorun android stüdyosunun sadece root olmayan bir oturumdan adb yapması ve jksudo ile çalıştırılması dosyalarımı tanımıyor.
Nadav Tasher

Aynısını android stüdyosunda ve jetbrains tarafından yapılan her şeyde buldum. Android stüdyosu kurduğunuzda root olarak mı yaptınız?
shmink

/ usr / local / 'a root olarak kurulur ve 777 -R ye chmoded, root olarak çalıştırılmaz, böylece ayarları ve sdk'yi tanır.
Nadav Tasher

Kök olarak çalıştırmaya ve ayarları ve sdk'ye uygun olarak değiştirmeye ne dersiniz.
shmink

Yanıtlar:


64

Adb sunucusunu yeniden başlatmayı deneyin.

sudo adb kill-server

ve sonra

sudo adb start-server

sonra cihazınızı açın ve Debugging'i açın

adb devices

2
Bu işe yarıyor .. tür. Bunu yaptıktan sonra, gerçekten, adb devicesşimdi çalışan aygıt gösterir (ve parmak izi iletişim kutusu alıyorum). Ancak, hala android stüdyosu ile çalışmıyor. Ayrıca, android stüdyosunu çalıştırdığımda ve daha sonra adb devicesbir konsoldan çalıştırdığımda , bir "adb sunucusu güncel değil" alıyorum ve adb sunucusu yeniden başlatılıyor. Ondan sonra tekrar "izinsiz" duruma geçiyorum.
Gölge

Bu çalışmıyor. adb aygıtları hiçbir şey göstermiyor ve kulaklıklı mikrofon seti bir daha asla izin istemiyor.
Tyguy7

61

Aynı problem vardı. O cihaz USB modunu sağlanması olduğunu DEĞİL sadece Şarj bunu çözdü.


5
Aynı şekilde Udev kurallarını da sonuçsuz değiştirdim, USB'yi dosya paylaşımına ve presto'ya değiştirdim. Cihaz önceki ubuntu versiyonunda udev kuralı veya özel USB modları gerektirmiyordu.
Fco P.

3
Bu doğru cevap olmalı (yeniden başlatma sunucusu değil)
RumburaK

1
Benim için doğru cevap.
Alvaro Gutierrez Perez

1
doğru cevap olmamalı ama çalıştı.
Uzumaki D. Ichigo

1
Evet, doğru cevap budur.

37

Çok büyük olasılıkla udev cihazınızı yanlış ekliyordur. Ben de bu sorunu yaşadım ve nispeten basit bir çözümle karşılaştım.

Cihazınızı lsusb'de bulun

$ 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

Bu durumda ilgilenilen nokta:

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

İlgili cihaz dosyasına göz atın

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

Muhtemelen bir şey göreceksiniz

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

Bu, cihaz dosyasının kullanıcı köküne ve grup köküne ait olacağı anlamına gelir; bu nedenle adb dosyaya kök olarak erişebilir, ancak standart kullanıcınız olarak erişemez.

Bu, yeni bir udev kuralı oluşturarak çözülebilir - Ben kullandım /etc/udev/rules.d/51-android.rules- cihazı gruba eklemek için plugdev, zaten adb üyesi olduğunuzu varsayar (kullanmanız, kontrol etmeniz gerekir id)

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

** ATTR {idProduct} == "4ee7" yi birinci adımda öğrendiğiniz ürün kimliğinizle değiştirmeyi unutmayın. ** (Satıcınız Google Inc. değilse, satıcı kimliğini lsusb'deki iki nokta üstündeki ile de değiştirin).

Şimdi cihazınızı çıkarın ve tekrar takın (udev otomatik olarak yeni dosyaya yanıt vermelidir) ve tadaa:

$ adb devices
List of devices attached 
YC873P0G    device

Source: Android cihazlarda hata ayıklama USB için udev kuralları ekleme - Janos Gyerik


Bu cevap benim sorunumu çözdü. Mükemmel teşekkürler.
alexmeia

Teşekkürler @ Paul Bu bana yardımcı oldu. Sebep ile iyi açıklanmıştır. Sanırım udev servisinin yeniden başlatılması gerekiyor.
Gagan

sudo kullanmanız gerekmeyen şeyler için sudo kullanmak istemiyorsanız, bu kesinlikle doğru bir çözümdür
aholt

Doğru cevap olduğu için bu kabul edilen cevap olmalıdır . En yüksek puanlı cevap gerçekten sadece bir geçici çözümdür.
Joel Cross

Bu benim için çözdü. Kurallar olmadan dün çalıştı, ancak ubuntu üzerine güncellemeler yükledikten sonra çalışmayı durdurdu ve bunu yapmak zorunda kaldım.
simernes,

2

Sumeet Deshmukh'in cevabını genişletmek için yaklaşımı genel olarak işe yarıyor - sadece adbkomutu komut satırından kullanmak istiyorsanız .

Ancak Android Studio, görünüşe göre kendi adb sunucusunu başlattı ve kendimizi öldürdü. Bu, sunucuyu sudo ile öldürdükten / başlattıktan sonra, Studio yeniden başlatıyor, bu da başlangıç ​​durumuna neden oluyor - izin yok.

Çözüm önce Studio'yu başlatmak, ardından sunucunun start / stop işlemini yapmak. Bunu yaparak, Nexus 5X'imi Studio'da geçerli bir çalışma hedefi olarak göstermesini sağladım.

Bu en iyi durum değil (Studio'yu her başlattığınızda komut çalıştırmanız gerekiyor), ancak hileyi hızlı ve kirli bir şekilde yapıyor. Daha kalıcı bir çözüm bulursam bu cevabı güncelleyeceğim.


Sistem güncellemesi (telefonda) ve stüdyo güncellemesi ile giderilen bir hata olmasına rağmen, çok teşekkür ederim.
Nadav Tasher

2

Telefondan USB Modunu değiştirmek benim için hile yaptı. ( Dosya Aktarımı olarak ayarlıyorum .)


2

Lütfen ( ) kullanımı öneren çözümleri takip etmeyinsudosudo adb start-server ! Bu adb'yi root (yönetici) olarak çalıştırır ve böyle çalışması gerekmez !!! Kötü bir geçici çözüm !

Kök olarak çalışan her şey sisteminizde her şeyi yapabilir, bir dosya oluşturur veya değiştirirse, yalnızca kök tarafından kullanılma iznini değiştirebilir. Yine Yapma!

Yapılacak doğru şey sisteminizi KULLANICI iznine sahip olmak için ayarlamaktır , nasıl yapılacağı hakkında yazdığım bu kılavuzu inceleyin .


2

Ben plugdevgruba kendimi ekledikten ve değişikliğin tüm kabuk oturumlarımda geçerli olmasını sağlamak için makineyi yeniden başlattıktan sonra bu benim için işe yaramadı . Sonra hiçbir 51-android.rulesdosya olduğunu /etc/udev/rules.dve sorunu çözmek için aşağıdakileri yapmak zorunda olduğunu öğrendim :

# 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

Ayrıca Android cihazımı fişten çekip çıkarmak zorunda kaldım.


Bu benim için de işe yaramıyor ...
Tyguy7

1

Android cihazınızda izin vermeniz gerekir. Ayarlar> Geliştirici seçenekleri seçeneğine gidin. Usb Debugging'i kapatıp tekrar açmayı deneyin. Kabloyu çıkarın ve tekrar bağlayın. Ayrıca kaydedilen tüm yetkileri Geliştirici seçeneklerinden silmeyi deneyin. Şimdi telefonunuzda bir bilgi istemi ile hata ayıklama izni istemelidir. Kabul et.


işe yaramazsa, zaten denedim, önemliyse android 7.1.2 kullanıyorum ve 7.1.1 çalıştıran başka bir cihazda işe yaradı.
Nadav Tasher

Tüm ana bilgisayar yetkilendirmelerini silmeye çalıştınız mı? Bundan sonra yeniden başlatıldı?
Joel G Mathew

yeniden başlatılmadı. Bunu deneyeceğim ve işe yarayıp yaramadığını size söyleyeceğim.
Nadav Tasher

İşe yaradıysa cevabı kabul edebilirsiniz.
Joel G Mathew

Bugün daha sonra hasta kontrolü
Nadav Tasher


0

Bunun neden işe yaradığını bilmiyorum, ama bu benim için çalışan tek çözümdü.

Adb'nin nerede çalıştığını bulun (eğer benim gibiyseniz, yüklü birden fazla sürümü var). Tepki gibi araçlar, hayatınızı zorlaştırmak için rastgele diğer sürümleri kullanmaya karar verebilir. Benim için öyle ~/Android/Sdk/platform-tools/adb. Bu yüzden koşacağım:

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

Android araçları süper can sıkıcı.


0

Ayarlar >> Bakım >> Depolama bölümüne gidin. Sonra sol üst menüyü kontrol edin ve USB bilgisayar bağlantısına tıklayın ve ardından Medya cihazı (MTP) olarak değiştirin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.