Vì sao các nhà phát triển Android không còn cần driver USB trên Windows nữa
- Trên nền tảng Android thời kỳ đầu, các nhà phát triển có thể kết nối thiết bị qua cáp USB trên Linux hoặc Mac OS X, nhưng người dùng Windows phải tự tìm và cài đặt driver.
- Hiện nay, driver đó không còn cần thiết nữa.
USB driver/OS 101
- Khi một thiết bị USB được cắm vào cổng, hệ điều hành sẽ kiểm tra tầng USB descriptor để xác định và nạp driver cho interface tương ứng.
- Phần lớn thiết bị USB được hệ điều hành hỗ trợ sẵn để tự động hoạt động thông qua các driver
Device Class tích hợp sẵn.
- Windows sẽ nạp driver do người dùng cài đặt nếu không tìm thấy driver
Device Class tích hợp phù hợp hoặc nếu có driver tốt hơn.
Vì sao trước đây không hoạt động
- Nếu không tìm thấy driver, Linux sẽ nạp usbfs và Mac OS sẽ nạp IOKit để cho phép các chương trình không gian người dùng truy cập thiết bị.
- Windows thì báo lỗi và không nạp driver, nên không thể truy cập thiết bị Android.
Vì sao driver Android từng hoạt động
- Để hiểu điều gì xảy ra khi driver được cài đặt, bài viết xem xét
android_winusb.inf, “bộ não” của Google USB Driver.
- WinUSB là một USB driver tương tự usbfs trên Linux và IOKit trên Mac OS, cho phép các chương trình không gian người dùng liệt kê interface và đọc/ghi từ các endpoint.
Vì sao thiết bị Android không còn cần driver Windows nữa
- Cách làm trước đây có một nhược điểm rõ ràng: nếu VID/PID của thiết bị Android không có trong danh sách,
winusb sẽ không được nạp.
- Windows 8 đã đưa ra một cách tốt hơn INF file bằng việc trực tiếp hỏi thiết bị về driver cần thiết cho interface.
- Nếu thiết bị tương thích với Microsoft OS descriptor (MOD), Windows sẽ yêu cầu extended compatible ID OS feature descriptor.
- Nhờ đó
winusb.sys được nạp, và tệp thực thi không gian người dùng adb có thể mở thiết bị, yêu cầu interface và để nhà phát triển bắt đầu làm việc.
Những thiết bị nào hỗ trợ Microsoft OS descriptor
- Dựa trên các thiết bị Pixel do tác giả sở hữu, có vẻ như hỗ trợ MOD bắt đầu xuất hiện trong khoảng từ Pixel 2 (2017) đến Pixel 3a (2019).
Extended properties OS feature descriptor
- Các thiết bị mới hơn như Pixel 8 có extended properties OS feature descriptor, có thể bao gồm GUID, trang trợ giúp, URL, thậm chí cả biểu tượng.
Ý kiến của GN⁺
- Điểm quan trọng nhất của bài viết này là thiết bị Android giờ đây có thể được dùng cho phát triển trên Windows mà không cần cài driver riêng.
- Việc đưa vào Microsoft OS descriptor và extended compatible ID OS feature descriptor đã cải thiện đáng kể trải nghiệm người dùng.
- Thay đổi này mang lại sự tiện lợi cho các nhà phát triển Android và góp phần nâng cao khả năng tiếp cận của môi trường phát triển.
1 bình luận
Ý kiến Hacker News
Tình yêu dành cho ADB (Android Debug Bridge)
Thời điểm thiết bị Pixel bắt đầu hỗ trợ MOD (Modern Operating Devices)
Trình điều khiển Windows Precision Touchpad
Sự phát triển của trình điều khiển ADB
Vấn đề trình điều khiển USB trên Windows
Chỉ trích việc thêm bộ mô tả USB dành riêng cho Microsoft
Trải nghiệm xử lý sự cố ADB
Trải nghiệm sử dụng giao thức HID