The Android SDK is installed on Windows (typically in %LOCALAPPDATA%\Android\Sdk) but is not accessible from WSL. Here is how to fix it without duplicating the installation.
Solution: wrapper in /usr/local/bin
The most reliable approach is to create a script that forwards calls to the Windows executable:
echo '#!/bin/bash
exec /mnt/c/Users/<USER>/AppData/Local/Android/Sdk/platform-tools/adb.exe "$@"' | sudo tee /usr/local/bin/adb > /dev/null && sudo chmod +x /usr/local/bin/adb
Replace <USER> with your Windows username.
/usr/local/bin is high in the default PATH and the script works in all contexts (interactive shells, scripts, tools).
Alternative: PATH addition
Add the Windows path to ~/.bashrc:
export PATH="$PATH:/mnt/c/Users/<USER>/AppData/Local/Android/Sdk/platform-tools"
Drawback: requires an interactive shell (.bashrc is not sourced by non-interactive shells). The wrapper approach is more universal.
Verification
adb version
adb devices
Note
- WSL/Windows interop (binfmt_misc) must be enabled. See the note WSL: Enable Windows interoperability.