From 779e542a6d9f415137cf07c4b25c9ca6ed04aa9d Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Fri, 7 Feb 2020 17:58:43 +0700 Subject: [PATCH 01/14] Fix snapshot for latest emulator --- templates/Dockerfile | 4 +++- templates/Makefile | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/templates/Dockerfile b/templates/Dockerfile index 56c66be..d9090a3 100644 --- a/templates/Dockerfile +++ b/templates/Dockerfile @@ -20,7 +20,9 @@ RUN dpkg --add-architecture i386 && \ apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -yq software-properties-common libstdc++6:i386 zlib1g:i386 libncurses5:i386 \ locales ca-certificates apt-transport-https curl unzip redir iproute2 \ - openjdk-8-jdk xvfb x11vnc fluxbox nano libpulse0 telnet expect\ + openjdk-8-jdk xvfb x11vnc fluxbox nano libpulse0 telnet expect \ + libasound2 dbus expat libx11-6 libxcb-composite0 libxcomposite1 libxcursor1 \ + libxdamage1 libxfixes3 libgl1 libnspr4 libnss3 xorg openbox \ --no-install-recommends && \ locale-gen en_US.UTF-8 && \ # Install Android SDK diff --git a/templates/Makefile b/templates/Makefile index 4504e9a..7e0788b 100644 --- a/templates/Makefile +++ b/templates/Makefile @@ -1,4 +1,4 @@ -OWNER=agoda +OWNER=mobdevops IMAGE_NAME=docker-emulator-{{ platform }} VCS_REF=`git rev-parse --short HEAD` IMAGE_VERSION ?= 1.0.0 From 36bd6e2dc641cbee78553e2cd2bca92f7f0d1db1 Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Tue, 11 Feb 2020 12:23:38 +0700 Subject: [PATCH 02/14] xorg dependency --- templates/Dockerfile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/templates/Dockerfile b/templates/Dockerfile index d9090a3..ed22c81 100644 --- a/templates/Dockerfile +++ b/templates/Dockerfile @@ -20,9 +20,7 @@ RUN dpkg --add-architecture i386 && \ apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -yq software-properties-common libstdc++6:i386 zlib1g:i386 libncurses5:i386 \ locales ca-certificates apt-transport-https curl unzip redir iproute2 \ - openjdk-8-jdk xvfb x11vnc fluxbox nano libpulse0 telnet expect \ - libasound2 dbus expat libx11-6 libxcb-composite0 libxcomposite1 libxcursor1 \ - libxdamage1 libxfixes3 libgl1 libnspr4 libnss3 xorg openbox \ + openjdk-8-jdk xvfb x11vnc fluxbox nano libpulse0 telnet expect xorg \ --no-install-recommends && \ locale-gen en_US.UTF-8 && \ # Install Android SDK From c7b91021218cc7a081bf86330e333a9fb078b55e Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Tue, 11 Feb 2020 15:01:16 +0700 Subject: [PATCH 03/14] Remove e2fsck -fy --- templates/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/templates/Dockerfile b/templates/Dockerfile index ed22c81..14a2f9a 100644 --- a/templates/Dockerfile +++ b/templates/Dockerfile @@ -40,7 +40,6 @@ RUN dpkg --add-architecture i386 && \ 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 && \ - e2fsck -fy /root/.android/avd/x86.avd/userdata.img && \ 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 && \ From 554136e397bbbac5cd81196008e43e240d0ab963 Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Tue, 11 Feb 2020 19:57:02 +0700 Subject: [PATCH 04/14] Add x11 dependencies back --- templates/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/templates/Dockerfile b/templates/Dockerfile index 14a2f9a..2660a59 100644 --- a/templates/Dockerfile +++ b/templates/Dockerfile @@ -20,7 +20,9 @@ RUN dpkg --add-architecture i386 && \ apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -yq software-properties-common libstdc++6:i386 zlib1g:i386 libncurses5:i386 \ locales ca-certificates apt-transport-https curl unzip redir iproute2 \ - openjdk-8-jdk xvfb x11vnc fluxbox nano libpulse0 telnet expect xorg \ + openjdk-8-jdk xvfb x11vnc fluxbox nano libpulse0 telnet expect \ + libasound2 dbus expat libx11-6 libxcb-composite0 libxcomposite1 libxcursor1 \ + libxdamage1 libxfixes3 libgl1 libnspr4 libnss3 xorg \ --no-install-recommends && \ locale-gen en_US.UTF-8 && \ # Install Android SDK From 7c61c5ab911a0955933245c54bdccc54b7b451bb Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Thu, 12 Mar 2020 15:13:35 +0700 Subject: [PATCH 05/14] Remove xorg and add proper dependencies --- templates/Dockerfile | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/templates/Dockerfile b/templates/Dockerfile index 2660a59..af2c2c6 100644 --- a/templates/Dockerfile +++ b/templates/Dockerfile @@ -19,11 +19,13 @@ RUN dpkg --add-architecture i386 && \ echo "deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-backports main restricted universe multiverse" >> /etc/apt/sources.list && \ apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -yq software-properties-common libstdc++6:i386 zlib1g:i386 libncurses5:i386 \ - locales ca-certificates apt-transport-https curl unzip redir iproute2 \ - openjdk-8-jdk xvfb x11vnc fluxbox nano libpulse0 telnet expect \ - libasound2 dbus expat libx11-6 libxcb-composite0 libxcomposite1 libxcursor1 \ - libxdamage1 libxfixes3 libgl1 libnspr4 libnss3 xorg \ - --no-install-recommends && \ + locales ca-certificates apt-transport-https curl unzip redir iproute2 \ + openjdk-8-jdk xvfb x11vnc fluxbox nano telnet expect \ + libc6 libdbus-1-3 libfontconfig1 libgcc1 \ + libpulse0 libtinfo5 libx11-6 libxcb1 libxdamage1 \ + libnss3 libxcomposite1 libxcursor1 libxi6 \ + libxext6 libxfixes3 zlib1g libgl1 pulseaudio socat \ + --no-install-recommends && \ locale-gen en_US.UTF-8 && \ # Install Android SDK curl -L $LINK_ANDROID_SDK > /tmp/android-sdk-linux.zip && \ From 4e5f6fe60e39240766c5ef9d239970219e218500 Mon Sep 17 00:00:00 2001 From: Aleksei Rodionov Date: Wed, 18 Mar 2020 10:23:30 +0700 Subject: [PATCH 06/14] Remove partition convertation --- templates/Dockerfile | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/templates/Dockerfile b/templates/Dockerfile index af2c2c6..6207fb7 100644 --- a/templates/Dockerfile +++ b/templates/Dockerfile @@ -38,23 +38,24 @@ RUN dpkg --add-architecture i386 && \ # 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 && \ - # 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) && \ # Clean up apt-get -yq autoremove && \ apt-get clean && \ apt-get autoclean && \ 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) + COPY config.ini /root/.android/avd/x86.avd/config.ini # Expose adb From 79debd42e7ffa379d1e4a6c06e263542af9c9cf2 Mon Sep 17 00:00:00 2001 From: Aleksei Rodionov Date: Wed, 18 Mar 2020 10:27:01 +0700 Subject: [PATCH 07/14] Change owner name --- templates/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/Makefile b/templates/Makefile index 7e0788b..970f99e 100644 --- a/templates/Makefile +++ b/templates/Makefile @@ -1,4 +1,4 @@ -OWNER=mobdevops +OWNER=mobdevops/agoda IMAGE_NAME=docker-emulator-{{ platform }} VCS_REF=`git rev-parse --short HEAD` IMAGE_VERSION ?= 1.0.0 From 3c4e6bb9f8c2145815c9fa551195e7884e19b894 Mon Sep 17 00:00:00 2001 From: Aleksei Rodionov Date: Wed, 18 Mar 2020 18:42:15 +0700 Subject: [PATCH 08/14] Increase partition size --- templates/config.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/config.ini b/templates/config.ini index bb9f4b7..c870694 100644 --- a/templates/config.ini +++ b/templates/config.ini @@ -3,7 +3,7 @@ AvdId=x86 PlayStore.enabled=true abi.type=x86 avd.ini.displayname=x86 -disk.dataPartition.size=800M +disk.dataPartition.size=2048M hw.accelerometer=yes hw.audioInput=no hw.battery=yes From e5cf329ccb94ac1c5d5594633a3a80270574a5c7 Mon Sep 17 00:00:00 2001 From: Aleksei Rodionov Date: Thu, 19 Mar 2020 10:09:37 +0700 Subject: [PATCH 09/14] 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 From eace9973798f74a35117a9cfbb7b22db988879b4 Mon Sep 17 00:00:00 2001 From: Aleksei Rodionov Date: Thu, 19 Mar 2020 13:55:49 +0700 Subject: [PATCH 10/14] Make avd config as close to Pixel2 default config as possible --- templates/config.ini | 58 +++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 22 deletions(-) diff --git a/templates/config.ini b/templates/config.ini index 4581512..0fdeeb3 100644 --- a/templates/config.ini +++ b/templates/config.ini @@ -1,39 +1,53 @@ -avd.ini.encoding=UTF-8 AvdId=Pixel2 PlayStore.enabled=true -abi.type=x86_64 avd.ini.displayname=Pixel2 -disk.dataPartition.size=2048M +avd.ini.encoding=UTF-8 +# Real Pixel2 ships with 32GB +disk.dataPartition.size=2048M # previously - '800M' +astboot.forceColdBoot=no hw.accelerometer=yes -hw.audioInput=no +hw.audioInput=yes # previously - 'no' hw.battery=yes -hw.camera.back=none -hw.camera.front=none -hw.cpu.arch=x86_64 -hw.cpu.ncore=2 +hw.camera.back=none # 'emulated' by default +hw.camera.front=none # 'emulated' by default +hw.cpu.ncore=2 # '4' by default hw.dPad=no -hw.device.hash2=MD5:1be89bc42ec9644d4b77968b23474980 +hw.device.hash2=MD5:bc5032b2a871da511332401af3ac6bb0 hw.device.manufacturer=Google -hw.device.name=Nexus 5X hw.gps=yes -hw.gpu.enabled=on -hw.gpu.mode=swiftshader_indirect +hw.gpu.enabled=yes # previously - 'on' +hw.gpu.mode=auto # previously - 'swiftshader_indirect' hw.initialOrientation=Portrait -hw.keyboard=no -hw.lcd.density=160 +hw.keyboard=yes # previously - 'no' hw.mainKeys=no -hw.ramSize=1536 +hw.ramSize=4096 # previously - '1536' hw.sensors.orientation=yes hw.sensors.proximity=yes hw.trackBall=no -image.sysdir.1=system-images/{{ platform }}/google_apis/x86_64/ runtime.network.latency=none runtime.network.speed=full -showDeviceFrame=no -skin.dynamic=yes -skin.name=480x800 -skin.path=_no_skin -skin.path.backup=_no_skin +vm.heapSize=512 # previously - '192' tag.display=Google APIs +# Set some +hw.lcd.density=440 # previously - '160' +hw.lcd.height=1920 # previously - '800' +hw.lcd.width=1080 # previously - '480' +# Unused +# hw.sdCard=yes +# sdcard.size=512M + tag.id=google_apis -vm.heapSize=192 +abi.type=x86_64 +hw.cpu.arch=x86_64 +image.sysdir.1=system-images/{{ platform }}/google_apis/x86_64/ + +# End of default configuration + + +# Old params not set in default Pixel2 configs +# hw.device.name=Nexus 5X +# showDeviceFrame=no +# skin.dynamic=yes +# skin.name=480x800 +# skin.path=_no_skin +# skin.path.backup=_no_skin From f2c6c1633e0b29a4d5af5223fab525b2e12d0aa0 Mon Sep 17 00:00:00 2001 From: Aleksei Rodionov Date: Thu, 19 Mar 2020 14:13:42 +0700 Subject: [PATCH 11/14] Restore GPU mode option --- templates/config.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/config.ini b/templates/config.ini index 0fdeeb3..e6d21ea 100644 --- a/templates/config.ini +++ b/templates/config.ini @@ -16,7 +16,7 @@ hw.device.hash2=MD5:bc5032b2a871da511332401af3ac6bb0 hw.device.manufacturer=Google hw.gps=yes hw.gpu.enabled=yes # previously - 'on' -hw.gpu.mode=auto # previously - 'swiftshader_indirect' +hw.gpu.mode=swiftshader_indirect hw.initialOrientation=Portrait hw.keyboard=yes # previously - 'no' hw.mainKeys=no From ef1e78f4457a501b9cc44178032c6261bd821b5b Mon Sep 17 00:00:00 2001 From: Aleksei Rodionov Date: Thu, 19 Mar 2020 15:25:35 +0700 Subject: [PATCH 12/14] Finalize updates --- templates/config.ini | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/templates/config.ini b/templates/config.ini index e6d21ea..a0b06fa 100644 --- a/templates/config.ini +++ b/templates/config.ini @@ -10,12 +10,12 @@ hw.audioInput=yes # previously - 'no' hw.battery=yes hw.camera.back=none # 'emulated' by default hw.camera.front=none # 'emulated' by default -hw.cpu.ncore=2 # '4' by default +hw.cpu.ncore=4 hw.dPad=no hw.device.hash2=MD5:bc5032b2a871da511332401af3ac6bb0 hw.device.manufacturer=Google hw.gps=yes -hw.gpu.enabled=yes # previously - 'on' +hw.gpu.enabled=yes hw.gpu.mode=swiftshader_indirect hw.initialOrientation=Portrait hw.keyboard=yes # previously - 'no' @@ -44,10 +44,6 @@ image.sysdir.1=system-images/{{ platform }}/google_apis/x86_64/ # End of default configuration -# Old params not set in default Pixel2 configs -# hw.device.name=Nexus 5X -# showDeviceFrame=no -# skin.dynamic=yes -# skin.name=480x800 -# skin.path=_no_skin -# skin.path.backup=_no_skin +hw.device.name=Pixel2 +showDeviceFrame=no +skin.name=1080x1920 From bc07a8a80ca8935a3c97ebd5f88c6b591e20806d Mon Sep 17 00:00:00 2001 From: Aleksei Rodionov Date: Sun, 22 Mar 2020 10:42:01 +0700 Subject: [PATCH 13/14] Update HW settings --- templates/config.ini | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/templates/config.ini b/templates/config.ini index a0b06fa..821b627 100644 --- a/templates/config.ini +++ b/templates/config.ini @@ -3,35 +3,35 @@ PlayStore.enabled=true avd.ini.displayname=Pixel2 avd.ini.encoding=UTF-8 # Real Pixel2 ships with 32GB -disk.dataPartition.size=2048M # previously - '800M' -astboot.forceColdBoot=no +disk.dataPartition.size=2048M +fastboot.forceColdBoot=no hw.accelerometer=yes -hw.audioInput=yes # previously - 'no' +hw.audioInput=yes hw.battery=yes hw.camera.back=none # 'emulated' by default hw.camera.front=none # 'emulated' by default hw.cpu.ncore=4 hw.dPad=no -hw.device.hash2=MD5:bc5032b2a871da511332401af3ac6bb0 +hw.device.hash2=MD5:1be89bc42ec9644d4b77968b23474980 hw.device.manufacturer=Google hw.gps=yes hw.gpu.enabled=yes hw.gpu.mode=swiftshader_indirect hw.initialOrientation=Portrait -hw.keyboard=yes # previously - 'no' +hw.keyboard=yes hw.mainKeys=no -hw.ramSize=4096 # previously - '1536' +hw.ramSize=4096 hw.sensors.orientation=yes hw.sensors.proximity=yes hw.trackBall=no runtime.network.latency=none runtime.network.speed=full -vm.heapSize=512 # previously - '192' +vm.heapSize=512 tag.display=Google APIs # Set some -hw.lcd.density=440 # previously - '160' -hw.lcd.height=1920 # previously - '800' -hw.lcd.width=1080 # previously - '480' +hw.lcd.density=160 # '440' by default +hw.lcd.height=800 # '1920' by default +hw.lcd.width=480 # '1080' by default # Unused # hw.sdCard=yes # sdcard.size=512M @@ -43,7 +43,9 @@ image.sysdir.1=system-images/{{ platform }}/google_apis/x86_64/ # End of default configuration - hw.device.name=Pixel2 showDeviceFrame=no -skin.name=1080x1920 +skin.dynamic=yes +skin.name=480x800 +skin.path=_no_skin +skin.path.backup=_no_skin From 472296fc1d84703b2079e6a056b91930cbe02bda Mon Sep 17 00:00:00 2001 From: Aleksei Rodionov Date: Mon, 23 Mar 2020 10:48:53 +0700 Subject: [PATCH 14/14] Comment out the compression step --- templates/Dockerfile | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/templates/Dockerfile b/templates/Dockerfile index 6a5d830..b810ff9 100644 --- a/templates/Dockerfile +++ b/templates/Dockerfile @@ -44,17 +44,17 @@ RUN dpkg --add-architecture i386 && \ apt-get autoclean && \ 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_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) +# Convert large partitions to qcow2 to save space +# RUN 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/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/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) COPY config.ini /root/.android/avd/Pixel2.avd/config.ini