¿Cómo me puedo conectar a Android con ADB sobre TCP? [cerrado]

879

Estoy intentando depurar una aplicación en un Motorola Droid , pero tengo algunas dificultades para conectarme al dispositivo a través de USB. Mi servidor de desarrollo es una máquina virtual Windows 7 de 64 bits que se ejecuta en Hyper-V , por lo que no puedo conectarme directamente a través de USB en el invitado o desde el host.

Instalé un par de soluciones diferentes de USB sobre TCP, pero la conexión parece tener problemas ya que el monitor ADB informa que "el monitor del dispositivo no pudo comenzar a monitorear" repetidamente. ¿Hay alguna manera de conectarse directamente desde el cliente en la máquina de desarrollo al daemon en el dispositivo usando la red en lugar de la conexión USB u otras opciones viables?

JDM
fuente
75
Cuando se conecta a través de USB: adb tcpip 5555. Desconecte el USB, vea la dirección IP del teléfono Settings > About Phone > Status. Ahora adb connect 192.168.x.xy ya está. Sin herramientas, sin software. Solo funciona.
andreszs
1
Lo que Andrew dijo: estas son las instrucciones oficiales del sitio web para desarrolladores de Android de Google , no es necesaria la raíz. Acabo de trabajar en mi HTC One m8 no rooteado (requiere habilitar las opciones de desarrollador, por supuesto).
Jeff Ward,
Si el servicio adb se ejecuta en el puerto 5037, ¿por qué ubica dispositivos en el rango de 5555 a 5585?
Shivam Aggarwal
@ Andrew ¿Puedo usar una aplicación como esta para abrir y cerrar el puerto sin una computadora en un Nexus 6 sin acceso a la raíz? Me preocupan los problemas de seguridad que podrían surgir al dejar el puerto 5555 abierto cuando estoy en una red pública y no uso mi teléfono para el desarrollo.
DaveTheMinion

Respuestas:

1205

Proceso manual

Desde su dispositivo, si está rooteado

Según una publicación en xda-developers , puede habilitar ADB a través de Wi-Fi desde el dispositivo con los comandos:

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

Y puede deshabilitarlo y volver a ADB para escuchar en USB con

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

Desde una computadora, si ya tiene acceso USB (no se requiere root)

Es aún más fácil cambiar a usar Wi-Fi, si ya tiene USB. Desde una línea de comando en la computadora que tiene el dispositivo conectado a través de USB, emita los comandos

adb tcpip 5555
adb connect 192.168.0.101:5555

Asegúrese de reemplazar 192.168.0.101con la dirección IP que está realmente asignada a su dispositivo. Una vez que haya terminado, puede desconectarse de la sesión adb tcp ejecutando:

adb disconnect 192.168.0.101:5555

Puede encontrar la dirección IP de una tableta de dos maneras:

Descubrimiento manual de IP:

Vaya a la configuración WiFi de Android, haga clic en el botón de menú en la barra de acción (puntos suspensivos verticales), presione Avanzado y vea la dirección IP en la parte inferior de la pantalla.

Use ADB para descubrir IP:

Ejecute el siguiente comando a través de adb:

adb shell ip -f inet addr show wlan0

Para decirle al demonio ADB que vuelva a escuchar por USB

adb usb

Aplicaciones para automatizar el proceso.

También hay varias aplicaciones en Google Play que automatizan este proceso. Una búsqueda rápida sugiere adbWireless , WiFi ADB y ADB WiFi . Todos estos requieren acceso de root, pero adbWireless requiere menos permisos.

