Wie kann ich mit Android ADB über TCP eine Verbindung zu Android herstellen? [geschlossen]

879

Ich versuche, eine Anwendung auf einem Motorola Droid zu debuggen , habe jedoch Schwierigkeiten, eine Verbindung zum Gerät über USB herzustellen. Mein Entwicklungsserver ist eine Windows 7 64-Bit-VM, die in Hyper-V ausgeführt wird. Daher kann ich im Gast oder vom Host keine direkte Verbindung über USB herstellen.

Ich habe einige verschiedene USB-over-TCP-Lösungen installiert, aber die Verbindung scheint Probleme zu haben, da der ADB- Monitor wiederholt meldet, dass der Devicemonitor die Überwachung nicht gestartet hat. Gibt es eine Möglichkeit, eine direkte Verbindung vom Client auf dem Entwicklungscomputer zum Daemon auf dem Gerät über das Netzwerk anstelle der USB-Verbindung oder möglicherweise anderer praktikabler Optionen herzustellen?

JDM
quelle
75
Bei Anschluss über USB : adb tcpip 5555. Trennen Sie USB, und zeigen Sie die IP-Adresse des Telefons an Settings > About Phone > Status. Nun adb connect 192.168.x.xund das war's. Keine Werkzeuge, keine Software. Funktioniert einfach.
andreszs
1
Was Andrew gesagt hat - dies sind die offiziellen Anweisungen von Googles Android-Entwickler-Website , kein Root erforderlich. Ich habe gerade an meinem nicht verwurzelten HTC One m8 gearbeitet (erfordert natürlich die Aktivierung von Entwickleroptionen).
Jeff Ward
Wenn der ADB-Dienst an Port 5037 ausgeführt wird, warum werden dann Geräte im Bereich von 5555 bis 5585 gefunden?
Shivam Aggarwal
@ Andrew Kann ich eine App wie diese zu öffnen und den Port ohne Computer auf einem Nexus 6 ohne Root - Zugriff zu schließen? Ich bin besorgt über die Sicherheitsprobleme, die entstehen können, wenn Port 5555 offen bleibt, wenn ich mich in einem öffentlichen Netzwerk befinde und mein Telefon nicht für die Entwicklung verwende.
DaveTheMinion

Antworten:

1205

Manueller Prozess

Von Ihrem Gerät, wenn es gerootet ist

Laut einem Beitrag über xda-Entwickler können Sie ADB über Wi-Fi vom Gerät aus mit den folgenden Befehlen aktivieren:

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

Und Sie können es deaktivieren und ADB wieder auf USB mit hören

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

Von einem Computer aus, wenn Sie bereits über USB-Zugang verfügen (kein Root erforderlich)

Es ist noch einfacher, auf Wi-Fi umzusteigen, wenn Sie bereits über USB verfügen. Geben Sie über eine Befehlszeile auf dem Computer, an den das Gerät über USB angeschlossen ist, die Befehle aus

adb tcpip 5555
adb connect 192.168.0.101:5555

Stellen Sie sicher, dass Sie 192.168.0.101die IP-Adresse ersetzen, die Ihrem Gerät tatsächlich zugewiesen ist. Sobald Sie fertig sind, können Sie die Verbindung zur ADB-TCP-Sitzung trennen, indem Sie Folgendes ausführen:

adb disconnect 192.168.0.101:5555

Sie können die IP-Adresse eines Tablets auf zwei Arten ermitteln:

Manuelle IP-Erkennung:

Gehen Sie in die WLAN-Einstellungen von Android, klicken Sie auf die Menüschaltfläche in der Aktionsleiste (vertikale Auslassungspunkte), klicken Sie auf Erweitert und sehen Sie die IP-Adresse am unteren Bildschirmrand.

Verwenden Sie ADB, um IP zu ermitteln:

Führen Sie den folgenden Befehl über adb aus:

adb shell ip -f inet addr show wlan0

Um dem ADB-Daemon mitzuteilen, dass er wieder über USB lauschen soll

adb usb

Apps zur Automatisierung des Prozesses

Es gibt auch mehrere Apps bei Google Play, die diesen Prozess automatisieren. Eine schnelle Suche schlägt adbWireless , WiFi ADB und ADB WiFi vor . All dies erfordert Root-Zugriff, aber adbWireless erfordert weniger Berechtigungen.

