without - wlan debugging android




Wie kann ich eine Verbindung zu Android mit ADB über TCP herstellen? (20)

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

Ich habe ein paar verschiedene USB-über-TCP-Lösungen installiert, aber die Verbindung scheint Probleme zu haben, da der ADB Monitor wiederholt meldet, dass der "devicemonitor" die Überwachung nicht starten konnte. Gibt es eine Möglichkeit, eine direkte Verbindung vom Client auf dem Entwicklungscomputer zum Daemon auf dem Gerät über das Netzwerk statt über die USB-Verbindung oder möglicherweise andere praktikable Optionen herzustellen?


SCHRITT 1.

Stellen Sie sicher, dass sich Ihr adb-Hostcomputer und Ihr Android-Gerät im selben Wifi-Netzwerk befinden.

SCHRITT 2.

Verbinden Sie das Android-Gerät über das USB-Kabel mit dem Computer. Sobald Sie das tun, wird Ihr Host-Computer Ihr Gerät erkennen und adb wird im USB-Modus auf dem Computer ausgeführt werden. Sie können die angeschlossenen Geräte mit adb devices überprüfen adb devices während Sie sicherstellen, dass adb im USB-Modus ausgeführt wird, indem Sie adb usb ausführen.

$ 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.

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

  • WEG: 1 Gehe zu Einstellungen -> Über Telefon / Tablet -> Status -> IP-Adresse.
  • WEG: 2 Gehen Sie zu der Liste der verfügbaren Wi-Fi-Netzwerke. Derjenige, mit dem Sie verbunden sind, tippen Sie darauf und lernen Sie Ihre IP kennen.
  • WEG: 3 Versuchen Sie $ adb shell netcfg .

Jetzt, da du die IP-Adresse deines Geräts kennst, verbinde deinen 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 mit Ihrem Gerät verbunden sein. Wenn Sie es nicht in adb devices sehen, verbinden Sie es einfach mit dem Befehl des vorherigen Schritts:

$ 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 ist es gut, jetzt zu gehen, oder Sie müssen Ihren AdB-Server adb kill-server indem Sie adb kill-server ausführen und alle Schritte noch einmal wiederholen.

Ich hoffe, das hilft!


Referenz:


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 zuerst die Eingabeaufforderung (CMD). Wenn Sie Android Studio oder IntelliJ verwenden, können Sie dort eine Konsole verwenden.

Wenn möglich, öffnen Sie den SDK-Standort, klicken Sie mit der rechten Maustaste und drücken Sie "Start Eingabeaufforderung hier". Nicht alle haben diese Option, also müssen Sie auch diese (/ diese) Befehle ausführen:

Ä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:

D:/sdk/path/here/platform-tools

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

Führen Sie nun mit dem an den Computer angeschlossenen Gerät Folgendes aus:

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

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

Bitte beachten Sie: 5555 ist der Standardport und nur das Schreiben der IP-Adresse verbindet ihn. Wenn Sie einen benutzerdefinierten Port verwenden, können Sie die Sicherheit zumindest ein wenig verbessern. USB-Debugging über WLAN kann missbraucht werden, aber nur, wenn das Gerät mit dem Computer verbunden ist, der das Gerät missbrauchen möchte. Die Verwendung eines nicht standardmäßigen Ports macht es zumindest etwas schwieriger, eine Verbindung herzustellen.

Wenn Sie einen benutzerdefinierten Port verwenden, müssen Sie ihn nach der IP-Adresse hinzufügen. Schreiben kein Port verbindet sich mit 5555 und wenn Sie nicht verwendet haben, wird die Verbindung fehlschlagen.

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

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

  • Verwenden Sie ADB, um die IP zu erhalten

Von der Konsole aus:

adb shell ip -f inet addr show wlan0

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

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 5555.

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

adb usb

Oder Sie können das Gerät neu starten, um die TCP-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 mit einem USB-Kabel an und verwenden adb shell oder laden eine App von Google Play, FDroid oder einer anderen Quelle herunter.

Dann tust du:

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

