Anbox Cloud 1.17.0 has been released

Introduction

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

Please see component versions for a list of updated components.

New features & improvements

Vulkan support for NVIDIA GPUs

Modern games and applications are making more and more use of the Vulkan API. For Intel and AMD GPUs, Anbox Cloud supports the Vulkan API since the 1.15 release. However, for NVIDIA GPUs, this hasn’t been possible without further advancing the Anbox internal graphics API translation layer.

So far the translation layer only supports OpenGL ES 3.2 but for the 1.17 release, a lot of work has happened behind the scenes to bring latest Vulkan 1.3 support for NVIDIA GPUs to the Android instances running in Anbox Cloud. The implementation is internally powered by existing projects like virglrenderer and Mesa.

As of Anbox Cloud 1.17, support is still kept behind a feature flag and is currently not functional with the latest NVIDIA GPU drivers from the 525 series due to missing functionality around DRM sync files in the driver.

Dynamic screen resolution

Anbox Cloud allows changing the screen resolution of already running Android instances. This is helpful especially when containers are being used for clients with different display aspect ratios to avoid letter boxing. Internally, the Anbox runtime will reconfigure the Android display with the new resolution and afterwards the encoded video stream will match the new resolution. Changing the display resolution is possible at the time of connection via the /1.0/sessions/<id>/join API endpoint of the Anbox Stream Gateway.

Start and stop support for containers

Containers in Anbox Cloud have been ephemeral since the beginning and explicit start or stop of a container was not possible. This has now changed and an explicit amc stop or amc start command can be used to stop or start containers. Furthermore, with the new amc init command, containers can be created but not started.

Starting containers with the error status is currently not possible, but will be allowed in the 1.18 release.

Dashboard improvements

The Anbox Cloud Dashboard was extended in multiple ways. A new containers page allows management of containers present in AMS. This includes support for viewing log files of containers with the error status or opening a terminal for fast inspection.

To further provide information about a deployed cluster, the dashboard also provides an overview of the available LXD nodes and their properties.

This will be further enhanced in future releases to allow easy modification of node settings and introduce support for performing maintenance tasks.

Other

  • Experimental support for software accelerated AV1 encoding is now available behind a feature flag (experimental.force_av1_software_encoding).
  • Containers now connect to Anbox Stream Agent instead of Anbox Stream Gateway for WebRTC signaling.
  • HTTPS fingerprint checks were added to the Anbox runtime for deployment scenarios where the Anbox Stream Agent is not deployed with a certificate signed by a trusted CA.
  • Initial support for NUMA has been added to AMS. If a system has multiple NUMA nodes, AMS will select a node based on the locality of an additionally allocated GPU. If a container is not allocated with a GPU or if cpu.limit_mode is set to pinning, no specific NUMA is being selected.
  • To allow scheduling containers for applications onto specific nodes in a LXD cluster, an application in AMS can now add a node-selector part into its manifest. This will tell the scheduler in AMS to schedule a container for the application onto a node only if it matches the criteria of the node selector. The node selector currently supports tag based selection only.
  • Android still requires cgroup v1 but Ubuntu only supports cgroup v2 since Ubuntu 22.04. To still enable Android to function correctly, initial work for a translation layer to support cgroup v1 on cgroup v2 only systems via a new anbox-fs utility written in Rust has been added. By default, the translation layer is not yet enabled but will be in a future release.
  • Libsoup based websocket support for WebRTC signaling has been replaced with a custom implementation providing better stability.
  • The Android HW composer module based on Wayland is now in use for all supported GPU drivers (NVIDIA, AMD and Intel).
  • Android security updates for February 2023 (see Android Security Bulletin - February 2023 for more information).
  • The Android WebView has been updated to 110.0.5481.61.

Removed functionality

  • The anbox-stream-gateway.gatewayctl command shipped with the anbox-stream-gateway snap has been removed after it was deprecated in Anbox Cloud 1.6.

Deprecations

  • As Ubuntu 18.04 (bionic) will be end of standard support by April 2023, the upcoming Anbox Cloud 1.18 release will be the last one shipping with Ubuntu 18.04 based Anbox images. If you have not yet migrated to the Ubuntu 22.04 based Anbox images, you should do so now. The Anbox Cloud specific functionality is identical, only the underlying Ubuntu base system has been changed.
  • Android 10 has been end of life since September 2022 but since it is still being patched by Google, Anbox Cloud continues to provide support for it. However starting with the 1.17 release, we mark it as officially being deprecated and recommend to update to a newer Android version. Anbox Cloud will stop shipping Android 10 in future versions.

Known issues

  • Dynamically changing the screen resolution of Anbox containers running with Android 10 is currently not supported.

Bug fixes

  • LP:2001901 Anbox crashes with: elf_dynamic_array_reader.h tag not found
  • LP:1998471 Custom streamer.json didn’t apply to WebRTC streamer
  • AC-1287 hwcomposer.anbox crashes inside libwayland
  • AC-1288 Anbox crashes with Main process exited, code=killed, status=11/SEGV
  • AC-1304 Trigger an action from an Anbox platform would fail with RPC timeout always even after the action was executed successfully in Android container
  • AC-1348 JS SDK tries to apply ICE candidates without a remote description applied
  • AC-1350 Anbox browser activity does not allow Javascript

Upgrade instructions

See Upgrade Anbox Cloud or Upgrade the Anbox Cloud Appliance for instructions on how to update your Anbox Cloud deployment to the 1.17 release.

2 Likes