Brian
quelle
3
Benötigen Sie dazu Root-Zugriff? Ich scheine in der Lage zu sein, die Befehle über das Terminal auszuführen, aber es scheint nicht wirklich zu funktionieren ...
JJ
6
@ JJ - Leider ja. Root erforderlich.
Kingsolmn
178
Für die zweite Lösung ( adb tcipip 5555und adb connect ...es ist keine Wurzel notwendig.
Ridcully
11
adb tcpip <port>noch erfordert entweder ro.kernel.qemuEigenschaft festgelegt werden (im Emulator - Modus ausgeführt wird ), ro.secure0 (dh einer verwurzelte Gerät) zu sein, oder ro.debuggableund service.adb.rootauf 1 gesetzt werden , adbdeinfach nicht über eine TCP / IP - Verbindung öffnen , wenn keine der oben genannten erfüllt ist. Informationen adb_main zu der secureVariablen finden Sie unter netmite.com/android/mydroid/system/core/adb/adb.c . adbdAuf meinem nicht gerooteten 2.3.7 wechselt Android überhaupt nicht in den TCP / IP-Modus.
Soulseekah
2
Großartig! Die zweite Lösung erfordert wirklich kein Root!
Grzegorz D.
132

Dies ist wirklich einfach, wenn Ihr Telefon gerootet ist.

Laden Sie einen Terminalemulator von Google Play herunter (es gibt viele, die kostenlos sind). Stellen Sie sicher, dass Ihr Android-Gerät mit Ihrem WLAN verbunden ist, und erhalten Sie die WLAN- IP-Adresse. Öffnen Sie das Terminalprogramm und geben Sie Folgendes ein:

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

Gehen Sie nun zu Ihrem Computer (vorausgesetzt, Sie verwenden Windows) und erstellen Sie auf dem Desktop eine Verknüpfung für "cmd.exe" (ohne Anführungszeichen).

Klicken Sie mit der rechten Maustaste auf die cmd-Verknüpfung und wählen Sie "Run as Administrator"

Wechseln Sie in Ihren android-sdk-windows\toolsOrdner

Art:

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

(example: adb connect 192.168.0.105:5555)

adb sollte jetzt sagen, dass Sie verbunden sind.

Hinweis: Wenn Sie zu schnell sind, um den Befehl connect zu erteilen, kann dies fehlschlagen. Versuchen Sie es also mindestens zweimal im Abstand von fünf Sekunden, bevor Sie sagen, dass dies nicht funktioniert.

normannisch
quelle
6
Diese Antwort war besser für mich, weil sie erklärte, welcher Teil auf dem Gerät und welcher auf dem Computer ausgeführt werden sollte.
Eduardo
5
VOR "adb tcpip 5555" DO "adb kill-server". NACH "adb connect 192.168.0.101:5555" DO "adb Geräte" ODER "adb shell" (connect startet Shell nicht).
Samis
Ich habe es versucht adb tcpip 5555und dann die andere Person adb connect myIP:5555auf ihrem PC hingerichtet . Er konnte eine App auf meinem Telefon installieren, aber er konnte sie nicht remote debuggen. Ist es möglich, remote zu debuggen? Auf meinem Handy gab es waiting for debuggerfür immer einen Dialog .
Angelina
Macht dies die Einstellungen über Neustarts hinweg dauerhaft?
Hritik
Funktioniert dies mit der IPv6-Adresse über das mobile Internet?
CaptainFreedom
94
  1. Schließen Sie das Gerät über USB an und stellen Sie sicher, dass das Debuggen funktioniert. Führen Sie dann Folgendes aus:

    adb tcpip 5555
    adb connect <DEVICE_IP_ADDRESS>:5555
  2. Trennen Sie USB und fahren Sie mit dem drahtlosen Debuggen fort.

  3. Wenn Sie fertig sind und wieder zum USB-Debugging wechseln möchten, führen Sie Folgendes aus:

    adb -s <DEVICE_IP_ADDRESS>:5555

Um die IP-Adresse Ihres Geräts zu ermitteln, gehen Sie Settings > Wi-Fi > Advanced > IP Addressauf Ihrem Gerät zu oder führen Sie es aus adb shell netcfg.

Keine Wurzel erforderlich. Es kann jeweils nur ein Gerät debuggt werden.

Siehe diesen XDA-Beitrag .

Der adbBefehl befindet sich im platform-toolsOrdner des Android SDK.

Ribin Haridas
quelle
2
Tatsächlich können Sie viele Geräte gleichzeitig anschließen, wenn Sie die richtige Reihenfolge einhalten. Stellen Sie einfach den TCPIP für jedes Telefon einzeln auf 5555 ein und geben Sie dann den Verbindungsbefehl für jedes Telefon und voilá aus. Alle sind mit adb verbunden.
andreszs
Das Debuggen ist etwas langsamer, wenn mein Telefon auf diese Weise verbunden ist. Manchmal schläft es auch ein und das führt zu einer sofortigen Trennung.
Aron Lorincz
Auf einigen Geräten muss die Verzögerung zwischen dem Befehl adb tcpip und dem Befehl adb connect sehr gering sein, da sie sonst nicht funktioniert. Auch für mich hat es funktioniertadb tcpip 5555 && adb connect <DEVICE_IP_ADDRESS>:5555
vhamon
61

Angenommen, Sie haben den ADB-Pfad in Ihrem Windows-Umgebungspfad gespeichert

  1. Aktivieren Sie den Debug-Modus in Android

  2. Verbinden Sie den PC über USB

  3. Öffnen Sie den Eingabeaufforderungstyp: adb tcpip 5555

  4. Trennen Sie Ihr Tablet oder Smartphone vom PC

  5. Öffnen Sie den Eingabeaufforderungstyp: adb connect IPADDRESS(IPADDRESS ist die DHCP / IP-Adresse Ihres Tablets oder Smartphones, die Sie über WLAN -> aktuell verbundenes Netzwerk finden können.)

Jetzt sollten Sie in der Eingabeaufforderung das Ergebnis wie folgt sehen: verbunden mit xxx.xxx.xxx.xxx:5555

MapleLover
quelle
Vielen Dank für die Abfolge der Schritte und die genaue Angabe, wann der PC getrennt werden muss.
Manju
53

Von adb --help:

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

Das ist übrigens eine Kommandozeilenoption.

Sie sollten versuchen, das Telefon mit Ihrem WLAN zu verbinden, und dann die IP-Adresse von Ihrem Router erhalten. Im Mobilfunknetz wird es nicht funktionieren.

Der Port ist 5554.

Nathan
quelle
1
Ich hatte das mit 5555-5558 und jetzt 5554 versucht und es funktioniert aus irgendeinem Grund nicht. Grundsätzlich über eine Befehlszeile: adb kill-server adb connect 10.10.10.100:5554 mit dem Ergebnis, dass * daemon nicht ausgeführt wird. Jetzt starten * * Daemon erfolgreich gestartet * Verbindung zu 10.10.10.100:5554 nicht möglich. Ich kann die IP-Adresse des Geräts von der Entwickler-Workstation aus anpingen. Wenn die Ausgabe "Daemon erfolgreich gestartet" lautet, sollte sie sich nicht auf den Daemon auf dem Gerät beziehen? Versucht es möglicherweise, den Emulator zu verwenden? Wie stelle ich sicher, dass der Dämon auf dem Gerät ausgeführt wird? danke
JDM
2
Sie sollten zuerst, adb tcpip portda der Standard das Debuggen über USB ist. Nach letzterem können Sie eine Verbindung herstellen connect host:portund es sollte funktionieren
Aiden Strydom
"adb tcpip port" buchstäblich? das gibt nur die Zeichenfolge "Fehler: Gerät nicht gefunden" zurück - gibt es einen Tippfehler? Oder soll ich hier etwas ersetzen?
BrainSlugs83
3
ÄHHH!! Es hat herausgefunden, dass die Standardportnummer für CyanogenMod 5555 ist! NETT. : D
BrainSlugs83
@Michael funktioniert möglicherweise in einigen Mobilfunknetzen, aber ihre Netzwerkkonfigurationen sind im Grunde genommen Black Boxes - Sie wissen nicht, wann / ob Sie sich hinter einer Firewall befinden, ob Ports blockiert werden, ob die NAT-Übersetzung läuft usw.
BrainSlugs83
45

Für Windows-Benutzer:

Schritt 1:
Sie müssen die Entwickleroptionen auf Ihrem Android-Telefon aktivieren.
Auf diese Weise können Sie Entwickleroptionen aktivieren.
• Öffnen Sie Einstellungen> Info> Softwareinformationen> Mehr.
• Tippen Sie anschließend sieben Mal auf „Build-Nummer“, um die Entwickleroptionen zu aktivieren.
• Gehen Sie zurück zum Menü "Einstellungen" und sehen Sie dort "Entwickleroptionen".
• Tippen Sie darauf und aktivieren Sie das USB-Debugging im Menü des nächsten Bildschirms.

Schritt 2:

Öffnen Sie cmd und geben Sie adb ein.
Wenn Sie feststellen, dass der Befehl adb nicht gültig ist, müssen Sie der Umgebungsvariablen einen Pfad hinzufügen.

• Gehen Sie zuerst zu Ihrem SDK-installierten Ordner.
Folgen Sie diesem Pfad und dieser Pfad ist nur ein Beispiel. D: \ Software \ Entwicklung \ Andoird \ SDK \ sdk \ Plattform-Tools \; D: \ Software \ Entwicklung \ Andoird \ SDK \ sdk \ tools;
• Suchen Sie jetzt in der erweiterten Windows-Systemeinstellung

• • Geben Sie hier die Bildbeschreibung ein

Öffnen Sie die Umgebungsvariable.

Geben Sie hier die Bildbeschreibung ein

Öffnen Sie dann den Pfad und fügen Sie den folgenden Pfad ein. Dies ist ein Beispiel.
Ihr SDK-Pfad unterscheidet sich von meinem. Bitte verwenden Sie Ihren. D: \ Software \ Entwicklung \ Andoird \ SDK \ sdk \ Plattform-Tools \;
D: \ Software \ Entwicklung \ Andoird \ SDK \ sdk \ tools;

Geben Sie hier die Bildbeschreibung ein

Schritt 3:

Öffnen Sie cmd und geben Sie adb ein. Wenn Sie immer noch sehen, dass der Befehl adb nicht gültig ist, wurde Ihr Pfad nicht richtig eingestellt. Befolgen Sie die obigen Schritte.

Geben Sie hier die Bildbeschreibung ein

Jetzt können Sie Ihr Android-Handy an den PC anschließen.

Öffnen Sie cmd und geben Sie adb Geräte ein. Sie können Ihr Gerät sehen. Finden Sie Ihre Telefon-IP-Adresse.

Geben Sie hier die Bildbeschreibung ein

Typ: - adb tcpip 5555

Geben Sie hier die Bildbeschreibung ein

Holen Sie sich die IP-Adresse Ihres Telefons

adb shell netcfg

Jetzt,

adb connect "IP address of your phone"

Führen Sie nun Ihr Android-Projekt aus. Wenn Sie Ihr Gerät nicht sehen, geben Sie erneut die adb connect IP-Adresse Ihres Telefons ein

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Für Linux- und MacOS-Benutzer :

Schritt 1: Öffnen Sie das Terminal und installieren Sie adb mit

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

Verbinden Sie Ihr Telefon über ein USB-Kabel mit dem PC. Geben Sie den folgenden Befehl in das Terminal ein

adb tcpip 5555

Verbinden Sie mit adb die IP-Adresse Ihres Android-Telefons.

Entfernen Sie Ihr Telefon.

Raghav Thakkar
quelle
36

Von einem Computer auf einem nicht gerooteten Gerät

(Beachten Sie, dass dies auch mit einem gerooteten Gerät möglich ist. Sie können jedoch eine Shell auf einem gerooteten Gerät verwenden, für das keine USB-Verbindung erforderlich ist.)

Öffnen Sie zunächst die Eingabeaufforderung (CMD). Wenn Sie Android Studio oder IntelliJ verwenden, ist dort eine Konsole enthalten, die Sie verwenden können.

Wenn Sie dem Pfad adb hinzugefügt haben, können Sie den CD-Teil überspringen.


Öffnen Sie nach Möglichkeit den SDK-Speicherort, klicken Sie mit der rechten Maustaste und drücken Sie "Eingabeaufforderung hier starten". Nicht alle haben diese Option, daher müssen Sie auch diese (/ diese) Befehle ausführen:

Windows: Ändern Sie das Laufwerk (falls zutreffend).

D: 

Und greifen Sie auf die SDK- und Plattform-Tools zu. Ersetzen Sie diesen Pfad durch Ihren SDK-Speicherort:

cd /sdk/path/here/platform-tools

Jetzt haben Sie Zugriff auf die Android-Debug-Bridge.


Führen Sie bei angeschlossenem Gerät Folgendes aus:

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

Wo <port>ist der Port, zu dem Sie eine Verbindung herstellen möchten (Standard ist 5555) und <ip>ist die IP des Geräts, zu dem Sie eine Verbindung herstellen möchten.

Bitte beachten Sie: 5555ist der Standardport und nur durch Schreiben der IP-Adresse wird eine Verbindung hergestellt. Wenn Sie einen benutzerdefinierten Port verwenden, können Sie die Sicherheit zumindest ein wenig verbessern. USB-Debugging über Wi-Fi kann missbraucht werden, jedoch nur, wenn das Gerät mit dem Computer verbunden ist, der das Gerät missbrauchen möchte. Die Verwendung eines nicht standardmäßigen Ports erschwert zumindest die Verbindung.

Wenn Sie einen benutzerdefinierten Port verwenden, müssen Sie ihn nach der IP hinzufügen. Wenn Sie keinen Port schreiben, wird eine Verbindung hergestellt, 5555und wenn Sie diese nicht verwendet haben, schlägt die Verbindung fehl.

Sie können die IP-Adresse eines Geräts auf zwei Arten ermitteln:

  • Abhängig von Ihrem Gerät können die genauen Namen variieren. Öffnen Sie die Einstellungen und gehen Sie zu Info Gerät -> Status -> IP-Adresse

  • Verwenden Sie ADB, um die IP zu erhalten

Führen Sie von der Konsole aus Folgendes aus:

adb shell ip -f inet addr show wlan0

Sobald Sie mit der Verbindung fertig sind, können Sie das Gerät wie folgt von Ihrem Computer trennen:

adb disconnect <ip>:<port>

Oder keine IP, um alle Geräte zu trennen. Wenn Sie einen benutzerdefinierten Port verwendet haben, müssen Sie angeben, von welchem ​​Port die Verbindung getrennt werden soll . Der Standardwert ist auch hier 5555.

Um den Port zu deaktivieren (falls Sie dies möchten), führen Sie diesen Befehl mit angeschlossenem Gerät aus:

adb usb

Oder Sie können das Gerät neu starten, um die TCPIP-Verbindung zu entfernen

Von einem Computer auf einem gerooteten Gerät

Zunächst benötigen Sie Zugriff auf die Shell. Sie schließen das Gerät entweder über ein USB-Kabel an und verwenden adb shelleine App von Google Play, FDroid oder einer anderen Quelle oder laden sie herunter.

Dann machst du:

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

Und um das Gerät anzuschließen, gehen Sie wie in der nicht gerooteten Version vor adb connect <ip>:<port>.

Und wenn Sie den Port deaktivieren und zum USB-Hören zurückkehren möchten:

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

Sie können auch ein Android Studio-Plugin verwenden, um dies für Sie zu tun (merken Sie sich den Namen noch nicht). Für Benutzer mit Root-Status besteht auch die Möglichkeit, eine Android-App herunterzuladen, um die Telefonverbindung einzurichten (adb connect ist wahrscheinlich noch erforderlich ).

Einige Telefone verfügen über eine Einstellung in den Entwickleroptionen (dies gilt für einige nicht gerootete Telefone, wahrscheinlich auch für einige gerootete Telefone), mit der ADB über WLAN vom Gerät selbst ohne Root oder Computerverbindung umgeschaltet werden kann, um es zu starten. Obwohl es nur wenige Telefone gibt, die das haben

Zoe
quelle
adb shell ip -f inet addr show wlan0 Soll die IP-Adresse und die Portunterstützung irgendwo dort ersetzt werden?
Michael
nicht in dieser Zeile. Das ist der Shell-Weg, um die IP zu erhalten. Nichts in dieser Zeile sollte ersetzt werden
Zoe
33

Ich musste sowohl USB als auch TCPIP für ADB zum Laufen bringen (fragen Sie nicht), also habe ich Folgendes getan (unter Verwendung der Anweisungen, die andere von xda-Entwicklern gepostet haben)

Verwenden von 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
quelle
Funktioniert nicht: adbd nicht gefunden. adbd wird normalerweise über start adbd gestartet. Aber vielleicht gibt es ein Skript / eine ausführbare Datei in einem Ordner?
KrisWebDev
1
Auf meinem Gnex ist es /sbin/adbd. Das kann telefonisch variieren. Natürlich müssen Sie verwurzelt sein ... Wenn Sie nicht verwurzelt sind, können Sie nicht auf / sbin zugreifen.
Transistor1
32

So verbinden Sie Ihr Tablet über den TCP-Port Stellen Sie sicher, dass Ihr System und Ihr Gerät mit demselben Netzwerk verbunden sind.

  1. Öffnen Sie die Konsole cmd.exe
  2. Art adb tcpip 5555
  3. Gehen Sie zu System -> Entwicklungsoption -> USB-Debugging -> Deaktivieren Sie diese Option für die TCPIP-Verbindung
  4. Geben Sie ein, dass adb connect 192.168.1.2dies die IP-Adresse Ihres Geräts ist
  5. Verbunden mit 192.168.1.2

Verbunden über Portweiterleitung Versuchen Sie, die Portweiterleitung durchzuführen.

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

mögen:

adb forward tcp: 5555 tcp: 5555.

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

C: \ Users \ abc> adb tcpip 7612 Neustart im TCP-Modus Port: 7612

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

verbunden mit 10.0.0.1:7612

Wenn die Meldung angezeigt wird, dass das Gerät nicht gefunden wurde, verbinden Sie ein USB-Gerät mit dem System. Gehen Sie dann genauso vor.
für ein gerootetes Gerät

setprop service.adb.tcp.port 5555
stop adbd
start adbd
Rinkesh
quelle
2
Schreiben Sie in der Konsole suzuerst, um eine Root-Konsole zu erhalten.
Grim
30

Ich weiß nicht, wie ich das Gerät ohne USB-Verbindung anschließen soll, aber wenn Sie es schaffen, es möglicherweise an einem anderen Computer anzuschließen, können Sie den ADBD durch Ausgabe in den TCP-Modus schalten

adb tcpip <port>

von einem Terminal aus und stellen Sie über WLAN von jedem PC im Netzwerk aus eine Verbindung zu Ihrem Gerät her, indem Sie:

adb connect <ip>:<port>

Möglicherweise ist es auch möglich, von einem Terminal des Geräts in den TCP-Modus zu wechseln.

Christoph
quelle
Von all den komplizierten Antworten, die massive Gegenstimmen erhalten haben, ist diese 8-jährige Antwort die einfachste und funktioniert. Kein Rooting erforderlich. Geben Sie einfach 'adb connect <ip>: 5555' ein und es kann bereitgestellt werden.
RogerW
29

Zuerst müssen Sie Ihr Gerät über USB anschließen

Schließen Sie dann Ihr Gerät an WIFI an und erhalten Sie die IP-Adresse. Während Sie noch eine Verbindung über USB herstellen, geben Sie dies in die Befehlszeile oder über das Android Studio Terminal ein

adb tcpip 5555
adb connect <device IP>:5555

Sie sehen diese Meldungen:

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

Entfernen Sie nun das USB-Kabel und Sie sehen Ihren Logcat weiterhin wie gewohnt

Erledigt. Genießen

Joolah
quelle
Das hat funktioniert. Jedoch. Nachdem ich diese Schritte ausgeführt habe, kann ich nicht mehr zum Emulator zurückkehren. Vorschläge?
Tim Scott
Sie müssen Ihre ADB neu starten mit: <ADB Kill-Server> und dann <ADB Start-Server>
Joolah
21

Wenn Sie Ihr Gerät einfach verbinden möchten, um Ihre Android-Apps über WLAN auszuführen, zu debuggen oder bereitzustellen, können Sie ein von mir entwickeltes Open-Source-IntelliJ-Plugin verwenden. Hier ist der Code und hier das Plugin einsatzbereit.

Die Verwendung ist recht einfach. Hier hast du ein GIF:

Geben Sie hier die Bildbeschreibung ein

Pedro Vicente Gómez Sánchez
quelle
Dieser Fehler tritt auf: "'adb'command not found. Überprüfen Sie Ihre Android SDK-Installation.
rostamiani
1
Sie müssen eine Umgebungsvariable mit dem Namen ANDROID_HOME deklarieren. Aber ich habe eine PR anhängig, um dies zu vermeiden. Mit der Version 1.2, die ich nächste Woche veröffentlichen werde, funktioniert das Plugin nur mit installiertem IntelliJ :)
Pedro Vicente Gómez Sánchez
Ich benutze Mac, sehe kein Symbol in AS? Muss ich zuerst etwas manuell machen?
Pulver366
1
Ich habe bereits eine neue Version veröffentlicht, in der die Umgebungsvariable ANDROID_HOME nicht mehr benötigt wird. @ Pulver366 Sie müssen das Plugin aus dem IntelliJ Plugins Store installieren, um es manuell zu installieren. Alle Anweisungen zur Installation und Verwendung des Plugins finden Sie in der Projekt-Readme- Datei.
Pedro Vicente Gómez Sánchez
@ PedroVicenteGómezSánchez Danke. Ich habe das falsche Plugin ausgewählt, es gibt ein anderes Plugin mit ähnlichem Namen ...
Pulver366
11

