adb devices komutu çalışmıyor


86

Ubuntu 10.10 64 bit çalıştırıyorum. Android Debug Bridge 1.0.26 sürümüyle birlikte ia32-libs yükledim.

Benim sorunlarım):

  1. adb devices>>> ???????????? izin yokmu
  2. sudo adb devices >>>> sudo: adb: komut bulunamadı
  3. adb shell >>> hata: cihaz için yetersiz izinler

Sanırım bunların hepsi birbiriyle alakalı. İşte ilgili bilgiler.

$ 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

CM6.1 çalıştıran köklü bir Moto Droid ve CM7 tabanlı bir ROM çalıştıran köklü bir G-Tab ile aynı sonuçları alıyorum.

Aşağıdaki ilgili gönderileri inceledim:

Önerilerin çoğunu (hepsini değil) denedim ve sorunumu çözemedim. Denemediğim şeyler uygunsuz görünüyordu. Birkaç ipucu daha takdir ediyorum ve sorun gidermeye devam edeceğim.

Denemediğim bir şey /etc/udev/rules.d/70-android.rules'i düzenlemekti. Sorun bu olabilir mi? Bunun nasıl "sudo: adb: command not found" a neden olacağını anlayamıyorum. Belki sorunlarımın hepsi ilişkili değildir. Her neyse, bu noktada diğer insanlardan bazı girdilere ihtiyacım olduğunu düşünüyorum çünkü bir yol problemim olduğuna veya diğer yazılarda tartışılan diğer ortak problemlere inanmıyorum.

DÜZENLEME: EboMike ve RivieraKid sayesinde ÇÖZÜLDÜ . Bu aslında iki farklı sorundu:

  1. Yukarıdaki 2. öğe (sudo: adb: command not found) aşağıdaki gibi bir sembolik bağ oluşturularak çözüldü:

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

    Bu, daha sonra EboMike'ın önerdiği gibi yapmamı ve bu çözümü kullanmamı sağladı . Bunu yapmak Moto Droid'im için gerekliydi. ( Bununla birlikte, adb'yi sudo olarak çalıştırmak, Viewsonic G-Tablet'im için gerekli değildi .)

  2. Diğer iki öğem, RivieraKid'in önerdiği gibi udev kuralı uygulanarak çözüldü (bu bağlantıdan ).



1. madde bana gerçekten yardımcı oldu. 2. öğeden emin değilim
Francisco Quintero

Yanıtlar:


87

Denemediğim bir şey /etc/udev/rules.d/70-android.rules'i düzenlemekti. Sorun bu olabilir mi?

Bunu yapmamanın belirli bir nedeni var mı? Soruyu cevaplamak için - EVET! Udev kuralları, Ubuntu'ya cihazınızın ne olduğunu bildiren ve kullanıcı alanı araçlarının bu nedenle ona erişmesine izin veren şeydir.

Talimatları doğru bir şekilde uygulamadan adb'yi kullanamayacaksınız .

Ancak bunu aklınızda tutarak, hangi Ubuntu sürümünü kullandığınızı söylemiyorsunuz, ancak 10.10 ile ilgili sorunlar yaşadım - kurallar dosyamın içeriğini göndermeme ihtiyacınız olursa bana bildirin.

Sudo aracılığıyla adb çalıştırma konusunda endişelenmeyin, buna ihtiyacınız yok. MODE="0666"Udev kuraldan Herhangi bir kullanıcı olarak cihazı erişmesini sağlar.


DÜZENLE:

Kuralları yeniden yüklemeyi unutmayın:

sudo udevadm control --reload-rules

DÜZENLEME # 2:

@Jesse Glick'in doğru bir şekilde işaret ettiği gibi, adb zaten arka plan programı modunda çalışıyorsa, bunun çalışması için yeniden başlatmanız gerekir:

sudo adb kill-server

Burada sudo kullandım, çünkü bu adb'nin öldürülmesini garanti edecek ve sunucuyu durdurmak için resmi olarak desteklenen yöntem. Bir sonraki sefer adb kullanıldığında, ancak bu sefer doğru ortamda otomatik olarak yeniden başlatılacaktır.


1
Bağlantı için teşekkürler . Bu talimatların resmi olduğu gerçeğini nasıl kaçırdığımdan emin değilim. İnsanların bunu bir çözüm olarak yaptığını sanıyordum. Viewsonic GTablet'ım için satıcı kodunu buldum ve udev kuralını ekledim ve şimdi çalışıyor! Teşekkürler.
MountainX

