Como posso me conectar ao Android com ADB sobre TCP? [fechadas]

879

Estou tentando depurar um aplicativo em um Motorola Droid , mas estou tendo algumas dificuldades para conectar ao dispositivo via USB. Meu servidor de desenvolvimento é uma VM do Windows 7 de 64 bits em execução no Hyper-V e, portanto, não consigo conectar-me diretamente via USB no convidado ou no host.

Instalei algumas soluções USB-over-TCP diferentes, mas a conexão parece ter problemas, pois o monitor ADB reporta "o devicemonitor falhou ao iniciar o monitoramento" repetidamente. Existe uma maneira de conectar-se diretamente do cliente na máquina de desenvolvimento ao daemon no dispositivo usando a rede em vez da conexão USB ou possivelmente outras opções viáveis?

JDM
fonte
75
Quando conectado via USB: adb tcpip 5555. Desconecte o USB, veja o IP do telefone Settings > About Phone > Status. Agora adb connect 192.168.x.xe é isso. Sem ferramentas, sem software. Apenas funciona.
18715 Andreszs
1
O que Andrew disse - estas são as instruções oficiais do site para desenvolvedores Android do Google , sem necessidade de raiz. Acabei de trabalhar no meu HTC One m8 não enraizado (requer habilitar opções de desenvolvedor, é claro).
Jeff Ward
Se o serviço adb for executado na porta 5037, por que ele localiza dispositivos no intervalo de 5555 a 5585?
Shivam Aggarwal
@ Andrew Posso usar um aplicativo como este para abrir e fechar a porta sem um computador em um Nexus 6 sem acesso root? Estou preocupado com os problemas de segurança que podem surgir ao deixar a porta 5555 aberta quando estou em uma rede pública e não usar o telefone para desenvolvimento.
DaveTheMinion

Respostas:

1205

Processo manual

No seu dispositivo, se estiver enraizado

De acordo com uma publicação no xda-developers , você pode ativar o ADB via Wi-Fi no dispositivo com os comandos:

su
setprop service.adb.tcp.port 5555
stop adbd
start adbd

E você pode desativá-lo e retornar o ADB para ouvir no USB com

setprop service.adb.tcp.port -1
stop adbd
start adbd

Em um computador, se você já possui acesso USB (não é necessário root)

É ainda mais fácil mudar para o Wi-Fi, se você já possui USB. Em uma linha de comando no computador em que o dispositivo está conectado via USB, emita os comandos

adb tcpip 5555
adb connect 192.168.0.101:5555

Substitua 192.168.0.101pelo endereço IP realmente atribuído ao seu dispositivo. Quando terminar, você pode desconectar-se da sessão adb tcp executando:

adb disconnect 192.168.0.101:5555

Você pode encontrar o endereço IP de um tablet de duas maneiras:

Descoberta manual de IP:

Acesse as configurações de WiFi do Android, clique no botão de menu na barra de ação (as reticências verticais), clique em Avançado e veja o endereço IP na parte inferior da tela.

Use o ADB para descobrir o IP:

Execute o seguinte comando via adb:

adb shell ip -f inet addr show wlan0

Para informar ao daemon ADB, volte a ouvir através de USB

adb usb

Aplicativos para automatizar o processo

Existem também vários aplicativos no Google Play que automatizam esse processo. Uma pesquisa rápida sugere adbWireless , WiFi ADB e ADB WiFi . Tudo isso requer acesso root, mas o adbWireless requer menos permissões.

