Comment puis-je me connecter à Android avec ADB sur TCP? [fermé]

879

J'essaie de déboguer une application sur un Motorola Droid , mais j'ai du mal à me connecter à l'appareil via USB. Mon serveur de développement est une machine virtuelle Windows 7 64 bits fonctionnant en Hyper-V , et je ne peux donc pas me connecter directement via USB sur l'invité ou sur l'hôte.

J'ai installé quelques solutions USB-sur-TCP différentes, mais la connexion semble avoir des problèmes puisque le moniteur ADB signale «devicemonitor n'a pas pu démarrer la surveillance» à plusieurs reprises. Existe-t-il un moyen de se connecter directement du client sur la machine de développement au démon sur l'appareil en utilisant le réseau au lieu de la connexion USB ou éventuellement d'autres options viables?

JDM
la source
75
Lorsqu'il est connecté via USB: adb tcpip 5555. Déconnectez l'USB, affichez l'IP du téléphone Settings > About Phone > Status. Maintenant adb connect 192.168.x.xet c'est tout. Aucun outil, aucun logiciel. Fonctionne juste.
andreszs
1
Ce qu'Andrew a dit - ce sont les instructions officielles du site Web des développeurs Android de Google , aucune racine n'est nécessaire. Je viens de travailler sur mon HTC One m8 non rooté (nécessite bien sûr d'activer les options de développement).
Jeff Ward
Si le service adb s'exécute sur le port 5037, pourquoi trouve-t-il les périphériques dans la plage 5555 à 5585?
Shivam Aggarwal
@Andrew Puis-je utiliser une application comme celle- ci pour ouvrir et fermer le port sans ordinateur sur un Nexus 6 sans accès root? Je suis préoccupé par les problèmes de sécurité pouvant survenir en laissant le port 5555 ouvert lorsque je suis sur un réseau public et que je n'utilise pas mon téléphone pour le développement.
DaveTheMinion

Réponses:

1205

Processus manuel

Depuis votre appareil, s'il est enraciné

Selon un article sur les développeurs xda , vous pouvez activer ADB sur Wi-Fi depuis l'appareil avec les commandes:

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

Et vous pouvez le désactiver et retourner ADB à l'écoute sur USB avec

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

Depuis un ordinateur, si vous avez déjà un accès USB (pas de root requis)

Il est encore plus facile de passer à l'utilisation du Wi-Fi, si vous avez déjà un port USB. À partir d'une ligne de commande sur l'ordinateur auquel le périphérique est connecté via USB, exécutez les commandes

adb tcpip 5555
adb connect 192.168.0.101:5555

Assurez-vous de remplacer 192.168.0.101par l'adresse IP réellement attribuée à votre appareil. Une fois que vous avez terminé, vous pouvez vous déconnecter de la session adb tcp en exécutant:

adb disconnect 192.168.0.101:5555

Vous pouvez trouver l'adresse IP d'une tablette de deux manières:

Découverte IP manuelle:

Allez dans les paramètres WiFi d'Android, cliquez sur le bouton de menu dans la barre d'action (les points de suspension verticaux), appuyez sur Avancé et voyez l'adresse IP en bas de l'écran.

Utilisez ADB pour découvrir IP:

Exécutez la commande suivante via adb:

adb shell ip -f inet addr show wlan0

Pour dire au démon ADB de revenir à l'écoute via USB

adb usb

Des applications pour automatiser le processus

Il existe également plusieurs applications sur Google Play qui automatisent ce processus. Une recherche rapide suggère adbWireless , WiFi ADB et ADB WiFi . Tous ces éléments nécessitent un accès root, mais adbWireless nécessite moins d'autorisations.

Brian
la source
3
Avez-vous besoin d'un accès root pour ce faire? Il semble que je puisse exécuter les commandes à l'aide du terminal, mais cela ne semble pas fonctionner ...
JJ
6
@ JJ - Malheureusement, oui. Racine requise.
Kingsolmn
178
Pour la deuxième solution ( adb tcipip 5555et adb connect ...il n'y a pas de racine nécessaire.
Ridcully
11
adb tcpip <port>nécessite toujours que l'une des ro.kernel.qemupropriétés soit définie (s'exécutant en mode émulateur), ro.securesoit 0 (c'est-à-dire un périphérique enraciné), ou ro.debuggableet service.adb.rootdéfinie sur 1. adbdn'ouvrira tout simplement pas une connexion TCP / IP si aucune des conditions ci-dessus n'est remplie. Voir les parties netmite.com/android/mydroid/system/core/adb/adb.c adb_main sur la securevariable. adbdsur mon 2.3.7 sans racine Android n'entre pas du tout en mode TCP / IP.
soulseekah
2
Génial! La deuxième solution ne nécessite vraiment pas de root!
Grzegorz D.
132

C'est vraiment simple si votre téléphone est enraciné.

Téléchargez un émulateur de terminal depuis Google Play (il y en a beaucoup qui sont gratuits). Assurez-vous que votre appareil Android est connecté à votre Wi-Fi et obtenez l' adresse IP Wi-Fi . Ouvrez le programme du terminal et saisissez:

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

Allez maintenant sur votre ordinateur (en supposant que vous utilisez Windows) et créez un raccourci sur le bureau pour "cmd.exe" (sans les guillemets).

Faites un clic droit sur le raccourci cmd et choisissez "Run as Administrator"

Accédez à votre android-sdk-windows\toolsdossier

Type:

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

(example: adb connect 192.168.0.105:5555)

adb devrait maintenant dire que vous êtes connecté.

Remarque: si vous êtes trop rapide pour donner la commande connect, cela peut échouer. Essayez donc au moins deux fois cinq secondes d'intervalle avant de dire que cela ne fonctionne pas.

normand
la source
6
Cette réponse était meilleure pour moi car elle expliquait quelle partie devait être effectuée sur l'appareil et laquelle sur l'ordinateur.
Eduardo
5
AVANT "adb tcpip 5555" " DO " adb kill-server ". APRÈS "adb connect 192.168.0.101:5555" DO "périphériques adb" OU "adb shell" (connect ne démarre pas shell).
samis
J'ai essayé adb tcpip 5555puis l'autre personne a été exécutée adb connect myIP:5555sur son PC. Il pouvait installer une application sur mon téléphone mais il ne pouvait pas la déboguer à distance. Est-il possible de déboguer à distance? Sur mon téléphone, il y a eu une boîte de dialogue waiting for debuggerpour toujours.
Angelina
Cela rend-il les paramètres persistants lors des redémarrages?
Hritik
Est-ce que cela fonctionne avec l'adresse IPv6 via Internet mobile?
CaptainFreedom
94
  1. Connectez l'appareil via USB et assurez-vous que le débogage fonctionne, puis exécutez:

    adb tcpip 5555
    adb connect <DEVICE_IP_ADDRESS>:5555
  2. Déconnectez l'USB et procédez au débogage sans fil.

  3. Lorsque vous avez terminé et que vous souhaitez revenir au débogage USB, exécutez:

    adb -s <DEVICE_IP_ADDRESS>:5555

Pour trouver l'adresse IP de votre appareil, accédez à Settings > Wi-Fi > Advanced > IP Addresssur votre appareil ou exécutez adb shell netcfg.

Aucune racine requise. Un seul appareil peut être débogué à la fois.

Voir cet article XDA .

La adbcommande se trouve dans le platform-toolsdossier du SDK Android.

Ribin Haridas
la source
2
En fait, vous pouvez connecter plusieurs appareils à la fois, si vous suivez le bon ordre. Réglez simplement le tcpip sur 5555 individuellement pour chaque téléphone, puis exécutez la commande de connexion pour chaque téléphone et voilá, ils sont tous connectés à adb.
andreszs
Le débogage est un peu plus lent si mon téléphone est connecté de cette façon. De plus, il s'endort parfois et cela provoque une déconnexion immédiate.
Aron Lorincz
Sur certains appareils, le délai entre la commande adb tcpip et la commande adb connect doit être très faible sinon cela ne fonctionne pas. Aussi, pour moi, cela a fonctionné en faisantadb tcpip 5555 && adb connect <DEVICE_IP_ADDRESS>:5555
vhamon
61

Supposons que vous avez enregistré le chemin adb dans le chemin de votre environnement Windows

  1. Activer le mode de débogage dans Android

  2. Connectez-vous au PC via USB

  3. Ouvrez le type d'invite de commande: adb tcpip 5555

  4. Déconnectez votre tablette ou smartphone du PC

  5. Ouvrez le type d'invite de commande: adb connect IPADDRESS(IPADDRESS est l'adresse DHCP / IP de votre tablette ou smartphone, que vous pouvez trouver par Wi-Fi -> réseau actuellement connecté)

Maintenant, dans l'invite de commande, vous devriez voir le résultat comme: connecté à xxx.xxx.xxx.xxx:5555

MapleLover
la source
Merci pour la séquence d'étapes et en mentionnant exactement quand déconnecter le PC.
Manju
53

De adb --help:

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

C'est d'ailleurs une option de ligne de commande.

Vous devriez essayer de connecter le téléphone à votre Wi-Fi, puis obtenir son adresse IP à partir de votre routeur. Cela ne fonctionnera pas sur le réseau cellulaire.

Le port est 5554.

Nathan
la source
1
J'avais essayé ça avec 5555-5558 et maintenant 5554 et ça ne marche pas pour une raison quelconque. Fondamentalement à partir d'une ligne de commande: adb kill-server adb connect 10.10.10.100:5554 avec pour résultat que * le démon n'est pas en cours d'exécution. le démarrer maintenant * * le démon a démarré avec succès * impossible de se connecter à 10.10.10.100:5554 Je peux envoyer une requête ping à l'ip de l'appareil à partir du poste de travail de développement. Lorsque la sortie indique "le démon a démarré avec succès", ne devrait-il pas faire référence au démon sur l'appareil? Essaie-t-il éventuellement d'utiliser l'émulateur? Comment puis-je m'assurer / valider que le démon s'exécute sur l'appareil? merci
JDM
2
vous devez d'abord adb tcpip portcar la valeur par défaut est le débogage via USB. Après ce dernier, vous pouvez vous connecter connect host:portet cela devrait fonctionner
Aiden Strydom
"adb tcpip port" littéralement? qui renvoie simplement la chaîne "erreur: périphérique non trouvé" - y a-t-il une faute de frappe? Ou devrais-je remplacer quelque chose ici?
BrainSlugs83
3
AHHH !! Compris, le numéro de port par défaut pour CyanogenMod est 5555! AGRÉABLE. : D
BrainSlugs83
@Michael, cela peut fonctionner sur certains réseaux cellulaires, mais leurs configurations réseau sont essentiellement des boîtes noires - vous ne savez pas quand / si vous êtes derrière un pare-feu, si les ports sont bloqués, si la traduction NAT est en cours, etc.
BrainSlugs83
45

Pour les utilisateurs de Windows:

Étape 1:
Vous devez activer les options de développeur sur votre téléphone Android.
Vous pouvez activer les options de développeur de cette manière.
• Ouvrez Paramètres> À propos> Informations sur le logiciel> Plus.
• Appuyez ensuite sur «Build number» sept fois pour activer les options Developer.
• Revenez au menu Paramètres et vous pourrez maintenant y voir les «Options du développeur».
• Appuyez dessus et activez le débogage USB dans le menu de l'écran suivant.

Étape 2:

Ouvrez cmd et tapez adb.
si vous trouvez que la commande adb n'est pas valide, vous devez ajouter un chemin d'accès à la variable d'environnement.

• Allez d'abord dans votre dossier SDK installé
Suivez ce chemin et ce chemin est juste pour un exemple. D: \ softwares \ Development \ Andoird \ SDK \ sdk \ platform-tools \; D: \ logiciels \ Développement \ Andoird \ SDK \ sdk \ tools;
• Maintenant, recherchez sur les paramètres avancés du système Windows

entrez la description de l'image ici

Ouvrez la variable d'environnement.

entrez la description de l'image ici

puis ouvrez le chemin et collez le chemin suivant, voici un exemple.
Votre chemin SDK est différent du mien, veuillez utiliser le vôtre. D: \ softwares \ Development \ Andoird \ SDK \ sdk \ platform-tools \;
D: \ logiciels \ Développement \ Andoird \ SDK \ sdk \ tools;

entrez la description de l'image ici

Étape 3:

Ouvrez cmd et tapez adb. si vous voyez toujours que la commande adb n'est pas valide, votre chemin d'accès n'est pas défini correctement, suivez les étapes ci-dessus.

entrez la description de l'image ici

Vous pouvez maintenant connecter votre téléphone Android au PC.

Ouvrez cmd et tapez adb devices et vous pouvez voir votre appareil. Trouvez votre adresse IP de téléphone.

entrez la description de l'image ici

Type: - adb tcpip 5555

entrez la description de l'image ici

Obtenez l'adresse IP de votre téléphone

adb shell netcfg

Maintenant,

adb connect "IP address of your phone"

Maintenant, lancez votre projet Android et si vous ne voyez pas votre appareil, tapez à nouveau adb connect l'adresse IP de votre téléphone

entrez la description de l'image ici

entrez la description de l'image ici

Pour les utilisateurs Linux et macOS :

Étape 1: ouvrez le terminal et installez adb en utilisant

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

Connectez votre téléphone via un câble USB au PC. Tapez la commande suivante dans le terminal

adb tcpip 5555

En utilisant adb, connectez l'adresse IP de votre téléphone Android.

Retirez votre téléphone.

Raghav Thakkar
la source
36

Depuis un ordinateur sur un appareil non rooté

(Notez que cela peut également être fait en utilisant un périphérique enraciné, mais vous pouvez utiliser un shell sur un périphérique enraciné qui ne nécessite pas de connexion USB)

Tout d'abord, ouvrez l'invite de commande (CMD). Si vous utilisez Android Studio ou IntelliJ, vous pouvez utiliser une console.

Si vous avez ajouté adb au chemin, vous pouvez ignorer la partie cd.


Si possible, ouvrez l'emplacement du SDK, faites un clic droit et appuyez sur "Démarrer l'invite de commande ici". Tous n'ont pas cette option, vous devez donc également exécuter ces (/ ces) commandes:

Windows: changez le lecteur (le cas échéant)

D: 

Et accédez aux outils sdk et plateforme. Remplacez ce chemin par votre emplacement SDK:

cd /sdk/path/here/platform-tools

Vous avez maintenant accès au pont de débogage Android.


Avec l'appareil connecté à l'ordinateur, procédez comme suit:

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

Où se <port>trouve le port auquel vous souhaitez vous connecter (par défaut 5555) et <ip>l'adresse IP de l'appareil auquel vous souhaitez vous connecter.

Veuillez noter: 5555est le port par défaut et écrire simplement l'adresse IP le connecte. Si vous utilisez un port personnalisé, vous pouvez au moins améliorer un peu la sécurité. Le débogage USB via Wi-Fi peut être utilisé abusivement, mais uniquement si l'appareil est connecté à l'ordinateur qui souhaite abuser de l'appareil. L'utilisation d'un port autre que celui par défaut rend au moins un peu plus difficile la connexion.

Si vous utilisez un port personnalisé, assurez-vous de l'ajouter après l'IP. L'écriture sans port se connecte 5555et si vous ne l'avez pas utilisé, la connexion échouera.

Vous pouvez trouver l'adresse IP d'un périphérique de deux manières:

  • Selon votre appareil, les noms exacts peuvent varier. Ouvrez les paramètres et accédez à À propos de l'appareil -> État -> Adresse IP

  • Utilisez ADB pour obtenir l'IP

Depuis la console, faites:

adb shell ip -f inet addr show wlan0

Et une fois la connexion terminée, vous pouvez déconnecter l'appareil de votre ordinateur en procédant comme suit:

adb disconnect <ip>:<port>

Ou pas d'IP pour déconnecter tous les appareils. Si vous avez utilisé un port personnalisé, vous devez spécifier de quel port vous déconnecter . La valeur par défaut est également 5555.

Pour désactiver le port (si c'est quelque chose que vous voulez faire), faites cette commande avec le périphérique connecté:

adb usb

Ou vous pouvez redémarrer l'appareil pour supprimer la connexion tcpip

Depuis un ordinateur sur un appareil rooté

Tout d'abord, vous devez avoir accès au shell. Vous connectez l'appareil à l'aide d'un câble USB et utilisez adb shellou téléchargez une application à partir de Google Play, FDroid ou d'une autre source.

Ensuite, vous faites:

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

Et pour connecter l'appareil, vous faites comme dans la version non rootée en faisant adb connect <ip>:<port>.

Et si vous souhaitez désactiver le port et revenir à l'écoute USB:

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

Vous pouvez également utiliser un plugin Android Studio pour le faire pour vous (ne vous souvenez pas du nom pour le moment), et pour les utilisateurs rootés, il y a également la possibilité de télécharger une application Android pour configurer la connexion téléphonique (adb connect est probablement toujours requis ).

Certains téléphones ont un paramètre dans les options de développement (cela s'applique à certains téléphones non rootés, mais probablement aussi à certains téléphones rootés) qui permet de basculer ADB sur Wi-Fi à partir de l'appareil lui-même sans racine ou connexion d'ordinateur pour le démarrer. Bien qu'il y ait peu de téléphones qui

Zoé
la source
adb shell ip -f inet addr show wlan0 L'adresse IP et la prise en charge du port doivent-elles être remplacées quelque part?
Michael
pas dans cette ligne. C'est la manière shell pour obtenir l'IP. Rien là-dedans ne devrait être remplacé dans cette ligne
Zoe
33

Je avais besoin de deux USB et TCPIP travaillant pour la BAD (ne demandez pas), donc je l'ai fait ce qui suit ( à l' aide d' autres directions ont posté de xda-developers)

En utilisant 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
la source
Ne fonctionne pas: adbd introuvable. adbd est normalement lancé via start adbd. Mais peut-être qu'il y a un script / exécutable dans un dossier?
KrisWebDev
1
Sur mon gnex, c'est /sbin/adbd. Cela peut varier selon le téléphone. Bien sûr, vous devez être rooté ... Si vous n'êtes pas rooté, vous ne pourrez pas accéder à / sbin.
transistor1
32

Pour connecter votre tablette à l'aide du port TCP. Assurez-vous que votre système et votre appareil sont connectés au même réseau.

  1. Ouvrez la console cmd.exe
  2. Type adb tcpip 5555
  3. Allez dans Système -> Option de développement -> Débogage USB -> Décochez-le pour la connexion TCPIP
  4. Tapez adb connect 192.168.1.2ceci est l'adresse IP de votre appareil
  5. Connecté à 192.168.1.2

Connecté à l'aide de la redirection de port Essayez de faire une redirection de port,

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

comme:

adb avant tcp: 5555 tcp: 5555.

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

C: \ Users \ abc> adb tcpip 7612 redémarrage en mode TCP port: 7612

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

connecté à 10.0.0.1:7612

Si vous obtenez un message d' erreur: périphérique introuvable, connectez un périphérique USB au système, puis suivez la même procédure.
pour un appareil enraciné

setprop service.adb.tcp.port 5555
stop adbd
start adbd
rinkesh
la source
2
Dans la console, écrivez d' suabord pour obtenir une console rootée.
Grim
30

Je ne sais pas comment connecter l'appareil sans aucune connexion USB, mais si vous parvenez à le connecter peut-être à un autre ordinateur, vous pouvez basculer l'adbd en mode TCP en émettant

adb tcpip <port>

depuis un terminal et connectez-vous à votre appareil via wifi depuis n'importe quel PC du réseau en:

adb connect <ip>:<port>

Il est peut-être également possible de passer en mode TCP à partir d'un terminal sur l'appareil.

Christoph
la source
De toutes les réponses compliquées qui ont reçu des votes massifs, cette réponse de 8 ans est la plus simple et fonctionne. Aucun enracinement requis. Tapez simplement 'adb connect <ip>: 5555' et il sera disponible pour être déployé sur.
RogerW
29

Vous devez d'abord connecter votre appareil via USB

Connectez ensuite votre appareil au WIFI et obtenez l'adresse IP. Tout en vous connectant via USB, saisissez ceci en ligne de commande ou via Android Studio Terminal

adb tcpip 5555
adb connect <device IP>:5555

Vous verrez ces messages:

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

Maintenant, retirez le câble USB et vous verrez toujours votre logcat comme normal

Terminé. Prendre plaisir

Joolah
la source
Cela a fonctionné. Toutefois. Après avoir effectué ces étapes, je ne peux plus revenir à l'émulateur. Suggestions?
Tim Scott
Vous devez redémarrer votre adb avec: <adb kill-server> puis <adb start-server>
Joolah
21

Si vous souhaitez connecter facilement votre appareil pour exécuter, déboguer ou déployer vos applications Android via WiFi, vous pouvez utiliser un plugin IntelliJ open source que j'ai développé. Voici le code et ici le plugin prêt à être utilisé.

L'utilisation est assez simple. Voici un gif:

entrez la description de l'image ici

Pedro Vicente Gómez Sánchez
la source
Cette erreur se produit: "'adb'command introuvable. Passez en revue votre installation du SDK Android.
rostamiani
1
Vous devez déclarer une variable d'environnement avec le nom ANDROID_HOME. Mais j'ai un PR en attente de révision pour éviter cela. Avec la version 1.2 que je vais publier la semaine prochaine, le plugin fonctionnera uniquement avec IntelliJ installé :)
Pedro Vicente Gómez Sánchez
J'utilise Mac, vous ne voyez pas d'icône dans AS? Dois-je d'abord faire quelque chose de manuel?
powder366
1
J'ai déjà publié une nouvelle version où la variable d'environnement ANDROID_HOME n'est plus nécessaire. @ powder366 vous devez installer le plugin depuis le magasin de plugins IntelliJ ou l'installer manuellement. Toutes les instructions nécessaires pour installer et utiliser le plugin sont dans le fichier lisez
Pedro Vicente Gómez Sánchez
@ PedroVicenteGómezSánchez Merci. J'ai choisi le mauvais plugin, il existe un autre plugin avec un nom similaire ...
powder366
11

Comme l'a dit Brian:

Selon un article sur les développeurs xda, vous pouvez activer ADB sur WiFi à partir de l'appareil avec les commandes

setprop service.adb.tcp.port 5555

arrêter adbd

commencer adbd

Et vous pouvez le désactiver et retourner ADB à l'écoute sur USB avec

setprop service.adb.tcp.port -1

arrêter adbd

commencer adbd

Si vous avez déjà un accès USB, il est encore plus facile de passer à l'utilisation du WiFi. À partir d'une ligne de commande sur l'ordinateur auquel le périphérique est connecté via USB, exécutez les commandes

adb tcpip 5555

adb connect 192.168.0.101:5555

Pour dire au démon ADB de revenir à l'écoute via USB

adb usb

Il existe également plusieurs applications sur l'Android Market qui automatisent ce processus.

Il vous suffit d'accéder au shell Android et de taper ces commandes ...

Une autre solution (plus simple) est sur le marché: adbWireless, elle configurera automatiquement votre téléphone.

La racine est requise! pour les deux...

bien sur
la source
2
... mais uniquement si le téléphone est enraciné.
android.weasel
Asus Transformer 301 - Fonctionne sans root requis
Aiden Strydom
9
adb tcpip 5555

Bizarre, mais cela ne fonctionne que pour moi si j'ai le câble USB connecté, alors je peux débrancher la clé USB et y aller avec tout le reste adb.

et la même chose en revenant à l'USB,

adb usb

ne fonctionnera que si USB est connecté.

Peu importe si j'émets le

setprop service.adb.tcp.port 5555

ou

setprop service.adb.tcp.port -1

puis arrêtez et démarrez adbd, j'ai toujours besoin du câble USB ou cela ne fonctionne pas.

Donc, si mon ADB sur USB ne fonctionnait pas, je parie que je ne serais pas en mesure d'activer ADB sur WiFi non plus.

Chris
la source
8

Pour basculer entre les modes TCP et USB avec une seule commande, vous pouvez l'ajouter à /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

Et maintenant, vous pouvez utiliser la propriété service.adb.tcp.enablepour activer ou désactiver l'écoute sur le port 5555. Exécutez netstatpour vérifier s'il écoute. Comme vous pouvez le voir, il se déclenchera également si vous souhaitez modifier service.adb.tcp.portmanuellement.

errordeveloper
la source
8

Fonction Bash util:

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

ÉTAPE 1.

Assurez-vous que votre ordinateur hôte adb et votre appareil Android sont sur le même réseau Wifi.

ÉTAPE 2.

Connectez l'appareil Android à l'ordinateur à l'aide de votre câble USB. Dès que vous faites cela, votre ordinateur hôte détectera votre appareil et adb commencera à fonctionner en mode USB sur l'ordinateur. Vous pouvez vérifier les périphériques connectés avec tout en vous adb devicesassurant que adb s'exécute en mode USB en exécutant adb usb.

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


ÉTAPE 3.

Redémarrez adb en mode tcpip avec cette commande:

$ adb tcpip 5556
restarting in TCP mode port: 5556


ÉTAPE 4.

Découvrez l'adresse IP de l'appareil Android. Il existe plusieurs façons de procéder:

  • VOIE: 1 Allez dans Paramètres -> À propos du téléphone / de la tablette -> État -> Adresse IP.
  • WAY: 2 Accédez à la liste des réseaux Wi-Fi disponibles. Celui auquel vous êtes connecté, appuyez dessus et découvrez votre IP.
  • VOIE: 3 Essayez $ adb shell netcfg.

Maintenant que vous connaissez l'adresse IP de votre appareil, connectez-y votre hôte 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


ÉTAPE 5.

Retirez le câble USB et vous devriez être connecté à votre appareil. Si vous ne le voyez pas, adb devicesreconnectez-vous simplement à l'aide de la commande de l'étape précédente:

$ 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

Soit vous êtes prêt à partir maintenant, soit vous devrez tuer votre serveur adb en exécutant adb kill-serveret recommencer toutes les étapes.

J'espère que cela pourra aider!


Référence:

Tourbillon
la source
De plus, vous pouvez obtenir l'IP de votre appareil avec ce script sur 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 On doute que le système et le mobile / tablette doivent être connectés via WiFi ou bien un système connecté via LAN et une tablette connectée à l'aide du routeur WIFi du même réseau. Veuillez clarifier les choses
iSrinivasan27
@ i-Droid Je ne sais pas pourquoi les deux doivent se connecter sur le même réseau. ADB utilise peut-être un protocole de routage net spécial. Je n'ai aucune idée et aucune recherche approfondie à ce sujet. Si cela vous intéresse, n'hésitez pas à le clarifier et à le partager avec moi, merci!
Eddy
6

Ce sont les étapes que j'ai suivies et cela a fonctionné pour moi,

  1. adb shell ifconfig (obtenir l'adresse IP de l'appareil à partir d'ici)

  2. adb tcpip 7777 (connectez adb à un port)

  3. adb connect "ipaddress": 7777

Tom Taylor
la source
5

Vous pouvez également utiliser la redirection de port local SSH. Mais cela implique toujours un câble USB. Connectez votre téléphone via USB à un ordinateur (hôte) avec un sshd en cours d'exécution. Sur un PC distant (invité), démarrez un client SSH capable de rediriger les ports / de tunnelliser. Exemple:

plink -L 5037:localhost:5037 <host_IP_address>

J'utilise cette construction pour connecter mon appareil à une machine virtuelle. Eltima USB to Ethernet n'était pas assez stable (timeouts pendant le débogage).

Le tunneling SSH fonctionne gratuitement et est plus fiable.

Ron
la source
4

Je trouve les autres réponses déroutantes. AdbWireless est beaucoup plus simple à utiliser:

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

Installez simplement une application sur votre téléphone pour basculer le débogage sur le wifi, installez un plug-in Eclipse et vous avez terminé.


la source
De quel plug-in eclipse parlez-vous? Edit: Nevermind. Je l'ai trouvé en suivant le lien dans votre réponse.
ArtOfWarfare
Ce n'est que root
Zoe
3

J'ai rassemblé un fichier batch pour l'activation automatique et la connexion d'ADB via TCP à un appareil connecté via USB. Avec lui, vous n'avez pas à mettre l'IP manuellement.

@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
la source
3

Voici une extension de la réponse de Brian en utilisant Bluetooth:

  1. Sous Linux, utilisez Blueman pour partager Internet PC avec votre appareil 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. Utilisez le réseau Bluetooth pour les commandes 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

Une fois terminé pour revenir en mode USB:

$ adb disconnect
$ adb usb

Remarque: Bluetooth 3.0 et 4.0 peuvent aller jusqu'à 24 Mbit / s .

Wernight
la source
3

Pas :

  1. su - Pour passer en super utilisateur.
  2. setprop service.adb.tcp.port 5555 - Pour spécifier le port TCP - 5555 est le numéro de port ici
  3. stop adbd - Pour arrêter le service adbd.
  4. start adbd - Pour démarrer le service adbd.

cela fonctionne parfaitement avec sshmon PC Windows

J'essaie de le faire sur le démarrage de mon mobile cyanogène ou de le lancer avec plink. Avec plink, je ne peux pas lancer le shell avec su right ... la commande sudo ou su ne fonctionne pas. Au démarrage, je ne sais pas comment cela fonctionne! Mon programme shell fonctionne à partir de ssh avecsu -c "sh /storage/sdcard1/start_adb.sh" les 3 dernières commandes (sans su -)

Merci

séducteur
la source
2

Une remarque supplémentaire (appris à la dure): Vous ne devriez pas avoir la connexion VPN de votre entreprise active en même temps ...

TuomasG
la source
2

Vous devez faire les choses suivantes:

  • Tout d'abord, ajoutez ADB à votre chemin d'accès à l'environnement.
  • Depuis votre CLI, tapez cette commande adb connect YOUR_DEVICE_IP: PORT_NUMBER (exemple adb connect 192.168.100.100:5555 )
noman404
la source
2

Il existe deux façons de connecter votre appareil Android avec ADB sur TCP?

Première voie

Suivez ces étapes

Utilisez d'abord la commande ci-dessous pour obtenir l'adresse IP de votre appareil

adb shell ifconfig

SORTIE de la commande ci-dessus

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

Avec l'aide de la commande ci-dessus, vous trouverez l'adresse IP de l'appareil connecté

Utilisez maintenant la commande ci-dessous

adb tcpip 5555

La commande ci-dessus redémarrera ce port TCP: 5555

Utilisez maintenant la commande ci-dessous pour connecter votre appareil

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

Deuxième voie

Vous pouvez utiliser le plug-in Android Studio Android device with ADB

Android WiFi ADB - Plugin IntelliJ / Android Studio

Plugin IntelliJ et Android Studio créé pour connecter rapidement votre appareil Android via WiFi pour installer, exécuter et déboguer vos applications sans connexion USB. Appuyez sur un bouton et oubliez votre câble USB

Veuillez consulter cet article pour plus d'informations

Connectez un appareil Android avec Wifi dans Android Studio

Nilesh Rathod
la source
2

Je suis struct au même problème mais un simple hack adb reverse tcp:<PORT> tcp:<PORT> fonctionné pour moi. Il permet au système d'accepter les requêtes TCP.

Merci pour la lecture

Radha Manohar
la source
1

Utilisez l'application adbwireless pour activer le téléphone, puis utilisez adb connect depuis la machine Windows pour lui parler. L'application adbwireless sur le téléphone vous indique comment vous y connecter, en donnant l'adresse IP et tout le reste.

L'alternative beaucoup moins amusante consiste à se connecter via USB, à dire au téléphone d'utiliser TCPIP via adb tcpip 5555, puis à déconnecter USB, puis à utiliser adb connect. C'est beaucoup plus difficile car de cette façon, vous devez déterminer vous-même l'adresse IP du téléphone (adbwireless vous indique l'IP), vous devez vous connecter via USB et vous devez exécuter adb tcpip (adbwireless s'en charge également).

Alors: installez adbwireless sur votre téléphone. Utilise le. C'est possible, je le fais régulièrement sous Linux et sous Windows.

Partie concernée
la source
1

Sur mon système, cela se passait comme ceci:

Sur mon appareil Android dans mon shell Linux, un simple "ifconfig" ne m'a pas donné mon adresse IP. J'ai dû taper:

ifconfig eth0

-ou-

netcfg

pour obtenir mon adresse IP. (Je savais que eth0 était configuré parce que je l'ai vu dans mon dmesg.) Ensuite, j'ai fait:

setprop service.adb.tcp.port -1

arrêter adbd

commencer adbd

Puis sur ma box Win7 (celle qui exécute Eclipse 3.7.1). J'ai ouvert une invite de commande pour

\ android-sdk \ platform-tools>

sans exécuter en tant qu'administrateur. Ensuite, j'ai fait

adb connect 12.345.678.90

Je n'ai jamais mis de port. Si je faisais un

adb tcpip 5555

il a dit qu'il ne pouvait pas trouver l'appareil, puis rien ne figurait dans ma liste "appareils adb". C'est à dire que cela ne fonctionne que si je ne fais pas la commande tcpip ci-dessus.

Je peux faire un "shell adb" et jouer avec mon appareil Android. Mais mon appareil Android n'apparaît pas dans l'onglet Run-> Run Configurations-> Target pour le moment. D'un autre côté, si je garde l'onglet Cible réglé sur automatique. Ensuite, lorsque j'exécute mon application via Exécuter-> Exécuter, elle s'exécute sur mon appareil Android même si mon appareil Android n'est même pas répertorié comme l'une de mes cibles.

Joe C
la source
1

Je l'ai fait fonctionner. N'a pas utilisé de câble USB.

  • app adb sans fil.
  • Exécuter. Cela définira ip et port; Puis à dos

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

Lié.

Lee
la source