Brian
fuente
3
¿Necesita acceso de root para hacer esto? Parece que soy capaz de ejecutar los comandos utilizando el terminal, pero no parece realmente al trabajo ...
JJ
66
@ JJ - Desafortunadamente sí. Raiz necesario.
Kingsolmn
178
Para la segunda solución ( adb tcipip 5555y adb connect ...no hay raíz necesaria.
Ridcully
11
adb tcpip <port>todavía requiere ya sea ro.kernel.qemupropiedad a ser establecido (que se ejecuta en el modo de emulador), ro.secureque es 0 (es decir, un dispositivo arraigada), o ro.debuggabley service.adb.rootpara ser puesto a 1. adbdsimplemente no va a abrir una conexión TCP / IP si se cumple ninguna de las anteriores. Ver netmite.com/android/mydroid/system/core/adb/adb.c adb_main partes sobre la securevariable. adbden mi Android 2.3.7 no rooteado no entra en modo TCP / IP.
soulseekah
2
¡Excelente! ¡La segunda solución realmente no requiere root!
Grzegorz D.
132

Esto es realmente simple si su teléfono está rooteado.

Descargue un emulador de terminal de Google Play (hay muchos que son gratuitos). Asegúrese de que su dispositivo Android esté conectado a su Wi-Fi y obtenga la dirección IP de Wi-Fi . Abra el programa del terminal y escriba:

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

Ahora vaya a su computadora (suponiendo que está utilizando Windows) y cree un acceso directo en el escritorio para "cmd.exe" (sin las comillas).

Haga clic derecho en el acceso directo cmd y elija "Run as Administrator"

Cambiar a tu android-sdk-windows\toolscarpeta

Tipo:

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

(example: adb connect 192.168.0.105:5555)

adb ahora debería decir que estás conectado.

Nota: si es demasiado rápido para dar el comando de conexión, puede fallar. Así que intente al menos dos veces cada cinco segundos antes de decir que esto no funciona.

normando
fuente
66
Esta respuesta fue mejor para mí porque explicaba qué parte debería realizarse en el dispositivo y cuál en la computadora.
Eduardo
55
ANTES de "adb tcpip 5555" DO "adb kill-server". DESPUÉS de "adb connect 192.168.0.101:5555" DO "dispositivos adb" O "adb shell" (connect no inicia shell).
samis
Lo intenté adb tcpip 5555y luego la otra persona ejecutó adb connect myIP:5555en su PC. Podía instalar una aplicación en mi teléfono pero no podía depurarla de forma remota. ¿Es posible depurar de forma remota? En mi teléfono había un diálogo waiting for debuggerpara siempre.
Angelina
¿Esto hace que la configuración sea persistente en todos los reinicios?
Hritik
¿Funciona con la dirección IPv6 a través de Internet móvil?
CaptainFreedom el
94
  1. Conecte el dispositivo a través de USB y asegúrese de que la depuración funciona, luego ejecute:

    adb tcpip 5555
    adb connect <DEVICE_IP_ADDRESS>:5555
  2. Desconecte el USB y continúe con la depuración inalámbrica.

  3. Cuando haya terminado y quiera volver a la depuración de USB, ejecute:

    adb -s <DEVICE_IP_ADDRESS>:5555

Para encontrar la dirección IP de su dispositivo, vaya a Settings > Wi-Fi > Advanced > IP Addressen su dispositivo o ejecute adb shell netcfg.

No se requiere root. Solo se puede depurar un dispositivo a la vez.

Ver esta publicación de XDA .

El adbcomando se encuentra en la platform-toolscarpeta del SDK de Android.

Ribin Haridas
fuente
2
En realidad, puede conectar muchos dispositivos a la vez, si sigue el orden correcto. Simplemente configure el tcpip en 5555 individualmente para cada teléfono, luego emita el comando de conexión para cada teléfono y listo, todos están conectados a adb.
andreszs
La depuración es un poco más lenta si mi teléfono está conectado de esta manera. Además, a veces se queda dormido y eso provoca una desconexión inmediata.
Aron Lorincz
En algunos dispositivos, el retraso entre el comando adb tcpip y el comando adb connect tiene que ser muy bajo; de lo contrario, no funciona. Además, para mí funcionó haciendoadb tcpip 5555 && adb connect <DEVICE_IP_ADDRESS>:5555
vhamon
61

Suponga que guardó la ruta adb en la ruta del entorno de Windows

  1. Activar el modo de depuración en Android

  2. Conéctese a la PC a través de USB

  3. Tipo de símbolo del sistema abierto: adb tcpip 5555

  4. Desconecte su tableta o teléfono inteligente de la PC

  5. Tipo de símbolo del sistema abierto: adb connect IPADDRESS(IPADDRESS es la dirección DHCP / IP de su tableta o teléfono inteligente, que puede encontrar mediante Wi-Fi -> red conectada actual)

Ahora en el símbolo del sistema, debería ver el resultado como: conectado a xxx.xxx.xxx.xxx:5555

MapleLover
fuente
Gracias por la secuencia de pasos y mencionar exactamente cuándo desconectar la PC.
Manju
53

De adb --help:

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

Esa es una opción de línea de comandos por cierto.

Debe intentar conectar el teléfono a su Wi-Fi y luego obtener su dirección IP de su enrutador. No va a funcionar en la red celular.

El puerto es 5554.

Nathan
fuente
1
Lo intenté con 5555-5558 y ahora 5554 y no funciona por alguna razón. Básicamente desde una línea de comando: adb kill-server adb connect 10.10.10.100:5554 con el resultado de que * daemon no se está ejecutando. comenzando ahora * * daemon se inició con éxito * no se puede conectar a 10.10.10.100:5554 Puedo hacer ping a la ip del dispositivo desde la estación de trabajo de desarrollo. Cuando la salida dice "el demonio comenzó con éxito", ¿no debería referirse al demonio en el dispositivo? ¿Intenta utilizar el emulador posiblemente? ¿Cómo me aseguro / valido que el demonio se está ejecutando en el dispositivo? gracias
JDM
2
primero debe, adb tcpip portya que el valor predeterminado es la depuración sobre usb. Después de esto último, puede conectarse connect host:porty debería funcionar
Aiden Strydom
¿"puerto adb tcpip" literalmente? que solo devuelve la cadena "error: dispositivo no encontrado" - ¿hay algún error tipográfico? ¿O debería reemplazar algo aquí?
BrainSlugs83
3
AHHH !! Lo descubrí, ¡el número de puerto predeterminado para CyanogenMod es 5555! BONITO. : D
BrainSlugs83
@Michael podría funcionar en algunas redes celulares, pero sus configuraciones de red son básicamente cajas negras: no sabe cuándo / si está detrás de un firewall, si los puertos están bloqueados, si se está realizando la traducción NAT, etc.
BrainSlugs83
45

Para usuarios de Windows:

Paso 1:
debes habilitar las opciones de desarrollador en tu teléfono Android.
Puede habilitar las opciones de desarrollador de esta manera.
• Abra Configuración> Acerca de> Información del software> Más.
• Luego toque "Número de compilación" siete veces para habilitar las opciones de desarrollador.
• Vuelva al menú de Configuración y ahora podrá ver "Opciones de desarrollador" allí.
• Tóquelo y active la Depuración de USB desde el menú en la siguiente pantalla.

Paso 2:

Abra cmd y escriba adb.
si encuentra que adb no es un comando válido, entonces debe agregar una ruta a la variable de entorno.

• Primero vaya a la carpeta instalada del SDK.
Siga esta ruta y esta ruta es solo un ejemplo. D: \ softwares \ Development \ Andoird \ SDK \ sdk \ platform-tools \; D: \ softwares \ Development \ Andoird \ SDK \ sdk \ tools;
• Ahora busque en la configuración avanzada del sistema de Windows

ingrese la descripción de la imagen aquí

Abra la variable de entorno.

ingrese la descripción de la imagen aquí

luego abra la ruta y pegue la siguiente ruta, este es un ejemplo.
Su ruta SDK es diferente a la mía, use la suya. D: \ softwares \ Development \ Andoird \ SDK \ sdk \ platform-tools \;
D: \ softwares \ Development \ Andoird \ SDK \ sdk \ tools;

ingrese la descripción de la imagen aquí

Paso 3:

Abra cmd y escriba adb. si aún ve que el comando adb no es válido, entonces su ruta no se ha configurado correctamente, siga los pasos anteriores.

ingrese la descripción de la imagen aquí

Ahora puede conectar su teléfono Android a la PC.

Abra cmd y escriba dispositivos adb y podrá ver su dispositivo. Encuentra la dirección IP de tu teléfono.

ingrese la descripción de la imagen aquí

Tipo: - adb tcpip 5555

ingrese la descripción de la imagen aquí

Obtenga la dirección IP de su teléfono

adb shell netcfg

Ahora,

adb connect "IP address of your phone"

Ahora ejecute su proyecto de Android y si no ve su dispositivo, vuelva a escribir la dirección IP de adb connect de su teléfono

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Para usuarios de Linux y macOS :

Paso 1: abra la terminal e instale adb usando

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

Conecte su teléfono a la PC mediante un cable USB. Escriba el siguiente comando en la terminal

adb tcpip 5555

Usando adb, conecta la dirección IP de tu teléfono Android.

Retira tu teléfono.

Raghav Thakkar
fuente
36

Desde una computadora en un dispositivo no rooteado

(Tenga en cuenta que esto también se puede hacer usando un dispositivo rooteado, pero puede usar un shell en un dispositivo rooteado que no requiera una conexión USB)

En primer lugar, abra el símbolo del sistema (CMD). Si usa Android Studio o IntelliJ, hay una consola incluida que puede usar.

Si ha agregado adb a la ruta, puede omitir la parte del CD.


Si es posible, abra la ubicación del SDK, haga clic derecho y presione "iniciar símbolo del sistema aquí". No todos tienen esta opción, por lo que debe hacer esto (/ estos) comandos también:

Windows: cambie la unidad (si corresponde)

D: 

Y acceda a las herramientas de plataforma y SDK. Reemplace esta ruta con su ubicación SDK:

cd /sdk/path/here/platform-tools

Ahora tiene acceso al puente de depuración de Android.


Con el dispositivo conectado a la computadora, haga lo siguiente:

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

Dónde <port>está el puerto al que desea conectarse (el valor predeterminado es 5555) y <ip>es la IP del dispositivo al que desea conectarse.

Tenga en cuenta: 5555es el puerto predeterminado y solo escribir la dirección IP lo conecta. Si usa un puerto personalizado, al menos puede mejorar un poco la seguridad. Se puede abusar de la depuración de USB a través de Wi-Fi, pero solo si el dispositivo está conectado a la computadora que quiere abusar del dispositivo. El uso de un puerto no predeterminado al menos hace que sea un poco más difícil conectarse.

Si usa un puerto personalizado, asegúrese de agregarlo después de la IP. Escribir ningún puerto se conecta 5555y, si no lo usó, la conexión fallará.

Puede encontrar la dirección IP de un dispositivo de dos maneras:

  • Dependiendo de su dispositivo, los nombres exactos pueden variar. Abra la configuración y vaya a Acerca del dispositivo -> Estado -> Dirección IP

  • Use ADB para obtener la IP

Desde la consola, haz:

adb shell ip -f inet addr show wlan0

Y una vez que haya terminado con la conexión, puede desconectar el dispositivo de su computadora haciendo lo siguiente:

adb disconnect <ip>:<port>

O no hay IP para desconectar todos los dispositivos. Si utilizó un puerto personalizado, debe especificar de qué puerto desconectarse . El valor predeterminado es 5555 aquí también.

Para deshabilitar el puerto (si eso es algo que desea hacer), haga este comando con el dispositivo conectado:

adb usb

O puede reiniciar el dispositivo para eliminar la conexión tcpip

Desde una computadora en un dispositivo rooteado

En primer lugar, necesita acceso al shell. Puede conectar el dispositivo con un cable usb y usar adb shello descargar una aplicación de Google Play, FDroid o alguna otra fuente.

Entonces haces:

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

Y para conectar el dispositivo, haga lo mismo que en la versión no rooteada haciendo adb connect <ip>:<port>.

Y si desea deshabilitar el puerto y volver a escuchar USB:

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

También puede usar un complemento de Android Studio para hacerlo por usted (no recuerdo el nombre en este momento), y para los usuarios rooteados también existe la opción de descargar una aplicación de Android para configurar la conexión del teléfono (probablemente todavía sea necesario adb connect) )