Wie Brian sagte:

Laut einem Beitrag über xda-Entwickler können Sie ADB über WLAN vom Gerät aus mit den Befehlen aktivieren

setprop service.adb.tcp.port 5555

hör auf adbd

starte adbd

Und Sie können es deaktivieren und ADB wieder auf USB mit hören

setprop service.adb.tcp.port -1

hör auf adbd

starte adbd

Wenn Sie bereits über einen USB-Zugang verfügen, ist es noch einfacher, auf WLAN umzusteigen. Geben Sie über eine Befehlszeile auf dem Computer, an den das Gerät über USB angeschlossen ist, die Befehle aus

adb tcpip 5555

adb connect 192.168.0.101:5555

Um dem ADB-Daemon mitzuteilen, dass er wieder über USB lauschen soll

adb usb

Es gibt auch mehrere Apps im Android Market, die diesen Prozess automatisieren.

Es funktioniert. Sie müssen nur auf die Android-Shell zugreifen und diese Befehle eingeben ...

Eine andere (einfachere) Lösung ist auf dem Markt: adbWireless stellt Ihr Telefon automatisch ein.

Wurzel ist erforderlich! für beide...

natürlich
quelle
2
... aber nur wenn das Telefon gerootet ist.
android.weasel
Asus Transformer 301 - Arbeiten ohne Root erforderlich
Aiden Strydom
9
adb tcpip 5555

Seltsam, aber das funktioniert nur bei mir, wenn ich das USB-Kabel angeschlossen habe, dann kann ich den USB-Stecker aus der Steckdose ziehen und alles andere adb verwenden.

und das gleiche bei der Rückkehr zu USB,

adb usb

funktioniert nur, wenn USB verbunden ist.

Es ist egal, ob ich das ausstelle

setprop service.adb.tcp.port 5555

oder

setprop service.adb.tcp.port -1

dann stop & start adbd, ich brauche noch das usb kabel oder es funktioniert nicht.

Wenn mein ADB über USB nicht funktioniert hätte, wäre ich wahrscheinlich auch nicht in der Lage, ADB über WLAN zu aktivieren.

Chris
quelle
8

Um mit nur einem Befehl zwischen TCP- und USB-Modus zu wechseln, können Sie Folgendes hinzufügen /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

Und jetzt können Sie die Eigenschaft verwenden service.adb.tcp.enable, um das Abhören von Port 5555 zu aktivieren oder zu deaktivieren. Führen Sie diese Option aus netstat, um zu überprüfen, ob das Abhören erfolgt. Wie Sie sehen, wird es auch ausgelöst, wenn Sie service.adb.tcp.portmanuell ändern möchten .

Fehlerentwickler
quelle
8

