Release notes

1.7.2 (September 2020)

New Features & Improvements

  • Various improvements for HA support in the Anbox Stream Gateway and its dqlite integration
  • The Anbox Stream Gateway now exposes a /1.0/status endpoint to allow simple health checks
  • The number of registered stream agents is now exported via the prometheus endpoint of the Anbox Stream Gateway
  • The LXD charm can now use Juju storage (AWS EBS, …) at deployment time as base for the LXD storage pool
  • Coturn can now be manually configured via the Anbox Stream Agent charm configuration

Bug Fixes

  • Various fixes around interoperability of the various charms in an Anbox Cloud deployment
  • Updated and verified NRPE checks for all service components

1.7.1 (August 2020)

New Features & Improvements

Bug Fixes

  • LP #1892149: anbox-shell pm install fails in the prepare hook of an addon when bootstrapping an application
  • LP #1889747: Coturn should not run as root
  • LP #1891746: Some ARM applications crash because of failing cacheflush syscall

1.7.0 (August 2020)

New Features & Improvements

  • Anbox Cloud is now fully integrated with Ubuntu Advantage
  • TLS certificates are now managed through a common CA for all components (easyrsa)
  • GPS position updates can now be provided via a new HTTP API endpoint Anbox exposes within
    the container or via the streaming SDK
  • Removed KSM support
  • Allow streams started via the stream gateway UI to use 1080p as display resolution
  • Deprecated the Anbox Cloud Doctor in favor of Juju crashdump

Bug fixes

  • LP #1890573: Always delete the base container even when an application failed to be bootstrapped
  • LP #1847226 Fixed a bug that prevented the Dev UI to be run in fullscreen in some cases
  • LP #1890573: Stop the signaling session when a container no longer exists to avoid hanging the client for too long
  • LP #1886200: Fixed issues that appeared when displaying webpages on a software rendering backend
    (swrast and webrtc without GPU) after upgrading the system webview to 84.0.4147.89.
  • Reduced resource consumption of the WebRTC platform by avoiding unnecessary screen refresh cycles
  • Fixed timing issue which resulted in locked databases in some cases on the Stream Gateway

1.6.3 (July 2020)

Bug fixes

  • LP #1885726: Fix the mouse and touch displacement issue for Anbox Stream Gateway UI

1.6.1 (June 2020)

Bug fixes

  • LP #1885257: Fix high CPU usage for Anbox daemon
  • LP #1885972: Fix watchdog, services and video encoder settings out of sync when updating an application

1.6.2 (June 2020)

New Features & Improvements

  • Applications without an APK can now specify a boot activity in their application manifest

Bug fixes

  • LP #1885107: Automatic application updates were missing configured resources, watchdog
    or service information
  • LP #1885257: anboxd was using 100% of a single CPU core due to a spinning loop

1.6.0 (June 2020)

New Features & Improvements

  • Watchdog can now be disabled via the application manifest or configured to allow
    additional packages to provide a foreground activity
  • Service endpoints can now be defined in the application manifest
  • Full HA support for the streaming stack
  • Rejoining a streaming session when the initial client left is now possible and can
    be configured via the stream gateway API when a new session is created
  • GPU acceleration support for Tensorflow Lite via the GPU delegate
    on supported GPUs (requires OpenGL ES >= 3.1)
  • GPS support in the Anbox Platform SDK
  • GPS position can be statically configured before the Android system boots
  • Application resources (CPU, memory, disk, GPUs) can now be declared in the
    application manifest as an alternative to predefined instance types
  • Updated Android webview to 83.0.4103.96
  • Latest security updates for Android 10 (patch level 2020-06-05)
  • Manual mode for the Anbox Application Registry (AAR) which allows pushing and pulling
    applications via the REST API or the amc command line client to or from the registry
  • Improved audio latency for the streaming protocol implementation
  • Various fixes for improved Android system stability
  • Increased Android CTS test coverage
  • The Anbox Streaming SDK now comes with an Android example to demonstrate how to
    utilize streaming within an Android application.

1.5.2 (June 2020)

New Features & Improvements

  • Fix infinite loading screen issue when streaming from Anbox Stream Gateway UI
  • Fix SDK documentation for Anbox Stream Gateway and all API routes are prefixed with “/1.0”
  • Reconfigure Anbox Stream Gateway upon charm upgrade

1.5.1 (May 2020)

New Features & Improvements

  • Fix timeout issue when adding or removing LXD nodes from the cluster in AMS
  • Containers are now gracefully terminated to ensure the backup hook is executed
  • Support to start a container with one specific application version from Anbox Stream Gateway UI
  • Support numpad and mouse wheel input for the WebRTC based Streaming Stack
  • Collecting basic statistics (fps, rtt and bandwidth) while streaming and display them in Anbox Stream Gateway UI
  • Stream Gateway will not directly be exposed to the public network but only accessible via a reverse proxy
  • Dropped the monitoring stack from the default Juju bundle. It is now available via an overlay