Brian
fonte
3
Você precisa de acesso root para fazer isso? Eu pareço ser capaz de executar os comandos usando o terminal, mas ele realmente não parecem funcionar ...
JJ
6
@ JJ - Infelizmente sim. Raiz necessária.
Kingsolmn
178
Para a segunda solução ( adb tcipip 5555e adb connect ...não há raiz necessária.
Ridcully 22/02
11
adb tcpip <port>ainda requer qualquer ro.kernel.qemupropriedade a ser definida (que funciona no modo de emulador), ro.securepara ser 0 (ou seja, um dispositivo enraizada), ou ro.debuggableeservice.adb.root deve ser definido como 1. adbdsimplesmente não vai abrir uma conexão TCP / IP, se nenhuma das opções acima for atendida. Consulte netmite.com/android/mydroid/system/core/adb/adb.c adb_main parts sobre a securevariável adbdno meu 2.3.7 não enraizado, o Android não entra no modo TCP / IP.
soulseekah
2
Ótimo! Segunda solução realmente não requer raiz!
Grzegorz D.
132

Isso é realmente simples se o seu telefone estiver enraizado.

Faça o download de um emulador de terminal no Google Play (existem muitos gratuitos). Verifique se o seu dispositivo Android está conectado ao seu Wi-Fi e obtenha o endereço IP do Wi-Fi . Abra o programa do terminal e digite:

su
setprop service.adb.tcp.port 5555
stop adbd
start adbd

Agora vá ao seu computador (supondo que você esteja usando o Windows) e crie um atalho na área de trabalho para "cmd.exe" (sem as aspas).

Clique com o botão direito do mouse no atalho cmd e escolha "Run as Administrator"

Mude para a sua android-sdk-windows\toolspasta

Tipo:

adb connect ***wifi.ip.address***:5555

(example: adb connect 192.168.0.105:5555)

adb agora deve dizer que você está conectado.

Nota: se você for rápido demais para fornecer o comando connect, ele poderá falhar. Portanto, tente pelo menos duas vezes e cinco segundos antes de dizer que isso não funciona.

normando
fonte
6
Essa resposta foi melhor para mim, porque explicava qual parte deveria ser executada no dispositivo e qual no computador.
Eduardo
5
ANTES "adb tcpip 5555" DO "adb kill-server". APÓS "adb connect 192.168.0.101:5555" DO "adb devices" OU "adb shell" (a conexão não inicia o shell).
Samis
Eu tentei adb tcpip 5555e depois a outra pessoa executada adb connect myIP:5555em seu PC. Ele poderia instalar um aplicativo no meu telefone, mas não pôde depurá-lo remotamente. É possível depurar remotamente? No meu telefone, houve um diálogo waiting for debuggerpara sempre.
Angelina
Isso torna as configurações persistentes durante as reinicializações?
Hritik 20/07/19
Isso funciona com endereço IPv6 via Internet móvel?
CaptainFreedom
94
  1. Conecte o dispositivo via USB e verifique se a depuração está funcionando e execute:

    adb tcpip 5555
    adb connect <DEVICE_IP_ADDRESS>:5555
  2. Desconecte o USB e prossiga com a depuração sem fio.

  3. Quando terminar e quiser voltar à depuração USB, execute:

    adb -s <DEVICE_IP_ADDRESS>:5555

Para encontrar o endereço IP do seu dispositivo, vá para o Settings > Wi-Fi > Advanced > IP Addressseu dispositivo ou executeadb shell netcfg .

Nenhuma raiz é necessária. Somente um dispositivo pode ser depurado por vez.

Veja esta postagem do XDA .

O adbcomando está localizado na platform-toolspasta do Android SDK.

Ribin Haridas
fonte
2
Na verdade, você pode conectar muitos dispositivos ao mesmo tempo, se seguir a ordem certa. Basta definir o tcpip como 5555 individualmente para cada telefone, em seguida, emitir o comando connect para cada telefone e pronto, todos eles estão conectados ao adb.
andreszs
A depuração é um pouco mais lenta se meu telefone estiver conectado dessa maneira. Além disso, às vezes adormece e isso causa uma desconexão imediata.
Aron Lorincz
Em alguns dispositivos, o atraso entre o comando adb tcpip e o comando adb connect deve ser muito baixo, caso contrário, ele não funciona. Além disso, para mim funcionou fazendoadb tcpip 5555 && adb connect <DEVICE_IP_ADDRESS>:5555
vhamon
61

Suponha que você salvou o caminho adb no caminho do ambiente do Windows

  1. Ativar o modo de depuração no Android

  2. Conecte-se ao PC via USB

  3. Tipo de prompt de comando aberto: adb tcpip 5555

  4. Desconecte seu tablet ou smartphone do PC

  5. Tipo de prompt de comando aberto: adb connect IPADDRESS(IPADDRESS é o endereço DHCP / IP do seu tablet ou smartphone, que você pode encontrar por Wi-Fi -> rede conectada atual)

Agora, no prompt de comando, você verá o resultado como: conectado a xxx.xxx.xxx.xxx:5555

MapleLover
fonte
Obrigado pela sequência de etapas e mencionando exatamente quando desconectar o PC.
Manju
53

De adb --help:

connect <host>:<port>         - Connect to a device via TCP/IP

A propósito, essa é uma opção de linha de comando.

Você deve tentar conectar o telefone ao seu Wi-Fi e obter o endereço IP do seu roteador. Não vai funcionar na rede celular.

A porta é 5554.

Nathan
fonte
1
Eu tentei isso com 5555-5558 e agora 5554 e ele não funciona por algum motivo. Basicamente, a partir de uma linha de comando: adb kill-server adb connect 10.10.10.100:5554 com o resultado sendo * daemon não executando. iniciando agora * * o daemon foi iniciado com êxito * não foi possível conectar-se ao 10.10.10.100:5554 Posso executar o ping do ip do dispositivo na estação de trabalho dev. Quando a saída indica "daemon iniciado com sucesso", não deveria estar se referindo ao daemon no dispositivo? Está tentando usar o emulador possivelmente? Como garantir / validar que o daemon está sendo executado no dispositivo? obrigado
JDM
2
você deve primeiro, adb tcpip portpois o padrão é a depuração via usb. Após o último que você pode se conectar connect host:porte ele deve funcionar
Aiden Strydom
"porta adb tcpip" literalmente? que retorna a string "error: device not found" - há um erro de digitação? Ou devo substituir algo aqui?
precisa saber é o seguinte
3
AHHH!! Entendi, o número da porta padrão do CyanogenMod é 5555! AGRADÁVEL. : D
BrainSlugs83
@ Michael, pode funcionar em algumas redes celulares, mas suas configurações de rede são basicamente caixas pretas - você não sabe quando / se está protegido por um firewall, se as portas estão bloqueadas, se a tradução NAT está em andamento etc.
BrainSlugs83
45

Para usuários do Windows:

Etapa 1:
você precisa habilitar as opções de desenvolvedor no seu telefone Android.
Você pode ativar as opções do desenvolvedor dessa maneira.
• Abra Configurações> Sobre> Informações do software> Mais.
• Em seguida, toque em "Build number" sete vezes para ativar as opções do desenvolvedor.
• Volte ao menu Configurações e agora você poderá ver "Opções do desenvolvedor" lá.
• Toque nele e ative a Depuração USB no menu da próxima tela.

Passo 2:

Abra cmd e digite adb.
se você achar que o comando adb não é válido, será necessário adicionar um caminho à variável de ambiente.

• Primeiro vá para a pasta instalada no SDK
Siga este caminho e este é apenas um exemplo. D: \ softwares \ Desenvolvimento \ Andoird \ SDK \ sdk \ platform-tools \; D: \ softwares \ Desenvolvimento \ Andoird \ SDK \ sdk \ tools;
• Agora pesquise na configuração avançada do sistema Windows

insira a descrição da imagem aqui

Abra a variável de ambiente.

insira a descrição da imagem aqui

abra o caminho e cole o caminho a seguir, este é um exemplo.
Seu caminho SDK é diferente do meu, use o seu. D: \ softwares \ Desenvolvimento \ Andoird \ SDK \ sdk \ platform-tools \;
D: \ softwares \ Desenvolvimento \ Andoird \ SDK \ sdk \ tools;

insira a descrição da imagem aqui

Etapa 3:

Abra cmd e digite adb. se você ainda vir que o comando adb não é válido, seu caminho não foi definido corretamente, siga as etapas acima.

insira a descrição da imagem aqui

Agora você pode conectar seu telefone Android ao PC.

Abra cmd e digite adb devices e você poderá vê-lo. Encontre o seu endereço IP do telefone.

insira a descrição da imagem aqui

Tipo: - adb tcpip 5555

insira a descrição da imagem aqui

Obtenha o endereço IP do seu telefone

adb shell netcfg

Agora,

adb connect "IP address of your phone"

Agora execute o seu projeto android e, se não encontrar o seu dispositivo, digite novamente o endereço IP de conexão do seu telefone

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Para usuários do Linux e macOS :

Etapa 1: abra o terminal e instale o adb usando

sudo apt-get install android-ferramentas-adb android-ferramentas-fastboot

Conecte seu telefone via cabo USB ao PC. Digite o seguinte comando no terminal

adb tcpip 5555

Usando adb, conecte seu endereço IP do telefone Android.

Retire o seu telefone.

Raghav Thakkar
fonte
36

De um computador em um dispositivo não raiz

(Observe que isso também pode ser feito usando um dispositivo raiz, mas você pode usar um shell em um dispositivo raiz que não exija uma conexão USB)

Primeiro, abra o prompt de comando (CMD). Se você usa o Android Studio ou IntelliJ, há um console incluído nele que pode ser usado.

Se você adicionou adb ao caminho, pode pular a parte do CD.


Se possível, abra o local do SDK, clique com o botão direito do mouse e pressione "Iniciar prompt de comando aqui". Nem todos têm essa opção, então você também deve executar os comandos (/ estes):

Windows: altere a unidade (se aplicável)

D: 

E acesse as ferramentas sdk e plataforma. Substitua esse caminho pelo seu local do SDK:

cd /sdk/path/here/platform-tools

Agora você tem acesso à ponte de depuração do Android.


Com o dispositivo conectado ao computador, faça:

adb tcpip <port> 
adb connect <ip>:<port>

Onde <port>está a porta à qual você deseja se conectar (o padrão é 5555) e<ip> é o IP do dispositivo ao qual você deseja se conectar.

Observe: 5555é a porta padrão e apenas o endereço IP é conectado. Se você usa uma porta personalizada, pode pelo menos melhorar um pouco a segurança. A depuração USB por Wi-Fi pode ser abusada, mas apenas se o dispositivo estiver conectado ao computador que deseja abusar do dispositivo. Usar uma porta não padrão pelo menos dificulta a conexão.

Se você usar uma porta personalizada, adicione-a após o IP. A gravação de nenhuma porta se conecta 5555e, se você não a usou, a conexão falhará.

Você pode encontrar o endereço IP de um dispositivo de duas maneiras:

  • Dependendo do seu dispositivo, os nomes exatos podem variar. Abra as configurações e vá para Sobre o dispositivo -> Status -> Endereço IP

  • Use o ADB para obter o IP

No console, faça:

adb shell ip -f inet addr show wlan0

E quando terminar a conexão, você pode desconectar o dispositivo do seu computador fazendo o seguinte:

adb disconnect <ip>:<port>

Ou nenhum IP para desconectar todos os dispositivos. Se você usou uma porta personalizada, deve especificar de qual porta desconectar . O padrão é 5555 aqui também.

Para desativar a porta (se é algo que você deseja fazer), execute este comando com o dispositivo conectado:

adb usb

Ou você pode reiniciar o dispositivo para remover a conexão tcpip

De um computador em um dispositivo raiz

Primeiramente, você precisa acessar o shell. Você pode conectar o dispositivo usando um cabo USB e usaradb shell ou baixar um aplicativo do Google Play, FDroid ou outra fonte.

Então você faz:

su
setprop service.adb.tcp.port <port>
stop adbd
start adbd

E para conectar o dispositivo, faça como na versão sem raiz fazendo adb connect <ip>:<port>.

E se você deseja desativar a porta e voltar à escuta USB:

setprop service.adb.tcp.port -1
stop adbd
start adbd

Você também pode usar um plug-in do Android Studio para fazer isso por você (não se lembra do nome agora) e, para usuários enraizados, também há a opção de baixar um aplicativo Android para configurar a conexão telefônica (a conexão adb provavelmente ainda é necessária )

Alguns telefones têm uma configuração nas opções do desenvolvedor (isso se aplica a alguns telefones não-rooteados, embora provavelmente alguns também com root), que permite alternar o ADB por Wi-Fi do próprio dispositivo sem a raiz ou uma conexão de computador para iniciá-lo. Embora existam poucos telefones que possuem esse

Zoe
fonte
adb shell ip -f inet addr show wlan0 O endereço IP e o suporte da porta devem ser substituídos em algum lugar?
Michael
não nessa linha. Essa é a maneira de obter o IP. Nada lá deve ser substituído nessa linha
Zoe
33

Eu precisava que o USB eo TCPIP funcionassem para o ADB (não pergunte), então fiz o seguinte (usando as instruções que outros postaram de xda-developers)

Usando adb shell:

su
#Set the port number for adbd
setprop service.adb.tcp.port 5555

#Run the adbd daemon *again* instead of doing stop/start, so there
#are two instances of adbd running.
adbd &

#Set the port back to USB, so the next time ADB is started it's
#on USB again.
setprop service.adb.tcp.port -1

exit
transistor1
fonte
Não funciona: adbd não encontrado. O adbd é normalmente iniciado via start adbd. Mas talvez haja um script / executável em alguma pasta?
KrisWebDev
1
No meu gnex, é /sbin/adbd. Isso pode variar de acordo com o telefone. Claro, você deve estar enraizado ... Se não estiver enraizado, não poderá acessar / sbin.
transistor1
32

Para conectar seu tablet usando a porta TCP. Verifique se o seu sistema e dispositivo estão conectados à mesma rede.

  1. Console aberto cmd.exe
  2. Tipo adb tcpip 5555
  3. Vá para Sistema -> Opção de desenvolvimento -> Depuração USB -> Desmarque a opção para conexão TCPIP
  4. Digite adb connect 192.168.1.2este é o endereço IP do seu dispositivo
  5. Conectado a 192.168.1.2

Conectado usando o encaminhamento de porta Tente fazer o encaminhamento de porta,

adb forward tcp: <PC port>tcp:<device port>

gostar:

adb forward tcp: 5555 tcp: 5555.

C: \ Users \ abc> adb forward tcp: 7612 tcp: 7612

C: \ Users \ abc> adb tcpip 7612 reiniciando na porta do modo TCP: 7612

C: \ Users \ abc> adb connect 10.0.0.1:7612

conectado a 10.0.0.1:7612

Se você receber um erro de mensagem : dispositivo não encontrado, conecte um dispositivo USB ao sistema e siga o mesmo procedimento.
para um dispositivo raiz

setprop service.adb.tcp.port 5555
stop adbd
start adbd
rinkesh
fonte
2
No console, escreva suprimeiro para obter um console raiz.
Grim
30

Não sei como conectar o dispositivo sem nenhuma conexão USB, mas se você conseguir conectá-lo talvez em outro computador, poderá mudar o adbd para o modo TCP emitindo

adb tcpip <port>

a partir de um terminal e conecte-se ao seu dispositivo via Wi-Fi a partir de qualquer PC na rede:

adb connect <ip>:<port>

Talvez também seja possível alternar para o modo TCP a partir de um terminal no dispositivo.

Christoph
fonte
De todas as respostas complicadas que receberam elogios maciços, essa criança de 8 anos é a mais simples e funciona Não é necessário fazer root. Basta digitar 'adb connect <ip>: 5555' e ele estará disponível para implantação.
RogerW
29

Primeiro você deve conectar seu dispositivo via USB

Em seguida, conecte seu dispositivo a WIFI e obtenha o endereço IP. Enquanto ainda estiver conectado via usb, digite isso na linha de comando ou através do Android Studio Terminal

adb tcpip 5555
adb connect <device IP>:5555

Você verá estas mensagens:

restarting in TCP mode port: 5555
connected to 172.11.0.16:5555

Agora remova o cabo USB e você ainda verá o seu logcat normalmente

Feito. Aproveitar

Joolah
fonte
Isso funcionou. Contudo. Depois de executar essas etapas, não posso mais voltar ao emulador. Sugestões?
Tim Scott
Você precisa reiniciar seu adb com: <adb kill-server> e, em seguida, <adb start-server>
Joolah
21

Se você deseja conectar facilmente seu dispositivo para executar, depurar ou implantar seus aplicativos Android por WiFi, use um plug-in IntelliJ de código aberto que eu desenvolvi. Aqui está o código e aqui o plugin pronto para ser usado.

O uso é bastante simples. Aqui você tem um gif:

insira a descrição da imagem aqui

Pedro Vicente Gómez Sánchez
fonte
Este erro ocorre: "'adb'comando não encontrado. Revise a instalação do SDK do Android.
rostamiani
1
Você deve declarar uma variável de ambiente com o nome ANDROID_HOME. Mas tenho um PR pendente de revisão para evitar isso. Com a versão 1.2 Vou publicar na próxima semana o plugin irá funcionar apenas com IntelliJ instalado :)
Pedro Vicente Gómez Sánchez
Estou usando o mac, não vê um ícone no AS? Preciso fazer algo manual primeiro?
powder366
1
Já publiquei uma nova versão em que a variável de ambiente ANDROID_HOME não é mais necessária. @ powder366, você precisa instalar o plug-in a partir da loja de plug-ins do IntelliJ para instalá-lo manualmente. Todas as instruções necessárias para instalar e usar o plugin estão no readme projeto, dê uma olhada github.com/pedrovgs/AndroidWiFiADB
Pedro Vicente Gómez Sánchez
@ PedroVicenteGómezSánchez Obrigado. Peguei o plugin errado, existe um outro plugin com nome parecido ...
powder366
11