Algunos teléfonos tienen una configuración en las opciones de desarrollador (esto se aplica a algunos teléfonos no rooteados, aunque probablemente también a algunos teléfonos rooteados) que permite alternar ADB a través de Wi-Fi desde el dispositivo sin root o una conexión de computadora para iniciarlo. Aunque hay pocos teléfonos que tengan eso

Zoe
fuente
adb shell ip -f inet addr show wlan0 ¿La dirección IP y el soporte de puerto se sustituirán en algún lugar?
Michael
No en esa línea. Esa es la forma de shell para obtener la IP. Nada allí debe ser reemplazado en esa línea
Zoe
33

Necesitaba que tanto USB como TCPIP funcionaran para ADB (no pregunte), así que hice lo siguiente (usando las instrucciones que otros han publicado de xda-developers)

Utilizando 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
fuente
No funciona: no se encontró adbd. adbd normalmente se inicia a través de start adbd. ¿Pero tal vez hay un script / ejecutable en alguna carpeta?
KrisWebDev
1
En mi gnex, es /sbin/adbd. Eso puede variar según el teléfono. Por supuesto, debe estar rooteado ... Si no está rooteado, no podrá acceder a / sbin.
transistor1
32

Para conectar su tableta usando el puerto TCP. Asegúrese de que su sistema y dispositivo estén conectados a la misma red.

  1. Abrir consola cmd.exe
  2. Tipo adb tcpip 5555
  3. Vaya a Sistema -> Opción de desarrollo -> Depuración de USB -> Desmarque para conexión TCPIP
  4. Tipo adb connect 192.168.1.2 esta es la dirección IP de su dispositivo
  5. Conectado a 192.168.1.2

