Friday, May 29, 2020

Emulator 30.0.15 Canary

Emulator 30.0.15 is now available in the Canary and Dev channels. Changes:
  • We've seen issues running the Windows emulator with Riot Vanguard active. The Windows emulator now detects Vanguard anti-cheat and pops up a warning message if Vanguard is detected.
  • The emulator now prints a warning if unsupported options are passed to -prop (Only qemu.* props are supported).
  • When using the Linux emulator embedded in Studio, we found that if this is done through Chrome Remote Desktop, there is a bug where XDG_RUNTIME_DIR is not set and may cause the embedded emulator to fail to appear due to the emulator discovery files being placed in XDG_RUNTIME_DIR.
  • Emulator icons updated to reflect Studio 4.1 branding.
  • When building the emulator on Windows, there should be less chance of seeing flaky failures to write to files. (Windows build instructions: https://android.googlesource.com/platform/external/qemu/+/refs/heads/emu-master-dev/android/docs/WINDOWS-DEV.md)
  • gRPC endpoint now supports sending SMS to the device.
  • Updated WebRTC libraries to M83.
  • darwinn pipe endpoint has been removed.
  • When hw.gltransport=virtio-gpu-pipe, performance is improved by not spinning on the host in transfers from host to guest.
ARM64 host support
  • Linux emulator source code now supports cross compilation from x86_64 to arm64 hosts, enabling running arm64 system images with KVM virtualization and host side rendering. Currently, only -gpu swiftshader_indirect (Swiftshader arm64 host rendering) is supported, but a compatible set of host GPU libEGL/libGLESv2/libGLESv1_CM libraries may also be used via replacing the libraries in lib64/gles_swiftshader with them and then relaunching with -gpu swiftshader_indirect. Snapshots may also not be working (add -no-snapshot to the command line). Instructions: 
pip install absl-py
pip install urlfetch
sudo apt-get install crossbuild-essential-arm64
 
mkdir emu
cd emu
repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev --depth=1
repo sync -qcj 12
cd external/qemu

python android/build/python/cmake.py --noqtwebengine --noshowprefixforinfo --target linux_aarch64