Como Brian disse:

De acordo com uma publicação no xda-developers, você pode ativar o ADB via WiFi a partir do dispositivo com os comandos

setprop service.adb.tcp.port 5555

pare adbd

start adbd

E você pode desativá-lo e retornar o ADB para ouvir no USB com

setprop service.adb.tcp.port -1

pare adbd

start adbd

Se você já possui acesso USB, é ainda mais fácil mudar para o Wi-Fi. Em uma linha de comando no computador em que o dispositivo está conectado via USB, emita os comandos

adb tcpip 5555

adb connect 192.168.0.101:5555

Para informar ao daemon ADB, volte a ouvir através de USB

adb usb

Existem também vários aplicativos no Android Market que automatizam esse processo.

Você só precisa acessar o shell do Android e digitar esses comandos ...

Uma outra solução (mais fácil) está no mercado: o adbWireless, ele definirá automaticamente o seu telefone.

Raiz é necessária! para ambos...

claro
fonte
2
... mas apenas se o telefone estiver enraizado.
Android.weasel
Asus Transformer 301 - Working nenhuma raiz necessário
Aiden Strydom
9
adb tcpip 5555

Estranho, mas isso só funciona para mim se eu tiver o cabo USB conectado, então posso desconectá-lo e utilizá-lo com todo o resto adb.