Conectado usando el puerto hacia adelante Intente hacer reenvío de puertos,

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

me gusta:

adb adelante tcp: 5555 tcp: 5555.

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

C: \ Users \ abc> adb tcpip 7612 reiniciando en modo TCP puerto: 7612

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

conectado a 10.0.0.1:7612

Si recibe un mensaje de error: dispositivo no encontrado, conecte un dispositivo USB al sistema y luego siga el mismo procedimiento.
para un dispositivo rooteado

setprop service.adb.tcp.port 5555
stop adbd
start adbd
rinkesh
fuente
2
En la consola, escriba suprimero para obtener una consola rooteada.
Grim
30

No sé cómo conectar el dispositivo sin ninguna conexión USB, pero si logras conectarlo, tal vez en otra computadora, puedes cambiar el adbd al modo TCP emitiendo

adb tcpip <port>

desde un terminal y conéctese a su dispositivo a través de wifi desde cualquier PC en la red mediante:

adb connect <ip>:<port>

Tal vez también sea posible cambiar al modo TCP desde un terminal en el dispositivo.

Christoph
fuente
De todas las respuestas complicadas que recibieron votos positivos masivos, esta respuesta de 8 años es la más simple y funciona. No requiere enraizamiento. Simplemente escriba 'adb connect <ip>: 5555' y estará disponible para su implementación.
RogerW
29

