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?
adb tcpip 5555
. Desconecte o USB, veja o IP do telefoneSettings > About Phone > Status
. Agoraadb connect 192.168.x.x
e é isso. Sem ferramentas, sem software. Apenas funciona.Respostas:
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:
E você pode desativá-lo e retornar o ADB para ouvir no USB com
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
Substitua
192.168.0.101
pelo endereço IP realmente atribuído ao seu dispositivo. Quando terminar, você pode desconectar-se da sessão adb tcp executando: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:
Para informar ao daemon ADB, volte a ouvir através de 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.
fonte
adb tcipip 5555
eadb connect ...
não há raiz necessária.adb tcpip <port>
ainda requer qualquerro.kernel.qemu
propriedade a ser definida (que funciona no modo de emulador),ro.secure
para ser 0 (ou seja, um dispositivo enraizada), ouro.debuggable
eservice.adb.root
deve ser definido como 1.adbd
simplesmente 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.cadb_main
parts sobre asecure
variáveladbd
no meu 2.3.7 não enraizado, o Android não entra no modo TCP / IP.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:
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\tools
pastaTipo:
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.
fonte
adb tcpip 5555
e depois a outra pessoa executadaadb connect myIP:5555
em 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álogowaiting for debugger
para sempre.Conecte o dispositivo via USB e verifique se a depuração está funcionando e execute:
Desconecte o USB e prossiga com a depuração sem fio.
Quando terminar e quiser voltar à depuração USB, execute:
Para encontrar o endereço IP do seu dispositivo, vá para o
Settings > Wi-Fi > Advanced > IP Address
seu dispositivo ou executeadb shell netcfg
.Nenhuma raiz é necessária. Somente um dispositivo pode ser depurado por vez.
Veja esta postagem do XDA .
O
adb
comando está localizado naplatform-tools
pasta do Android SDK.fonte
adb tcpip 5555 && adb connect <DEVICE_IP_ADDRESS>:5555
Suponha que você salvou o caminho adb no caminho do ambiente do Windows
Ativar o modo de depuração no Android
Conecte-se ao PC via USB
Tipo de prompt de comando aberto:
adb tcpip 5555
Desconecte seu tablet ou smartphone do PC
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
fonte
De
adb --help
: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.
fonte
adb tcpip port
pois o padrão é a depuração via usb. Após o último que você pode se conectarconnect host:port
e ele deve funcionarPara 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
•
Abra a variável de ambiente.
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;
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.
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.
Tipo: - adb tcpip 5555
Obtenha o endereço IP do seu telefone
Agora,
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
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
Usando adb, conecte seu endereço IP do telefone Android.
Retire o seu telefone.
fonte
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)
E acesse as ferramentas sdk e plataforma. Substitua esse caminho pelo seu local do SDK:
Agora você tem acesso à ponte de depuração do Android.
Com o dispositivo conectado ao computador, faça:
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
5555
e, 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:
E quando terminar a conexão, você pode desconectar o dispositivo do seu computador fazendo o seguinte:
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:
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 usar
adb shell
ou baixar um aplicativo do Google Play, FDroid ou outra fonte.Então você faz:
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:
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
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?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
:fonte
/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.Para conectar seu tablet usando a porta TCP. Verifique se o seu sistema e dispositivo estão conectados à mesma rede.
adb tcpip 5555
adb connect 192.168.1.2
este é o endereço IP do seu dispositivoConectado usando o encaminhamento de porta Tente fazer o encaminhamento de porta,
adb forward tcp:
<PC port>
tcp:<device port>
gostar:
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
fonte
su
primeiro para obter um console raiz.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
a partir de um terminal e conecte-se ao seu dispositivo via Wi-Fi a partir de qualquer PC na rede:
Talvez também seja possível alternar para o modo TCP a partir de um terminal no dispositivo.
fonte
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
Você verá estas mensagens:
Agora remova o cabo USB e você ainda verá o seu logcat normalmente
Feito. Aproveitar
fonte
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:
fonte
Como Brian disse:
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...
fonte
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,
só funcionará se o usb estiver conectado.
Não importa se eu emitir o
ou
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.
fonte
Para alternar entre os modos TCP e USB com apenas um comando, você pode adicionar isso a
/init.rc
:E agora você pode usar a propriedade
service.adb.tcp.enable
para ativar ou desativar a escuta na porta 5555. Executenetstat
para verificar se está escutando. Como você pode ver, também será acionado se você desejar alterarservice.adb.tcp.port
manualmente.fonte
Função util Bash:
fonte
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 devices
que assegura que o adb esteja sendo executado no modo USB executandoadb usb
.ETAPA 3.
Reinicie o adb no modo tcpip com este comando:
PASSO 4.
Descubra o endereço IP do dispositivo Android. Existem várias maneiras de fazer isso:
$ adb shell netcfg
.Agora que você sabe o endereço IP do seu dispositivo, conecte seu host adb a ele.
PASSO 5.
Remova o cabo USB e você deverá estar conectado ao seu dispositivo. Se você não o
adb devices
vir, basta reconectar usando o comando da etapa anterior:Ou você está pronto para ir agora ou precisará matar seu servidor adb executando
adb kill-server
e executando todas as etapas novamente mais uma vez.Espero que ajude!
Referência:
fonte
Estes são os passos que segui e funcionou para mim,
fonte
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:
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.
fonte
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
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.
fonte
Aqui está uma extensão da resposta de Brian usando Bluetooth:
No Linux, use o Blueman para compartilhar a Internet do PC com seu dispositivo via Bluetooth:
Use a rede Bluetooth para comandos ADB:
Uma vez feito para retornar ao modo USB:
Nota: o Bluetooth 3.0 e 4.0 pode ir até 24 Mbit / s .
fonte
Passos :
su
- Para mudar para superusuário.setprop service.adb.tcp.port 5555
- Para especificar a porta TCP - 5555 é o número da porta aquistop adbd
- Para parar o serviço adbd.start adbd
- Para iniciar o serviço adbd.isso funciona perfeitamente no
ssh
meu PC com WindowsEu 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
fonte
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 ...
fonte
Você precisa fazer o seguinte:
fonte
Existem duas maneiras de conectar seu dispositivo Android ao ADB via TCP?
Primeira maneira
Siga estes passos
SAÍDA do comando acima
Com a ajuda do comando acima, você encontrará o endereço IP do dispositivo conectado
O comando acima reiniciará esta porta TCP: 5555
Segunda via
Você pode usar o Android Studio Plugin
Android device with ADB
Android WiFi ADB - IntelliJ / Plugin de estúdio do Android
Verifique este artigo para obter mais informações
Conecte o dispositivo Android com Wi-Fi no Android Studio
fonte
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
fonte
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.
fonte
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.
fonte
Eu consegui isso funcionando. Não usei nenhum cabo usb.
Executá-lo. Isso definirá ip e port; Então, em
Conectado.
fonte