GNU/Linux >> Belajar Linux >  >> Linux

Android - Bagaimana cara agar perangkat saya terdeteksi oleh ADB di Linux?

Aktifkan USB debugging pada perangkat

Ini dilakukan di Pengaturan › Pengembangan . Jika Anda tidak memiliki entri tersebut di menu setelan, buka Pengaturan › Tentang , gulir ke "Bangun nomor", dan palu seperti monyet sampai perangkat Anda memberi selamat kepada Anda karena telah menjadi pengembang. Kembali ke halaman utama Pengaturan menu, dan dekat ke bawah Anda akan melihat pengaturan "Pengembangan" (atau "Pengembang") sekarang. Masukkan, dan aktifkan USB Debugging di sini.

Identifikasi perangkat

Pertama kita perlu mengetahui bagaimana perangkat mengidentifikasi pada bus USB. Untuk itu, dengan perangkat Android TIDAK terhubung, ambil shell dan jalankan perintah lsusb . Kemudian sambungkan perangkat dan jalankan perintah lagi. Temukan baris baru. Untuk Wileyfox Swift ini adalah "perangkat tanpa nama":

Bus 004 Device 003: ID 2970:2282

Menyiapkan aturan untuk ADB

Kami sekarang membutuhkan angka di akhir baris di atas:2970:2282 . Ini menentukan vendor (2970) dan perangkat itu sendiri (2282). Memiliki detail tersebut, kita membutuhkan root shell di mesin Linux kami untuk mengedit (atau membuat, jika belum ada) /etc/udev/rules.d/51-android.rules mengajukan. Di sana, tambahkan baris untuk perangkat Anda. Baris contoh berikut menunjukkan tampilan Wileyfox Swift:¹

SUBSYSTEMS=="usb", ATTRS{idVendor}=="2970", ATTRS{idProduct}=="2282", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"

Jika Anda memiliki perangkat yang berbeda, ganti vendor dan ID produk dengan apa yang Anda temukan di atas saat menjalankan lsusb . Penjelasan singkat tentang baris:

  • SUBSYSTEMS=="usb" :jelas aturan ini hanya untuk USB;)
  • ATTRS{idVendor}=="2970" :ID vendor perangkat untuk aturan ini
  • ATTRS{idProduct}=="2282" :ID perangkat
  • MODE="0666" :izin yang harus didapatkan node perangkat. 0666 cukup longgar, memberikan izin baca dan tulis kepada setiap pengguna di sistem Anda – jadi jika Anda khawatir, Anda dapat mencoba menggantinya dengan 0660 (hanya memberikan pemilik dan grup baca-tulis, dan menyangkal semuanya kepada orang lain).
  • GROUP="androiddev" :grup mana yang harus dimiliki node perangkat. Ini harus menjadi grup tempat pengguna ingin bekerja dengan perangkat tersebut.
  • SYMLINK+="android%n" :hanya untuk memberi node nama yang bagus, sehingga Anda dapat menemukannya dengan lebih mudah di /dev (dalam kasus saya, nanti muncul di sana sebagai /dev/android5 )

Aturan itu dimasukkan dalam /etc/udev/rules.d/51-android.rules , kita harus memberi tahu udev untuk memanfaatkannya. Cara teraman (di samping reboot;) adalah me-restart udev melayani. Bergantung pada distro Linux Anda, ini dapat dilakukan melalui service udev restart atau /etc/init.d/udev restart .

Selesai itu, tinggalkan shell root. Putuskan dan sambungkan kembali perangkat Android Anda, coba adb devices lagi. Sebagian besar perangkat muncul sekarang, tetapi Wileyfox Swift tidak - yang jelas menginginkan pelukan ekstra. Jika Anda berada dalam situasi itu, buka (atau buat jika tidak ada) file ~/.android/adb_usb.ini dan tambahkan satu baris ke dalamnya, beri nama vendor yang Anda temukan dengan lsusb di atas; untuk Swift itu akan menjadi 0x2970 (yup, di sini Anda perlu mengawalinya dengan 0x untuk menunjukkan itu adalah angka heksadesimal). Kemudian mulai ulang server ADB:adb kill-server && adb start-server . Putuskan sambungan dan sambungkan kembali perangkat. Sekarang adb devices harus melihatnya.

Menghubungkan perangkat