1.5 (April 2020)

New Features & Improvements

  • Support for Android 10 including latest security updates
  • Updated software rendering to work on Android 10
  • Applications can now have encoder requirements (e.g. whether or not they
    require a GPU or are fine on a CPU encoder) and are scheduled accordingly
  • Use Dqlite in the Stream Gateway for High Availability
  • HTTP/HTTPS proxy support in AMS
  • Highly Availability support for Anbox Stream Gateway via Dqlite
  • Charms now properly work with DNS names when adding machines
  • Updated Android webview to 80.0.3987.132
  • Preliminary support for Ubuntu 20.04
  • Software rendering and video encoding support for the streaming stack
  • GPUs are now identified by their PCI address in order for a correct mapping
    inside containers

Deprecations

  • Android 7 images are now deprecated and will be dropped with the next release
    of Anbox Cloud

1.4 (March 2020)

New Features & Improvements

  • Support for Android 10 including latest security updates
  • Inclusion of an alpha version of the WebRTC based Streaming Stack
  • Updated and improve OpenGL/EGL layer to provide better performance and
    API support up to OpenGL ES 3.2 and EGL 1.4
  • Nested Android container is now using a nested user namespace with its own
    user id range to further isolate the Android system from the host system.
  • Support for explicit graphics synchronization
  • Automatic GPU detection on deployment and at runtime
  • Default LXD version changed to 3.21 for shiftfs and extended GPU support
  • Container lifecycle events are now reported via amc monitor and the coresponding REST API
  • Support for VNC was removed as scrcpy offers a good alternative

1.3 (January 2020)

New Features & Improvements

  • Generating thumbnails within libstagefright in the Android 7 images is now working
    reliable where it was generating single colored images at times before.
  • Error messages are now presented via the AMS REST API for application versions.
  • The configuration of a container was created with (platform, boot package, …)
    was added to the container REST API object which makes it visible with
    $ amc show <container id> for later inspection
  • Lifecycle events are now retured from the monitor endpoint the AMS REST API provides
  • Download of addons is now retried up to three times during the container bootstrap
    to workaround busy network environments
  • The addon prepare hook is now correctly executed while the container is running
    and before the bootstrap process finishes

1.3.2 (October 2019)

New Features & Improvements

  • Increased maximum allowed startup time for containers to 15 minutes
  • Containers can now started with additional disk space added
  • Nodes can be marked as unscheduable to allow rebooting them for maintenance
  • amc supports deleting containers on a specific node (e.g. $ amc delete --node=lxd0 --all)
  • The default deployment configuration now allows deploying AMS and LXD on the same machine
  • Integrated Android security fixes for September and October 2019. See the
    Android Security Bulletins for more information.
  • Added prepare hook to allow customizing Android while it’s running as part of the bootstrap process
  • Updated LXD charm to install latest Nvidia CUDA drivers

1.3.1 (September 2019)

New Features & Improvements

  • Allow underlying image of an application to be changed
  • Support for applications without an APK
  • An Anbox platform can now specifiy the display refresh rate
  • Integrated Android security fixes for August 2019. See the
    Android Security Bulletins for more information.

Bug fixes

  • Refresh the LXD snap on demand when the config is changed
  • Don’t use embedded etcd when a real etcd is available
  • Correctly determine the maximum OpenGL ES version the host GL driver supports
  • Support for gamepad devices in Anbox and the platform SDK

1.3 (August 2019)

New Features & Improvements

  • Images are now only distributed via the official image server and no longer available for download
  • The application registry received a dedicated CLI command to manage trusted clients
  • A dedicated charm now takes care of deploying the Anbox Application Registry
  • The disk space available to a container was reduced from 5GB to 3GB for all instance types
  • Android ANR and tombstone crash logs are now pulled from a container when it fails at runtime or on
    startup
  • Gamepad support was added to Anbox and the Platform SDK
  • Sensor support was added to Anbox and the Platform SDK
  • AMS now supports marking a single image as the default one which will be used if no other is specified
    for raw container launches or applications
  • Initial support for event monitoring of the AMS service via amc monitor and the REST API
  • The swrast platform is now part of the default image and doesn’t need to be installed via an addon
  • The binder and ashmem kernel modules are now supported on the HWE 5.0 kernel coming with Ubuntu 18.04.3
  • Services a container provides can now be named to help identfying them
  • The Android container is now further secured with a more narrow seccomp
    profile than the outer Anbox container.
  • Addons can now declare that they add support for specific Android ABIs not supported by the hardware
    via software based binary translation
  • Integrated Android security fixes until July 2019. See the
    Android Security Bulletins for more information.