e o mesmo ao retornar para usb,

adb usb

só funcionará se o usb estiver conectado.

Não importa se eu emitir o

setprop service.adb.tcp.port 5555

ou

setprop service.adb.tcp.port -1

então pare e inicie o adbd, ainda preciso do cabo USB ou ele não funciona.

Portanto, se meu ADB over usb não estivesse funcionando, aposto que também não seria possível ativar o ADB over WiFi.

Chris
fonte
8

Para alternar entre os modos TCP e USB com apenas um comando, você pode adicionar isso a /init.rc:

on property:service.adb.tcp.port=*
    restart adbd

on property:service.adb.tcp.enable=1
    setprop service.adb.tcp.port 5555

on property:service.adb.tcp.enable=0
    setprop service.adb.tcp.port -1

E agora você pode usar a propriedade service.adb.tcp.enablepara ativar ou desativar a escuta na porta 5555. Execute netstatpara verificar se está escutando. Como você pode ver, também será acionado se você desejar alterar service.adb.tcp.portmanualmente.

errordeveloper
fonte
8

Função util Bash:

function adb-connect-to-wifi {
    ip="$(adb shell ip route | awk '{print $9}')"
    port=5555
    adb tcpip ${port}
    adb connect ${ip}:${port}
}
onze
fonte
7