Anda mungkin memperhatikan adb devices memberi tahu Anda sesuatu seperti 0123456789ABCDEF unauthorized . Tidak apa-apa dan untuk keamanan (perangkat) Anda:komputer Anda harus diotorisasi terlebih dahulu untuk dapat mengakses perangkat. Jadi cukup keluarkan adb shell sekarang – yang akan ditutup dengan error: device unauthorized. Please check the confirmation dialog on your device. Ikuti saran tersebut (opsional centang kotak untuk mengotorisasi komputer Anda secara permanen), dan selesai:Sekarang Anda dapat menggunakan adb untuk mengakses perangkat Anda.

Pembaruan:

¹ Perhatikan bahwa di versi Linux yang lebih baru, sintaks untuk aturan UDEV sedikit berubah, seperti mis. jcomeau_ictx menunjukkan dalam komentarnya. Untuk nilai yang kami temukan di atas adalah:

SUBSYSTEM=="usb", ATTR{idVendor}=="2970", ATTR{idProduct}=="2282", MODE="0666", GROUP="plugdev", SYMLINK+="android%n"

Dua perbedaan:sekarang menjadi SUBSYSTEM (tidak jamak), dan grup telah berubah dari androiddev ke plugdev (yang pertama tidak ada pada sistem terbaru, yang terakhir ada dan biasanya ditetapkan setidaknya untuk pengguna pertama).

Selain itu, Anda mungkin perlu menambahkan vendorID ke ~/.android/adb_usb.ini Anda (satu ID per baris, dalam notasi hex):

# ANDROID 3RD PARTY USB VENDOR ID LIST
# 1 USB VENDOR ID PER LINE.
0x2970

Beberapa komentar dari distribusi Linux yang lebih baru. Fedora 29 dengan ponsel Nexus 5X atau Nokia 7.1 (Android One).

Putuskan sambungan telepon terlebih dahulu, jika sudah tersambung.

  1. Instal android-tools yang akan memasok ADB (sudo dnf install android-tools )
  2. Salin aturan udev (sudo cp /usr/share/doc/android-tools/51-android.rules /etc/udev/rules.d )
  3. Muat ulang aturan udev (sudo udevadm control --reload-rules )
  4. Mulai ulang ADB untuk memastikan (sudo systemctl restart adb )

Sekarang hubungkan ponsel dan jalankan adb devices dari baris perintah. Anda mungkin akan melihat perangkat terdaftar dengan "tanpa izin". Ini baik-baik saja.
JIKA tidak tercantum, Anda harus menambahkan perangkat Anda ke file aturan udev, tetapi bagi saya, perangkat yang diuji hanya berfungsi dengan aturan yang telah ditentukan sebelumnya.

Jalankan adb shell dan semoga anda mendapatkan notifikasi keamanan di ponsel yang menanyakan apakah anda ingin mempercayai komputer tersebut, pilih ya.
JIKA alih-alih komputer Anda mengatakan "kesalahan:izin tidak cukup untuk perangkat", Anda perlu memastikan bahwa di ponsel Anda telah menyetel port USB ke mode "Transfer file", dan bukan "Isi daya perangkat ini". Di Android 8.1 ini terletak di setelan di bawah "Perangkat yang terhubung"> "USB".

Saya telah memperhatikan bahwa bahkan jika Anda memiliki segalanya bekerja hari ini, besok mungkin tiba-tiba rusak tanpa alasan yang jelas. Jika itu terjadi, pertama-tama periksa pengaturan port USB pada perangkat, yang mungkin telah berubah kembali ke mode pengisian daya, dan jika gagal, cabut otorisasi debugging USB pada perangkat (dalam pengaturan di bawah Opsi pengembang), dan semoga Anda mendapatkan pop -up lagi saat Anda menjalankan adb shell .

Dengan ini, saya dapat menjalankan Android Studio dan berjalan di perangkat yang terhubung.


Linux
  1. Cara mendapatkan ukuran direktori di Linux

  2. Cara membuat perangkat blok virtual (perangkat loop/sistem file) di Linux

  3. Bagaimana cara mendapatkan vendor USB dan info produk secara terprogram di Linux?

  1. Cara menginstal driver perangkat di Linux

  2. Cara SSH di Linux dari Android

  3. Bagaimana cara mendapatkan netmask dari bash?

  1. Bagaimana cara mendapatkan nama host dari IP (Linux)?

  2. Bagaimana cara memasang perangkat di Linux?

  3. Bagaimana cara mendapatkan ldapsearch di Scientific Linux?