Bash Util Funktion:

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

SCHRITT 1.

Stellen Sie sicher, dass sich sowohl Ihr ADB-Host-Computer als auch Ihr Android-Gerät im selben Wifi-Netzwerk befinden.

SCHRITT 2.

Verbinden Sie das Android-Gerät mit Ihrem USB-Kabel mit dem Computer. Sobald Sie dies tun, erkennt Ihr Host-Computer Ihr Gerät und adb wird im USB-Modus des Computers ausgeführt. Sie können die angeschlossenen Geräte mit überprüfen, adb deviceswährend Sie sicherstellen, dass adb im USB-Modus ausgeführt wird, indem Sie ausführen adb usb.

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


SCHRITT 3.

Starten Sie adb im tcpip-Modus mit diesem Befehl neu:

$ adb tcpip 5556
restarting in TCP mode port: 5556


SCHRITT 4.

Finden Sie die IP-Adresse des Android-Geräts heraus. Dafür gibt es verschiedene Möglichkeiten:

  • WEG: 1 Gehen Sie zu Einstellungen -> Über Telefon / Tablet -> Status -> IP-Adresse.
  • WEG: 2 Gehen Sie zur Liste der verfügbaren Wi-Fi-Netzwerke. Tippen Sie darauf und lernen Sie Ihre IP kennen.
  • WEG: 3 Versuchen Sie es $ adb shell netcfg.

