Skip to content

Instantly share code, notes, and snippets.

@jjvillavicencio
Last active November 27, 2025 08:57
Show Gist options
  • Select an option

  • Save jjvillavicencio/18feb09f0e93e017a861678bc638dcb0 to your computer and use it in GitHub Desktop.

Select an option

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
@igortas
Copy link

igortas commented Nov 26, 2025

@qalqi
Thanks.
Here is my setup on WSL2 Arch. I need to change few more settings

React Native + Expo on WSL2 — Arch

Install Android SDK Command-line Tools

  1. Install android-sdk-cmdline-tools-latest, jdk and optional dependencies (Arch Linux example):
yay -S android-sdk-cmdline-tools-latest android-sdk-platform-tools jdk-openjdk

Confirm installation:

which sdkmanager
sdkmanager --version

Configure Environment Variables in WSL2

Add the following to ~/.zshrc or ~/.bashrc:

# Android SDK
export ANDROID_HOME=/opt/android-sdk
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools

Apply changes:

source ~/.zshrc or source ~/.bashrc

Set permissions for Android SDK directory:

sudo chown -R $USER:$USER /opt/android-sdk

Accept SDK licenses and install packages

# Install platform-tools, SDK platforms, build-tools
sdkmanager --install "platform-tools" "platforms;android-36" "build-tools;36.0.0"

# Accept all licenses
yes | sdkmanager --licenses

Verify installation:

adb version
ls $ANDROID_HOME/platforms

Connect your phone via USB (initial setup)

Enable Developer Options → USB debugging on your phone.

Connect via USB. Set phone to Transferring files (MTP).

Setup Metro bundler for LAN access

Find Windows host IP on Wi-Fi:

ipconfig

Find WSL2 IP:

ip addr

Forward port 8081 from Windows → WSL2:

netsh interface portproxy add v4tov4 listenaddress=192.168.xxx.xxx listenport=8081 connectaddress=172.18.xxx.xxx connectport=8081

Allow port 8081 through Windows firewall:

  • Open Windows Defender Firewall → Advanced Settings → Inbound Rules → New Rule → Port → TCP → 8081 → Allow → Private → Finish

Enable ADB over Wi-Fi

Find your phone’s Wi-Fi IP:

Settings → Connections → Wi-Fi → gear icon → Advanced → IP address

Connect via Wi-Fi:

adb tcpip 5555
adb connect 192.168.xxx.xxx:5555
adb devices

Phone is now connected over Wi-Fi.

Create and start a React Native / Expo project

# Create new Expo app
npx create-expo-app@latest

# Start Metro bundler
npm start

Metro should show:

Metro waiting on exp://192.168.xxx.xxx:8081

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