PASSO 1.

Certifique-se tanto o seu computador host adb e dispositivo Android estão na mesma rede Wi-Fi.

PASSO 2.

Conecte o dispositivo Android ao computador usando o cabo USB. Assim que você fizer isso, seu computador host detectará seu dispositivo e o adb começará a ser executado no modo USB no computador. Você pode verificar os dispositivos conectados com o adb devicesque assegura que o adb esteja sendo executado no modo USB executando adb usb.

$ adb usb
restarting in USB mode
$ adb devices
List of devices attached
ZX1D63HX9R  device


ETAPA 3.

Reinicie o adb no modo tcpip com este comando:

$ adb tcpip 5556
restarting in TCP mode port: 5556


PASSO 4.

Descubra o endereço IP do dispositivo Android. Existem várias maneiras de fazer isso:

  • MANEIRA: 1 Vá para Configurações -> Sobre o telefone / tablet -> Status -> Endereço IP.
  • MANEIRA: 2 Vá para a lista de redes Wi-fi disponíveis. Aquele ao qual você está conectado, toque nele e conheça seu IP.
  • MANEIRA: 3 Tente $ adb shell netcfg.

Agora que você sabe o endereço IP do seu dispositivo, conecte seu host adb a ele.

$ adb connect 192.168.0.102:5556
already connected to 192.168.0.102:5556
$ adb devices
List of devices attached
ZX1D63HX9R  device
192.168.0.102:5556  device