1.2.1 (April 2019)

Bug fixes

  • Telegraf was restarted every five minutes which caused metrics from Anbox
    being lost.
  • Android framework crashed in WifiManager.getWifiState()
  • Application updates failed due to limited cluster capacity. Base containers
    are now queued up and processed in order as soon as capacity is available.
  • AMS was not correctly finishing a container timeout on launch when restarted. On
    restart AMS now resumes the timeout.
  • Base containers are now correctly marked as stopped during the bootstrap process
    when the related LXD container is also stopped.
  • Fixed unhandled timeouts in the LXD API client implementation causing API calls
    to hang forever.
  • Added Android security fixes from April 2019. See the
    Android Security Bulletins for more information.
  • Installing applications with an architecture not supported by the LXD cluster caused
    the installation process to hang. AMS now checks on APK upload if the APK can be executed
    by the available machines in the LXD cluster. The installation process was updated to not
    hang on unsupported APKs.
  • The Android webview crashed in specific scenarios with SIGBUS on ARM64. This was caused
    by unaligned memory access in the OpenGL translation layer inside Anbox.

1.2 (April 2019)

New Features & Improvements

  • Full support for an Application Registry
  • Updated Android 7.x with all security patches as of Mar 5 2019
  • Support for Intel and AMD GPUs
  • If configured, images will now be automatically pulled from a Canonical provided
    image server which will automatically bring updates once published.
  • Various performance and stability improvements
  • Dynamic management of KSM
  • Dedicated tool to backup and restore user data of Android applications
  • Extended timeouts for addon hook execution
  • Tab completion (bash only) for the amc command
  • Improve startup time for the Android container
  • The amc command now has shell and exec subcommands to allow easy access of containers
  • Applications can now be tagged
  • Filtering of containers and applications via the amc command
  • amc wait allows to wait for a status change of a container or application object
  • Reworked APK validator for application packages
  • The Android container now uses dnsmasq, as provided by LXD on the host, as DNS server
  • Various improvements on the Anbox Cloud charms

1.1.1 (Feburary 2019)

Bug fixes

  • Anbox was taking an incorrect display size from platform plugins and failed
    to initialize EGL rendering context.
  • The Anbox container now always dumps system log files when an error occurred.

1.1 (January 2019)

New Features & Improvements

  • The Anbox container is now based on Ubuntu 18.04
  • Experimental support for an application registry which serves as a central repository
    of applications for multiple Anbox Cloud deployments
  • Updated Android 7.x with all security patches as of Jan 5 2019
  • Added GPU support to allow hardware accelerated rendering and video encoding/decoding
  • Various improvements to container startup time and overall performance
  • Improved AMS SDK (Go)
  • Support for “raw” containers (containers without installed applications)
  • The container scheduler now accounts for container disk requirements
  • AMS exposes additional metrics (containers per app, …)
  • Anbox Platform SDK ABI version is marked as stable
  • Containers logs can be retrieved via the REST API and command line tools
  • Extended instance types (a6.3, a8.3, a10.3)
  • Binder support is now based on the new binderfs coming with Linux 5.0
  • AMS can now run on Arm64 machines
  • Example platform plugin with software rendering and VNC support

Known Issues

None

1.0.1 (December 2018)

Bug Fixes

  • Applications are not freezing anymore when using OpenGL ES >= 2.x extensively
  • AArch32 support is now properly detected on AArch64 only machines

1.0 (November 2018)

New Features & Improvements

  • First official stable release of the Anbox Cloud stack
  • Simple deployment via Juju in a single command on any cloud (public, private or bare metal)
  • Dedicated management service for container orchestration, managing the entire lifecycle of Android applications in Anbox Cloud
  • Rich REST API to talk to the management service
  • Automatic container scheduling and cluster resource management
  • Optimized containers for performance, scalability and high density
  • Based on Android 7.1.2
  • Platform SDK to allow development of custom platform plugins to integrate with existing or new streaming solutions
  • Golang SDK to allow easy use of the management service REST API
  • Support for addons to extend the content of the container images
  • Support for hooks inside the container images (e.g. restore/backup of userdata)
  • Rich online documentation
  • Metrics collection support via telegraf, prometheus and grafana
  • High availability support for the management service
  • Support for x86 and Arm64
  • Enabled for binary translation of AArch32 on AArch64 only systems
  • OpenGL ES 3.x support

Bug Fixes

None

Known Issues

  • A few applications freeze after some time and stop rendering. A reason is not known yet
    and the issue is being investigated.