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

11

¿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. De manera similar, para mi dispositivo LG hay un controlador LG ADB y otro para HTC.

Pero cuando me 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í.

hemantsb
fuente
agregué la actualización # 2 a mi respuesta
geffchang

Respuestas:

5

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

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

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, entonces necesita instalar el controlador USB apropiado. ...

Si está desarrollando en Mac OS X o Linux, entonces 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 libusb. Creo que esta puede ser la razón por la cual Linux no necesita controladores adicionales.

En realidad, adb bajo Linux accede a dispositivos USB usando libusb sin ningún controlador de kernel específico. Además, adb tiene una lista de ID de proveedores que está permitido usar, pero esto no explica el problema en cuestión, ya que las ID 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 tampoco es la causa de este problema.

geffchang
fuente
mi pregunta es por qué ¿Tienes algunos enlaces y todo para que yo pueda tener una idea total, +1 para la respuesta sin embargo!
hemantsb
0

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

Sin embargo, hay un controlador ADB USB "universal" de Windows 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. Descargue aquí: http://koush.com/post/universal-adb-driver

Neil Schaper
fuente
Creo que entendió mal mi pregunta, mi pregunta es por qué es este comportamiento, y sé sobre el controlador ADB universal.
hemantsb
0

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

miko
fuente
1
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
Izzy