Und um das Gerät zu verbinden, tun Sie wie in der nicht gerooteten Version, indem Sie adb connect <ip>:<port> .

Und wenn Sie den Port deaktivieren und zurück zu USB hören möchten:

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

Sie können auch ein Android Studio-Plugin für Sie verwenden (erinnern Sie sich nicht an den Namen), und für gerootete Benutzer gibt es auch die Möglichkeit, eine Android-App herunterzuladen, um die Telefonverbindung einzurichten (adb connect ist wahrscheinlich immer noch erforderlich) ).

Einige Telefone haben eine Einstellung in den Entwickleroptionen (dies gilt für einige nicht gerootete Telefone, obwohl wahrscheinlich auch einige gerootete Telefone), die ADB über WLAN vom Gerät selbst ohne root oder eine Computerverbindung umschalten können, um es zu starten. Obwohl es nur wenige Telefone gibt, die das haben


  1. Schließen Sie das Gerät über USB an und stellen Sie sicher, dass das Debugging funktioniert. Führen Sie dann Folgendes aus:

    adb tcpip 5555
    adb connect <DEVICE_IP_ADDRESS>:5555
    
  2. Trennen Sie den USB-Anschluss und fahren Sie mit dem drahtlosen Debugging fort.

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

    adb -s <DEVICE_IP_ADDRESS>:5555
    

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

Kein Root erforderlich. Nur ein Gerät kann gleichzeitig debuggt werden.

Siehe diesen XDA-Beitrag .

Der Befehl adb befindet sich im Ordner " platform-tools " des Android SDK.


Angenommen, Sie haben den Adb-Pfad in Ihren Windows-Umgebungspfad gespeichert

  1. Aktivieren Sie den Debug-Modus in Android

  2. Verbinden Sie sich mit dem PC über USB

  3. Öffnen Sie die Eingabeaufforderung Geben Sie Folgendes ein: adb tcpip 5555

  4. Trennen Sie Ihr Tablet oder Smartphone vom PC

  5. Öffnen Sie die Eingabeaufforderung Geben Sie Folgendes ein: adb connect IPADDRESS (IPADDRESS ist die DHCP / IP-Adresse Ihres Tablets oder Smartphones, die Sie über Wi-Fi finden können -> aktuelles verbundenes Netzwerk)

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


Dies ist sehr 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 Sie die Wi-Fi- IP-Adresse erhalten. Öffnen Sie das Terminalprogramm und geben Sie Folgendes ein:

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

Gehen Sie jetzt zu Ihrem Computer (vorausgesetzt Sie verwenden Windows) und erstellen Sie eine Verknüpfung auf dem Desktop für "cmd.exe" (ohne die Zitate).

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

Wechseln Sie in den Ordner android-sdk-windows\tools

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 Verbindungsbefehl zu geben, kann dies fehlschlagen. Also versuche mindestens zwei mal fünf Sekunden, bevor du sagst, dass das nicht funktioniert.


Eine zusätzliche Anmerkung (auf die harte Tour gelernt): Sie sollten nicht gleichzeitig Ihre Firmen-VPN-Verbindung aktiv haben ...


Ich finde die anderen Antworten verwirrend. Viel einfacher zu adbWireless zu verwenden:

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

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


Ich folgte nur den folgenden Schritten und es begann zu arbeiten, so dass ich mit meinem Android-Gerät verbinden kann.

Schritt 1: Öffnen Sie das Terminalfenster in Android Devices und führen Sie den folgenden Befehl aus.

  1. su - Um zu Super User zu wechseln.
  2. setprop service.adb.tcp.port 5555 - Um den TCP-Port zu spezifizieren - 5555 ist hier die Portnummer
  3. stop adbd - Um den adbb-Dienst zu stoppen.
  4. adbd starten - Adbd Service starten.

Schritt 2: Führen Sie über ADB den Befehl bellow aus (aus dem Pfad, in dem ADB konfiguriert ist).

adb connect 10.10.10.50:5555 - Hier ist 10.10.10.50 die IP-Adresse des Android-Geräts und 5555 ist die Portnummer.


