Feature flags¶
Some features are not enabled by default but can be conditionally enabled. Such features are enabled by flags which are configured through the Anbox Management Service (AMS). You can configure these flags globally for all instances or per application.
To configure a feature globally for all instances, use a syntax similar to the following:
amc config set instance.features foo,bar
To configure a feature for one application in the manifest, use a syntax similar to the following:
name: my-app
resources:
cpus: 4
memory: 3GB
disk-size: 3GB
features: ["foo", "bar"]
enable_system_ui
¶
since 1.10.2, supported on AOSP images only
By default, Anbox hides the Android system UI when an application is running in foreground mode. In some use cases, however, it’s required to have the system UI available for navigation purposes. This can be enabled with the enable_system_ui
feature flag.
The feature flag will be considered by all new launched instances once set.
On AAOS, the Android Car system UI is always enabled and cannot be disabled.
enable_virtual_keyboard
¶
since 1.9.0, supported on AOSP images only
The Android virtual keyboard is disabled by default but can be enabled with the enable_virtual_keyboard
feature flag.
For the feature to be considered, applications must be manually updated, because changes to allow the feature to work are only applied during the application bootstrap process.
On AAOS, the Android virtual keyboard is always enabled and cannot be disabled.
enable_anbox_ime
¶
since 1.11.0, supported on AOSP images only
The client-side virtual keyboard is disabled by default but can be enabled with the enable_anbox_ime
feature flag. It requires the client application to embed Anbox WebView which interacts with the client-side virtual keyboard for text editing and sends the text to the Android container.
For the feature to be considered, applications must be manually updated, because changes to allow the feature to work are only applied during the application bootstrap process.
disable_wifi
¶
since 1.13.0
By default, Anbox sets up a virtual WiFi device, which sits on top of an Ethernet connection and simulates a real WiFi connection. This WiFi support can be optionally disabled with the disable_wifi
feature flag.
The feature flag will be considered by all newly launched instances once set.
allow_android_reboot
¶
since 1.12.0
By default, Android is not allowed to reboot. With the allow_android_reboot
feature flag, this can be allowed.
Note that you must disable the Watchdog if reboots are allowed.
The feature flag will be considered by all newly launched instances once set.
disable_development_settings
¶
since 1.18.0
The Android development settings (which include an ADB connection) are enabled by default. Some applications require these settings to be disabled, which you can do with the disable_development_settings
feature flag.
Once set, this feature flag will be considered by all newly launched instances.
android.allow_custom_android_id
¶
since 1.18.0, supported on AOSP images only
To enable the Android container to use a custom Android ID, add the feature flag android.allow_custom_android_id
upon application creation. A system app can influence the Android ID of a specific app during the Android runtime by setting the system property in the format of:
`anbox.custom_android_id.<index>=<package_name>:<android_id>`
The
<index>
is a number in the range from 0 to 126, which allows you to have multiple overrides for different packages. If the same<package_name>
with the different<android_id>
is given for multiple system propertiesanbox.custom_android_id.<index>
, the Android ID read from the system property which has the highest suffixing index that will be used in the end.The
<package_name>
is the package name of the application.The
<android_id>
is a unique ID that represents the Android ID for the targeting application. It must be at least 16 characters in length.
Once set, this feature flag will be considered by all newly launched instances.
emugl.enable_async_swap_support
¶
since 1.21.0
GL Async swap support is disabled by default for explicit signals of buffer swaps completion. To enable the GL async swap feature, add the feature flag emugl.enable_async_swap_support
upon application creation. Once the async swap support is enabled, Anbox Cloud will use the host GL driver fence commands and file descriptors to synchronize the finished frames between the host and guest instead fully relying on the host GPU driver to do so. The environment variable ANBOX_ASYNC_SWAP_ENABLED_PACKAGES
that accepts a comma-separated list of package names can be used to allow certain packages to use the GL async swap feature.
Once set, this feature flag will be considered by all newly launched instances.
webrtc.enable_ice_logging
¶
since 1.20.2
Caution
Enabling this will print IP addresses of WebRTC clients connecting to the Anbox Cloud instances in the logs without masking in clear text.
For debugging purposes, Anbox Cloud can log ICE candidates from the server and client inside the system log of an instance. This is disabled by default and needs to be explicitly turned on with the feature flag webrtc.enable_ice_logging
.
Once set, this feature flag will be considered by all newly launched instances.