Jawaban Izzy menyesatkan. Dua hal yang tidak terkait digabungkan (daftar ID vendor di adb di satu sisi dan penyiapan izin di Linux di sisi lain).
1) perangkat dipertimbangkan oleh adb:
Adb memiliki daftar hard code ID vendor USB yang dicobanya. Misalnya. Ponsel HTC menggunakan 0xbb4, yang terdaftar (file sumber usb_vendors.c), sedangkan 0x2207 tidak.
hanya cara menambahkan ke daftar ini (tanpa menambal sumbernya) adalah dengan memasukkan ID vendor di file $HOME/.android/adb_usb.ini
, baris demi baris. (HOME sudah diatur kan?)
Tidak diperlukan kabel khusus.
2) penyiapan izin untuk akses non-root:
Udev-fiddling adalah untuk memberikan akses pengguna ke mis. /dev/bus/usb/002/009 (perubahan nomor bus/nomor perangkat; lihat lsusb
untuk nilai saat ini).
Detailnya tidak relevan dengan pertanyaan pengirim asli, karena ia menjalankan adb sebagai root.
Seperti yang dijelaskan dalam Mengonfigurasi ADB untuk Nexus 4 di Ubuntu 11.10, di Linux penting untuk dicantumkan di ~/.android/adb_usb.ini
(berbasis pengguna) atau /etc/udev/rules.d/51-android.rules
. Sintaks untuk kedua file berbeda:sementara pada kasus pertama cukup dengan menambahkan id vendor (echo 0x18d1 >> ~/.android/adb_usb.ini
untuk Nexus 4), entri untuk aturan UDEV sedikit lebih rumit. Detail dapat ditemukan di pertanyaan tertaut (atau lebih tepatnya jawabannya).
Kasus saya krlmlr, itu bukan "salah satu-atau", tetapi tampaknya kedua bagian itu diperlukan (saya belum pernah memilikinya sebelumnya, dan saya bahkan tidak pernah menggunakan adb_usb.ini
-- tetapi bukan berarti tidak ada pengecualian seperti itu). Dengan menambahkan perangkat di kedua tempat (yang tidak ada salahnya), perangkat akhirnya muncul.
Dua komentar tambahan:Setelah mengubah aturan UDEV, layanan UDEV harus dimulai ulang untuk menerima perubahan. Di Ubuntu, ini bisa dilakukan melalui sudo service udev restart
(sebagai alternatif, Anda cukup memaksa UDEV untuk memuat ulang aturannya menggunakan udevadm control --reload-rules
). Jika perangkat Anda masih tidak terdeteksi, kemungkinan besar perangkat telah dicolokkan saat Anda melakukan perubahan; Anda perlu mencabut dan menyambungkan kembali kabel USB. Tentu saja, Debug USB harus diaktifkan di perangkat Anda :)
Contoh
Berdasarkan keluaran lsusb
berikut untuk perangkat Android yang dimaksud:
Bus 002 Device 009: ID 2207:0010
itu perlu untuk membuat /etc/udev/rules.d/51-android.rules
sebagai root
dengan isi sebagai berikut:
SUBSYSTEM=="usb", ATTR{idVendor}=="2207", ATTR{idProduct}=="0010", MODE="0660", GROUP="plugdev"
dan untuk membuat ~/.android/adb_usb.ini
dengan isi sebagai berikut:
0x2207
Yang pertama diperlukan untuk mengizinkan pengguna biasa (yang termasuk dalam grup plugdev
) untuk mengakses perangkat. Perhatikan topeng izin 0660
bukan 0666
yang sering terlihat yang lebih lemah dari sudut pandang keamanan (yang terakhir memungkinkan akses "dunia", sedangkan yang pertama hanya memungkinkan akses "pengguna dan grup"). Yang kedua diperlukan agar adb
upaya untuk berbicara dengan perangkat di tempat pertama. Setelah itu:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
sudo udevadm control --reload-rules
adb kill-server
dan cabut + pasang perangkat Android Anda. Lalu,
adb devices
akhirnya menunjukkan perangkat Android.
Untuk LG Optimus 4X HD saya , cukup menambahkan satu baris ke /etc/udev/rules.d/51-android.rules
:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1004", ATTRS{idProduct}=="61a6", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"
Mungkin SYMLINK
opsi membuat perbedaan bahwa saya tidak memerlukan entri tambahan di ~/.android/adb_usb.ini
.