Nachdem Sie die IP-Adresse Ihres Geräts kennen, verbinden Sie Ihren ADB-Host damit.

$ 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


SCHRITT 5.

Entfernen Sie das USB-Kabel und Sie sollten an Ihr Gerät angeschlossen sein. Wenn Sie es nicht sehen, stellen Sie die adb devicesVerbindung einfach mit dem Befehl des vorherigen Schritts wieder her:

$ 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

Entweder können Sie jetzt loslegen, oder Sie müssen Ihren ADB-Server durch Ausführen beenden adb kill-serverund alle Schritte erneut ausführen .

Ich hoffe, das hilft!


Referenz:

Eddy
quelle
Darüber hinaus können Sie die IP Ihres Geräts mit diesem Skript unter Unix abrufen: 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 Ein Zweifel, dass sowohl das System als auch das Mobiltelefon / Tablet über WLAN verbunden sein müssen oder das System über LAN und Tablet über einen WLAN-Router desselben Netzwerks verbunden sein muss. Bitte klären Sie es
iSrinivasan27
@ i-Droid Ich weiß nicht, warum beide im selben Netzwerk eine Verbindung herstellen müssen. Möglicherweise verwendet ADB ein spezielles Net Routing-Protokoll. Ich habe keine Ahnung und keine gründlichen Nachforschungen darüber. Wenn Sie Interesse daran haben, können Sie es gerne klären und mit mir teilen, danke!
Eddy
6

