Saya menggunakan ponsel Samsung galaxy nexus ( platform Android 4.0 ).
Saya sedang mengembangkan aplikasi Android di Ubuntu linux OS. Saya ingin menjalankan aplikasi saya langsung di perangkat handset Samsung, jadi saya melakukan langkah-langkah pengaturan berikut:
dalam
AndroidManifest.xml
file proyek saya , ditambahkanandroid:debuggable="true"
ke<application>
elemenDi perangkat, di Pengaturan> Keamanan diaktifkan Sumber tidak dikenal
Di perangkat, di Pengaturan> Opsi pengembang mengaktifkan USB debugging
Di komputer saya, buat
/etc/udev/rules.d/51-android.rules
file dengan konten berikut:SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev"
Di komputer saya, jalankan
chmod a+r /etc/udev/rules.d/51-android.rules
perintah
Kemudian, di komputer saya saya membuka terminal dan menjalankan adb devices
perintah, saya mendapat:
List of devices attached
???????????? no permissions
Karena saya tidak melihat perangkat saya tetapi hanya ???????????? no permissions
, saya kemudian menjalankan perintah berikut:
adb kill-server
adb start-server
adb devices
Tapi saya masih punya:
List of devices attached
???????????? no permissions
Mengapa? Apa yang saya lewatkan?
plugdev
grup.Jawaban:
Yang berhasil bagi saya adalah membunuh dan memulai server adb lagi. Di linux:
sudo adb kill-server
lalusudo adb start-server
. Maka itu akan mendeteksi hampir setiap perangkat di luar kotak.sumber
-rwxrwxr-x 1 martin martin 156K 2011-11-09 15:40 adb
. Cobalah untuk pindah ke direktori secara langsung dan mulai melalui "sudo ./adb devices". Jika Anda dapat menjalankannya tanpa sudo, Anda harus dapat menjalankannya dengan sudo ... Saya tidak yakin apa masalah Anda ...adb kill-server
sudo adb start-server
untuk memeriksa:adb devices
Tidak ada yang berhasil bagi saya sampai saya akhirnya menemukan jawabannya di sini: http://ptspts.blogspot.co.il/2011/10/how-to-fix-adb-no-permissions-error-on.html
Saya menyalin teks di sini kalau-kalau menghilang di masa depan.
Buat file bernama /tmp/android.rules dengan konten berikut (nomor vendor hex diambil dari halaman daftar vendor):
Jalankan perintah berikut:
Lepaskan koneksi kabel USB antara ponsel dan komputer.
Hubungkan kembali telepon.
Jalankan
adb devices
untuk mengonfirmasi bahwa sekarang ia memiliki izin untuk mengakses telepon.Harap dicatat bahwa itu mungkin untuk digunakan
, USER="$LOGINNAME"
sebagai ganti, MODE="0666"
dalam.rules
file, menggantikan$LOGINNAME
nama login Anda, yaitu apa yangid -nu
dicetak.Dalam beberapa kasus mungkin perlu memberikan nama aturan udev mengajukan nama yang agak mendekati akhir, seperti
z51-android.rules
.sumber
70-android.rules
sesuai pos ini: esausilva.com/2010/05/13/… . Juga pujian untuk memberi tahu kami bahwa Anda harus memulai ulangudev
dan membunuh semua proses adb. Bekerja seperti pesona!sudo udevadm control --reload-rules
untuk menyegarkan aturan udev jika me-restart server tidak cukup.Masukkan perintah berikut:
adb kill-server
sudo ./adb start-server
adb devices
Masalahnya adalah Anda tidak menjalankan server adb sebagai root.
sumber
Mencoba semua di atas, tidak ada yang berhasil .. akhirnya bekerja ketika saya beralih dari MTP ke Camera (PTP).
sumber
Ada banyak jawaban buruk yang diposting untuk pertanyaan ini mulai dari bersikeras menjalankan
adb
sebagairoot
(yang tidak boleh disebut-sebut sebagai satu-satunya atau bahkan solusi yang disarankan) untuk memecahkan masalah yang sama sekali tidak terkait.Berikut ini adalah resep terpendek dan paling universal untuk mengurus izin untuk semua
adb
danfastboot
perangkat sekaligus:Atau Anda bisa menggunakan versi yang sedikit lebih panjang yang saya posting ke inti ini .
Adapun hal khusus yang salah OP dalam pertanyaannya - itu tidak memuat kembali
udev
aturan setelah mengedit.rules
file.OP juga tidak memberi tahu Android build (alias ROM) mana yang dia miliki di ponselnya. The
idVendor
nilai diatur dalam perangkat lunak dan oleh karena itu tergantung pada ROM. Jadi nilai yang04E8
ia gunakan dalam aturan aslinya hanya akan bekerja untuk perangkat dengan ROM stock Samsung. Tapi ini bukan masalah untukudev
aturan ini - ini cocok dengan semua perangkat denganadb
ataufastboot
antarmuka terlepas dari VendorID mereka .sumber
Di Archlinux ini bisa terjadi sesekali. Cara mengatasinya:
sumber
sudo adb kill-server; sudo adb start-server
tidak berhasil tetapi yang ini berhasil.Bagi mereka yang menggunakan debian, panduan untuk menyiapkan perangkat di bawah Ubuntu untuk membuat file "/etc/udev/rules.d/51-android.rules" tidak berfungsi. Saya mengikuti instruksi dari sini . Tuliskan yang sama di sini untuk referensi.
Edit file ini sebagai superuser
Temukan teks yang mirip dengan ini
Kemudian ubah mode ke 0666 seperti di bawah ini
Ini memungkinkan adb berfungsi, namun kita masih perlu mengatur perangkat agar dapat dikenali. Kita perlu membuat file ini sebagai superuser,
dan masuk
baris di atas adalah untuk HTC, ikuti posting @ grebulon untuk daftar lengkap.
Simpan file dan kemudian restart udev sebagai pengguna super
Hubungkan ponsel melalui USB dan itu harus dideteksi ketika Anda mengkompilasi dan menjalankan proyek.
sumber
Saya memiliki masalah yang sama, solusinya adalah sebagai sesama: (omong-omong, Anda tidak perlu me-rooting perangkat Anda.)
Nikmati.
sumber
su
, gunakansudo su
. Aku melakukannya. Dan juga, jika Anda tidak tahu cara keluar dari pengguna - gunakanexit
.Saya tahu ini mungkin agak terlambat, tetapi di sini ada artikel yang sangat bagus tentang cara menambahkan secara manual Android ADB USB Driver. Menambahkan driver USB ADB Android secara manual di Ubuntu 14.04 LTS
Diedit untuk Menambahkan Konten Tautan
Langkah
Catatan: Pastikan Anda telah menghubungkan perangkat Android Anda di USB Debugging mode
Buka terminal (
CTRL + ALT + T
) dan masukkan perintah:lsusb
Sekarang Anda mungkin mendapatkan balasan yang serupa dengan ini:
Bus 002 Device 013: ID 283b:1024
Catatan: Dengan referensi ini
Bus 002 Device 008: ID 283b:1024
{idVendor}==”283b” {idProduct}==”1024″
Sekarang masukkan perintah berikut:
sudo gedit /etc/udev/rules.d/51-android.rules
Ini membuat file aturan android (
51-android.rules
) atau buka yang ada di lokasi yang ditentukan (/etc/udev/rules.d
)Tambahkan baris baru ke file ini:
SUBSYSTEM==”usb”, ATTRS{idVendor}==”283b”, ATTRS{idProduct}==”1024″, MODE=”0666″
Catatan Edit
idVendor
&idProduct
nilai dengan nilai perangkat Anda. Simpan dan tutup.Sekarang masukkan perintah berikut:
sudo chmod a+rx /etc/udev/rules.d/51-android.rules
- beri izin baca / eksekusisudo service udev restart
- Mulai ulangudev
layananSekarang kita harus menambahkan
idVendor
keadb_usb.ini
. Masukkan perintah berikut:cd ~/.android
gedit adb_usb.ini
Tambahkan nilai berikut
0x283b
Ini tidak lain adalah 0x (
idVendor
nilai). Jadi gantikan nilainya dengan. menghormati nilai perangkat Anda Simpan dan tutup file.Sekarang masukkan perintah berikut:
sudo service udev restart
Hubungkan perangkat Android dan hubungkan kembali.
Sekarang masukkan perintah berikut:
adb kill-server
adb devices
Ini dia! Perangkat Anda harus terdaftar.
Disalin Dari Secara Manual menambahkan driver USB ADB Android di Ubuntu 14.04 LTS
Bekerja untukku.
sumber
Saya memiliki masalah yang sama dengan Galaxy S3 saya. Masalah saya adalah bahwa
idVendor
nilainya04E8
tidak tepat. Untuk menemukan yang tepat sambungkan ponsel cerdas Anda ke komputer dan jalankanlsusb
di terminal. Ini akan mencantumkan smartphone Anda seperti ini:Jadi nilai yang tepat
idVendor
adalah18d1
. Dan garis dalam/etc/udev/rules.d/51-android.rules
harus:Lalu aku berlari
sudo udevadm control --reload-rules
dan semuanya bekerja!sumber
ATTR{idVendor}=="18d1"
Gunakan
M0Rf30/android-udev-rules
komunitas GitHub mempertahankan udev-ruleshttps://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules
Ini adalah daftar aturan-udev paling lengkap yang pernah saya lihat sejauh ini, bahkan lebih dari yang saat ini direkomendasikan
sudo apt-get install android-tools-adb
pada dokumentasi resmi , dan itu memecahkan masalah itu untuk saya.sumber
Ganti vendor id dari
0bb4
dengan18d1
di/etc/udev/rules.d/51-android.rules
Atau tambahkan baris lain yang bertuliskan:
sumber
Ketika Anda me-restart udev, bunuh server adb & mulai server adb goto jalur pemasangan android sdk & lakukan semuanya di sudo. kemudian jalankan adb devices maka akan menyelesaikan masalah izin.
sumber
Perangkat saya POSITIVO dan sistem operasional saya
Ubuntu 14.04 LTS
Jadi, masalah saya adalah nama variabelSaya membuat file /etc/udev/rules.d/51-android.rules dan meletakkannya
SUBSYSTEM=="usb", SYSFS{idVendor}=="1662", MODE="0666"
Saya memutus perangkat dan menjalankan:
setelah ini saya menghubungkan perangkat android dalam mode pengembang lagi dan
sumber
Tanpa mencabut kabel
Semua jawaban yang diberikan berasumsi bahwa Anda dapat mencabut dan menyambungkan kembali kabel USB. Dalam situasi di mana ini tidak mungkin (misalnya, ketika Anda jauh), Anda dapat melakukan hal berikut untuk melakukan apa yang akan dilakukan oleh aturan udev yang disarankan pada plug-ulang:
Temukan perangkat yang Anda pedulikan, misalnya:
Catat nomor bus yang dihidupkan lalu laksanakan, misalnya untuk bus
003
:Jelas ini mungkin lebih permisif daripada yang Anda inginkan (mungkin ada lebih banyak perangkat yang terpasang dari yang satu ini), tetapi Anda mendapatkan idenya.
sumber
udev
aturan baru tanpa menghubungkan kembali perangkat cukup gunakanudevadm trigger --verbose --action=add --subsystem-match=usb
perintah.Anda TIDAK boleh menjalankan
adb
server sebagai root seperti yang disarankan oleh jawaban lain. Alih-alih jika Anda menggunakan Arch Linux, lakukan hal berikut:android-udev
paket dengan PacmanMuat ulang aturan udev:
Tambahkan diri Anda ke
adbusers
grup lalu keluar dan masuk:Sumber: https://wiki.archlinux.org/index.php/android#Configuring_adb
sumber
Coba alih-alih
GROUP="plugdev"
gunakan grup utama pengguna Anda.sumber
Dalam kasus saya di ubuntu 12.04 LTS, saya harus mengubah mode usb HTC Incredible saya dari biaya ke Media dan kemudian perangkat muncul di bawah adb. Tentu saja, debugging sudah aktif di kedua kasus.
sumber
Harap JANGAN mengikuti solusi yang menyarankan untuk menggunakan
sudo
(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.
sumber
Saya memiliki masalah yang sama dan saya mengikuti langkah-langkah ini:
Langkah-langkah di atas dijelaskan pada android-udev-rules . Ini berhasil untuk saya.
Pastikan untuk mengkonfirmasi dialog yang akan muncul di layar ponsel Anda setelah memasangnya kembali.
sumber
Perintah ini bekerja untuk saya
sumber
Saya menggunakan su dan mulai bekerja. Ketika saya menggunakan Jetbrains dengan pengguna biasa, saya melihat masalah ini tetapi setelah memulai ulang Jetbrains dalam mode su, saya dapat melihat perangkat saya tanpa melakukan apa-apa.
Saya menggunakan Ubuntu 13.04 dan Jetbrains 12.1.4
sumber
Anda juga dapat mencoba mengedit file adb_usb.ini , yang terletak di /home/username/.android/ . File ini berisi daftar vendor perangkat id yang ingin Anda sambungkan. Anda cukup menambahkan vendor id perangkat Anda di baris baru (satu id per baris). Kemudian restart server adb dan ganti perangkat Anda.
Ini bekerja untuk saya di Ubuntu 12.10.
sumber
Lagi pula, apa yang saya lakukan untuk mengatasi masalah ini (di Ubuntu ).
Didefinisikan dalam hal apa saya perlu menjalankan perintah ini. Untuk sebagian besar pengguna ubuntu ada folder rumah (file tersembunyi
.bashrc
).Di mana Anda dapat merekam peluncuran perintah ini. Tetapi perintah ini akan terpicu ketika Anda memasukkan
bash
perintah di konsol.Karena saya memiliki shell .zshrc maka saya melakukan hal berikut:
konsol terbuka:
gedit .zshrc
Ketika file dibuka, tambahkan baris berikut:
Setelah atau sebelum, kita perlu membuat file ini:
.add_device_permissions.sh
di mana kita menulis yang berikut ini:Kita juga perlu membuat .permissions_redmi_note di mana kita perlu meng-hardcode kata sandi kita.
.zshrc
tidak perlu, kita dapat menentukan path ketika memulai sistem itu sendiri:Startup Applications Preferences
Di mana kita menekan "Tambah" dan tulis perintah kita:
/home/vadimm/.add_device_permissions.sh
./adb devices ./adb kill-server sudo ./adb devices ./adb kill-server ./adb devices
sumber
Jika ada yang menghadapi pesan kesalahan berikut ketika mereka menggunakan
adb devices
Jalankan yang berikut ini
Itu memperbaiki masalah bagi saya di perangkat Android build kustom
sumber