Files

71 lines
2.1 KiB
Bash
Raw Permalink Normal View History

2018-02-12 15:24:41 +07:00
#!/usr/bin/env bash
console_port=$CONSOLE_PORT
adb_port=$ADB_PORT
adb_server_port=$ADB_SERVER_PORT
emulator_opts=$EMULATOR_OPTS
2018-02-12 15:24:41 +07:00
if [ -z "$console_port" ]; then
2018-02-12 15:24:41 +07:00
console_port="5554"
fi
if [ -z "$adb_port" ]; then
2018-02-12 15:24:41 +07:00
adb_port="5555"
fi
if [ -z "$adb_server_port" ]; then
2018-02-12 15:24:41 +07:00
adb_server_port="5037"
fi
if [ -z "$emulator_opts" ]; then
emulator_opts="-screen multi-touch -no-boot-anim -noaudio -no-window -gpu swiftshader_indirect -camera-back none -camera-front none -skip-adb-auth -no-snapshot-save -read-only"
fi
2018-02-12 15:24:41 +07:00
# Detect ip and forward ADB ports outside to outside interface
ip=$(ip addr list eth0 | grep "inet " | cut -d' ' -f6 | cut -d/ -f1)
2018-02-12 15:24:41 +07:00
redir --laddr=$ip --lport=$adb_server_port --caddr=127.0.0.1 --cport=$adb_server_port &
redir --laddr=$ip --lport=$console_port --caddr=127.0.0.1 --cport=$console_port &
redir --laddr=$ip --lport=$adb_port --caddr=127.0.0.1 --cport=$adb_port &
function clean_up {
echo "Cleaning up"
rm -f /tmp/.X1-lock
2018-02-12 15:24:41 +07:00
kill $XVFB_PID 2>/dev/null
kill $FLUXBOX_PID 2>/dev/null
kill $VNC_PID 2>/dev/null
exit
}
trap clean_up SIGHUP SIGINT SIGTERM
2018-02-12 15:24:41 +07:00
export DISPLAY=:1
export ANDROID_SDK_ROOT=/opt/android-sdk
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ANDROID_SDK_ROOT/emulator/lib64/qt/lib:$ANDROID_SDK_ROOT/emulator/lib64:$ANDROID_SDK_ROOT/emulator/lib64/gles_swiftshader
2018-02-12 15:24:41 +07:00
Xvfb :1 +extension GLX +extension RANDR +extension RENDER +extension XFIXES -screen 0 1024x768x24 &
XVFB_PID=$!
sleep 1 && fluxbox -display ":1.0" &
FLUXBOX_PID=$!
sleep 2 && x11vnc -display :1 -nopw -forever &
VNC_PID=$!
2018-02-12 15:24:41 +07:00
# Set up and run emulator
cd $ANDROID_SDK_ROOT/emulator
2018-02-12 15:24:41 +07:00
CONFIG="/root/.android/avd/x86_64.avd/config.ini"
2018-02-12 15:24:41 +07:00
CONFIGTMP=${CONFIG}.tmp
if [ -n "$ANDROID_CONFIG" ]; then
2018-02-12 15:24:41 +07:00
IFS=';' read -ra OPTS <<< "$ANDROID_CONFIG"
for OPT in "${OPTS[@]}"; do
IFS='=' read -ra KV <<< "$OPT"
KEY=${KV[0]}
VALUE=${KV[1]}
mv ${CONFIG} ${CONFIGTMP}
cat ${CONFIGTMP} | grep -v ${KEY}= > ${CONFIG}
echo ${OPT} >> ${CONFIG}
done
fi
echo "emulator_opts: $emulator_opts"
# Use the emulator binary directly
$ANDROID_SDK_ROOT/emulator/emulator -avd x86_64 -ports $console_port,$adb_port $emulator_opts