Files
fn_registry/bash/functions/infra/adb_wsl.md
T

2.9 KiB

name, kind, lang, domain, version, purity, signature, description, tags, params, output, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags params output uses_functions uses_types returns returns_optional error_type imports tested tests test_file_path file_path
adb_wsl function bash infra 1.0.0 impure source adb_wsl.sh [ADB=<path>] [ANDROID_SDK_WIN=<sdk_root>] Wrapper sourceable para usar adb.exe Windows desde WSL2. Resuelve binario, convierte paths, espera boot del emulador.
android
adb
wsl
windows
name desc
ADB Env var opcional. Path absoluto a adb.exe. Si no se fija, se construye desde ANDROID_SDK_WIN o el default /mnt/c/Users/lucas/AppData/Local/Android/Sdk.
name desc
ANDROID_SDK_WIN Env var opcional. Raiz del Android SDK montado en WSL. Default: /mnt/c/Users/lucas/AppData/Local/Android/Sdk.
Source-able shell helpers: adb_run, adb_devices, adb_wsl_to_win, adb_wait_boot. Define ADB env var apuntando a Windows adb.exe via ANDROID_SDK_WIN.
false error_go_core
false
bash/functions/infra/adb_wsl.sh

Uso

# Sourcear (usa SDK default)
source bash/functions/infra/adb_wsl.sh

# Sourcear con SDK custom
ANDROID_SDK_WIN=/mnt/d/Android/Sdk source bash/functions/infra/adb_wsl.sh

# Sourcear con binario fijo
ADB=/mnt/c/my/tools/adb.exe source bash/functions/infra/adb_wsl.sh

Funciones expuestas

adb_run "<args...>"

Ejecuta $ADB con los argumentos dados. Retorna el exit code de adb.exe.

adb_run shell ls /sdcard/
adb_run install app.apk

adb_devices

Alias de adb_run devices. Lista dispositivos/emuladores conectados.

adb_devices
# List of devices attached
# emulator-5554   device

adb_wsl_to_win <path_wsl>

Convierte un path WSL a formato Windows con wslpath -w. Si wslpath no está disponible retorna el path sin convertir.

win_path=$(adb_wsl_to_win /home/lucas/proyecto/app.apk)
# C:\Users\lucas\AppData\Local\... (o la ruta Windows equivalente)
adb_run install "$win_path"

adb_wait_boot [timeout_s]

Espera a que el emulador/dispositivo complete el boot (sys.boot_completed = 1). Útil tras lanzar un AVD en CI.

adb_wait_boot        # timeout 120s
adb_wait_boot 60     # timeout 60s

Retorna 0 si el boot se completó, 1 si expiró el timeout.

Smoke test

bash bash/functions/infra/adb_wsl.sh --self-test
# OK

Notas

  • El script es source-able: define funciones en el shell actual, no crea subshell.
  • ADB se resuelve una sola vez al sourcing. Si el binario no existe en disco, la carga falla con mensaje en stderr y return 1 / exit 1.
  • adb_wait_boot hace polling cada 3 segundos. Ajustar interval si el emulador es especialmente lento.
  • En WSL2 wslpath siempre está disponible; el fallback existe para entornos Linux puros que accidentalmente sourceen el archivo.
  • Si el emulador requiere -s <serial>, pasar el flag directamente a adb_run: adb_run -s emulator-5554 shell ....