Android geliştiricilerinin neden artık Windows USB sürücülerine ihtiyaç duymadığı
- Android platformunun ilk dönemlerinde geliştiriciler cihazları Linux veya Mac OS X üzerinde USB kablosuyla bağlayabiliyordu, ancak Windows kullanıcılarının sürücü bulup yüklemesi gerekiyordu.
- Artık sürücüye ihtiyaç yok.
USB sürücüleri/işletim sistemi 101
- Bir USB cihazı porta bağlandığında, işletim sistemi USB descriptor katmanını inceleyerek arayüz için bir sürücü yüklemelidir.
- USB cihazlarının çoğu, otomatik çalışmaları için işletim sistemine dahil olan yerleşik 'Device Class' sürücüleriyle desteklenir.
- Windows, yerleşik 'Device Class' sürücüsünü bulamazsa veya daha iyi bir sürücü varsa, kullanıcının yüklediği sürücüyü yükler.
Neden çalışmıyordu
- Sürücü bulunamazsa Linux
usbfs, Mac OS ise IOKit yükleyerek kullanıcı alanı programlarının cihaza erişmesine izin verir.
- Windows hata bildirir ve sürücü yüklemez; bu yüzden Android cihazına erişilemezdi.
Android sürücüsü neden işe yarıyordu
- Sürücü kurulurken neler olduğunu anlamak için, Google USB sürücüsünün 'beyni' olan
android_winusb.inf inceleniyor.
- WinUSB, Linux'taki
usbfs ve Mac OS'teki IOKite benzer bir USB sürücüsüdür; kullanıcı alanı programlarının arayüzleri numaralandırmasına ve endpoint'lerden okuma-yazma yapmasına olanak tanır.
Android cihazlarının neden artık Windows sürücüsüne ihtiyaç duymadığı
- Eski yöntemin bariz bir kusuru vardı: Android cihazının VID/PID'si listede yoksa
winusb yüklenmiyordu.
- Windows 8, INF dosyalarından daha iyi bir yöntemle ihtiyaç duyulan sürücüyü doğrudan cihazdan arayüz bazında ister.
- Cihaz Microsoft OS Descriptor (MOD) ile uyumluysa, Windows Extended Compat ID OS Feature Descriptor'ü ister.
- Bunun sayesinde
winusb.sys yüklenir ve kullanıcı alanı çalıştırılabilir dosyası olan adb, cihazı açıp arayüzü talep ederek geliştiricinin çalışmaya başlamasını sağlar.
Hangi cihazlar Microsoft OS Descriptor'ü destekliyor
- Kişisel olarak sahip olunan Pixel cihazlara bakıldığında, MOD desteği Pixel 2 (2017) ile Pixel 3a (2019) arasında başlamış görünüyor.
Extended Properties OS Feature Descriptor
- Pixel 8 gibi daha yeni cihazlarda Extended Properties OS Feature Descriptor bulunuyor; bu, GUID, yardım sayfası, URL ve hatta simge bile içerebiliyor.
GN⁺ görüşü
- Bu yazının en önemli noktası, Android cihazların artık Windows'ta ayrı bir sürücü kurulumu olmadan da geliştirme için kullanılabilmesi.
- Microsoft OS Descriptor ve Extended Compat ID OS Feature Descriptor'ün kullanıma girmesiyle kullanıcı deneyimi büyük ölçüde iyileşti.
- Bu değişim, Android geliştiricilerine kolaylık sağlıyor ve geliştirme ortamına erişilebilirliği artırmaya katkıda bulunuyor.
1 yorum
Hacker News görüşleri
ADB (Android Debug Bridge) sevgisi
Pixel cihazlarda MOD (Modern Operating Devices) desteğinin başlaması
Windows Precision Touchpad sürücüsü
ADB sürücülerinin gelişimi
Windows’ta USB sürücüsü sorunu
Microsoft’a özel USB tanımlayıcıları eklenmesine yönelik eleştiri
ADB sorun giderme deneyimi
HID protokolü kullanma deneyimi