adb-start-server
Start ADB daemon
TLDR
Start the adb server if it is not running
SYNOPSIS
adb start-server
DESCRIPTION
The adb start-server command explicitly launches the Android Debug Bridge (ADB) server process on Linux hosts. ADB is a powerful client-server tool from the Android SDK for debugging, installing apps, and managing Android devices or emulators over USB or TCP/IP.
The server daemon runs in the background, binding to TCP port 5037 by default. It multiplexes connections from multiple adb client commands, forwarding them to device-side daemons (adbd). This architecture supports simultaneous interactions with several devices.
Typically, no manual invocation is needed—any adb subcommand like adb devices auto-starts the server if absent. Use adb start-server manually after adb kill-server, for scripting reliability, troubleshooting port binds, or multi-ADB-version setups. On Linux, install via Android platform-tools (e.g., apt or SDK download); ensure executable in PATH and USB rules configured for device access.
Output confirms success: 'daemon started successfully'. Useful in CI/CD pipelines or when automatic starts fail due to firewalls, SELinux, or permissions.
CAVEATS
Rarely needed manually; auto-starts on first command.
Server uses port 5037—conflicts cause failure.
Requires root or udev rules for USB access.
No output on success except confirmation message.
TROUBLESHOOTING TIPS
Check netstat -tlnp | grep 5037 for port issues.
Restart after USB unplug/replug.
Logs in ~/.android/adb.log.
ENVIRONMENT SETUP
Add platform-tools to PATH: export PATH=$PATH:~/android-sdk/platform-tools.
Run adb kill-server before restart if hung.
HISTORY
Introduced in 2007 with Android 1.0 SDK by Google. Evolved for better multi-device support, wireless ADB (Android 11+), and security enhancements like Scoped Storage integration. Core daemon model unchanged since inception.


