ADB and Fastboot are distributed as part of Google's Android SDK Platform-Tools package. Google updates this package several times per year with bug fixes, new command support, and protocol changes required for newer Android versions. Running outdated platform-tools can cause authentication failures, missing command support, and incompatibilities with devices running newer Android releases.
Before updating, find out which version you have installed. Open a terminal or command prompt and run:
adb version
The output looks like:
Android Debug Bridge version 1.0.41
Version 35.0.2-12147458
Installed as /usr/local/platform-tools/adb
The important number is the middle line: 35.0.2-12147458 in this example. The first component (35.0.2) is the platform-tools release version. Check it against the release notes on the Android developer documentation site (search "SDK Platform-Tools release notes" on developer.android.com) to see if a newer version is available.
Also check Fastboot:
fastboot --version
Both binaries ship in the same package and will have the same version number. If they do not match, you likely have platform-tools installed from two different locations and your PATH is picking up different binaries for each command.
If you have Android Studio installed, the SDK Manager provides a graphical update path:
adb and fastboot binaries in the SDK directory are replaced.adb version to confirm the update.The SDK directory is typically located at:
%LOCALAPPDATA%\Android\Sdk\~/Library/Android/sdk/~/Android/Sdk/After an SDK Manager update, platform-tools land in the platform-tools subdirectory of the SDK root.
If you prefer the terminal or are working on a headless server, the sdkmanager command-line tool handles updates without the Android Studio GUI. It is located in the cmdline-tools/latest/bin/ directory of your Android SDK, or can be downloaded as part of the standalone Command-Line Tools package from developer.android.com.
List installed and available packages:
sdkmanager --list
This outputs a long list. Look for platform-tools under "Installed packages" and check if it also appears under "Available Updates."
Update platform-tools specifically:
sdkmanager "platform-tools"
On Linux and macOS, you may need to accept the license first:
sdkmanager --licenses
Type y for each license prompt. Then run the update command again. On Windows, run the command prompt as Administrator if the SDK is installed in a system-wide location like C:\Android\Sdk\.
In CI/CD pipelines, you can update platform-tools non-interactively by pre-accepting licenses:
yes | sdkmanager --licenses
sdkmanager "platform-tools"
If you installed platform-tools from the standalone ZIP (not through Android Studio), the update path is manual:
platform-tools folder.adb kill-server. Then replace the directory.chmod +x ~/platform-tools/adb ~/platform-tools/fastboot ~/platform-tools/mke2fs
After replacing the directory, run adb version to confirm the update. If the PATH entry you added earlier points to the directory name (e.g., ~/platform-tools) and you replaced the contents of that directory rather than the directory itself, no PATH change is needed.
A common problem after updating is that the old version is still being invoked because of PATH ordering. Diagnose with:
# macOS / Linux
which adb
which -a adb # lists all ADB binaries found in PATH
# Windows (Command Prompt)
where adb
If the output shows the old path rather than the updated one, adjust your PATH so the updated platform-tools directory appears earlier. On Windows, open Environment Variables, find the Path entry, and move the new platform-tools path to the top of the list (use the "Move Up" button).
Another source of conflicts is Linux distributions that install ADB via a package manager (sudo apt install adb). The package manager version lives in /usr/bin/adb and is typically several releases behind the standalone SDK. If /usr/bin/adb appears in your PATH before your standalone installation, it takes precedence. Prepend your standalone platform-tools path explicitly in ~/.bashrc or ~/.zshrc:
export PATH="$HOME/platform-tools:$PATH"
The $HOME/platform-tools entry before $PATH ensures it wins over system-installed ADB.
Each major Android version can introduce changes to the ADB protocol, authentication handshake, or supported commands. Concrete examples:
adb pair.adb shell commands added in newer Android versions (like direct boot awareness flags) require a matching platform-tools version to work correctly.There is generally no downside to using a newer platform-tools with an older Android device — backward compatibility is maintained. The reverse (old tools, new device) is where problems arise. Make updating platform-tools part of your regular development environment maintenance.