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ı.
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ı.
Yanıtlar:
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
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 devices
bir 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.
Aynı problem vardı. O cihaz USB modunu sağlanması olduğunu DEĞİL sadece Şarj bunu çözdü.
Ç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
Sumeet Deshmukh'in cevabını genişletmek için yaklaşımı genel olarak işe yarıyor - sadece adb
komutu 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.
Lütfen ( ) kullanımı öneren çözümleri takip etmeyinsudo
sudo 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 .
Ben plugdev
gruba 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.rules
dosya olduğunu /etc/udev/rules.d
ve 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.
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.
M0Rf30/android-udev-rules
GitHub topluluğu udev kurallarını korudu
https://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules
Bu, şu ana kadar gördüğüm en eksiksiz udev-kurallar listesi sudo apt-get install android-tools-adb
, resmi belgelerde şu anda tavsiye edilenden daha fazla, bir deneyin.
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ı.
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.
sudo adb devices
. Bu harika çalışıyorsa ancak bellekten ekli cihazları kontrol etmek için root olmam gerekmedi.