Anbox Cloud 1.16.0 has been released

Introduction

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

Please see the component versions for a list of updated components.

New features & improvements

Android

Android 13 support

Google officially released Android 13 in August 2022, and it’s now fully available as part of Anbox Cloud. You can find a general overview of the changes and new features in the official Android documentation. Android 13 is supported with the same set of features in Anbox Cloud as all other Android versions.

Serial ID

Android typically provides a hardware-derived serial number for the system in the ro.serialno system property. Anbox Cloud never set the property to a particular value, but with this release, we set a value derived from the container ID. This method fulfils Android’s conformance requirements.

AMD and Intel GPU support

GPU support for AMD and Intel now uses the respective Mesa Vulkan drivers (radv, anv) with ANGLE as the EGL/OpenGL ES frontend driver.

Mesa was updated to the 22.2.2 release, which provides various improvements and bug fixes.

Anbox runtime

Split of Android’s system and vendor directories

With the introduction of support for Android 13, Anbox Cloud now separates the /system and /vendor partitions of Android into separate directories. Inside the LXD containers, the two partitions are available at /var/lib/anbox/android-system and /var/lib/anbox/android-vendor. From a user perspective nothing changes though, because both directories are combined at /var/lib/anbox/rootfs. Therefore, no changes to existing addons or customisations are required. The split allows to use custom Android system images in a future Anbox Cloud release.

New bug report utility

The Anbox images include a new bug report tool called anbox-bug-report, which is extensible and collects information in an archive rather than a file. This method allows developers and support to easier inspect the information when debugging issues. See the documentation for more details.

WebRTC streaming improvements

To allow better fine-tuning of the WebRTC based streaming implementation in Anbox Cloud, 1.16 includes various small improvements:

  • Video bitrate limits can now be specified on a per resolution/frame rate level.
  • Additional options allow enabling NVIDIA-specific options for H.264 encoding (adaptive quantisation, multi-pass frame encoding).
  • Audio and video are now sent on separate streams to improve playout delay on the client.
  • The benchmark utility can now provide statistics for minimum playout and jitter buffer delay.
  • TURN credentials for the container are now dynamically allocated and are no longer created with a constant lifetime.

Data channel v2

Version 2 of the OOB data exchange protocol, which Anbox Cloud introduced in version 1.15, provides a full-duplex bidirectional data transmission between the Android container and the WebRTC client. In the 1.16 release, Anbox Cloud introduces the Anbox WebRTC data proxy service as an extension to version 2 of the OOB data. The data proxy service exposes a binder service in the Android container that can be used by an Android application to communicate with a WebRTC client over the Anbox WebRTC platform.

Ubuntu 22.04 support

The Juju charms of Anbox Cloud now fully support Ubuntu 22.04. The Anbox Cloud Appliance can run on Ubuntu 22.04 already since the 1.15 release.

By default, the Anbox Cloud bundles (anbox-cloud, anbox-cloud-core) available from Charmhub use Ubuntu 22.04.

With the introduction of Ubuntu 22.04, support for Ubuntu 18.04 was removed.

AMS improvements

APT mirror configuration

The APT mirror used inside Anbox containers has been hard-coded to archive.ubuntu.com or ports.ubuntu.com, which is not always ideal. To allow for easier modification, AMS now provides a container.apt_mirror configuration option. This option can be set to a custom Ubuntu mirror at runtime and will then be used by all containers that are started afterwards.

Networking ACLs

A new AMS charm configuration use_network_acl has been added. This configuration enables AMS to use LXD network ACLs rather than the AMS node controller (which is used by default) to restrict the network access of Anbox containers. The option is experimental and not ready for general use, but will in the future replace the functionality that is currently part of the AMS node controller.

Other

  • Included Android security updates for November 2022 (see Android Security Bulletin - November 2022 for more information).
  • Updated Android WebView to 107.0.5304.105.
  • Updated the used NVIDIA driver series to 515, which is supported until May 2023.
  • Updated the appliance to deploy LXD containers based on Ubuntu 22.04 on new deployments (existing deployments keep their existing containers based on Ubuntu 20.04).
  • Updated the ams-lxd Juju charm and the Anbox Cloud Appliance to automatically detect AMD GPU support and configure the kernel amdgpu driver for best performance and support.
  • Added support for the AWS g4ad instance types (equipped with AMD v520 GPUs) to the Anbox Cloud Appliance images that are available through the AWS marketplace.
  • Updated the appliance so that it can be initialised as any Ubuntu user, not just the ubuntu one.

Deprecations

  • The Anbox LXD images based on the Ubuntu 18.04 (bionic) release are now deprecated. They will receive their last update with the Anbox Cloud 1.18 release in May 2023. We strongly recommend to upgrade to the Ubuntu 22.04 (jammy) based images, which will be supported until May 2025. These images provide the exact same functionality but are based on a newer release of Ubuntu, which might require small adjustments in addons or customisations.
  • The support for version 1 of the OOB data exchange protocol, which allows only half-duplex data transmission, has been removed in the Anbox Cloud 1.16 release. With version 2 of the OOB data exchange protocol, Anbox Cloud supports full-duplex bidirectional data transmission. We recommend to migrate your integration of version 1 of the out-of-band data exchange to version 2 for full-duplex data transmission and better performance.

Known issues

n/a

Bug fixes

  • AC-1066 Security rules are not applied properly when deploying Anbox Cloud with clustering set up
  • AC-1101 Fingerprint support is marked as enabled
  • AC-1102 Android has ro.serialno not set
  • AC-1181 RenderThread is stopped when /dev/anbox_sync cannot be opened
  • AC-1197 WebRTC data proxy fails with 4/NOPERMISSION on stop
  • AC-1204 The agent sets incorrect region value for provided metrics
  • AC-1205 Playout delay set via RTP header causes error/warning on receiver
  • AC-1207 Supervisor does not reconnect after agent was down for longer and terminates Anbox
  • AC-1208 MESA_GLSL_CACHE_DIR is deprecated; use MESA_SHADER_CACHE_DIR instead

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.16 release.

2 Likes