Anbox Cloud 1.9.0 has been released


The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.9.0


  • The Android 7 (bionic:android7:arm64 and bionic:android7:amd64) images are now deprecated and will no longer be available starting with Anbox Cloud 1.10 which will be released in April 2021
  • The UI included in the Anbox Stream Gateway service will be dropped in Anbox Cloud 1.10 as it’s being replaced with the new dashboard

Known Issues

  • At times the anbox-cloud-dashboard charm reports a error as workload status due to too many units trying to use apt on the machine at the same time. Juju will retry the installation after some time automatically and the problem will fix itself. The issue can be identified in the output of juju debug-log --include anbox-cloud-dashboard. This will be improved in the upcoming 1.9.1 release
  • If for the initial deployment not Ubuntu Advantage token is configured via an overlay.yaml the status messages reported by the charms once they become idle is not set to UA token missing. There is no impact in terms of functionality. Applying the UA token via juju config <application> ua_token=<token> will work as usual.

New Features & Improvements

  • New web based dashboard to manage applications and streaming sessions in Anbox Cloud
  • WebView based on upstream 88.0.4324.152 release
  • Android security updates for February 2021 (see here for more details)
  • Out of band data allowing to send custom data from applications running inside the Android container to the client connected over WebRTC
  • Support for streaming the clients camera to the Android container over WebRTC
  • Hardware video encoding support for NVIDIA on Arm
  • Support in AMS for existing LXD clusters
  • New recursive= parameter to GET /sessions on the Stream Gateway to return the full session objects rather than just their ID
  • Streaming sessions can now be deleted in batch and asynchronously
  • Introduce the container.features config item in AMS to enable specified features in Android container
  • Bump key size to 4096 to work with 20.04 stronger security defaults
  • Anbox now uses Vulkan as a backend renderer API on NVIDIA GPUs on both x86 and Arm. This improves performance, stability and compatibility.
  • Improved density on NVIDIA Tesla T4 cards. With Anbox Cloud < 1.9.0 the maximum of containers possible was around 10-12 due to bugs in the GPU firmware when using the OpenGL ES client API. With the switch to Vulkan the firmware bugs are no longer triggered and up to a maximum of 32 simultaneous containers are possible (subject to their actual use of the GPU)
  • Updated NVIDIA GPU driver to the 460 series for both x86 and Arm
  • A default virtual keyboard is now included in the provided Android images and can be conditionally enabled
  • A launch activity can now be specified when new sessions are created or existing joined. This allows switching to specific activities within the application.
  • Stripped down unnecessary dependencies to speed up deployment time
  • Session objects in the gateway now contain information about failed container
  • The AMS charm now sets up access to the Anbox Cloud image server via the Ubuntu Advantage subscription the machine is attached to. It’s no longer necessary to supply individual user+password authentication details
  • Added API measurements to metrics
  • Various fields of an application can now be updated via the AMS HTTP API without providing a new APK file
  • The Anbox Stream Gateway has now support for HTTP rate limit which can be configured via a charm configuration option
  • AMS can be configured to use pre-existing storage pools and networks
  • AMS now exposes the scheduler.strategy configuration item to allow choosing between binpack and spread strategies
  • AMS now exposes two configuration items node.queue_size and node.workers_per_queue to allow fine tuning how AMS processes container launch requests for optimal throughput
  • The Google STUN server is no longer used
  • Streaming sessions are now ephemeral by default and will be automatically removed when the container it belongs to terminates


  • LP #1868945 Android: failed to get memory consumption info
  • LP #1873393 Close of unknown file descriptor in gralloc modules causes crash
  • LP #1892693 Provide better error message when websocket connect to gateway fails
  • LP #1897300 Rare ICE errors on iOS Safari when streaming
  • LP #1901035 NVIDIA GPUs cannot host more than 12-13 Anbox containers
  • LP #1903518 Inconsistent Session object returned by the Gateway API
  • LP #1903991 Coturn reports Unauthorised for users when stream was already established
  • LP #1905734 WebRTC streaming fails in Firefox
  • LP #1908240 AMS timing issue when fetching an image before assigning it an alias
  • LP #1908404 Images are not synchronised from
  • LP #1910203 Dashboard charm crashes with KeyError on certificates relation
  • LP #1911202 Container delete fails with ZFS busy error
  • LP #1912113 WebRTC platform aborts with unhandled exception
  • LP #1912143 Port 3000 will not get opened after exposing AAR (AMS registry)
  • LP #1912146 when nrpe relation is added to AAR, ‘Check AAR HTTPS endpoint’ will always fail with 401 Unauthorised
  • LP #1912267 WebRTC platform crashes in eglReleaseThread in on termination
  • LP #1912302 Container doesn’t not terminate correctly
  • LP #1912470 The latest WebRTC platform is broken on NVIDIA based GPU machine
  • LP #1912521 Dashboard charm does not set application version
  • LP #1912588 anbox-cloud-tests for gateway, sometime fails to launch container
  • LP #1912732 Anbox cloud dashboard does not show all of the panes correctly
  • LP #1912784 Dashboard register URL is still on HTTP
  • LP #1912785 AMC failed to create container with error, however in LXD it was successfully created
  • LP #1912787 Status message of a session with status error is empty when container crashed
  • LP #1912932 CTS tests claims EGL_KHR_image extension is missing
  • LP #1912956 Native SDK example crashes when trying to lock destroyed mutex
  • LP #1913017 SEGV when terminating the streaming on Android client built against native SDK
  • LP #1913020 FORTIFY: pthread_mutex_lock called on a destroyed mutex on AudioTrack thread
  • LP #1913058 script unloads kernel drivers when current driver is already the correct one
  • LP #1913264 Anbox Cloud Dashboard stuck on waiting for UA even with UA source configured
  • LP #1913305 Charm stays in blocked when ua attach failed
  • LP #1913364 Meaningless/Invalid resource is listed in the response when deleting an addon version
  • LP #1913391 Coturn uses location as external address when external_address_from_location is set to false
  • LP #1913403 AMS crashed when exporting an application version
  • LP #1913436 Update the command description of amc config set
  • LP #1913457 LXD container cgroup metrics are not reported via subordinate telegraf charm
  • LP #1913462 On ARM64 systems not loaded nvidia_uvm kernel module crashes containers
  • LP #1913524 AMS crashed when executing a command within a container by posting a body
  • LP #1913528 The timestamp of event shows 0001-01-01T00:00:00Z
  • LP #1914008 Juju fails to attach storage to LXD unit
  • LP #1914036 Dashboard sets 5min idle timeout
  • LP #1914188 Opened port is closed when port hasn’t changed for gateway
  • LP #1914276 JS SDK reports “Unknown message type error” at times in Firefox
  • LP #1914435 Anbox Stream JS SDK always get rear facing mode no matter people switch the camera face mode to “front” or “rear”
  • LP #1914448 Dashboard register command gives private IP instead of public one
  • LP #1914811 NVIDIA kernel modules are not loaded after deployment
  • LP #1914991 Latest gateway API changes break dashboard

Upgrade Instructions

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

1 Like