Por qué los desarrolladores de Android ya no necesitan controladores USB en Windows
- En la plataforma inicial de Android, los desarrolladores podían conectar dispositivos por cable USB en Linux o Mac OS X, pero los usuarios de Windows tenían que buscar e instalar controladores.
- Hoy en día, esos controladores ya no son necesarios.
USB Drivers/OS 101
- Cuando se conecta un dispositivo USB a un puerto, el sistema operativo inspecciona la jerarquía de descriptores USB para cargar un controlador para la interfaz.
- La mayoría de los dispositivos USB están incluidos en el sistema operativo para funcionar automáticamente con controladores integrados de 'Device Class'.
- Windows carga un controlador instalado por el usuario si no puede encontrar un controlador integrado de 'Device Class' o si existe uno mejor.
Por qué antes no funcionaba
- Si no se encontraba un controlador, Linux cargaba usbfs y Mac OS cargaba IOKit para permitir que los programas en espacio de usuario accedieran al dispositivo.
- Windows reportaba un error y no cargaba ningún controlador, por lo que no se podía acceder al dispositivo Android.
Por qué funcionaba con el controlador de Android
- Para entender qué sucede al instalar el controlador, se examina
android_winusb.inf, el 'cerebro' del controlador USB de Google.
- WinUSB es un controlador USB similar a usbfs en Linux e IOKit en Mac OS, que permite a los programas en espacio de usuario enumerar interfaces y leer y escribir desde los endpoints.
Por qué los dispositivos Android ya no necesitan controladores de Windows
- El método anterior tenía una falla evidente: si el VID/PID del dispositivo Android no estaba en la lista, no se cargaba
winusb.
- Windows 8 solicita directamente al dispositivo el controlador necesario para la interfaz, en una forma mejor que usar un archivo INF.
- Si el dispositivo es compatible con Microsoft OS Descriptors (MOD), Windows solicita el Extended Compat ID OS Feature Descriptor.
- Esto permite que se cargue
winusb.sys, y que el ejecutable en espacio de usuario adb abra el dispositivo, reclame la interfaz y el desarrollador pueda comenzar a trabajar.
Qué dispositivos son compatibles con Microsoft OS Descriptors
- Según pruebas con dispositivos Pixel de propiedad personal, el soporte para MOD parece haber comenzado en algún momento entre el Pixel 2 (2017) y el Pixel 3a (2019).
Extended Properties OS Feature Descriptor
- Dispositivos más recientes, como el Pixel 8, tienen un Extended Properties OS Feature Descriptor, que puede incluir GUID, páginas de ayuda, URL e incluso íconos.
Opinión de GN⁺
- El punto más importante de este artículo es que los dispositivos Android ahora pueden usarse para desarrollo en Windows sin instalar controladores por separado.
- La introducción de Microsoft OS Descriptors y del Extended Compat ID OS Feature Descriptor ha mejorado significativamente la experiencia del usuario.
- Este cambio ofrece mayor comodidad a los desarrolladores de Android y contribuye a hacer más accesible el entorno de desarrollo.
1 comentarios
Comentarios de Hacker News
Amor por ADB (Android Debug Bridge)
Cuándo empezó el soporte de MOD (Modern Operating Devices) en dispositivos Pixel
Controlador Windows Precision Touchpad
Evolución del controlador ADB
.infpara cada dispositivo nuevo, pero desde Windows 8 y versiones posteriores, el dispositivo indica el controlador necesario mediante Microsoft OS Descriptors.Problemas con los controladores USB en Windows
Críticas a la adición de descriptores USB exclusivos de Microsoft
Experiencia resolviendo problemas de ADB
Experiencia usando el protocolo HID