Mengapa kita membutuhkan Kies (driver ADB) di Windows tetapi tidak di Linux?

11

Mengapa kita membutuhkan driver ADB di Windows tetapi tidak di Linux?

Saya telah bekerja di Android selama beberapa bulan terakhir di Windows. Untuk menjalankan proyek saya di perangkat Samsung saya, saya harus menginstal Kies terlebih dahulu. Demikian pula untuk perangkat LG saya ada driver LG ADB, dan satu lagi untuk HTC.

Tetapi ketika saya pindah ke Ubuntu Linux baru-baru ini, saya tidak memerlukan driver lain seperti Kies dan ADB. Saya dapat men-debug secara langsung tanpa driver pihak ketiga. Mengapa demikian?

Saya tahu itu adalah sesuatu yang sangat umum, tetapi saya belum menemukan apa pun yang menjelaskan mengapa ini terjadi.

hemantsb
sumber
menambahkan pembaruan # 2 ke jawaban saya
geffchang

Jawaban:

5

Chor WaiChun menyebutkan ini pada pertanyaan terkunci yang Anda poskan di StackOverflow :

Saya telah melihat di suatu tempat menyatakan bahwa perilaku ini karena android dan linux berjalan pada kernel yang sama, dan situasi yang sama berlaku untuk pengembangan android di mac. Kedua OS berjalan di kernel OS yang sangat mirip dengan Android, itu sebabnya mereka tidak memerlukan driver. Ini hanya sesuatu yang saya ingat melihat dari utas lain, tidak bisa memberikan 100% pasti

UPDATE # 1: Situs Android juga menyebutkan ini:

Jika Anda mengembangkan pada Windows dan ingin menghubungkan perangkat yang didukung Android untuk menguji aplikasi Anda, maka Anda perlu menginstal driver USB yang sesuai. ...

Jika Anda mengembangkan di Mac OS X atau Linux, maka Anda mungkin tidak perlu menginstal driver USB. Untuk mulai mengembangkan dengan perangkat Anda, baca Menggunakan Perangkat Perangkat Keras.

UPDATE # 2: Ada komentar tentang StackOverflow mengenai libusb. Saya pikir ini mungkin alasan mengapa Linux tidak memerlukan driver tambahan.

Sebenarnya adb di Linux mengakses perangkat USB menggunakan libusb tanpa driver kernel tertentu. Adb juga memiliki daftar ID vendor yang diizinkan untuk digunakan, tetapi ini tidak menjelaskan masalah yang dipermasalahkan, karena ID vendor untuk kedua ponsel adalah sama. Dan jika ada masalah izin karena aturan udev yang hilang, perangkat adb dengan jelas menunjukkan "tidak ada izin" dalam daftar, jadi ini juga bukan penyebab masalah ini.

geffchang
sumber
pertanyaan saya adalah mengapa? Apakah Anda memiliki beberapa tautan dan semuanya sehingga saya bisa mendapatkan ide total, +1 untuk jawabannya!
hemantsb
0

Saya tidak yakin mengapa Linux biasanya tidak memerlukan driver ADB khusus.

Namun, ada driver USB ADB Windows "universal" yang bekerja dengan sebagian besar perangkat Android. Ini dikembangkan oleh Koushik Dutta (Koush), pengembang Android terkenal yang bekerja di ClockworkMod. Ini seharusnya bekerja dengan baik untuk Anda. Unduh di sini: http://koush.com/post/universal-adb-driver

Neil Schaper
sumber
Saya pikir Anda salah mengerti pertanyaan saya, Pertanyaan saya adalah mengapa perilaku ini, Dan saya tahu tentang penggerak ADB universal.
hemantsb
0

Seperti orang lain sudah merespons, di linux ada driver USB yang umum, yang digunakan adb. Tampaknya di Windows tidak ada driver USB yang umum, jadi adb menggunakan driver "yang disediakan" - berbeda untuk setiap perangkat / pabrikan.

miko
sumber
1
Di Windows tidak ada driver universal yang diinstal sebelumnya . Namun ada satu yang tersedia, seperti yang ditunjukkan Neil . Di sisi lain: Tidak ada Kies di Linux, jadi Anda tidak perlu driver Kies #D
Izzy