Primero debes conectar tu dispositivo a través de USB

Luego conecte su dispositivo a WIFI y obtenga la dirección IP. Mientras todavía se conecta a través de usb, escriba esto en la línea de comando o a través de Android Studio Terminal

adb tcpip 5555
adb connect <device IP>:5555

Verá estos mensajes:

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

Ahora retire el cable USB y aún verá su logcat como normal

Hecho. Disfrutar

Joolah
fuente
Esto funcionó. Sin embargo. Después de realizar estos pasos, ya no puedo volver al emulador. Sugerencias?
Tim Scott
Debe reiniciar su adb con: <adb kill-server> y luego <adb start-server>
Joolah
21

Si desea conectar fácilmente su dispositivo para ejecutar, depurar o implementar sus aplicaciones de Android a través de WiFi, puede utilizar un complemento IntelliJ de código abierto que he desarrollado. Aquí está el código y aquí el complemento listo para ser utilizado.

El uso es bastante simple. Aquí tienes un gif:

ingrese la descripción de la imagen aquí

Pedro Vicente Gómez Sánchez
fuente
Se produce este error: "no se encontró el comando 'adb'. Revise la instalación del SDK de Android.
rostamiani
1
Debe declarar una variable de entorno con el nombre ANDROID_HOME. Pero tengo un RP pendiente de revisión para evitar esto. Con la versión 1.2 que voy a publicar la próxima semana, el complemento funcionará solo con IntelliJ instalado :)
Pedro Vicente Gómez Sánchez
Estoy usando Mac, ¿no veo un icono en AS? ¿Necesito hacer algo manual primero?
polvo366
1
Ya publiqué una nueva versión donde la variable de entorno ANDROID_HOME ya no es necesaria. @ powder366 necesita instalar el complemento desde el almacén de complementos de IntelliJ para instalarlo manualmente. Todas las instrucciones necesarias para instalar y usar el complemento se encuentran en el archivo
Pedro Vicente Gómez Sánchez
@ PedroVicenteGómezSánchez Gracias. Cogí el plugin mal, existe otro plugin con nombre similar ...
powder366
11

