adb tidak ada izin di Ubuntu 17.04

48

Ketika saya mencoba:

$ adb devices

saya mendapatkan hasilnya:

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

Apa masalahnya?

mencoba pada mesin Ubuntu 16.04 dan bekerja dengan sempurna. mencoba perangkat 7.1.1 dan juga bekerja dengan sempurna.

Nadav Tasher
sumber
Coba sudo adb devices. Jika itu berfungsi dengan baik tetapi dari memori saya tidak perlu root untuk memeriksa perangkat yang terpasang.
shmink
1
itu tidak akan bekerja dengan sudo tetapi dengan login root itu akan. masalahnya adalah bahwa studio android hanya membentuk adb dari sesi non root, dan menjalankannya dengan jksudo tidak akan mengenali file saya.
Nadav Tasher
Saya telah menemukan hal yang sama dengan studio android dan umumnya apa pun yang dibuat oleh jetbrains. Ketika Anda menginstal android studio, apakah Anda melakukannya sebagai root?
shmink
diinstal sebagai root ke / usr / local / dan chmoded ke 777 -R, jalankan bukan sebagai root sehingga ia akan mengenali pengaturan dan SDK.
Nadav Tasher
Bagaimana menjalankannya sebagai root dan hanya mengubah pengaturan dan SDK dengan tepat.
shmink

Jawaban:

64

Coba mulai ulang server Adb.

sudo adb kill-server

lalu

sudo adb start-server

kemudian hubungkan perangkat Anda, aktifkan Debugging dan ketik

adb devices
Sumeet Deshmukh
sumber
2
Ini berhasil .. semacam. Setelah saya melakukan itu, memang, menjalankan adb devicessekarang menunjukkan perangkat (dan saya mendapatkan dialog sidik jari). Namun, itu masih tidak berfungsi dengan studio android. Terlebih lagi, ketika saya menjalankan android studio, dan kemudian saya menjalankan adb devicesdari konsol, saya mendapatkan "server adb kedaluwarsa" dan server adb restart. Setelah itu, saya kembali ke situasi "tidak ada izin".
Shade
Ini tidak bekerja. perangkat adb tidak menunjukkan apa pun dan headset tidak pernah meminta izin lagi.
Tyguy7
62

Punya masalah yang sama. Memastikan bahwa mode USB perangkat TIDAK mengisi daya hanya akan menyelesaikannya.

Ivan Klass
sumber
5
Sama di sini, saya telah memodifikasi aturan Udev tanpa hasil, mengubah USB ke berbagi file dan presto. Perangkat tidak memerlukan aturan udev atau mode USB spesifik dalam versi ubuntu sebelumnya.
Fco P.
3
Ini harus menjadi jawaban yang benar (bukan adb restart server)
RumburaK
1
Jawaban yang benar untuk saya.
Alvaro Gutierrez Perez
1
seharusnya bukan jawaban yang benar tetapi berhasil.
Uzumaki D. Ichigo
1
Ya, ini jawaban yang benar.
39

Sangat mungkin udev menambahkan perangkat Anda secara tidak benar. Saya juga punya masalah ini & menemukan solusi yang relatif sederhana.

Temukan perangkat Anda di 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

Tempat menarik dalam hal ini:

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

Lihat file perangkat yang sesuai

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

Kemungkinan Anda akan melihat sesuatu seperti

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

Ini berarti bahwa file perangkat akan dimiliki oleh root pengguna dan root grup, itulah sebabnya adb dapat mengaksesnya sebagai root tetapi tidak sebagai pengguna standar Anda.

Ini dapat diatasi dengan membuat aturan udev baru - Saya dulu /etc/udev/rules.d/51-android.rules- untuk menambahkan perangkat ke grup plugdev, yang adb anggap Anda sebagai anggota (Anda harus, periksa menggunakan id)

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

** Ingatlah untuk mengganti ATTR {idProduct} == "4ee7" dengan id produk Anda sendiri yang Anda temukan di langkah pertama. ** (Jika vendor Anda bukan Google Inc., ganti juga id vendor dengan yang sebelum tanda titik dua di lsusb).

Sekarang cukup cabut perangkat Anda dan pasang kembali (udev harus secara otomatis menanggapi file baru) dan tadaa:

$ adb devices
List of devices attached 
YC873P0G    device

Sumber: Menambahkan aturan udev untuk perangkat Android debugging USB - Janos Gyerik