Ich habe eine Batchdatei für die automatische Aktivierung und Verbindung von ADB über TCP mit einem über USB angeschlossenen 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

Ich habe eine bequeme Methode gefunden, die ich gerne teilen würde.

Für Windows

USB-Zugang einmal haben

Kein Root erforderlich

Verbinden Sie Ihr Telefon und Ihren PC mit einem Hotspot oder führen Sie einen mobilen Hotspot von Ihrem Telefon aus und verbinden Sie Ihren PC damit.

Holen Sie sich die IP-Adresse Ihres Telefons, wie von brian vorgeschrieben (Wird nicht benötigt, wenn Sie Hotspot von Ihrem Telefon aus machen)

adb shell ip -f inet addr show wlan0

Öffnen Sie den Editor

Schreiben Sie diese

@echo off
cd C:\android\android-sdk\platform-tools
adb tcpip 5555
adb connect 192.168.43.1:5555

Ändern Sie den Speicherort oben, wo Ihr PC die Datei abd.exe enthält

Ändern Sie die IP-Adresse in die IP-Adresse Ihres Telefons.

Hinweis : Die oben angegebene IP-Adresse ist die Basis-IP eines Android-Geräts, wenn ein Hotspot erstellt wird. Wenn Sie eine Verbindung zu einem WLAN-Netzwerk herstellen und sich die IP-Adresse Ihres Geräts während der Verbindung mit einem Hotspot jedes Mal ändert, können Sie es statisch machen, indem Sie es innerhalb der WLAN-Einstellungen konfigurieren. Google es.

Speichern Sie die Datei jetzt als ABD_Connect.bat (MS-DOS-Batch-Datei).

Speichern Sie es irgendwo und verweisen Sie eine Verknüpfung auf Desktop oder Start.

Verbinden Sie sich einmal über USB und versuchen Sie, eine Anwendung auszuführen. Danach, wenn Sie eine drahtlose Verbindung herstellen möchten, doppelklicken Sie auf die Verknüpfung.

Hinweis : Manchmal müssen Sie die Verknüpfung jedes Mal öffnen, wenn Sie die Anwendung debuggen. Es ist also bequemer, einen Shortcut-Schlüssel für die Verknüpfung im Desktop zu erstellen. Ich habe eine Tastenkombination wie Ctrl+Alt+S . Wann immer ich debuggen möchte, drücke ich Shift+F9 und Ctrl+Alt+S

Hinweis : Wenn Sie im cmd-Fenster Gerät = Null-Fehler finden, überprüfen Sie Ihre IP-Adresse, sie hat sich möglicherweise geändert.


Ich weiß nicht, wie man das Gerät ohne irgendeine USB-Verbindung überhaupt anschließt, aber wenn Sie es schaffen, es möglicherweise an einem anderen Computer anzuschließen, können Sie den adbd in den TCP-Modus schalten, indem Sie ausgeben

adb tcpip <port>

von einem Terminal und verbinden Sie sich mit Ihrem Gerät über WLAN von jedem PC im Netzwerk aus:

adb connect <ip>:<port>

Vielleicht ist es auch möglich, von einem Terminal auf dem Gerät in den TCP-Modus zu wechseln.


Sie können auch die lokale SSH-Portweiterleitung verwenden. Aber es beinhaltet immer noch 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-PC (Gast) 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 zu Ethernet war nicht stabil genug (Timeouts während des Debugging).

SSH-Tunneling funktioniert kostenlos und ist zuverlässiger.


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

  1. Öffne die Konsole cmd.exe
  2. adb tcpip 5555
  3. Gehen Sie zu System -> Entwicklungsoption -> USB-Debugging -> Deaktivieren Sie es für die TCPIP-Verbindung
  4. adb connect 192.168.1.2 Dies ist die IP-Adresse Ihres Geräts
  5. Verbunden mit 192.168.1.2

Verbunden mit Port Forward Versuchen Sie, Port-Forwarding zu tun,

adb vorwärts tcp: <PC port> tcp: <device port>

mögen:

