| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- #!/usr/bin/env bash
- set -e
- set -o pipefail
- export ANDROID_HOME="tmp/AndroidSdk"
- export ANDROID_AVD_HOME="tmp/AndroidAvd"
- export ANDROID_EMULATOR_HOME="tmp/AndroidEmu"
- mkdir -p "$ANDROID_HOME"
- mkdir -p "$ANDROID_AVD_HOME"
- mkdir -p "$ANDROID_EMULATOR_HOME"
- case "$(uname -s)" in
- Linux*) machine=linux ;;
- *) machine=mac ;;
- esac
- download() {
- output="tmp/$(basename "$2")"
- if [ ! -f "$output" ]; then
- wget "$2" -O "$output"
- fi
- eval $1="$output"
- }
- download cmdtools "https://dl.google.com/android/repository/commandlinetools-$machine-9477386_latest.zip"
- download firefox "https://github.com/mozilla-mobile/firefox-android/releases/download/fenix-v111.1.1/fenix-111.1.1-x86_64.apk"
- TOOLS="$ANDROID_HOME/cmdline-tools/latest"
- if [ ! -d "$TOOLS" ]; then
- unzip -oq "$cmdtools"
- mkdir -p "$ANDROID_HOME/cmdline-tools"
- mv "cmdline-tools" "$TOOLS"
- fi
- SDKM="$TOOLS/bin/sdkmanager"
- AVDM="$TOOLS/bin/avdmanager"
- ADB="$ANDROID_HOME/platform-tools/adb"
- EMU="$ANDROID_HOME/emulator/emulator -no-audio -no-snapshot -gpu swiftshader_indirect -no-boot-anim"
- if [ "$1" != "window" ]; then
- EMU="$EMU -no-window"
- fi
- if [ "$1" = "stop" ]; then
- killall qemu-system-x86_64 qemu-system-x86_64-headless || true
- $AVDM delete avd -n "my_emulator"
- exit 0
- fi
- yes | $SDKM --licenses || true
- PACKAGE="system-images;android-31;default;x86_64"
- $SDKM "platform-tools" "platforms;android-31" "$PACKAGE"
- $AVDM create avd -f -n "my_emulator" -b "default/x86_64" -k "$PACKAGE" -d "pixel_3a"
- grep -q 'Boot completed' <($EMU -avd "my_emulator")
- echo "Boot completed!"
- while [ -z "$($ADB devices | grep emulator | grep device)" ]; do
- $ADB devices
- sleep 5
- done
- $ADB devices
- sleep 5
- $ADB install "$firefox"
- $ADB uninstall --user 0 "org.chromium.webview_shell"
|