Dies sind die Schritte, denen ich gefolgt bin und die bei mir funktioniert haben.

  1. adb shell ifconfig (IP-Adresse des Geräts erhalten Sie hier)

  2. adb tcpip 7777 (adb an einen Port anschließen)

  3. adb connect "ipaddress": 7777

Tom Taylor
quelle
5

Sie können auch die lokale SSH-Portweiterleitung verwenden. Es handelt sich jedoch immer noch um ein USB-Kabel. Verbinden Sie Ihr Telefon über USB mit einem Computer (Host), auf dem ein SSHD ausgeführt wird. Starten Sie auf einem Remote- (Gast-) PC einen SSH-Client, der Portforwarding / Tunneling ausführen kann. Beispiel:

plink -L 5037:localhost:5037 <host_IP_address>

Ich verwende diese Konstruktion, um mein Gerät mit einer virtuellen Maschine zu verbinden. Eltima USB to Ethernet war nicht stabil genug (Timeouts während des Debuggens).

SSH-Tunneling funktioniert kostenlos und ist zuverlässiger.

Ron
quelle
4

Ich finde die anderen Antworten verwirrend. AdbWireless ist viel einfacher zu verwenden:

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

Installieren Sie einfach eine App auf Ihrem Telefon, um das Debuggen über WLAN umzuschalten, ein Eclipse-Plug-In zu installieren und fertig.


quelle
Auf welches Eclipse-Plug-In beziehen Sie sich? Edit: Nevermind. Finden Sie es, indem Sie dem Link in Ihrer Antwort folgen.
ArtOfWarfare
Dies ist jedoch nur Wurzel
Zoe
3

Ich habe eine Batch-Datei zum automatischen Aktivieren und Verbinden von ADB über TCP mit einem über USB verbundenen Gerät zusammengestellt. Damit müssen Sie die IP nicht manuell eingeben.

@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
quelle
3

Hier ist eine Erweiterung von Brians Antwort über Bluetooth:

  1. Verwenden Sie Blueman unter Linux, um das PC-Internet über Bluetooth mit Ihrem Gerät zu teilen:

    $ 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. Verwenden Sie das Bluetooth-Netzwerk für ADB-Befehle:

    $ 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

Sobald Sie fertig sind, um zum USB-Modus zurückzukehren:

$ adb disconnect
$ adb usb

Hinweis: Bluetooth 3.0 und 4.0 können bis zu 24 Mbit / s erreichen .

Wernight
quelle
3

Schritte :

  1. su - Zum Superuser wechseln.
  2. setprop service.adb.tcp.port 5555 - Um den TCP-Port anzugeben - 5555 ist hier die Portnummer
  3. stop adbd - Um den ADBD-Dienst zu stoppen.
  4. start adbd - Zum Starten des ADBD-Dienstes.

das funktioniert perfekt mit ssh von meinem Windows-PC

Ich versuche dies auf dem Boot meines Cyanogen-Handys zu tun oder starte dies mit plink. Mit plink kann ich die Shell nicht mit su richtig starten ... sudo oder su Befehl funktioniert nicht. Beim Booten weiß ich nicht, wie es funktioniert! Mein Shell-Programm arbeitet von ssh mit su -c "sh /storage/sdcard1/start_adb.sh"mit den letzten 3 Befehlen (ohne su -)

Vielen Dank

Anfänger
quelle
2

Ein zusätzlicher Hinweis (auf die harte Tour gelernt): Sie sollten nicht gleichzeitig die VPN-Verbindung Ihres Unternehmens aktiv haben ...