adb vorwärts tcp: 5555 tcp: 5555.

C: \ Benutzer \ abc> adb vorwärts tcp: 7612 tcp: 7612

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

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

verbunden mit 10.0.0.1:7612

Wenn Sie einen Nachrichtenfehler erhalten : Gerät nicht gefunden Schließen Sie ein USB-Gerät an das System an, und folgen Sie demselben Verfahren.
für ein gerootetes Gerät

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

Um zwischen den Modi TCP und USB mit nur einem Befehl zu wechseln, können Sie dies zu /init.rc hinzufügen:

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 mit property service.adb.tcp.enable den Empfang von Port 5555 aktivieren oder deaktivieren. Führen Sie netstat , um zu überprüfen, ob es zuhört. Wie Sie sehen können, wird es auch ausgelöst, wenn Sie service.adb.tcp.port manuell ändern möchten.


Von adb --help :

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

Das ist übrigens eine Befehlszeilenoption.

Sie sollten versuchen, das Telefon mit Ihrem WLAN zu verbinden und dann die IP-Adresse von Ihrem Router abzurufen. Es wird nicht auf dem Zellennetz funktionieren.

Der Hafen ist 5554.


Wenn Sie Ihr Gerät einfach zum Ausführen, Debuggen oder Bereitstellen Ihrer Android-Apps über WiFi verbinden möchten, können Sie ein Open-Source-IntelliJ-Plugin verwenden, das ich entwickelt habe. Here ist der Code und here das Plugin bereit zu verwenden.

Die Verwendung ist ziemlich einfach. Hier haben Sie ein GIF:


Zuerst müssen Sie Ihr Gerät über USB verbinden

Dann verbinden Sie Ihr Gerät mit WLAN und erhalten Sie die IP-Adresse. Während immer noch über USB verbinden Sie diese in der Befehlszeile oder über Android Studio Terminal

adb tcpip 5555
adb connect <device IP>:5555

Sie werden diese Nachrichten sehen:

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

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

Erledigt. Genießen


adb kann mit adb server über tcp socket kommunizieren. Sie können dies per Telnet überprüfen.

$ telnet 127.0.0.1 5037
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
000chost:version
OKAY00040020

Im Allgemeinen hat der Befehl das Format %04x%s with <message.length><msg> Folgendes ist der Befehl ruby, der den adb-Befehl cmd an den tcp-Socket- socket sendet

def send_to_adb(socket, cmd)
  socket.printf("%04x%s", cmd.length, cmd)
end

Das erste Beispiel sendet den Befehl host:version der Länge 12 ( 000c in hex). you can enjoy more exciting command like framebuffer: which takes screenshot from framebuffer as you can guess from its name.


Schritte :

  1. su - Um zu Super User zu wechseln.
  2. setprop service.adb.tcp.port 5555 - Um den TCP-Port zu spezifizieren - 5555 ist hier die Portnummer
  3. stop adbd - Um den adbd Service zu stoppen.
  4. start adbd - Adbd Service starten.

das funktioniert perfekt mit ssh von meinem Windows PC

Ich versuche dies auf dem Boot auf meinem Cyan-Handy zu tun oder starte das mit Plink. Mit Plink kann ich Shell mit su nicht 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 -c "sh /storage/sdcard1/start_adb.sh" )

Vielen Dank


If you want to be able to do it on a button click then:

  1. In Android Studio -> Settings/Preferences -> Plugins -> Browse Repositories
  2. Search 'ADB wifi'
  3. Install and restart android studio
  4. Verbinde dein Gerät (mit aktiviertem USB-Debugging) über USB mit deinem Computer (du musst das nur einmal pro Sitzung machen)
  5. Extras -> Android -> ADB WIFI -> ADB USB TO WIFI (Oder verwenden Sie die genannte Tastenkombination. Für MacOS: Strg + Shift + w)

Hinweis: Wenn es nicht funktioniert hat:

  1. Möglicherweise blockiert die Firewall Ihres WLAN-Routers die Verbindung.
  2. ABD ist möglicherweise nicht auf Ihrem Computer installiert.






adb