Paul
sumber
1
Jawaban ini memecahkan masalah saya. Sempurna terima kasih.
alexmeia
1
Terima kasih @Paul Ini membantu saya. Diterangkan dengan baik dengan alasan. Saya pikir restart layanan udev juga diperlukan.
Gagan
ini jelas merupakan solusi yang tepat jika Anda tidak ingin menggunakan sudo untuk hal-hal yang Anda tidak perlu menggunakan sudo untuk
aholt
Ini harus menjadi jawaban yang diterima, karena itu adalah jawaban yang benar . Jawaban dengan nilai tertinggi benar-benar hanya solusi.
Joel Cross
Ini menyelesaikannya untuk saya. Ini berfungsi kemarin tanpa aturan, tetapi kemudian setelah menginstal pembaruan di ubuntu berhenti bekerja dan saya harus melakukan ini.
simernes
2

Untuk memperluas jawaban Sumeet Deshmukh, pendekatannya bekerja secara umum - jika Anda hanya ingin menggunakan adbperintah dari konsol.

Android Studio, bagaimanapun, tampaknya memulai server adb sendiri, membunuh kita. Ini berarti bahwa setelah kami membunuh / memulai server dengan sudo, Studio me-restart-nya, yang mengarah ke situasi awal - tidak ada izin.

Solusinya adalah pertama mulai Studio, kemudian lakukan start / stop server. Melakukan itu, saya berhasil membuat Nexus 5X saya muncul sebagai target lari yang valid di Studio.

Ini bukan situasi terbaik (harus menjalankan perintah setiap kali Anda memulai Studio), tetapi melakukan trik dengan cara cepat dan kotor. Jika saya menemukan solusi yang lebih permanen, saya akan memperbarui jawaban ini.

Naungan
sumber
terima kasih banyak, meskipun itu adalah bug yang diperbaiki oleh pembaruan sistem (di telepon) dan pembaruan studio.
Nadav Tasher
2

Mengubah Mode USB dari Telepon melakukan trik untuk saya. (Saya mengaturnya ke Transfer File .)

NuttLoose
sumber
2

Harap JANGAN mengikuti solusi yang menyarankan untuk menggunakansudo ( sudo adb start-server)! Ini menjalankan adb sebagai root (administrator) dan TIDAK seharusnya dijalankan seperti itu !!! Ini solusi buruk !

Semua yang berjalan sebagai root dapat melakukan apa saja di sistem Anda, jika ia membuat atau memodifikasi file dapat mengubah izinnya untuk hanya digunakan oleh root. Sekali lagi, JANGAN!

Hal yang benar untuk dilakukan adalah mengatur sistem Anda untuk membuat USER memiliki izin, lihat panduan ini yang saya tulis tentang cara melakukannya dengan benar.

Daniele Segato
sumber
2

Itu tidak berfungsi untuk saya setelah saya menambahkan diri saya ke plugdevgrup dan reboot mesin hanya untuk memastikan perubahan berlaku di semua sesi shell saya. Saya kemudian menemukan bahwa tidak ada 51-android.rulesfile di /etc/udev/rules.ddan harus melakukan hal berikut untuk memperbaiki masalah:

# 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

Saya juga harus mencabut dan memasang kembali perangkat Android saya.

russoue
sumber
Ini tidak bekerja untuk saya juga ...
Tyguy7
1

Anda perlu memberikan izin pada perangkat Android Anda. Buka Pengaturan> Opsi pengembang. Coba matikan Usb Debugging lalu nyalakan lagi. Lepaskan kabel dan sambungkan kembali. Coba juga hapus semua otorisasi yang disimpan dari opsi Pengembang. Seharusnya sekarang meminta izin debug oleh prompt di ponsel Anda. Terima itu.

Joel G Mathew
sumber
tidak berfungsi, saya sudah mencobanya, jika itu penting, saya menggunakan android 7.1.2, dan pada perangkat lain yang menjalankan 7.1.1 itu berhasil.
Nadav Tasher
Sudah mencoba menghapus semua otorisasi host? Reboot setelah itu?
Joel G Mathew
tidak reboot. Saya akan mencobanya dan memberi tahu Anda jika itu berhasil.
Nadav Tasher
Jika berhasil, Anda dapat menerima jawabannya.
Joel G Mathew
sakit cek hari ini
Nadav Tasher
0

Saya tidak tahu mengapa ini berhasil, tetapi ini adalah satu-satunya solusi yang bekerja untuk saya

Temukan di mana adb berjalan (jika Anda seperti saya, Anda telah menginstal beberapa versi). Perlu diingat alat-alat seperti reaksi asli dapat memutuskan untuk menggunakan versi acak lain untuk membuat hidup Anda lebih sulit. Bagi saya itu ~/Android/Sdk/platform-tools/adb. Jadi saya akan lari:

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

Alat Android sangat menjengkelkan.

Bufke
sumber
0

Buka Pengaturan >> Pemeliharaan >> Penyimpanan. Kemudian periksa menu kiri atas dan klik pada koneksi komputer USB kemudian ubah ke Media device (MTP).

Charloh Maguri Jnr
sumber