Anbox Cloud 1.11.0 has been released

Introduction

The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.11.0.

Please see component versions for a list of updated components.

New Features & Improvements

Client side virtual keyboard

Allowing users to build powerful user experiences with Android running in the cloud is a mission Anbox Cloud follows since the beginning. While working with customers, we found that a helpful optimization is to offload the virtual keyboard a user is using from the cloud instance back to the actual device receiving the video stream. This allows users to continue using the virtual keyboard they know, have already trained and are fast to type with.

Anbox Cloud 1.11 allows this integration for Android clients through a new Android library. The library provides a wrapper around the standard Android Webview, which is utilising the Anbox Streaming SDK to connect to an Anbox Cloud instance. The wrapping webview integrates with the client’s Android operating system and connects the cloud instance with the local virtual keyboard to exchange typed text and other input events.

Hardware accelerated video decoding

Anbox Cloud now supports hardware accelerated video decoding for H.264 inside the Android container on Nvidia GPUs. This allows for faster and smooth video playback as decoding is entirely offloaded to the GPU and not executed on the CPU anymore.

More video codecs will be supported in the future.

WiFi support (experimental)

Various Android applications depend on a WiFi connection and might even crash when executed on a device which doesn’t include support for WiFi. To allow these applications to work on Anbox Cloud, WiFi support is now available behind a feature flag.

If enabled, Anbox will create a WiFi network device by utilising the virt_wifi Linux kernel driver. The virt_wifi driver creates a WiFi network device on top of an existing ethernet device and simulates full WiFi support with a static WiFi access point named “VirtWifi”.

Connectivity wise, nothing changes for the Anbox containers, except that the Android system now uses WiFi instead of ethernet.

To enable WiFi support for all applications, simply run:

amc config set container.features experimental.wifi

If you don’t have a need for WiFi support, you don’t have to enable it.

Other

AMS - Automatic application updates

You can now disable automatic application updates when a new image version has been received by AMS. With setting

amc config set application.auto_update false

AMS will not attempt to update any application automatically. Updates must be applied manually by running

amc application update <application id or name>

AMS - Import of older image versions

AMS now allows the manual import of older image versions. In some cases, it is necessary to continue using a specific version of an Anbox image for testing or compatibility reasons. An image of a specific Anbox Cloud version can be imported with the following command:

amc image import myimage bionic:android10:amd64@1.10.1

This will import the 1.10.1 version of the bionic:android10:amd64 image under the name myimage into AMS. Applications can reference the image by its name myimage.

AMS - Feature flags

Feature flags for the Anbox containers can now be recorded in the application manifest in addition to the global configuration item container.features.

Example application manifest:

name: my-app
instance-type: a2.3
features:
- experimental.wifi

AMS - Larger network subnet

New deployments created with 1.11 will use a larger network subnet (/20 instead of /24) for the Anbox containers to allow more than 255 containers per node.

Other

  • Nvidia driver is updated to the recently released 470 series which includes performance improvements and bug fixes to allow scaling to higher number of Anbox containers
  • Android WebView has been updated to 92.0.4515.115
  • The aam tool now supports a --output option for both the backup and restore command. This allows storing a backup inside a directory instead of a tarball and reading it back from a directory as well.

Known Issues

None

Bug Fixes

  • LP #1926148 Anbox Session crashed when running with null platform (Angle EGL/GL drivers))
  • LP #1927313 Fail to launch more than 44 containers on two Nvidia GPUs
  • LP #1936345 Appliance fails to bootstrap when NIC is on a /22 network
  • LP #1936799 text should be instantly shown up in the input edit widget when it’s sent from the client side virtual keyboard
  • LP #1936835 Audio processing is enabled in WebRTC
  • LP #1936934 Ensure ubuntu user is allowed to talk to LXD
  • LP #1937005 AMS crashed when updating an image with the same fingerprint
  • LP #1938118 A refresh container that was launched from an application contains tombstone_00 file
  • LP #1938288 Outbound audio stream remains after microphone is disabled
  • LP #1938533 Appliance bootstrap fails too late when LXD is not setup by us
  • LP #1938701 Trailing slash is causing problems
  • LP #1913597 AMS enable people to remove last version of an addon
  • LP #1926702 Image architecture is not taken from simplestreams in AMS
  • LP #1930935 Anbox cloud dashboard fails at install hook
  • LP #1933489 Camera is not connected after rejoin
  • LP #1935809 Appliance init command can be run again while the appliance is initializing
  • LP #1936171 Missing ISoundTriggerHw in Android 11 images
  • LP #1936801 Support to run hooks after anbox session is fully up and running
  • LP #1937266 Websocket connect to gateway fails with “Invalid UTF-8 sequence in header value” on iOS
  • LP #1913425 Provide an informative message when removing a certificate by running amc config trust remove
  • LP #1913560 Image version deletion only supports to perform the operation with image id
  • LP #1919136 [AMS] hasImageWithIDOrName uses app cache

Upgrade Instructions

Please see the general upgrade guide for instructions of how to update your Anbox Cloud deployment to the 1.11.0 release.