==== Forwarding adb over TCP/IP (Mostly Wifi) ==== Today we are going to learn how to use adb tcp forwarding\\ to access an android phone shell (or screen) using multiple tcp/ip port forwardings\\ First, **connect the phone via usb** (this is needed) and issue: # You can choose any port you want adb tcpip 5557 # Save the phone ip somewhere adb shell ifconfig Once this is enabled, **you can stop using the usb cable**\\ To connect to the adb device by it's ip address: adb connect [YOUR_PHONE_IP]:5557 # or disconnect later adb disconnect [YOUR_PHONE_IP]:5557 You can now access the phone **shell or screen via tcp/ip** adb shell scrcpy # gui tool from genymotion to view the phone screen over adb \\ ==== Forwarding adb over USB and TCP/IP ==== There can be a case when you want to **use a device connected to a server by usb**\\ You can do this easily by enabling tcpip mode on adb and forwarding the port.\\ First, **on the server**, enable tcpip on 5557, and forward on server to 5558 adb tcpip 5557 adb forward tcp:5558 tcp:5557 Check forward is working adb forward --list Now, **on the client**, you can use ssh forwarding to connect the **phone shell or screen remotely**!!! ssh -L 5558:127.0.0.1:5558 [REMOTE_HOST] adb connect 127.0.0.1:5558 # connect locally \\ To **reset the tcpip state** issue: # If you just want to remove the forwarding but keep tcpip adb forward --remove-all # This will remove all forwardings and restart adb as usb instead of tcpip adb usb