PASSO 5.

Remova o cabo USB e você deverá estar conectado ao seu dispositivo. Se você não o adb devicesvir, basta reconectar usando o comando da etapa anterior:

$ adb connect 192.168.0.102:5556
connected to 192.168.0.102:5556
$ adb devices
List of devices attached
192.168.0.102:5556  device

Ou você está pronto para ir agora ou precisará matar seu servidor adb executando adb kill-servere executando todas as etapas novamente mais uma vez.

Espero que ajude!


Referência:

Eddy
fonte
Além disso, você pode obter o IP do seu dispositivo com este script no Unix: shell adb ip -f inet addr show wlan0 | grep inet | eco -n $ (grep -Eo '[0-9 \. \ /]') | eco -n $ (grep -Eo '^ [^ \ /] *') | 's / // g' do
sed
@ Eddy Há uma dúvida de que o sistema e o celular / tablet devem estar conectados via WiFi ou o sistema conectado através da LAN e o tablet conectado usando o roteador WIFi da mesma rede. Por favor,
esclareça
@ i-Droid Não sei por que os dois precisam se conectar na mesma rede. talvez o ADB use um protocolo de roteamento de rede especial. Eu não tenho idéia e nenhuma pesquisa profunda sobre isso. Se você tiver interesse, seja bem-vindo ao esclarecer e compartilhar comigo, obrigado!
Eddy
6

