Por que precisamos do Kies (driver ADB) no Windows, mas não no Linux?

11

Por que precisamos de um driver ADB no Windows, mas não no Linux?

Eu trabalho no Android nos últimos meses no Windows. Para executar meu projeto no meu dispositivo Samsung, tive que instalar o Kies primeiro. Da mesma forma, para o meu dispositivo LG, há um driver LG ADB e outro para HTC.

Mas quando mudei para o Ubuntu Linux recentemente, não precisei de outros drivers como o Kies e o ADB. Consegui depurar diretamente sem nenhum driver de terceiros. Por que é que?

Sei que é algo muito comum, mas não encontrei nada que explique por que esse é o caso.

hemantsb
fonte
adicionado update # 2 para a minha resposta
geffchang

Respostas:

5

Chor WaiChun mencionou isso em uma pergunta bloqueada que você postou no StackOverflow :

Já vi em algum lugar que esse comportamento ocorre porque o android e o linux são executados no mesmo kernel, e a mesma situação ocorre no desenvolvimento do android no mac. Ambos os sistemas operacionais são executados no kernel do sistema operacional muito semelhante ao Android, por isso não precisam de drivers. Isso é apenas algo que eu lembrei de ver de outros tópicos, não posso dar 100% de certeza

ATUALIZAÇÃO # 1: O site do Android também menciona isso:

Se você estiver desenvolvendo no Windows e quiser conectar um dispositivo Android para testar seus aplicativos, precisará instalar o driver USB apropriado. ...

Se você estiver desenvolvendo no Mac OS X ou Linux, provavelmente não precisará instalar um driver USB. Para começar a desenvolver com o seu dispositivo, leia Usando dispositivos de hardware.

ATUALIZAÇÃO # 2: Há um comentário sobre StackOverflow sobre libusb. Eu acho que essa pode ser a razão pela qual o Linux não precisa de drivers adicionais.

Na verdade, o adb no Linux acessa dispositivos USB usando o libusb sem nenhum driver específico do kernel. Além disso, o adb possui uma lista de códigos de fornecedor que podem ser usados, mas isso não explica o problema em questão, porque os códigos de fornecedor para os dois telefones são iguais. E, no caso de problemas de permissão devido à falta de regras do udev, os dispositivos adb mostram claramente "sem permissão" na lista, portanto, essa também não é a causa desse problema.

geffchang
fonte
minha pergunta é por que? Você tem alguns links e tudo para que eu possa ter uma idéia total, +1 para a resposta!
hemantsb
0

Não sei por que o Linux normalmente não requer um driver ADB específico.

No entanto, existe um driver USB universal do Windows ADB que funciona com a maioria dos dispositivos Android. Foi desenvolvido por Koushik Dutta (Koush), um famoso desenvolvedor Android que trabalha no ClockworkMod. Deve funcionar muito bem para você. Faça o download aqui: http://koush.com/post/universal-adb-driver

Neil Schaper
fonte
Eu acho que você entendeu mal a minha pergunta, minha pergunta é por que esse comportamento e eu sei sobre o driver ADB universal.
hemantsb
0

Como outros já responderam, no linux existe um driver USB comum, que o adb usa. Parece que no Windows não existe um driver USB comum, portanto o adb usa o driver "fornecido" - diferente para cada dispositivo / fabricante.

miko
fonte
1
No Windows, não há driver universal pré-instalado . Há um disponível no entanto, como Neil apontou . Por outro lado: Não há Kies no Linux, então você precisa de nenhum driver Kies #D
Izzy