1
Bazı nedenlerden dolayı Motorola Droid'in adb cihazlarıyla gösterilmesini sağlayamıyorum. Şimdi GTab'yi ve bir emülatörün görünmesini sağlayabilirim, ancak Droid'i değil.
MountainX

Yukarıyı görmek. Adb'yi root olarak çalıştırmak Moto Droid'in ortaya çıkmasına neden oldu.
MountainX

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

1
… Ve adbdaha önce çalışıyorsa arka plan programını yeniden başlatmanız gerekir .
Jesse Glick

22

Adb sunucusunu root olarak yeniden başlatmanız gerekiyor. Buraya bakın .


işe yaramadı. Ayrıntılar: 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

adbsüper kullanıcınızın yolunda değil. which adbHangi yolda olduğunu bulmak için girin , ardından bunu kökün yoluna ekleyin.
EboMike

Umarım bunu okuyabilirsin. (Yorumları yeni satırları içerecek şekilde nasıl biçimlendireceğimi bilmiyorum.) Adb, root kullanıcımın yolundadır. Orijinal yazıma hangi adb komutunu yapıştırdım. Yol / opt / android-sdk-linux_x86 / platform-tools / adb şeklindedir. $ sudo -s root @ desktop: # echo $ PATH / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / X11R6 / bin: / opt / android-sdk-linux_x86 / tools: / opt / android-sdk-linux_x86 / platform-tools
MountainX

1
İşte garip bir şey. Root olarak mı çalıştırdığıma veya sudo ile çalıştırmama bağlı olarak "hangi adb" den farklı sonuçlar alıyorum. İşte çıktı $ sudo hangi adb $
MountainX

Tam yolu ve ardından adb'yi root olarak çalıştırdığınızda belirtin.
EboMike

13

Gentoo / Funtoo linux sistemimde de benzer sorunlar yaşıyorum:

Her zaman doğru cihaz açıklamasını alamıyorum ve yetersiz izinler:

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

Benim için yardımcı howto Google'dan. Benim durumumda udev kuralını eklemem gerekiyordu:

# cat /etc/udev/rules.d/51-android.rules 
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" 

ve dosya sistemi haklarını ayarlama

# chmod a+r /etc/udev/rules.d/51-android.rules

Akıllı telefonumu yeniden taktıktan sonra telefona erişim başarılı oldu, şimdi Eclipse'in Android Cihaz Seçicisi'nde de görünüyor:

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

Ayrıca kullanıcınızın plugdev grubuna üyeliğini de kontrol etmelisiniz .


3

Okuduğum her cevap SUBSYSTEM=="usb",. Ancak, (belki de eski) udev'imin bunun olarak değiştirilmesine ihtiyacı vardı DRIVER=="usb". Sonunda adb sunucusunu root olmayan bir kullanıcı olarak çalıştırabiliyorum ... yay.

Udevmonitor --env'nin çıktısına ve ardından çıktılarına bakmak öğretici olabilir.

udevinfo -a -p <DEVICE_PATH_AS_REPORTED_BY-udevmonitor>

Eğer udevmonitorve udevinfomakine kullanım var olmayan udevadm monitorve udevadm info -a -p ...onun yerine.
Kül

2

IntelliJ IDEA gibi IDE'lerin kendi adb sunucularını başlatma eğiliminde olduğunu lütfen unutmayın .

Sunucuyu manuel olarak öldürmek ve sudo ile yeni bir örnek çalıştırmak bile IDE'nizin sunucuyu kendisini öldürmesini sağlayana kadar burada yardımcı olmaz.


2

adb sunucusunu root olarak yeniden başlatmak benim için çalıştı. görmek:

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

Ben de: HTC Sensation ile Linux Mint Serena 18.1. Noob uyarısı: 2 gündür bununla dalga geçiyorum, bu yüzden neredeyse kesin bir şey yok
Aethelbald


0

Yeni Cyanogenmod çalıştıran HTC One m7 11.

Telefon USB'ye bağlandı ve veri bağlantıma bağlı.

Sonra bu sürprizle karşılaşıyorum:

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

ÇÖZÜM: Telefonda İnternet paylaşımını KAPATIN.

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

-3

Aynı durumu aldım, Fabrika verilerine sıfırlama benim için iyi çalıştı.


Elbette bu bir yorum mu?
Matthew Taylor

benim hatam. Cihazı sıfırlamanın ve verileri temizlemenin benim için iyi çalıştığını söylemek istedim.
Andrii Krokhin
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.