¿Por qué necesitamos Kies (controlador ADB) en Windows pero no en Linux?

¿Por qué necesitamos un controlador ADB en Windows pero no en Linux?

He estado trabajando en Android durante los últimos meses en Windows. Para ejecutar mi proyecto en mi dispositivo Samsung, primero tuve que instalar Kies. Del mismo modo, para mi dispositivo LG hay un controlador LG ADB y otro para HTC.

Pero cuando cambié a Ubuntu Linux recientemente, no necesité ningún otro controlador como Kies y ADB. Pude depurar directamente sin ningún controlador de terceros. ¿Porqué es eso?

Sé que es algo muy común, pero no he encontrado nada que explique por qué es así.

actualización agregada # 2 a mi respuesta

Respuestas (3)

Chor WaiChun mencionó esto en una pregunta bloqueada que publicaste en StackOverflow :

He visto en alguna parte que este comportamiento se debe a que tanto Android como Linux se ejecutan en el mismo kernel, y la misma situación ocurre con el desarrollo de Android en Mac. Ambos sistemas operativos se ejecutan en un kernel de sistema operativo muy similar con Android, es por eso que no necesitan ningún controlador. Estos son solo algo que recordé haber visto en otros hilos, no puedo dar 100% seguro

ACTUALIZACIÓN #1: El sitio de Android también menciona esto:

Si está desarrollando en Windows y desea conectar un dispositivo con Android para probar sus aplicaciones, debe instalar el controlador USB adecuado. ...

Si está desarrollando en Mac OS X o Linux, probablemente no necesite instalar un controlador USB. Para comenzar a desarrollar con su dispositivo, lea Uso de dispositivos de hardware.

ACTUALIZACIÓN #2: Hay un comentario sobre StackOverflow con respecto a libusb. Creo que esta puede ser la razón por la que Linux no necesita controladores adicionales.

En realidad, adb en Linux accede a dispositivos USB usando libusb sin ningún controlador de kernel específico. Además, adb tiene una lista de identificaciones de proveedores que puede usar, pero esto no explica el problema en cuestión, porque las identificaciones de proveedores para ambos teléfonos son las mismas. Y en caso de problemas de permisos debido a la falta de reglas de udev, los dispositivos adb muestran claramente "sin permisos" en la lista, por lo que esta tampoco es la causa de este problema.

mi pregunta es porque? ¿Tiene algunos enlaces y todo para que pueda tener una idea total, +1 para la respuesta!

No estoy seguro de por qué Linux normalmente no requiere un controlador ADB específico.

Sin embargo, existe un controlador ADB USB de Windows "universal" que funciona con la mayoría de los dispositivos Android. Fue desarrollado por Koushik Dutta (Koush), un famoso desarrollador de Android que trabaja en ClockworkMod. Debería funcionar bastante bien para ti. Descarga aquí: http://koush.com/post/universal-adb-driver

Creo que no entendiste mi pregunta, mi pregunta es por qué es este comportamiento, y sé sobre el controlador ADB universal.

Como otros ya respondieron, en Linux hay un controlador USB común, que usa adb. Parece que en Windows no hay un controlador USB común, por lo que adb usa el controlador "provisto", diferente para cada dispositivo/fabricante.

En Windows no hay un controlador universal preinstalado . Sin embargo, hay uno disponible, como señaló Neil . Por otro lado: no hay Kies en Linux, por lo que no necesita el controlador Kies #D