Como dijo Brian:

Según una publicación en xda-developers, puede habilitar ADB a través de WiFi desde el dispositivo con los comandos

setprop service.adb.tcp.port 5555

dejar de adbd

iniciar adbd

Y puede deshabilitarlo y volver a ADB para escuchar en USB con

setprop service.adb.tcp.port -1

dejar de adbd

iniciar adbd

Si ya tiene acceso USB, es aún más fácil cambiar a WiFi. Desde una línea de comando en la computadora que tiene el dispositivo conectado a través de USB, emita los comandos

adb tcpip 5555

adb connect 192.168.0.101:5555

Para decirle al demonio ADB que vuelva a escuchar por USB

adb usb

También hay varias aplicaciones en el Android Market que automatizan este proceso.

Funciona. Solo necesita acceder al shell de Android y escribir esos comandos ...

Otra solución (más fácil) está en el mercado: adbWireless, configurará automáticamente su teléfono.

¡Se requiere raíz! para ambos...

por supuesto
fuente
2
... pero solo si el teléfono está rooteado.
android.weasel
Asus Transformer 301 - No se requiere root
Aiden Strydom
9
adb tcpip 5555

Extraño, pero esto solo funciona para mí si tengo el cable USB conectado, entonces puedo desconectar el usb e intentarlo con todo lo demás adb.

y lo mismo al volver a usb,

adb usb

solo funcionará si usb está conectado.

No importa si publico el

setprop service.adb.tcp.port 5555

o

setprop service.adb.tcp.port -1

luego pare e inicie adbd, todavía necesito el cable usb o no funciona.

Entonces, si mi ADB a través de usb no funcionaba, apuesto a que tampoco podría habilitar ADB a través de WiFi.

Chris
fuente
8

Para cambiar entre los modos TCP y USB con un solo comando, puede agregar esto 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

Y ahora puede usar la propiedad service.adb.tcp.enablepara habilitar o deshabilitar la escucha en el puerto 5555. Ejecute netstatpara verificar si está escuchando. Como puede ver, también se activará si desea cambiar service.adb.tcp.portmanualmente.

desarrollador de errores
fuente
8

Función util Bash:

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

PASO 1.

Asegúrese de que tanto su computadora host adb como su dispositivo Android estén en la misma red Wifi.

PASO 2.

Conecte el dispositivo Android con la computadora con su cable USB. Tan pronto como lo haga, su computadora host detectará su dispositivo y adb comenzará a ejecutarse en el modo USB en la computadora. Puede verificar los dispositivos conectados adb devicesmientras se asegura de que adb se esté ejecutando en modo USB mediante la ejecución adb usb.

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


PASO 3.

Reinicie adb en modo tcpip con este comando:

$ adb tcpip 5556
restarting in TCP mode port: 5556


PASO 4.

Descubra la dirección IP del dispositivo Android. Hay varias maneras de hacer eso:

  • MODO: 1 Vaya a Configuración -> Acerca del teléfono / tableta -> Estado -> Dirección IP.
  • CAMINO: 2 Vaya a la lista de redes Wi-Fi disponibles. Al que estás conectado, tócalo y conoce tu IP.
  • MANERA: 3 Inténtalo $ adb shell netcfg.

