Skip to content

Instantly share code, notes, and snippets.

@jjvillavicencio
Last active October 30, 2025 22:36
Show Gist options
  • Save jjvillavicencio/18feb09f0e93e017a861678bc638dcb0 to your computer and use it in GitHub Desktop.
Save jjvillavicencio/18feb09f0e93e017a861678bc638dcb0 to your computer and use it in GitHub Desktop.
Install Android SDK on Windows Bash (WSL)
cd /home/<user>/
sudo apt-get install unzip
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
unzip sdk-tools-linux-4333796.zip -d Android
rm sdk-tools-linux-4333796.zip
sudo apt-get install -y lib32z1 openjdk-8-jdk
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin
printf "\n\nexport JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64\nexport PATH=\$PATH:\$JAVA_HOME/bin" >> ~/.bashrc
cd Android/tools/bin
./sdkmanager "platform-tools" "platforms;android-26" "build-tools;26.0.3"
export ANDROID_HOME=/home/<user>/Android
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools
printf "\n\nexport ANDROID_HOME=/home/<user>/Android\nexport PATH=\$PATH:\$ANDROID_HOME/tools\nexport PATH=\$PATH:\$ANDROID_HOME/platform-tools" >> ~/.bashrc
android update sdk --no-ui
sudo apt-get install gradle
gradle -v
adb start-server
@qalqi
Copy link

qalqi commented Oct 30, 2025

This is setup guide I used to install headless android studio in wsl2. courtesy: gemini pro

πŸ› οΈ Complete WSL2 Android SDK Setup Guide

This guide ensures you have a working sdkmanager, platform tools (adb, fastboot), and the necessary Android platform 36 components installed and accessible from your WSL2 terminal.

1. βš™οΈ Prerequisites and Setup

This assumes you have already downloaded and unzipped the Android Command-line Tools (e.g., to $HOME/Android/cmdline-tools).

1.1. Create the Directory Structure

Make sure your directory structure looks like this. If you haven't, run:

mkdir -p $HOME/Android/cmdline-tools

1.2. Correctly Place the cmdline-tools

Move the contents of the unzipped cmdline-tools folder (which should contain a bin, lib, NOTICE.txt, etc. directory/files) into a directory named latest:

# Assuming you unzipped the tools to ~/Downloads/cmdline-tools-linux
mv ~/Downloads/cmdline-tools-linux $HOME/Android/cmdline-tools/latest

(The sdkmanager executable must be in $HOME/Android/cmdline-tools/latest/bin/)

2. πŸ“ Configure Environment Variables

You must add the necessary paths to your shell configuration file (~/.bashrc or ~/.zshrc) so the system can find sdkmanager and adb from anywhere.

Open your shell configuration file:

nano ~/.bashrc  # or ~/.zshrc

Add the following block to the end of the file:

# --- Android SDK Configuration ---
export ANDROID_HOME=$HOME/Android
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
# ---------------------------------

2.1. Load the New Configuration

Apply the changes to your current terminal session:

source ~/.bashrc  # or ~/.zshrc

3. πŸ“₯ Install SDK Packages

Now that the sdkmanager command is available in your PATH, you can install the required components.

Use the command you initially wanted to run, but without the ./ prefix:

sdkmanager --install "platform-tools" "platforms;android-36" "build-tools;36.0.0"
  • "platform-tools": Installs adb, fastboot, etc.
  • "platforms;android-36": Installs the Android 36 SDK platform files.
  • "build-tools;36.0.0": Installs the necessary build tools (version 36.0.0 is used as a reference).

4. βœ… Accept Licenses

The SDK will not work until you accept the licenses. Use the sdkmanager for this as well:

yes | sdkmanager --licenses

5. πŸ”¬ Verification and ADB Check

Check if everything is installed correctly:

Step 5.1: Verify adb Path

which adb

Expected Output: /home/youruser/Android/platform-tools/adb (or similar)

Step 5.2: Verify SDK Platform

ls $ANDROID_HOME/platforms

Expected Output: You should see a folder like android-36 listed.

Step 5.3: Check for Connected Devices (ADB)

To see devices, remember to use the correct command:

adb devices

Expected Output (if no device is connected):

List of devices attached

If you still get Command 'android' not found, remember that android is obsolete and has been replaced by sdkmanager and avdmanager.

This comprehensive list of steps should serve as a complete reference for your WSL2 Android SDK environment setup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment