6 poin oleh GN⁺ 2024-01-02 | 1 komentar | Bagikan ke WhatsApp

Mengapa pengembang Android tidak lagi memerlukan driver USB Windows

  • Pada platform Android awal, pengembang dapat menghubungkan perangkat melalui kabel USB di Linux atau Mac OS X, tetapi pengguna Windows harus mencari dan memasang driver.
  • Kini driver tersebut tidak lagi diperlukan.

Dasar-dasar USB driver/OS

  • Saat perangkat USB dihubungkan ke port, sistem operasi memeriksa lapisan USB descriptor dan harus memuat driver untuk antarmuka tersebut.
  • Sebagian besar perangkat USB sudah didukung sistem operasi agar dapat langsung berfungsi secara otomatis dengan driver 'Device Class' bawaan.
  • Windows akan memuat driver yang dipasang pengguna jika tidak dapat menemukan driver 'Device Class' bawaan yang sesuai atau jika ada driver yang lebih baik.

Mengapa dulu tidak bisa

  • Jika driver tidak ditemukan, Linux memuat usbfs dan Mac OS memuat IOKit agar program user-space dapat mengakses perangkat.
  • Windows melaporkan kesalahan dan tidak memuat driver, sehingga perangkat Android tidak dapat diakses.

Mengapa driver Android bisa berfungsi

  • Untuk memahami apa yang terjadi saat driver dipasang, artikel ini memeriksa android_winusb.inf, 'otak' dari Google USB Driver.
  • WinUSB adalah driver USB yang mirip dengan usbfs di Linux dan IOKit di Mac OS, yang memungkinkan program user-space melakukan enumerasi antarmuka serta membaca dan menulis ke endpoint.

Mengapa perangkat Android tidak lagi memerlukan driver Windows

  • Metode sebelumnya memiliki kelemahan yang jelas. Jika VID/PID perangkat Android tidak ada dalam daftar, winusb tidak akan dimuat.
  • Windows 8 meminta langsung ke perangkat driver yang dibutuhkan antarmuka, dengan cara yang lebih baik daripada file INF.
  • Jika perangkat kompatibel dengan Microsoft OS descriptor (MOD), Windows akan meminta Extended Compat ID OS Feature Descriptor.
  • Dengan ini, winusb.sys dimuat, dan executable user-space adb dapat membuka perangkat serta mengklaim antarmuka sehingga pengembang bisa mulai bekerja.

Perangkat mana yang mendukung Microsoft OS descriptor

  • Berdasarkan perangkat Pixel yang dimiliki penulis, dukungan MOD tampaknya mulai hadir di antara Pixel 2 (2017) dan Pixel 3a (2019).

Extended Properties OS Feature Descriptor

  • Perangkat yang lebih baru seperti Pixel 8 memiliki Extended Properties OS Feature Descriptor, yang dapat mencakup GUID, halaman bantuan, URL, bahkan ikon.

Opini GN⁺

  • Poin terpenting dari artikel ini adalah bahwa perangkat Android kini dapat digunakan untuk pengembangan di Windows tanpa pemasangan driver terpisah.
  • Pengenalan Microsoft OS descriptor dan Extended Compat ID OS Feature Descriptor sangat meningkatkan pengalaman pengguna.
  • Perubahan ini memberikan kemudahan bagi pengembang Android dan membantu meningkatkan aksesibilitas lingkungan pengembangan.

1 komentar

 
GN⁺ 2024-01-02
Komentar Hacker News
  • Kecintaan terhadap ADB(Android Debug Bridge)

    • ADB adalah alat yang sangat berguna, bahkan memungkinkan perutean ulang port melalui VPN.
    • Bahkan jika bukan pengembang Android, alat ini seperti pisau lipat serbaguna dan menjadi salah satu alasan besar untuk lebih menyukai Android.
    • Melalui profil kerja, materi terkait pekerjaan dan elemen yang berpotensi mengganggu privasi pribadi dapat dipisahkan sehingga tidak perlu ponsel kedua.
  • Kapan dukungan MOD(Modern Operating Devices) mulai ada di perangkat Pixel

    • Berdasarkan koleksi Pixel pribadi, tampaknya dukungan MOD mulai hadir di antara Pixel 2 (2017) dan Pixel 3a (2019).
    • Kemungkinan juga diterapkan pada Pixel 3, dan berlaku untuk semua perangkat yang mematuhi CTS(Compatibility Test Suite) yang mendukung Android 11.
    • OEM harus lolos pengujian CTS dengan menetapkan nilai sederhana di USB HAL.
  • Driver Windows Precision Touchpad

    • Penyebutan implementasi Windows Precision Touchpad untuk Apple MacBook/Magic Trackpad 2 yang dikembangkan oleh Bingxing Wang.
  • Perkembangan driver ADB

    • Dulu, Windows harus memasang file driver .inf untuk setiap perangkat baru, tetapi sejak Windows 8 dan versi setelahnya, perangkat memberi tahu driver yang diperlukan melalui Microsoft OS Descriptors.
    • Hal ini meningkatkan pengalaman pengguna dan penting bukan hanya bagi pengembang, tetapi juga bagi pengguna yang menginginkan pengalaman Android yang lebih baik.
  • Masalah driver USB di Windows

    • Di Windows, driver USB membingungkan dan kadang bisa berbahaya.
    • Ada kasus beberapa mahasiswa tidak bisa menggunakan klon Arduino di Windows meskipun berfungsi baik di Linux.
    • Ada masalah di mana Windows secara otomatis memasang driver yang menonaktifkan perangkat yang dianggap "palsu", sehingga menghubungkan apa pun selain perangkat penyimpanan ke perangkat Windows dianggap sebagai pilihan terakhir.
  • Kritik terhadap penambahan deskriptor USB khusus Microsoft

    • Ada kritik terhadap keharusan produsen ponsel menambahkan deskriptor USB khusus Microsoft.
    • Tidak masuk akal jika Windows menuntut fitur khusus Microsoft alih-alih menggantinya dengan antarmuka user-space yang terstandarisasi seperti di Linux atau macOS.
  • Pengalaman memecahkan masalah ADB

    • Baru-baru ini, saat mengerjakan proyek cermin ajaib menggunakan Lenovo M7, ada masalah dengan ADB.
    • Semua postingan Stack Overflow terkait sudah dicari dan dicoba, tetapi tidak berhasil, sehingga terasa aneh mendengar bahwa masalah ini sudah terselesaikan.
  • Pengalaman menggunakan protokol HID

    • Menggunakan protokol raw HID pada perangkat yang terhubung melalui USB, dan itu bekerja dengan baik di semua versi Windows.
    • Memang tidak cocok untuk semua kebutuhan, tetapi sangat pas untuk kasus tertentu.