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.
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.
- Experimental support for software accelerated AV1 encoding is now available behind a feature flag (
- 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_modeis 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-selectorpart 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-fsutility 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.
anbox-stream-gateway.gatewayctlcommand shipped with the
anbox-stream-gatewaysnap has been removed after it was deprecated in Anbox Cloud 1.6.
- 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.
- Dynamically changing the screen resolution of Anbox containers running with Android 10 is currently not supported.
- LP:2001901 Anbox crashes with: elf_dynamic_array_reader.h tag not found
streamer.jsondidn’t apply to WebRTC streamer
hwcomposer.anboxcrashes 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 timeoutalways even after the action was executed successfully in Android container
- AC-1348 JS SDK tries to apply ICE candidates without a remote description applied