Stack Overflow archive
0 score

How to start adb server over tcp programmatically

score
0
question views
2.6K
license
CC BY-SA 3.0

You need root access to do this. It would be a huge security issue otherwise. You can use a library like libsuperuser to run root commands.

Example using libsuperuser:

bash
String[] commands = { "setprop service.adb.tcp.port 5555", "stop adbd", "start adbd" };
Shell.SU.run(commands);
// Get the WiFi IP address
WifiManager mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
int ip = mWifiManager.getConnectionInfo().getIpAddress();
String wifiIp = (ip & 0xFF) + "." + ((ip >> 8) & 0xFF) + "." + ((ip >> 16) & 0xFF) + "."
        + ((ip >> 24) & 0xFF);
// Tell the user what the next step is.
Toast.makeText(context,
    String.format("Run 'adb connect %s:5555' in terminal/command-prompt", wifiIp),
    Toast.LENGTH_LONG).show();

Originally posted on Stack Overflow. Public user contributions are licensed under Creative Commons Attribution-ShareAlike.