From e5cf329ccb94ac1c5d5594633a3a80270574a5c7 Mon Sep 17 00:00:00 2001 From: Aleksei Rodionov Date: Thu, 19 Mar 2020 10:09:37 +0700 Subject: [PATCH] Change AVD name and architecture --- README.md | 4 ++-- templates/Dockerfile | 26 +++++++++++++------------- templates/config.ini | 10 +++++----- templates/snapshot.sh | 6 +++--- templates/start.sh | 4 ++-- templates/take_snapshot.sh | 2 +- 6 files changed, 26 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 18c17f3..489c124 100644 --- a/README.md +++ b/README.md @@ -16,14 +16,14 @@ docker-emulator-android is one of the components of [android-farm](https://githu # Usage For example to run default emulator options with Marshmallow (API 23): ```console -$ docker run --rm --privileged -e ANDROID_ARCH="x86" -v /dev/kvm:/dev/kvm agoda-com/docker-emulator-android-23:latest +$ docker run --rm --privileged -e ANDROID_ARCH="x86_64" -v /dev/kvm:/dev/kvm agoda-com/docker-emulator-android-23:latest $ adb connect VIP:5555 ``` If you want to start different configuration of device, for example a 7 inch tablet, you need to override `config.ini` variables: ```console -$ docker run --rm --privileged -e ANDROID_ARCH="x86" -e ANDROID_CONFIG="skin.name=600x1024;hw.lcd.density=160;hw.lcd.height=600;hw.lcd.width=1024;hw.device.name=7in WSVGA (Tablet);avd.ini.displayname=7 WSVGA (Tablet) API 23;" -v /dev/kvm:/dev/kvm agoda-com/docker-emulator-android-23:latest +$ docker run --rm --privileged -e ANDROID_ARCH="x86_64" -e ANDROID_CONFIG="skin.name=600x1024;hw.lcd.density=160;hw.lcd.height=600;hw.lcd.width=1024;hw.device.name=7in WSVGA (Tablet);avd.ini.displayname=7 WSVGA (Tablet) API 23;" -v /dev/kvm:/dev/kvm agoda-com/docker-emulator-android-23:latest ``` For all the options available please check the [official documentation](https://developer.android.com/studio/run/emulator-commandline.html) diff --git a/templates/Dockerfile b/templates/Dockerfile index 6207fb7..6a5d830 100644 --- a/templates/Dockerfile +++ b/templates/Dockerfile @@ -33,8 +33,8 @@ RUN dpkg --add-architecture i386 && \ rm /tmp/android-sdk-linux.zip && \ # Customized steps per specific platform yes | sdkmanager --no_https --licenses && \ - yes | sdkmanager emulator tools platform-tools "platforms;{{ platform }}" "system-images;{{ platform }};google_apis;x86" --verbose | uniq && \ - echo no | avdmanager create avd -n "x86" --package "system-images;{{ platform }};google_apis;x86" --tag google_apis && \ + yes | sdkmanager emulator tools platform-tools "platforms;{{ platform }}" "system-images;{{ platform }};google_apis;x86_64" --verbose | uniq && \ + echo no | avdmanager create avd -n "Pixel2" --package "system-images;{{ platform }};google_apis;x86_64" --tag google_apis && \ # Unfilter devices (now local because CI downloads from github are unstable) # curl -o /root/.android/adb_usb.ini https://raw.githubusercontent.com/apkudo/adbusbini/master/adb_usb.ini && \ DEBIAN_FRONTEND=noninteractive apt-get purge -yq unzip openjdk-8-jdk && \ @@ -45,18 +45,18 @@ RUN dpkg --add-architecture i386 && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Convert large partitions to qcow2 to save space -# qemu-img convert -O qcow2 -c /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/system.img /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/system.qcow2 && \ -# mv /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/system.qcow2 /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/system.img && \ -# qemu-img convert -O qcow2 -c /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/userdata.img /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/userdata.qcow2 && \ -# mv /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/userdata.qcow2 /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/userdata.img && \ -# qemu-img resize /root/.android/avd/x86.avd/userdata.img 2G && \ -# resize2fs /root/.android/avd/x86.avd/userdata.img && \ -# qemu-img convert -O qcow2 -c /root/.android/avd/x86.avd/userdata.img /root/.android/avd/x86.avd/userdata.qcow2 && \ -# mv /root/.android/avd/x86.avd/userdata.qcow2 /root/.android/avd/x86.avd/userdata.img && \ -# (qemu-img convert -O qcow2 -c /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/vendor.img /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/vendor.qcow2 && \ -# mv /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/vendor.qcow2 /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/vendor.img || true) +# qemu-img convert -O qcow2 -c /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/system.img /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/system.qcow2 && \ +# mv /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/system.qcow2 /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/system.img && \ +# qemu-img convert -O qcow2 -c /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/userdata.img /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/userdata.qcow2 && \ +# mv /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/userdata.qcow2 /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/userdata.img && \ +# qemu-img resize /root/.android/avd/Pixel2.avd/userdata.img 2G && \ +# resize2fs /root/.android/avd/Pixel2.avd/userdata.img && \ +# qemu-img convert -O qcow2 -c /root/.android/avd/Pixel2.avd/userdata.img /root/.android/avd/Pixel2.avd/userdata.qcow2 && \ +# mv /root/.android/avd/Pixel2.avd/userdata.qcow2 /root/.android/avd/Pixel2.avd/userdata.img && \ +# (qemu-img convert -O qcow2 -c /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/vendor.img /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/vendor.qcow2 && \ +# mv /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/vendor.qcow2 /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/vendor.img || true) -COPY config.ini /root/.android/avd/x86.avd/config.ini +COPY config.ini /root/.android/avd/Pixel2.avd/config.ini # Expose adb EXPOSE 5037 5554 5555 5900 diff --git a/templates/config.ini b/templates/config.ini index c870694..4581512 100644 --- a/templates/config.ini +++ b/templates/config.ini @@ -1,15 +1,15 @@ avd.ini.encoding=UTF-8 -AvdId=x86 +AvdId=Pixel2 PlayStore.enabled=true -abi.type=x86 -avd.ini.displayname=x86 +abi.type=x86_64 +avd.ini.displayname=Pixel2 disk.dataPartition.size=2048M hw.accelerometer=yes hw.audioInput=no hw.battery=yes hw.camera.back=none hw.camera.front=none -hw.cpu.arch=x86 +hw.cpu.arch=x86_64 hw.cpu.ncore=2 hw.dPad=no hw.device.hash2=MD5:1be89bc42ec9644d4b77968b23474980 @@ -26,7 +26,7 @@ hw.ramSize=1536 hw.sensors.orientation=yes hw.sensors.proximity=yes hw.trackBall=no -image.sysdir.1=system-images/{{ platform }}/google_apis/x86/ +image.sysdir.1=system-images/{{ platform }}/google_apis/x86_64/ runtime.network.latency=none runtime.network.speed=full showDeviceFrame=no diff --git a/templates/snapshot.sh b/templates/snapshot.sh index 7d4a29a..b0f15fe 100644 --- a/templates/snapshot.sh +++ b/templates/snapshot.sh @@ -21,7 +21,7 @@ Xvfb :1 +extension GLX +extension RANDR +extension RENDER +extension XFIXES -scr XVFB_PID=$! cd /opt/android-sdk-linux/emulator -LIBGL_DEBUG=verbose ./qemu/linux-x86_64/qemu-system-x86_64 -avd x86 -snapshot default -no-snapshot-save & +LIBGL_DEBUG=verbose ./qemu/linux-x86_64/qemu-system-x86_64 -avd Pixel2 -snapshot default -no-snapshot-save & EMULATOR_PID=$! adb wait-for-device @@ -45,8 +45,8 @@ save adb emu kill # Doesn't work: triggers cold boot -# qemu-img convert -O qcow2 -c /root/.android/avd/x86.avd/userdata-qemu.img /root/.android/avd/x86.avd/userdata-qemu.img_qcow2 -# mv /root/.android/avd/x86.avd/userdata-qemu.img_qcow2 /root/.android/avd/x86.avd/userdata-qemu.img +# qemu-img convert -O qcow2 -c /root/.android/avd/Pixel2.avd/userdata-qemu.img /root/.android/avd/Pixel2.avd/userdata-qemu.img_qcow2 +# mv /root/.android/avd/Pixel2.avd/userdata-qemu.img_qcow2 /root/.android/avd/Pixel2.avd/userdata-qemu.img # Moving adb binary away so that stopping adb server with delay will release the emulator and will make it available for external connections mv /opt/android-sdk-linux/platform-tools/adb /opt/android-sdk-linux/platform-tools/_adb diff --git a/templates/start.sh b/templates/start.sh index 2f01229..c939bab 100644 --- a/templates/start.sh +++ b/templates/start.sh @@ -51,7 +51,7 @@ VNC_PID=$! # qemu references bios by relative path cd /opt/android-sdk-linux/emulator -CONFIG="/root/.android/avd/x86.avd/config.ini" +CONFIG="/root/.android/avd/Pixel2.avd/config.ini" CONFIGTMP=${CONFIG}.tmp if [ -n "$ANDROID_CONFIG" ]; @@ -69,4 +69,4 @@ fi echo "emulator_opts: $emulator_opts" -LIBGL_DEBUG=verbose ./qemu/linux-x86_64/qemu-system-x86_64 -avd x86 -ports $console_port,$adb_port $emulator_opts -qemu $QEMU_OPTS +LIBGL_DEBUG=verbose ./qemu/linux-x86_64/qemu-system-x86_64 -avd Pixel2 -ports $console_port,$adb_port $emulator_opts -qemu $QEMU_OPTS diff --git a/templates/take_snapshot.sh b/templates/take_snapshot.sh index 65ed9d6..569e65d 100644 --- a/templates/take_snapshot.sh +++ b/templates/take_snapshot.sh @@ -7,7 +7,7 @@ snapshot_image_name=$2 docker rm -f emulator || true -docker run -d -t --name emulator --rm --privileged -v /dev/kvm:/dev/kvm -e ANDROID_ARCH="x86" $image_name bash +docker run -d -t --name emulator --rm --privileged -v /dev/kvm:/dev/kvm -e ANDROID_ARCH="x86_64" $image_name bash docker cp snapshot.sh emulator:/snapshot.sh docker cp snapshot.expect emulator:/snapshot.expect