Saya baru saja mendapatkan Swift Wileyfox baru saya yang mengkilap - dan sebelum menggunakannya saya ingin oem unlock
me-root-nya (seperti yang biasa saya lakukan dengan perangkat baru;) Masalahnya adalah, meskipun usb-debugging diaktifkan pada perangkat, dan baris yang sesuai /etc/udev/rules.d/51-android.rules
ada , perangkat tidak terlihat oleh adb devices
.
Saya tahu ada beberapa jawaban yang tersebar di sekitar situs ini, tetapi mereka sulit ditemukan, cukup tutup perangkat tertentu, atau jangan tutupi semua langkah yang akhirnya saya butuhkan. Jadi saya menganggap ini sebagai kesempatan untuk pertanyaan kanonik, independen-perangkat dan memberikan jawaban rinci di bawah ini:
Bagaimana saya bisa membuat perangkat Android saya terlihat dan digunakan adb
di Linux?
Jawaban:
Aktifkan USB debugging pada perangkat
Ini dilakukan di Pengaturan ›Pengembangan . Jika Anda tidak memiliki entri itu di menu pengaturan Anda, buka Pengaturan ›Tentang , gulir ke" Bangun nomor ", dan palu seperti monyet sampai perangkat Anda memberi selamat kepada Anda telah menjadi pengembang. Kembali ke halaman utama menu Pengaturan , dan tutup ke bawah Anda akan melihat pengaturan "Pengembangan" (atau "Pengembang") sekarang. Masukkan, dan aktifkan USB Debugging di sini.
Identifikasi perangkat
Pertama, kita perlu tahu bagaimana perangkat mengidentifikasi pada bus USB. Untuk itu, dengan perangkat Android TIDAK terhubung, ambil shell dan jalankan perintah
lsusb
. Kemudian hubungkan perangkat dan jalankan perintah lagi. Temukan baris baru. Untuk Wileyfox Swift ini adalah "perangkat tanpa nama":Menyiapkan aturan untuk ADB
Kami sekarang perlu nomor pada akhir baris di atas:
2970:2282
. Ini menentukan vendor (2970) dan perangkat itu sendiri (2282). Dengan memiliki perincian itu, kita perlu shell root pada mesin Linux kita untuk mengedit (atau membuat, jika belum ada)/etc/udev/rules.d/51-android.rules
file tersebut. Di sana, tambahkan garis untuk perangkat Anda. Baris contoh berikut menunjukkan bagaimana tampilannya untuk Wileyfox Swift: ¹Jika Anda memiliki perangkat yang berbeda, ganti vendor dan ID produk dengan apa yang Anda temukan di atas saat berjalan
lsusb
. Penjelasan singkat dari baris:SUBSYSTEMS=="usb"
: jelas aturan ini hanya untuk USB;)ATTRS{idVendor}=="2970"
: ID vendor perangkat untuk aturan iniATTRS{idProduct}=="2282"
: ID perangkatMODE="0666"
: izin yang akan didapat simpul perangkat.0666
cukup longgar, memberi setiap pengguna di sistem Anda izin baca dan tulis - jadi jika Anda khawatir, Anda dapat mencoba menggantinya dengan0660
(hanya memberikan pemilik dan grup baca-tulis, dan tolak semuanya kepada orang lain).GROUP="androiddev"
: ke grup mana node perangkat seharusnya berada. Ini harus berupa grup yang menjadi tujuan pengguna untuk bekerja dengan perangkat tersebut.SYMLINK+="android%n"
: hanya untuk memberikan nama yang bagus pada simpul, sehingga Anda dapat menemukannya dengan lebih mudah/dev
(dalam kasus saya, nanti muncul di sana sebagai/dev/android5
)Aturan itu masuk
/etc/udev/rules.d/51-android.rules
, kita harus memberitahuudev
untuk memanfaatkannya. Cara teraman (di sebelah reboot;) adalah me-restartudev
layanan. Tergantung pada distro Linux Anda, ini dapat dilakukan melaluiservice udev restart
atau/etc/init.d/udev restart
.Selesai itu, tinggalkan shell root. Putuskan sambungan dan hubungkan kembali perangkat Android Anda, coba
adb devices
lagi. Sebagian besar perangkat muncul sekarang, tetapi bukan Wileyfox Swift - yang jelas menginginkan pelukan tambahan. Jika Anda berada dalam situasi itu, buka (atau buat jika tidak ada) file~/.android/adb_usb.ini
dan tambahkan satu baris ke sana, beri nama vendor yang Anda temukan dilsusb
atas; untuk Swift yang akan menjadi0x2970
(yupp, di sini Anda perlu awalan dengan0x
menunjukkan bahwa itu adalah angka heksadesimal). Kemudian restart server ADB:adb kill-server && adb start-server
. Putuskan sambungan dan hubungkan kembali perangkat. Sekarangadb devices
harus melihatnya.Menghubungkan perangkat
Anda mungkin telah memperhatikan
adb devices
mengatakan sesuatu kepada Anda0123456789ABCDEF unauthorized
. Tidak apa-apa dan untuk keamanan (perangkat) Anda: komputer Anda harus disahkan terlebih dahulu untuk dapat mengakses perangkat. Jadi cukup keluarkanadb shell
sekarang - yang akan dihentikan denganerror: device unauthorized. Please check the confirmation dialog on your device.
saran Ikuti itu (tandai centang kotak untuk mengesahkan komputer Anda secara permanen), dan Anda selesai: Sekarang Anda dapat menggunakan adb untuk mengakses perangkat Anda.Pembaruan:
¹ Perhatikan bahwa dalam versi Linux yang lebih baru, sintaks untuk aturan UDEV sedikit berubah, seperti yang ditunjukkan oleh jcomeau_ictx dalam komentarnya. Untuk nilai yang kami temukan di atas adalah:
Dua perbedaan: sekarang
SUBSYSTEM
(tidak ada jamak), dan grup telah berubah dariandroiddev
menjadiplugdev
(yang pertama tidak ada pada sistem terbaru, yang terakhir tidak dan biasanya ditugaskan setidaknya untuk pengguna pertama).Selain itu, Anda mungkin perlu menambahkan vendorID ke
~/.android/adb_usb.ini
(satu ID per baris, dalam notasi hex):sumber
jcomeau@aspire:~$ tail -n 1 /etc/udev/rules.d/99-android.rules SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", ATTR{idProduct}=="201d", MODE="0666", GROUP="plugdev", SYMLINK+="android%n" jcomeau@aspire:~$ cat ~/.android/adb_usb.ini # ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT. # USE 'android update adb' TO GENERATE. # 1 USB VENDOR ID PER LINE. 0x0e8d
Saya harus mengabaikan saran untuk menjalankanandroid update adb
dan memasukkannya secara manual seperti yang Anda nyatakan.plugdev
bukanandroiddev
). Tidak diverifikasi, tetapi saya akan mengatakan bagian penting di sini adalah bahwa itu adalah grup yang juga dimiliki oleh pengguna Anda (yang ingin Anda gunakan USB)SUBSYSTEM
bukannyaSUBSYSTEMS
,ATTR
bukannyaATTRS
, koma setelahMODE="0666"
tidak yakin apakah semua perubahan itu diperlukan, tapi itulah yang berhasil.sudo wget -O /etc/udev/rules.d/51-android.rules
dari sini bekerja untuk saya untuk Xiaomi Mi A1 saya. Tentu saja lebih baik belajar tetapi senang menjadi malas :)Beberapa komentar dari distribusi Linux yang lebih baru. Fedora 29 dengan ponsel Nexus 5X atau Nokia 7.1 (Android One).
Pertama-tama lepaskan telepon, jika sudah terhubung.
sudo dnf install android-tools
)sudo cp /usr/share/doc/android-tools/51-android.rules /etc/udev/rules.d
)sudo udevadm control --reload-rules
)sudo systemctl restart adb
)Sekarang hubungkan telepon dan jalankan
adb devices
dari baris perintah. Anda mungkin akan melihat perangkat yang terdaftar dengan "tanpa izin". Ini baikJIKA tidak terdaftar, Anda harus menambahkan perangkat Anda ke file aturan udev, tetapi bagi saya, perangkat yang diuji hanya bekerja dengan aturan yang telah ditentukan sebelumnya.
Jalankan
adb shell
dan semoga Anda akan mendapatkan notifikasi keamanan di telepon yang menanyakan apakah Anda ingin mempercayai komputer, pilih ya.JIKA sebaliknya komputer Anda mengatakan "error: izin tidak memadai untuk perangkat", Anda harus memastikan bahwa pada ponsel Anda telah mengatur port USB Anda ke mode "Transfer file", dan bukan "Mengisi daya perangkat ini". Pada Android 8.1 ini terletak di pengaturan di bawah "Perangkat yang terhubung"> "USB".
Saya telah memperhatikan bahwa bahkan jika Anda memiliki semuanya berfungsi hari ini, bahwa besok mungkin tiba-tiba rusak tanpa alasan yang jelas. Jika itu terjadi, periksa dulu pengaturan port USB pada perangkat, yang mungkin telah berubah kembali ke mode pengisian daya, dan jika itu gagal, cabut otorisasi debugging USB pada perangkat (dalam pengaturan di bawah Opsi pengembang), dan semoga Anda mendapatkan pop -di atas lagi ketika Anda menjalankan
adb shell
.Dengan ini, saya dapat menjalankan Android Studio dan berjalan di perangkat yang terhubung.
sumber