Ahora que conoce la dirección IP de su dispositivo, conecte su host adb.

$ 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


PASO 5

Retire el cable USB y debería estar conectado a su dispositivo. Si no lo ve, adb devicessolo vuelva a conectarse usando el comando del paso 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

O está listo para comenzar ahora o tendrá que matar su servidor adb ejecutando adb kill-servery repitiendo todos los pasos una vez más.

¡Espero que ayude!


Referencia:

Remolino
fuente
Además, puede obtener la IP de su dispositivo con este script en Unix: adb shell ip -f inet addr show wlan0 | grep inet | echo -n $ (grep -Eo '[0-9 \. \ /]') | echo -n $ (grep -Eo '^ [^ \ /] *') | sed 's / // g'
ahsan.dev
@Eddy Una duda de que tanto el sistema como el dispositivo móvil / tableta deben estar conectados a través de WiFi o de lo contrario el sistema debe estar conectado a través de LAN y tableta conectada mediante un enrutador WIFi de la misma red. Por favor
aclararlo
@ i-Droid No sé por qué ambos tienen que conectarse en la misma red. quizás ADB use un protocolo especial de enrutamiento de red. No tengo ni idea ni una investigación profunda al respecto. Si le interesa, bienvenido a aclararlo y compartirlo conmigo, ¡gracias!
Eddy
6

Estos son los pasos que seguí y funcionó para mí.

  1. adb shell ifconfig (obtenga la dirección IP del dispositivo desde aquí)

  2. adb tcpip 7777 (conecta adb a algún puerto)

  3. adb connect "ipaddress": 7777

Tom Taylor
fuente
5

También puede usar el reenvío de puerto local SSH. Pero aún implica un cable USB. Conecte su teléfono mediante USB a una computadora (host) con un sshd en ejecución. En una PC remota (invitada), inicie un cliente SSH capaz de reenviar / tunelizar puertos. Ejemplo:

plink -L 5037:localhost:5037 <host_IP_address>

Utilizo esta construcción para conectar mi dispositivo a una máquina virtual. Eltima USB a Ethernet no fue lo suficientemente estable (tiempos de espera durante la depuración).

El túnel SSH funciona de forma gratuita y es más confiable.

Ron
fuente
4

Las otras respuestas me parecen confusas. Mucho más simple de usar adbWireless:

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

Simplemente instale una aplicación en su teléfono para alternar la depuración a través de wifi, instale un complemento eclipse y listo.


fuente
¿A qué complemento de eclipse te refieres? Editar: no importa. Lo encontré siguiendo el enlace en su respuesta.
ArtOfWarfare
Sin embargo
Zoe
3

Reuní un archivo por lotes para habilitar y conectar automáticamente ADB a través de TCP a un dispositivo conectado a través de USB. Con él no tiene que poner la 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
fuente
3

Aquí hay una extensión de la respuesta de Brian usando Bluetooth:

  1. En Linux, use Blueman para compartir Internet de la PC con su dispositivo a través de 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 la red Bluetooth para los 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

Una vez hecho esto para volver al modo USB:

$ adb disconnect
$ adb usb

Nota: Bluetooth 3.0 y 4.0 pueden alcanzar hasta 24 Mbit / s .

Wernight
fuente
3

Pasos:

  1. su - Para cambiar a superusuario.
  2. setprop service.adb.tcp.port 5555 - Para especificar el puerto tcp - 5555 es el número de puerto aquí
  3. stop adbd - Para detener el servicio adbd.
  4. start adbd - Para iniciar el servicio adbd.

esto funciona perfectamente sshdesde mi PC con Windows

Intento hacer esto en el arranque en mi móvil cyanogen o iniciar esto con plink. Con plink no puedo iniciar shell con su right ... sudo o su comando no funciona. ¡En el arranque no sé cómo funciona! Mi programa de shell funciona desde ssh con su -c "sh /storage/sdcard1/start_adb.sh"los últimos 3 comandos (sin su -)

Gracias

beguinner
fuente
2

Una nota adicional (aprendida de la manera difícil): no debe tener la conexión VPN de su empresa activa al mismo tiempo ...