Estes são os passos que segui e funcionou para mim,

  1. adb shell ifconfig (obtenha o endereço IP do dispositivo a partir daqui)

  2. adb tcpip 7777 (conecte adb a alguma porta)

  3. adb connect "ipaddress": 7777

Tom Taylor
fonte
5

Você também pode usar o encaminhamento de porta local SSH. Mas ainda envolve um cabo USB. Conecte seu telefone usando USB a um computador (host) com um sshd em execução. Em um PC remoto (convidado), inicie um cliente SSH capaz de encaminhamento de porta / encapsulamento. Exemplo:

plink -L 5037:localhost:5037 <host_IP_address>

Eu uso essa construção para conectar meu dispositivo a uma máquina virtual. Eltima USB para Ethernet não era estável o suficiente (tempos limite durante a depuração).

O tunelamento SSH funciona de graça e é mais confiável.

Ron
fonte
4

Acho as outras respostas confusas. Muito mais simples de usar adbWireless:

http://ppareit.github.com/AdbConnect/

Basta instalar um aplicativo no seu telefone para alternar a depuração via wifi, instalar um plug-in do eclipse e pronto.


fonte
A que plug-in do eclipse você está se referindo? Edit: Deixa pra lá. Encontre-o seguindo o link na sua resposta.
ArtOfWarfare 5/10/12
Porém, isso é apenas raiz
Zoe
3

Eu montei um arquivo em lotes para ativar e conectar automaticamente o ADB via TCP, a um dispositivo conectado via USB. Com ele, você não precisa inserir o IP manualmente.

@echo off
setlocal

REM Use a default env variable to find adb if possible
if NOT "%AndroidSDK%" == "" set PATH=%PATH%;%AndroidSDK%\platform-tools

REM If off is first parameter then we turn off the tcp connection.
if "%1%" == "off" goto off

REM Set vars
set port=%1
set int=%2
if "%port%" == "" set port=5557
if "%int%" == "" set int=wlan0

REM Enable TCP
adb -d wait-for-device tcpip %port%

REM Get IP Address from device
set shellCmd="ip addr show %int% | grep 'inet [0-9]{1,3}(\.[0-9]{1,3}){3}' -oE | grep '[0-9]{1,3}(\.[0-9]{1,3}){3}' -oE"
for /f %%i in ('adb wait-for-device shell %shellCmd%') do set IP=%%i

REM Connect ADB to device
adb connect %IP%:%port%

goto end

:fail
echo adbWifi [port] [interface]
echo adbWifi off
goto end

:off
adb wait-for-device usb

:end
Felizk
fonte
3

Aqui está uma extensão da resposta de Brian usando Bluetooth:

  1. No Linux, use o Blueman para compartilhar a Internet do PC com seu dispositivo via Bluetooth:

    $ sudo apt-get install blueman
    $ blueman-manager
    Pair them: Search devices after enabling Bluetooth
    on your phone and making it visible
    $ blueman-services
    Network > [X] Network Access Point (NAP)
    Your Phone > Settings > Bluetooth > Paired Device > [X] Internet access
  2. Use a rede Bluetooth para comandos ADB:

    $ adb tcpip 5555
    $ adb connect $(adb shell ip -f inet addr show bt-pan | egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -n1):5555

Uma vez feito para retornar ao modo USB:

$ adb disconnect
$ adb usb

Nota: o Bluetooth 3.0 e 4.0 pode ir até 24 Mbit / s .

Wernight
fonte
3

Passos :

  1. su - Para mudar para superusuário.
  2. setprop service.adb.tcp.port 5555 - Para especificar a porta TCP - 5555 é o número da porta aqui
  3. stop adbd - Para parar o serviço adbd.
  4. start adbd - Para iniciar o serviço adbd.

isso funciona perfeitamente no sshmeu PC com Windows

Eu tento fazer isso na inicialização do meu celular cyanogen ou iniciá-lo com plink. Com o plink, não consigo iniciar o shell com o comando su right ... sudo ou su não funciona. Na inicialização, não sei como funciona! Meu programa shell trabalha a partir do ssh su -c "sh /storage/sdcard1/start_adb.sh"com os últimos 3 comandos (sem su -)

obrigado