TuomasG
quelle
2

Sie müssen folgende Dinge tun:

  • Fügen Sie zunächst ADB zu Ihrem Umgebungspfad hinzu.
  • Geben Sie in Ihrer CLI diesen Befehl ein: adb connect YOUR_DEVICE_IP: PORT_NUMBER (Beispiel adb connect 192.168.100.100:5555 )
noman404
quelle
2

Es gibt zwei Möglichkeiten, Ihr Android-Gerät über TCP mit ADB zu verbinden.

Erster Weg

Befolgen Sie diese Schritte

Verwenden Sie zuerst den folgenden Befehl, um die IP-Adresse Ihres Geräts abzurufen

adb shell ifconfig

AUSGABE des obigen Befehls

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

Mit der Hilfe des obigen Befehls finden Sie die IP-Adresse des angeschlossenen Geräts

Verwenden Sie nun den folgenden Befehl

adb tcpip 5555

Der obige Befehl startet diesen TCP-Port neu: 5555

Verwenden Sie nun den folgenden Befehl, um Ihr Gerät anzuschließen

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

Zweiter Weg

Sie können das Android Studio Plugin verwenden Android device with ADB

Android WiFi ADB - IntelliJ / Android Studio Plugin

Das IntelliJ- und Android Studio-Plugin wurde erstellt, um Ihr Android-Gerät schnell über WLAN zu verbinden und Ihre Anwendungen ohne USB-Anschluss zu installieren, auszuführen und zu debuggen. Drücken Sie eine Taste und vergessen Sie Ihr USB-Kabel

Bitte überprüfen Sie diesen Artikel für weitere Informationen

Verbinden Sie das Android-Gerät mit Wifi in Android Studio

Nilesh Rathod
quelle
2

Ich bin strukturiert beim gleichen Problem, aber ein einfacher Hack adb reverse tcp:<PORT> tcp:<PORT> hat für mich funktioniert. Es ermöglicht dem System, TCP-Anforderungen zu akzeptieren.

Danke fürs Lesen

Radha Manohar
quelle
1

Verwenden Sie die adbwireless-App, um das Telefon zu aktivieren, und verwenden Sie dann adb connect vom Windows-Computer, um mit ihm zu sprechen. Die adbwireless App auf dem Telefon zeigt Ihnen, wie Sie eine Verbindung herstellen können, und gibt die IP-Adresse und alles an.

Die viel weniger unterhaltsame Alternative besteht darin, eine Verbindung über USB herzustellen, das Telefon anzuweisen, TCPIP über adb tcpip 5555 zu verwenden, dann USB zu trennen und dann adb connect zu verwenden. Dies ist viel schwieriger, da Sie auf diese Weise die IP-Adresse des Telefons selbst ermitteln müssen (adbwireless teilt Ihnen die IP mit), eine Verbindung über USB herstellen müssen und adb tcpip ausführen müssen (adbwireless kümmert sich auch darum).

Also: Installieren Sie adbwireless auf Ihrem Telefon. Benutze es. Es ist möglich, ich mache es routinemäßig unter Linux und unter Windows.

Betroffene Partei
quelle
1

Auf meinem System ging es so:

Auf meinem Android-Gerät in meiner Linux-Shell gab mir eine einfache "ifconfig" nicht meine IP-Adresse. Ich musste tippen:

ifconfig eth0

-oder-

netcfg

um meine IP-Adresse zu erhalten. (Ich wusste, dass eth0 konfiguriert ist, weil ich es in meinem dmesg gesehen habe.) Dann habe ich Folgendes gemacht:

setprop service.adb.tcp.port -1

hör auf adbd

starte adbd

Dann auf meiner Win7-Box (die mit Eclipse 3.7.1). Ich habe eine Eingabeaufforderung für geöffnet

\ android-sdk \ platform-tools>

ohne als admin zu laufen. Dann habe ich eine gemacht

adb connect 12.345.678.90

Ich habe nie einen Port gesetzt. Wenn ich a

adb tcpip 5555

es sagte, dass es das Gerät nicht finden konnte, dann erschien nichts in meiner "adb Geräte" -Liste. Dh es funktioniert nur, wenn ich den obigen Befehl tcpip NICHT ausführe.

Ich kann eine "ADB-Shell" erstellen und mit meinem Android-Gerät herumspielen. Mein Android-Gerät wird derzeit jedoch nicht auf der Registerkarte Ausführen-> Ausführungskonfigurationen-> Ziel angezeigt. Auf der anderen Seite, wenn ich die Registerkarte "Ziel" auf "Automatisch" halte. Wenn ich dann meine App über Run-> Run ausführe, wird sie auf meinem Android-Gerät ausgeführt, obwohl mein Android-Gerät nicht einmal als eines meiner Ziele aufgeführt ist.

Joe C.
quelle
1

Ich habe das zum Laufen gebracht. Ich habe kein USB-Kabel verwendet.

  • App ADB Wireless.
  • Starte es. Dadurch werden IP und Port festgelegt. Dann in dos

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

In Verbindung gebracht.

Lee
quelle