TuomasG
fuente
2

Debe hacer lo siguiente:

  • Primero, agregue ADB a su ruta de entorno.
  • Desde su CLI, escriba este comando adb connect YOUR_DEVICE_IP: PORT_NUMBER (ejemplo adb connect 192.168.100.100:5555 )
noman404
fuente
2

¿Hay dos formas de conectar su dispositivo Android con ADB sobre TCP?

Primera forma

Sigue estos pasos

Primero use el siguiente comando para obtener la dirección IP de su dispositivo

adb shell ifconfig

SALIDA del comando anterior

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

Con la ayuda del comando anterior, encontrará la dirección IP del dispositivo conectado

Ahora use el siguiente comando

adb tcpip 5555

El comando anterior reiniciará este puerto TCP: 5555

Ahora use el siguiente comando para conectar su dispositivo

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

Segunda forma

Puedes usar el complemento de Android Studio Android device with ADB

Android WiFi ADB - IntelliJ / Android Studio Plugin

Complemento IntelliJ y Android Studio creado para conectar rápidamente su dispositivo Android a través de WiFi para instalar, ejecutar y depurar sus aplicaciones sin un USB conectado. Presiona un botón y olvídate de tu cable USB

Por favor, consulte este artículo para obtener más información.

Conecte el dispositivo Android con Wifi dentro de Android Studio

Nilesh Rathod
fuente
2

Estoy estructurado en el mismo problema pero un simple truco adb reverse tcp:<PORT> tcp:<PORT> funcionó para mí. Permite que el sistema acepte solicitudes de TCP.

Gracias por leer

Radha Manohar
fuente
1

Use la aplicación adbwireless para habilitar el teléfono, luego use adb connect desde la máquina Windows para hablar con él. La aplicación adbwireless en el teléfono le dice cómo conectarse a ella, dándole la dirección IP y todo.

La alternativa mucho menos divertida es conectarse a través de USB, decirle al teléfono que use TCPIP a través de adb tcpip 5555, luego desconecte USB, luego use adb connect. Esto es mucho más difícil porque de esta manera tiene que averiguar la dirección IP del teléfono usted mismo (adbwireless le dice la IP), tiene que conectarse a través de USB y debe ejecutar adb tcpip (adbwireless también se encarga de eso).

Entonces: instale adbwireless en su teléfono. Úsalo. Es posible, lo hago rutinariamente en Linux y en Windows.

Parte interesada
fuente
1

En mi sistema fue así:

En mi dispositivo Android en mi shell de Linux, un simple "ifconfig" no me dio mi dirección IP. Tuve que escribir:

ifconfig eth0

-o-

netcfg

para obtener mi dirección IP (Sabía que eth0 estaba configurado porque lo vi en mi dmesg). Luego hice lo siguiente:

setprop service.adb.tcp.port -1

dejar de adbd

iniciar adbd

Luego en mi cuadro Win7 (el que ejecuta Eclipse 3.7.1). Abrí un símbolo del sistema para

\ android-sdk \ platform-tools>

sin correr como administrador. Entonces hice un

adb connect 12.345.678.90

Nunca pongo un puerto. Si yo hiciera un

adb tcpip 5555

decía que no podía encontrar el dispositivo, entonces no apareció nada en mi lista de "dispositivos adb". Es decir, solo funciona si NO hago el comando tcpip anterior.

Puedo hacer un "adb shell" y jugar con mi dispositivo Android. Pero mi dispositivo Android no aparece en mi pestaña Ejecutar-> Ejecutar configuraciones-> Destino en este momento. Por otro lado, si mantengo la pestaña Objetivo establecida en automática. Luego, cuando ejecuto mi aplicación a través de Run-> Run, se ejecuta en mi dispositivo Android a pesar de que mi dispositivo Android ni siquiera aparece como uno de mis objetivos.

Joe C
fuente
1

Lo hice funcionar. No usé ningún cable usb.

  • aplicación adb inalámbrica.
  • Ejecutarlo. Eso establecerá ip y puerto; Luego en dos

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

Conectado.

sotavento
fuente