1.14.0

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

Please see Component versions for a list of updated components.

New features & improvements

Charmhub migration

All charms that are part of Anbox Cloud and the used 3rd-party charms now come from Charmhub instead of the old Juju charm store.

The migration required a rename of the charms as Charmhub only provides a flat namespace.

Old name

New name

cs:~anbox-charmers/ams

ams

cs:~anbox-charmers/ams-node-controller

ams-node-controller

cs:~anbox-charmers/anbox-stream-agent

anbox-stream-agent

cs:~anbox-charmers/anbox-stream-gateway

anbox-stream-gateway

cs:~anbox-charmers/lxd

ams-lxd

cs:~anbox-charmers/coturn

coturn

cs:~anbox-charmers/anbox-cloud-dashboard

anbox-cloud-dashboard

cs:~anbox-charmers/ams-load-balancer

ams-load-balancer

cs:~anbox-charmers/aar

aar

See the upgrade instructions for further information on how migrate to Charmhub.

Anbox images based on Ubuntu 22.04

In addition to the existing Anbox images based on Ubuntu 18.04, Anbox Cloud now provides Ubuntu 22.04 based ones. From an Anbox functionality perspective there is no difference; the image is just sitting on top of a newer Ubuntu version providing access to newer software from the Ubuntu archive. The Ubuntu 18.04 images will still be maintained going forward, but will be deprecated at some point in the future (before Ubuntu 18.04 EOL in April 2023).

Hook support for AMS applications

Applications in AMS now have support for hooks. Until now, hooks were only present as part of addons. They are now fully supported by applications, with the same feature set.

Adding hooks as part of applications allows in some cases for better structure when functionality does not need to be shared with other applications.

You can find more information here and here.

Vulkan support for AMD and Intel GPUs

For supported AMD and Intel GPUs, Vulkan support is now available. This allows using regular Android applications that make use of the Vulkan graphics API.

Multi-node support for the Anbox Cloud Appliance (experimental)

The Anbox Cloud Appliance was meant to be used on a single machine so far, but with the 1.14 release, experimental support to join the initial machine with additional ones for increased capacity is added. Multi-node support does not provide high availability functionality at this time. It is purely meant to extend the capacity of the underlying LXD cluster.

Shiftfs disabled by default

Until 1.14, Anbox Cloud enabled shiftfs support in LXD by default. Shiftfs allows for instant creation of containers, because no manual shifting of file/directory ownership for extended use of user name spaces is necessary. However, there are bugs that affect the represented file path in /proc/*/maps files, which some Android applications (and Android itself) use. The applications use the information in /proc/*/maps to find a path to certain libraries or memory segments they need to access.

As shiftfs is being deprecated and the replacement (idmapped mounts) is not ready for the ZFS file system, Anbox Cloud turns off shiftfs by default starting with 1.14.0.

If you want to turn it back on, set the following configuration option on the LXD charm:

juju config lxd shiftfs_enabled=true

Other

  • Made the NVIDIA 510.x driver series the default.

  • Implemented syscall interception through LXC seccomp notification support. This enables Anbox to handle different syscalls like setpriority or sched_set_scheduler for processes inside the Android container.

  • Unified the pointer input model by using pointer events to handle mouse and touch events.

  • Switched the memory allocator from glibc (the default) to tcmalloc, to decrease the memory footprint and optimise the memory consumption for the Anbox session.

  • Added Android security updates for May 2022 (see Android Security Bulletin - May 2022 for more information).

  • Updated Android WebView to 101.0.4951.41.

  • Updated Anbox Cloud to default to the 5.0 LTS release of LXD for all new deployments. The 4.0 release of LXD remains supported, so existing deployments can continue to use 4.0.

Known issues

n/a

Bug fixes

  • AC-877 Fix the bugs of JS SDK after the recent refactor

  • AC-867 Android 12 image ships com.android.emulator.multidisplay

  • AC-836 vkcube crashes without support for HAL_PIXEL_FORMAT_RGBA_1010102

  • AC-835 Memory leaks happened to Anbox session process after a container running for a long time

  • AC-833 Anbox host not set in /etc/hosts in Android 12

  • AC-832 Android CTS tests report /proc isn’t mounted with hidepid=2

  • AC-821 CTS test cases for system features fail

  • AC-814 AMS dashboard doesn’t load on the Appliance

  • AC-810 Failing gateway docs build fails and doesn’t stop CI from succeeding

  • AC-741 End touch/mouse events when leaving the SDK container

  • AC-699 dEQP-GLES3.functional.texture.shadow.cube.linear.greater_or_equal_depth24_stencil8 fails on swrast

  • AC-693 SDK is broken on iOS on 4G only

  • AC-548 Colours with direct software rendering in scrcpy are incorrect

Upgrade instructions

See How to upgrade Anbox Cloud or How to upgrade the Anbox Cloud Appliance for instructions on how to update your Anbox Cloud deployment to the 1.14 release.