beguinner
fonte
2

Uma observação adicional (aprendida da maneira mais difícil): Você não deve ter a conexão VPN da sua empresa ativa ao mesmo tempo ...

TuomasG
fonte
2

Você precisa fazer o seguinte:

  • Primeiro, adicione ADB ao caminho do ambiente.
  • Na sua CLI, digite este comando adb connect YOUR_DEVICE_IP: PORT_NUMBER (exemplo adb connect 192.168.100.100:5555 )
noman404
fonte
2

Existem duas maneiras de conectar seu dispositivo Android ao ADB via TCP?

Primeira maneira

Siga estes passos

Primeiro use o comando abaixo para obter o endereço IP do seu dispositivo

adb shell ifconfig

SAÍDA do comando acima

wlan0     Link encap:UNSPEC    Driver icnss
          inet addr:XXX.XXX.X.XX  Bcast:XXX.XXX.X.XXX

Com a ajuda do comando acima, você encontrará o endereço IP do dispositivo conectado

Agora use o comando abaixo

adb tcpip 5555

O comando acima reiniciará esta porta TCP: 5555

Agora use o comando abaixo para conectar seu dispositivo

adb connect XXX.XXX.X.XXX:5555
            ^^^ ^^^ ^ ^^^
        IP Address of device

Segunda via

Você pode usar o Android Studio Plugin Android device with ADB

Android WiFi ADB - IntelliJ / Plugin de estúdio do Android

O plugin IntelliJ e Android Studio foi criado para conectar rapidamente seu dispositivo Android por Wi-Fi para instalar, executar e depurar seus aplicativos sem um USB conectado. Pressione um botão e esqueça o cabo USB

Verifique este artigo para obter mais informações

Conecte o dispositivo Android com Wi-Fi no Android Studio

Nilesh Rathod
fonte
2

Estou struct no mesmo problema, mas um simples hack adb reverse tcp:<PORT> tcp:<PORT> funcionou para mim. Ele permite que o sistema aceite solicitações tcp.

Obrigado pela leitura

Radha Manohar
fonte
1

Use o aplicativo adbwireless para ativar o telefone e use o adb connect na máquina Windows para conversar com ele. O aplicativo adbwireless do telefone informa como se conectar a ele, fornecendo o endereço IP e tudo mais.

A alternativa muito menos divertida é conectar-se via USB, dizer ao telefone para usar o TCPIP via adb tcpip 5555, desconectar o USB e usar o adb connect. Isso é muito mais difícil, pois dessa forma você precisa descobrir o endereço IP do telefone (a adbwireless informa o IP), é necessário conectar-se via USB e executar o adb tcpip (a adbwireless também cuida disso).

Então: instale o adbwireless no seu telefone. Use-o. É possível, eu faço isso rotineiramente no Linux e no Windows.

ConcernedParty
fonte
1

No meu sistema, foi assim:

No meu dispositivo Android no meu shell Linux, um simples "ifconfig" não me deu meu endereço IP. Eu tive que digitar:

ifconfig eth0

-ou-

netcfg

para obter meu endereço IP. (Eu sabia que o eth0 estava configurado porque o vi no meu dmesg.) Então fiz o:

setprop service.adb.tcp.port -1

pare adbd

start adbd

Em seguida, na minha caixa Win7 (aquela executando o Eclipse 3.7.1). Abri um prompt de comando para

\ android-sdk \ ferramentas de plataforma>

sem executar como administrador. Então eu fiz um

adb connect 12.345.678.90

Eu nunca coloquei uma porta. Se eu fizesse um

adb tcpip 5555

ele disse que não conseguiu encontrar o dispositivo e nada apareceu na minha lista de "dispositivos adb". Ou seja, só funciona se eu não fizer o comando tcpip acima.

Eu posso fazer um "shell adb" e mexer no meu dispositivo Android. Mas meu dispositivo Android não aparece na minha guia Executar-> Executar configurações-> Destino agora. Por outro lado, se eu mantiver a guia Alvo definida como automática. Então, quando executo meu aplicativo via Executar-> Executar, ele é executado no meu dispositivo Android, mesmo que meu dispositivo Android nem esteja listado como um dos meus destinos.

Joe C
fonte
1

Eu consegui isso funcionando. Não usei nenhum cabo usb.

  • aplicativo adb sem fio.
  • Executá-lo. Isso definirá ip e port; Então, em

    cd C:\Program Files\Android\android-sdk\platform-tools adb connect "192.168.2.22:8000 "enter"

Conectado.

lee
fonte