├── .sphinx ├── version ├── _extra │ ├── ams-api.yaml │ └── gateway-api.yaml ├── _static │ └── favicon.png ├── pa11y.json ├── metrics │ └── build_metrics.sh ├── .wordlist.txt └── spellingcheck.yaml ├── .github ├── CODEOWNERS ├── workflows │ ├── cla.yml │ └── automatic-doc-checks.yml ├── pull_request_template.md └── renovate.json ├── images ├── instance_start.png ├── instance_stop.png ├── collect-metrics.png ├── icons │ ├── delete-icon.png │ ├── stream-icon.png │ ├── adb-connect-icon.png │ ├── sync-image-icon.png │ ├── share-stream-icon.png │ ├── create-instance-icon.png │ ├── edit-application-icon.png │ ├── set-default-image-icon.png │ └── connect-adb.svg ├── update_appliance.png ├── application-bootstrap.png ├── tls │ ├── manage_tls_result.png │ ├── manage_tls_a-record.png │ ├── manage_tls_dns-name.png │ ├── manage_tls_cname-record.png │ ├── manage_tls_dns-records.png │ ├── manage_tls_enter-nameservers.png │ ├── manage_tls_listener-settings.png │ ├── manage_tls_register-targets.png │ ├── manage_tls_certificate-status.png │ ├── manage_tls_custom-name-servers.png │ └── manage_tls_public-hosted-zone.png ├── stream_webrtc-candidates.png ├── stream_webrtc-connected.png ├── addons-reference-hook-order.png ├── application_virtual-device.png ├── install_appliance_register.png ├── install_customize_juju_model.png ├── rendering-pipelines │ ├── anbox_v5.idml │ ├── anbox_v5.indd │ ├── anbox_v5.pdf │ ├── anbox_v6.idml │ ├── anbox_v6.pdf │ ├── NVIDIA_pipeline.png │ ├── Intel_AMD_pipeline.png │ └── Document fonts │ │ ├── Ubuntu-L.ttf │ │ └── Ubuntu-R.ttf ├── appliance_multi_node_aws_ports.png ├── appliance-on-azure │ ├── azure_deploy-vm.png │ ├── azure_progress.png │ ├── azure_config-SKU.png │ ├── azure_config-disk.png │ ├── azure_deploy-vm-co.png │ ├── azure_quickstart.png │ ├── azure_config-basics.png │ ├── azure_config-review.png │ ├── azure_quickstart-co.png │ ├── azure_config-basics-co.png │ ├── azure_config-secgroup.png │ └── azure_config-secgroup-co.png ├── appliance-on-google-cloud │ ├── add-new-disk.png │ └── boot-disk-config.png ├── outdated-images │ ├── anbox_cloud_core-stack.png │ ├── gs_dashboard_containers.png │ ├── gs_dashboard_streaming.png │ ├── dashboard-nodes-overview.png │ ├── gs_dashboard_new_session.png │ ├── gs_dashboard_start_session.png │ ├── anbox_cloud_streaming-stack.png │ ├── gs_dashboard_add_application.png │ ├── gs_dashboard_container_logs.png │ ├── dashboard-containers-overview.png │ ├── dashboard-containers-terminal.png │ ├── gs_dashboard_add_virtual_device.png │ ├── gs_dashboard_container_overview.png │ ├── gs_dashboard_container_terminal.png │ ├── gs_dashboard_delete_application.png │ ├── gs_dashboard_edit_application.png │ ├── manage_applications_extra-data.png │ ├── manage_dashboard-applications.png │ └── manage_dashboard-add-application.png ├── anbox-cloud-architecture-diagrams │ ├── core_stack.png │ ├── Anbox illustrations v5.idml │ ├── Anbox illustrations v5.indd │ ├── Anbox illustrations v5.pdf │ ├── Document fonts │ │ ├── Ubuntu-L.ttf │ │ └── Ubuntu-R.ttf │ └── core_and_streaming_stack.png ├── appliance-on-aws │ ├── install_appliance_key-pair.png │ ├── install_appliance_add-storage.png │ ├── install_appliance_search-ami.png │ ├── install_appliance_select-ami.png │ ├── install_appliance_instance-type.png │ ├── install_appliance_launch-status.png │ ├── install_appliance_launch-wizard.png │ ├── install_appliance_security-group.png │ └── install_appliance_launch-instance.png └── streaming-stack │ ├── application_streaming_stack_v1.png │ ├── application_streaming_stack_v2.png │ ├── application_streaming_stack_v3.ai │ └── application_streaming_stack_v3.png ├── scripts └── requirements.txt ├── requirements.txt ├── reference ├── release-notes │ ├── 1.6.3.md │ ├── 1.0.1.md │ ├── 1.6.1.md │ ├── 1.1.1.md │ ├── 1.5.2.md │ ├── 1.6.2.md │ ├── 1.19.0-fix1.md │ ├── 1.12.4.md │ ├── 1.23.3.md │ ├── 1.3.1.md │ ├── 1.5.1.md │ ├── 1.7.3.md │ ├── 1.7.4.md │ ├── 1.3.2.md │ ├── 1.16.4.md │ ├── 1.3.3.md │ ├── 1.15.2.md │ ├── 1.4.0.md │ ├── 1.10.3.md │ ├── 1.12.1.md │ ├── 1.15.3.md │ ├── 1.7.1.md │ ├── 1.8.3.md │ ├── 1.10.1.md │ ├── 1.11.4.md │ ├── 1.7.2.md │ ├── 1.9.4.md │ ├── 1.9.5.md │ ├── 1.5.0.md │ ├── 1.15.1.md │ ├── 1.11.1.md │ ├── 1.16.2.md │ ├── 1.8.2.md │ ├── 1.11.5.md │ ├── 1.23.2-hotfix1.md │ ├── 1.11.3.md │ ├── 1.1.0.md │ ├── 1.9.2.md │ ├── 1.16.1.md │ └── 1.2.0.md ├── cmd-ref │ ├── aar │ │ ├── aar_trust_remove.md │ │ ├── aar_trust_list.md │ │ ├── aar_trust_revoke.md │ │ ├── aar_trust.md │ │ ├── aar.md │ │ ├── aar_completion_powershell.md │ │ ├── aar_completion_fish.md │ │ ├── aar_completion.md │ │ ├── aar_trust_add.md │ │ ├── aar_completion_bash.md │ │ └── aar_completion_zsh.md │ ├── index.md │ ├── amc │ │ ├── ams.amc_remote_remove.md │ │ ├── ams.amc_remote_set-url.md │ │ ├── ams.amc_remote_set-default.md │ │ ├── ams.amc_config_trust_remove.md │ │ ├── ams.amc_shell.md │ │ ├── ams.amc_addon_update.md │ │ ├── ams.amc_auth_identity_group.md │ │ ├── ams.amc_auth.md │ │ ├── ams.amc_image_switch.md │ │ ├── ams.amc_monitor.md │ │ ├── ams.amc_config_set.md │ │ ├── ams.amc_auth_group_permission.md │ │ ├── ams.amc_config_trust_add.md │ │ ├── ams.amc_auth_group_set.md │ │ ├── ams.amc_application_revoke.md │ │ ├── ams.amc_image_sync.md │ │ ├── ams.amc_application_unset.md │ │ ├── ams.amc_node_set.md │ │ ├── ams.amc_restart.md │ │ ├── ams.amc_show-log.md │ │ ├── ams.amc_config_trust.md │ │ ├── ams.amc_image_update.md │ │ ├── ams.amc_auth_group_create.md │ │ ├── ams.amc_config.md │ │ ├── ams.amc_addon_show.md │ │ ├── ams.amc_remote_add.md │ │ ├── ams.amc_connect.md │ │ ├── ams.amc_addon_list.md │ │ ├── ams.amc_auth_identity_create.md │ │ ├── ams.amc_completion_powershell.md │ │ ├── ams.amc_node.md │ │ ├── ams.amc_remote_list.md │ │ ├── ams.amc_set.md │ │ ├── ams.amc_stop.md │ │ ├── ams.amc_completion_fish.md │ │ ├── ams.amc_auth_identity_group_add.md │ │ ├── ams.amc_completion.md │ │ ├── ams.amc_config_show.md │ │ ├── ams.amc_auth_identity.md │ │ ├── ams.amc_auth_identity_group_delete.md │ │ ├── ams.amc_addon_delete.md │ │ ├── ams.amc_auth_group_show.md │ │ ├── ams.amc_auth_group_permission_delete.md │ │ ├── ams.amc_application_set.md │ │ ├── ams.amc_auth_group_permission_add.md │ │ ├── ams.amc_info.md │ │ ├── ams.amc_exec.md │ │ ├── ams.amc_remote.md │ │ ├── ams.amc_auth_identity_show.md │ │ ├── ams.amc_show.md │ │ ├── ams.amc_application_create.md │ │ ├── ams.amc_application_publish.md │ │ ├── ams.amc_auth_identity_delete.md │ │ ├── ams.amc_delete.md │ │ ├── ams.amc_node_remove.md │ │ ├── ams.amc_image_add.md │ │ ├── ams.amc_auth_group.md │ │ ├── ams.amc_image_show.md │ │ ├── ams.amc_addon_add.md │ │ ├── ams.amc_image_list.md │ │ ├── ams.amc_addon.md │ │ ├── ams.amc_completion_bash.md │ │ ├── ams.amc_auth_group_delete.md │ │ ├── ams.amc_start.md │ │ ├── ams.amc_completion_zsh.md │ │ ├── ams.amc_application_show.md │ │ ├── ams.amc_application_update.md │ │ ├── ams.amc_node_show.md │ │ ├── ams.amc_image_delete.md │ │ ├── ams.amc_logs.md │ │ ├── ams.amc_image.md │ │ └── ams.amc_wait.md │ └── appliance │ │ ├── anbox-cloud-appliance_status.md │ │ ├── anbox-cloud-appliance_daemon.md │ │ ├── anbox-cloud-appliance_init.md │ │ ├── anbox-cloud-appliance_config.md │ │ ├── anbox-cloud-appliance_buginfo.md │ │ ├── anbox-cloud-appliance_config_show.md │ │ ├── anbox-cloud-appliance_ams.md │ │ ├── anbox-cloud-appliance_dashboard_export-identities.md │ │ ├── anbox-cloud-appliance_completion_powershell.md │ │ ├── anbox-cloud-appliance_dashboard.md │ │ ├── anbox-cloud-appliance_completion_fish.md │ │ ├── anbox-cloud-appliance_completion.md │ │ ├── anbox-cloud-appliance_completion_bash.md │ │ ├── anbox-cloud-appliance_completion_zsh.md │ │ └── anbox-cloud-appliance_disable.md ├── ams-instance-configuration.md ├── license-information.md ├── api-reference │ ├── ams-api.md │ ├── gateway-api.md │ └── index.md ├── addon-manifest.md ├── appliance-configuration.md └── anbox-features.md ├── .wokeignore ├── howto ├── aar │ ├── index.md │ └── revoke.md ├── gpu │ └── index.md ├── addons │ ├── examples.md │ ├── update-addon.md │ ├── customize-android-example.md │ ├── emulate-platforms-example.md │ ├── enable-addons-globally.md │ ├── install-tools-example.md │ ├── migrate-addon.md │ ├── index.md │ └── backup-and-restore-example.md ├── android │ └── index.md ├── anbox-runtime │ └── index.md ├── anbox │ ├── index.md │ └── resize-storage.md ├── stream │ └── index.md ├── images │ ├── index.md │ └── use-specific-release.md ├── instance │ ├── index.md │ ├── configure-instance.md │ ├── stop-instance.md │ ├── delete-instance.md │ ├── restart-instance.md │ ├── access-instance.md │ ├── wait-for-instance.md │ └── start-instance.md ├── cluster │ └── index.md ├── application │ ├── index.md │ └── delete-application.md ├── install │ └── index.md ├── port │ ├── grant-runtime-permissions.md │ ├── index.md │ └── choose-apk-architecture.md └── troubleshoot │ └── troubleshoot-application-creation.md ├── tutorial └── index.md ├── .gitignore ├── .pre-commit-config.yaml ├── .wordlist.txt ├── .readthedocs.yaml └── explanation ├── resources.md ├── custom-images.md ├── images.md └── nodes.md /.sphinx/version: -------------------------------------------------------------------------------- 1 | 1.0.0 2 | -------------------------------------------------------------------------------- /.sphinx/_extra/ams-api.yaml: -------------------------------------------------------------------------------- 1 | ../../reference/api-reference/ams-api.yaml -------------------------------------------------------------------------------- /.sphinx/_extra/gateway-api.yaml: -------------------------------------------------------------------------------- 1 | ../../reference/api-reference/gateway-api.yaml -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # The Anbox team owns all for now 2 | * @canonical/anbox 3 | 4 | -------------------------------------------------------------------------------- /images/instance_start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/instance_start.png -------------------------------------------------------------------------------- /images/instance_stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/instance_stop.png -------------------------------------------------------------------------------- /.sphinx/_static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/.sphinx/_static/favicon.png -------------------------------------------------------------------------------- /images/collect-metrics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/collect-metrics.png -------------------------------------------------------------------------------- /images/icons/delete-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/icons/delete-icon.png -------------------------------------------------------------------------------- /images/icons/stream-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/icons/stream-icon.png -------------------------------------------------------------------------------- /images/update_appliance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/update_appliance.png -------------------------------------------------------------------------------- /images/application-bootstrap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/application-bootstrap.png -------------------------------------------------------------------------------- /images/icons/adb-connect-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/icons/adb-connect-icon.png -------------------------------------------------------------------------------- /images/icons/sync-image-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/icons/sync-image-icon.png -------------------------------------------------------------------------------- /images/tls/manage_tls_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/tls/manage_tls_result.png -------------------------------------------------------------------------------- /images/icons/share-stream-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/icons/share-stream-icon.png -------------------------------------------------------------------------------- /images/stream_webrtc-candidates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/stream_webrtc-candidates.png -------------------------------------------------------------------------------- /images/stream_webrtc-connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/stream_webrtc-connected.png -------------------------------------------------------------------------------- /images/tls/manage_tls_a-record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/tls/manage_tls_a-record.png -------------------------------------------------------------------------------- /images/tls/manage_tls_dns-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/tls/manage_tls_dns-name.png -------------------------------------------------------------------------------- /images/addons-reference-hook-order.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/addons-reference-hook-order.png -------------------------------------------------------------------------------- /images/application_virtual-device.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/application_virtual-device.png -------------------------------------------------------------------------------- /images/icons/create-instance-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/icons/create-instance-icon.png -------------------------------------------------------------------------------- /images/icons/edit-application-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/icons/edit-application-icon.png -------------------------------------------------------------------------------- /images/install_appliance_register.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/install_appliance_register.png -------------------------------------------------------------------------------- /images/tls/manage_tls_cname-record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/tls/manage_tls_cname-record.png -------------------------------------------------------------------------------- /images/tls/manage_tls_dns-records.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/tls/manage_tls_dns-records.png -------------------------------------------------------------------------------- /images/icons/set-default-image-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/icons/set-default-image-icon.png -------------------------------------------------------------------------------- /images/install_customize_juju_model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/install_customize_juju_model.png -------------------------------------------------------------------------------- /images/rendering-pipelines/anbox_v5.idml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/rendering-pipelines/anbox_v5.idml -------------------------------------------------------------------------------- /images/rendering-pipelines/anbox_v5.indd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/rendering-pipelines/anbox_v5.indd -------------------------------------------------------------------------------- /images/rendering-pipelines/anbox_v5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/rendering-pipelines/anbox_v5.pdf -------------------------------------------------------------------------------- /images/rendering-pipelines/anbox_v6.idml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/rendering-pipelines/anbox_v6.idml -------------------------------------------------------------------------------- /images/rendering-pipelines/anbox_v6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/rendering-pipelines/anbox_v6.pdf -------------------------------------------------------------------------------- /images/appliance_multi_node_aws_ports.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance_multi_node_aws_ports.png -------------------------------------------------------------------------------- /images/tls/manage_tls_enter-nameservers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/tls/manage_tls_enter-nameservers.png -------------------------------------------------------------------------------- /images/tls/manage_tls_listener-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/tls/manage_tls_listener-settings.png -------------------------------------------------------------------------------- /images/tls/manage_tls_register-targets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/tls/manage_tls_register-targets.png -------------------------------------------------------------------------------- /images/appliance-on-azure/azure_deploy-vm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-azure/azure_deploy-vm.png -------------------------------------------------------------------------------- /images/appliance-on-azure/azure_progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-azure/azure_progress.png -------------------------------------------------------------------------------- /images/tls/manage_tls_certificate-status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/tls/manage_tls_certificate-status.png -------------------------------------------------------------------------------- /images/tls/manage_tls_custom-name-servers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/tls/manage_tls_custom-name-servers.png -------------------------------------------------------------------------------- /images/tls/manage_tls_public-hosted-zone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/tls/manage_tls_public-hosted-zone.png -------------------------------------------------------------------------------- /images/appliance-on-azure/azure_config-SKU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-azure/azure_config-SKU.png -------------------------------------------------------------------------------- /images/appliance-on-azure/azure_config-disk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-azure/azure_config-disk.png -------------------------------------------------------------------------------- /images/appliance-on-azure/azure_deploy-vm-co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-azure/azure_deploy-vm-co.png -------------------------------------------------------------------------------- /images/appliance-on-azure/azure_quickstart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-azure/azure_quickstart.png -------------------------------------------------------------------------------- /images/rendering-pipelines/NVIDIA_pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/rendering-pipelines/NVIDIA_pipeline.png -------------------------------------------------------------------------------- /images/appliance-on-azure/azure_config-basics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-azure/azure_config-basics.png -------------------------------------------------------------------------------- /images/appliance-on-azure/azure_config-review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-azure/azure_config-review.png -------------------------------------------------------------------------------- /images/appliance-on-azure/azure_quickstart-co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-azure/azure_quickstart-co.png -------------------------------------------------------------------------------- /images/appliance-on-google-cloud/add-new-disk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-google-cloud/add-new-disk.png -------------------------------------------------------------------------------- /images/outdated-images/anbox_cloud_core-stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/anbox_cloud_core-stack.png -------------------------------------------------------------------------------- /images/outdated-images/gs_dashboard_containers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/gs_dashboard_containers.png -------------------------------------------------------------------------------- /images/outdated-images/gs_dashboard_streaming.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/gs_dashboard_streaming.png -------------------------------------------------------------------------------- /images/rendering-pipelines/Intel_AMD_pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/rendering-pipelines/Intel_AMD_pipeline.png -------------------------------------------------------------------------------- /images/appliance-on-azure/azure_config-basics-co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-azure/azure_config-basics-co.png -------------------------------------------------------------------------------- /images/appliance-on-azure/azure_config-secgroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-azure/azure_config-secgroup.png -------------------------------------------------------------------------------- /images/appliance-on-google-cloud/boot-disk-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-google-cloud/boot-disk-config.png -------------------------------------------------------------------------------- /images/outdated-images/dashboard-nodes-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/dashboard-nodes-overview.png -------------------------------------------------------------------------------- /images/outdated-images/gs_dashboard_new_session.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/gs_dashboard_new_session.png -------------------------------------------------------------------------------- /images/outdated-images/gs_dashboard_start_session.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/gs_dashboard_start_session.png -------------------------------------------------------------------------------- /images/anbox-cloud-architecture-diagrams/core_stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/anbox-cloud-architecture-diagrams/core_stack.png -------------------------------------------------------------------------------- /images/appliance-on-aws/install_appliance_key-pair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-aws/install_appliance_key-pair.png -------------------------------------------------------------------------------- /images/appliance-on-azure/azure_config-secgroup-co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-azure/azure_config-secgroup-co.png -------------------------------------------------------------------------------- /images/outdated-images/anbox_cloud_streaming-stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/anbox_cloud_streaming-stack.png -------------------------------------------------------------------------------- /images/outdated-images/gs_dashboard_add_application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/gs_dashboard_add_application.png -------------------------------------------------------------------------------- /images/outdated-images/gs_dashboard_container_logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/gs_dashboard_container_logs.png -------------------------------------------------------------------------------- /images/rendering-pipelines/Document fonts/Ubuntu-L.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/rendering-pipelines/Document fonts/Ubuntu-L.ttf -------------------------------------------------------------------------------- /images/rendering-pipelines/Document fonts/Ubuntu-R.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/rendering-pipelines/Document fonts/Ubuntu-R.ttf -------------------------------------------------------------------------------- /scripts/requirements.txt: -------------------------------------------------------------------------------- 1 | certifi==2025.11.12 2 | charset-normalizer==3.4.4 3 | idna==3.11 4 | Jinja2==3.1.6 5 | MarkupSafe==3.0.3 6 | requests==2.32.5 7 | urllib3==2.6.2 8 | -------------------------------------------------------------------------------- /images/appliance-on-aws/install_appliance_add-storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-aws/install_appliance_add-storage.png -------------------------------------------------------------------------------- /images/appliance-on-aws/install_appliance_search-ami.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-aws/install_appliance_search-ami.png -------------------------------------------------------------------------------- /images/appliance-on-aws/install_appliance_select-ami.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-aws/install_appliance_select-ami.png -------------------------------------------------------------------------------- /images/outdated-images/dashboard-containers-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/dashboard-containers-overview.png -------------------------------------------------------------------------------- /images/outdated-images/dashboard-containers-terminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/dashboard-containers-terminal.png -------------------------------------------------------------------------------- /images/outdated-images/gs_dashboard_add_virtual_device.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/gs_dashboard_add_virtual_device.png -------------------------------------------------------------------------------- /images/outdated-images/gs_dashboard_container_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/gs_dashboard_container_overview.png -------------------------------------------------------------------------------- /images/outdated-images/gs_dashboard_container_terminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/gs_dashboard_container_terminal.png -------------------------------------------------------------------------------- /images/outdated-images/gs_dashboard_delete_application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/gs_dashboard_delete_application.png -------------------------------------------------------------------------------- /images/outdated-images/gs_dashboard_edit_application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/gs_dashboard_edit_application.png -------------------------------------------------------------------------------- /images/outdated-images/manage_applications_extra-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/manage_applications_extra-data.png -------------------------------------------------------------------------------- /images/outdated-images/manage_dashboard-applications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/manage_dashboard-applications.png -------------------------------------------------------------------------------- /images/streaming-stack/application_streaming_stack_v1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/streaming-stack/application_streaming_stack_v1.png -------------------------------------------------------------------------------- /images/streaming-stack/application_streaming_stack_v2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/streaming-stack/application_streaming_stack_v2.png -------------------------------------------------------------------------------- /images/streaming-stack/application_streaming_stack_v3.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/streaming-stack/application_streaming_stack_v3.ai -------------------------------------------------------------------------------- /images/streaming-stack/application_streaming_stack_v3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/streaming-stack/application_streaming_stack_v3.png -------------------------------------------------------------------------------- /images/appliance-on-aws/install_appliance_instance-type.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-aws/install_appliance_instance-type.png -------------------------------------------------------------------------------- /images/appliance-on-aws/install_appliance_launch-status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-aws/install_appliance_launch-status.png -------------------------------------------------------------------------------- /images/appliance-on-aws/install_appliance_launch-wizard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-aws/install_appliance_launch-wizard.png -------------------------------------------------------------------------------- /images/appliance-on-aws/install_appliance_security-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-aws/install_appliance_security-group.png -------------------------------------------------------------------------------- /images/outdated-images/manage_dashboard-add-application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/outdated-images/manage_dashboard-add-application.png -------------------------------------------------------------------------------- /.sphinx/pa11y.json: -------------------------------------------------------------------------------- 1 | { 2 | "chromeLaunchConfig": { 3 | "args": [ 4 | "--no-sandbox" 5 | ] 6 | }, 7 | "reporter": "cli", 8 | "standard": "WCAG2AA" 9 | } 10 | -------------------------------------------------------------------------------- /images/appliance-on-aws/install_appliance_launch-instance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/appliance-on-aws/install_appliance_launch-instance.png -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | canonical-sphinx[full]==0.5.1 2 | canonical-sphinx-extensions==0.0.34 3 | sphinxcontrib-svg2pdfconverter[CairoSVG] 4 | sphinx-last-updated-by-git 5 | sphinx-sitemap 6 | -------------------------------------------------------------------------------- /images/anbox-cloud-architecture-diagrams/Anbox illustrations v5.idml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/anbox-cloud-architecture-diagrams/Anbox illustrations v5.idml -------------------------------------------------------------------------------- /images/anbox-cloud-architecture-diagrams/Anbox illustrations v5.indd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/anbox-cloud-architecture-diagrams/Anbox illustrations v5.indd -------------------------------------------------------------------------------- /images/anbox-cloud-architecture-diagrams/Anbox illustrations v5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/anbox-cloud-architecture-diagrams/Anbox illustrations v5.pdf -------------------------------------------------------------------------------- /images/anbox-cloud-architecture-diagrams/Document fonts/Ubuntu-L.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/anbox-cloud-architecture-diagrams/Document fonts/Ubuntu-L.ttf -------------------------------------------------------------------------------- /images/anbox-cloud-architecture-diagrams/Document fonts/Ubuntu-R.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/anbox-cloud-architecture-diagrams/Document fonts/Ubuntu-R.ttf -------------------------------------------------------------------------------- /images/anbox-cloud-architecture-diagrams/core_and_streaming_stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canonical/anbox-cloud-docs/main/images/anbox-cloud-architecture-diagrams/core_and_streaming_stack.png -------------------------------------------------------------------------------- /reference/release-notes/1.6.3.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.6.3 (July 2020) 5 | 6 | ## Bug fixes 7 | 8 | * LP #1885726: Fix the mouse and touch displacement issue for Anbox Stream Gateway UI -------------------------------------------------------------------------------- /.wokeignore: -------------------------------------------------------------------------------- 1 | # the cheat sheets contain a link to a repository with a block word which we 2 | # cannot avoid for now, ie 3 | # https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html 4 | doc-cheat-sheet* 5 | -------------------------------------------------------------------------------- /reference/cmd-ref/aar/aar_trust_remove.md: -------------------------------------------------------------------------------- 1 | # aar trust remove 2 | 3 | Remove a trusted certificate 4 | 5 | ## Usage 6 | 7 | aar trust remove [flags] 8 | 9 | ## Flags 10 | 11 | -h, --help help for remove 12 | -------------------------------------------------------------------------------- /reference/release-notes/1.0.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.0.1 (December 2018) 5 | 6 | ## Bug fixes 7 | 8 | * Applications are not freezing anymore when using OpenGL ES >= 2.x extensively 9 | * AArch32 support is now properly detected on AArch64 only machines -------------------------------------------------------------------------------- /reference/release-notes/1.6.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.6.1 (June 2020) 5 | 6 | ## Bug fixes 7 | 8 | * LP #1885257: Fix high CPU usage for Anbox daemon 9 | * LP #1885972: Fix watchdog, services and video encoder settings out of sync when updating an application -------------------------------------------------------------------------------- /howto/aar/index.md: -------------------------------------------------------------------------------- 1 | (howto-aar)= 2 | # AAR 3 | 4 | The following guides in this section describe how to manage the Anbox Application Registry (AAR). 5 | 6 | ```{toctree} 7 | :titlesonly: 8 | 9 | configure 10 | deploy 11 | revoke 12 | ``` 13 | See {ref}`exp-aar` for an overview of AAR and how it works. -------------------------------------------------------------------------------- /reference/cmd-ref/index.md: -------------------------------------------------------------------------------- 1 | (ref-cmd-ref)= 2 | # Command reference 3 | 4 | This section provides command reference for the following command line utilities: 5 | 6 | ```{toctree} 7 | :titlesonly: 8 | AMC 9 | Appliance 10 | AAR 11 | ``` 12 | -------------------------------------------------------------------------------- /reference/release-notes/1.1.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.1.1 (February 2019) 5 | 6 | ## Bug fixes 7 | 8 | * Anbox was taking an incorrect display size from platform plugins and failed to initialize EGL rendering context. 9 | * The Anbox container now always dumps system log files when an error occurred. -------------------------------------------------------------------------------- /howto/gpu/index.md: -------------------------------------------------------------------------------- 1 | (howto-gpu)= 2 | # GPU 3 | 4 | This guide provides instructions for tuning GPU configuration for Anbox Cloud deployment, helping you benchmark GPU workloads, improve instance density, and achieve optimal GPU resource utilization. 5 | 6 | ```{toctree} 7 | :titlesonly: 8 | 9 | 10 | increase-instance-density 11 | ``` 12 | -------------------------------------------------------------------------------- /howto/addons/examples.md: -------------------------------------------------------------------------------- 1 | # Examples 2 | 3 | Here are some examples to illustrate how to use addons and hooks: 4 | 5 | ```{toctree} 6 | Customize Android 7 | Emulate platforms 8 | Backup and restore data 9 | Install tools 10 | ``` 11 | -------------------------------------------------------------------------------- /.github/workflows/cla.yml: -------------------------------------------------------------------------------- 1 | name: CLA check 2 | on: [pull_request_target] 3 | 4 | jobs: 5 | check-for-cla: 6 | name: Check if author has signed the Canonical CLA 7 | runs-on: ubuntu-latest 8 | steps: 9 | - name: Check if CLA signed 10 | uses: canonical/has-signed-canonical-cla@1c20438ad54b4d37105e777000545881d2293ba4 # 2.2.0 11 | -------------------------------------------------------------------------------- /reference/release-notes/1.5.2.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.5.2 (June 2020) 5 | 6 | ## New features & improvements 7 | 8 | * Fix infinite loading screen issue when streaming from Anbox Stream Gateway UI 9 | * Fix SDK documentation for Anbox Stream Gateway and all API routes are prefixed with "/1.0" 10 | * Reconfigure Anbox Stream Gateway upon charm upgrade -------------------------------------------------------------------------------- /howto/android/index.md: -------------------------------------------------------------------------------- 1 | (howto-Android)= 2 | # Work with Android 3 | 4 | The following guides in this section describe how to work with Android in Anbox Cloud: 5 | 6 | ```{toctree} 7 | :titlesonly: 8 | 9 | access-android-instance 10 | debug-graphics-renderdoc 11 | integrate-hidl 12 | custom-vhal 13 | set-automotive-properties 14 | simulate-incoming-sms 15 | ``` 16 | -------------------------------------------------------------------------------- /images/icons/connect-adb.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tutorial/index.md: -------------------------------------------------------------------------------- 1 | (tutorials)= 2 | # Tutorials 3 | 4 | The tutorials we offer guiding you through installing the {term}`Anbox Cloud Appliance` and creating your first virtual Android device. 5 | We also offer an optional tutorial to set up your custom stream client. 6 | 7 | ```{toctree} 8 | :maxdepth: 1 9 | installing-appliance 10 | create-test-virtual-device 11 | stream-client 12 | ``` 13 | -------------------------------------------------------------------------------- /reference/cmd-ref/aar/aar_trust_list.md: -------------------------------------------------------------------------------- 1 | # aar trust list 2 | 3 | List currently trusted clients 4 | 5 | ## Usage 6 | 7 | aar trust list [flags] 8 | 9 | ## Aliases 10 | 11 | list, ls 12 | 13 | ## Flags 14 | 15 | ``` 16 | --format string Output format (table|csv|json|yaml) (default "table") 17 | -h, --help help for list 18 | --revoked List revoked certificates instead 19 | ``` 20 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_remote_remove.md: -------------------------------------------------------------------------------- 1 | ## ams.amc remote remove 2 | 3 | Remove a registered remote 4 | 5 | ``` 6 | ams.amc remote remove [flags] 7 | ``` 8 | 9 | ### Examples 10 | 11 | ``` 12 | $ amc remote remove foo 13 | ``` 14 | 15 | ### Options 16 | 17 | ``` 18 | -h, --help help for remove 19 | ``` 20 | 21 | ### SEE ALSO 22 | 23 | * [ams.amc remote](ams.amc_remote.md) - Interact with remote AMS daemons 24 | 25 | -------------------------------------------------------------------------------- /howto/anbox-runtime/index.md: -------------------------------------------------------------------------------- 1 | (howto-anbox-runtime)= 2 | # Work with the Anbox runtime 3 | 4 | The guides in this section describe how to work with the Anbox runtime, which is responsible for running the Android container, providing access to any hardware and integrating with streaming protocols. 5 | 6 | The following guides are available: 7 | 8 | ```{toctree} 9 | :titlesonly: 10 | 11 | develop-addon-devmode 12 | develop-platform-plugin 13 | ``` 14 | -------------------------------------------------------------------------------- /reference/release-notes/1.6.2.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.6.2 (June 2020) 5 | 6 | ## New features & improvements 7 | 8 | * Applications without an APK can now specify a boot activity in their application manifest 9 | 10 | ## Bug fixes 11 | 12 | * LP #1885107: Automatic application updates were missing configured resources, watchdog or service information 13 | * LP #1885257: `anboxd` was using 100% of a single CPU core due to a spinning loop -------------------------------------------------------------------------------- /howto/anbox/index.md: -------------------------------------------------------------------------------- 1 | (howto-manage-anbox)= 2 | # Manage Anbox Cloud 3 | 4 | The following guides in this section help you to manage and work with your Anbox Cloud or Anbox Cloud Appliance installation. 5 | 6 | ```{toctree} 7 | :titlesonly: 8 | 9 | control-ams-remotely 10 | auth 11 | harden 12 | resize-storage 13 | benchmarks 14 | tls-for-appliance 15 | ``` 16 | 17 | You can also refer to {ref}`ref-cmd-ref` for commands that you can use with the CLI. 18 | -------------------------------------------------------------------------------- /reference/cmd-ref/aar/aar_trust_revoke.md: -------------------------------------------------------------------------------- 1 | # aar trust revoke 2 | 3 | Revoke a certificate. 4 | 5 | The revoked certificate cannot be used any longer to access the application registry. 6 | This operation is not revertable. 7 | 8 | ## Usage 9 | 10 | aar trust revoke [flags] 11 | 12 | ## Flags 13 | 14 | ``` 15 | -h, --help help for revoke 16 | -y, --yes Assume 'yes' as answer to all prompts and run non-interactively 17 | ``` 18 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_remote_set-url.md: -------------------------------------------------------------------------------- 1 | ## ams.amc remote set-url 2 | 3 | Set the URL of an existing remote 4 | 5 | ``` 6 | ams.amc remote set-url [flags] 7 | ``` 8 | 9 | ### Examples 10 | 11 | ``` 12 | $ amc remote add foo https://192.0.2.10:8444 13 | ``` 14 | 15 | ### Options 16 | 17 | ``` 18 | -h, --help help for set-url 19 | ``` 20 | 21 | ### SEE ALSO 22 | 23 | * [ams.amc remote](ams.amc_remote.md) - Interact with remote AMS daemons 24 | 25 | -------------------------------------------------------------------------------- /reference/cmd-ref/aar/aar_trust.md: -------------------------------------------------------------------------------- 1 | # aar trust 2 | 3 | Manage trusted clients 4 | 5 | ## Usage 6 | 7 | ``` 8 | aar trust [command] 9 | ``` 10 | 11 | ## Flags 12 | 13 | ``` 14 | -h, --help help for trust 15 | ``` 16 | 17 | Use "aar trust [command] --help" for more information about a command. 18 | 19 | ## SEE ALSO 20 | 21 | * [aar trust add](aar_trust_add.md) 22 | * [aar trust list](aar_trust_list.md) 23 | * [aar trust remove](aar_trust_remove.md) 24 | * [aar trust revoke](aar_trust_revoke.md) 25 | -------------------------------------------------------------------------------- /reference/release-notes/1.19.0-fix1.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # Release notes for 1.19.0-fix1 hotfix 5 | 6 | The Anbox Cloud team has released a hotfix (1.19.0-fix1) to address the [Grafana security update](https://grafana.com/blog/2023/08/24/grafana-security-update-gpg-signing-key-rotation/). 7 | 8 | The hotfix applies the updated `apt` key for Grafana. Monitoring with Grafana is enabled by default in the Anbox Cloud Appliance and hence without the hotfix, new installations of the Appliance may fail. 9 | -------------------------------------------------------------------------------- /reference/ams-instance-configuration.md: -------------------------------------------------------------------------------- 1 | (ref-ams-instance-configuration)= 2 | # AMS instance configuration 3 | 4 | The Anbox Management Service (AMS) provides various configuration items for individual instances. 5 | 6 | | Name
*(Type, Default)* | Description | 7 | |-----|-----------------------| 8 | | `security.delete_protected`
*(boolean, false)* | If set to `true`, the instance will be protected against any delete operation. `false` disables this and will allow the instance to be deleted normally.| 9 | -------------------------------------------------------------------------------- /.sphinx/metrics/build_metrics.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # shellcheck disable=all 3 | 4 | links=0 5 | images=0 6 | 7 | # count number of links 8 | links=$(find . -type d -path './.sphinx' -prune -o -name '*.html' -exec cat {} + | grep -o " [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc remote set-default foo 20 | ``` 21 | 22 | ### Options 23 | 24 | ``` 25 | -h, --help help for set-default 26 | ``` 27 | 28 | ### SEE ALSO 29 | 30 | * [ams.amc remote](ams.amc_remote.md) - Interact with remote AMS daemons 31 | 32 | -------------------------------------------------------------------------------- /reference/cmd-ref/appliance/anbox-cloud-appliance_daemon.md: -------------------------------------------------------------------------------- 1 | ## anbox-cloud-appliance daemon 2 | 3 | Run the Anbox Cloud Appliance daemon 4 | 5 | ``` 6 | anbox-cloud-appliance daemon [flags] 7 | ``` 8 | 9 | ### Examples 10 | 11 | ``` 12 | $ anbox-cloud-appliance daemon 13 | ``` 14 | 15 | ### Options 16 | 17 | ``` 18 | --config string Path to the daemon configuration file 19 | -h, --help help for daemon 20 | ``` 21 | 22 | ### SEE ALSO 23 | 24 | * [anbox-cloud-appliance](anbox-cloud-appliance.md) - Anbox Cloud Appliance, bringing Android at scale to any cloud 25 | 26 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_config_trust_remove.md: -------------------------------------------------------------------------------- 1 | ## ams.amc config trust remove 2 | 3 | Remove trust for a client 4 | 5 | ### Synopsis 6 | 7 | Remove trust for a client. 8 | 9 | This client will no longer be able to communicate with AMS. 10 | 11 | ``` 12 | ams.amc config trust remove [flags] 13 | ``` 14 | 15 | ### Examples 16 | 17 | ``` 18 | $ amc config trust remove root@juju-3bdb58-1 19 | ``` 20 | 21 | ### Options 22 | 23 | ``` 24 | -h, --help help for remove 25 | ``` 26 | 27 | ### SEE ALSO 28 | 29 | * [ams.amc config trust](ams.amc_config_trust.md) - Manage trusted clients 30 | 31 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_shell.md: -------------------------------------------------------------------------------- 1 | ## ams.amc shell 2 | 3 | Open a shell inside a running instance 4 | 5 | ### Synopsis 6 | 7 | Open a shell inside a running instance. 8 | 9 | This command is an alias for 'amc exec -- su -l'. 10 | 11 | 12 | ``` 13 | ams.amc shell [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc shell cbluej507mpg272hdmo0 20 | root@ams-cbluej507mpg272hdmo0:~# 21 | ``` 22 | 23 | ### Options 24 | 25 | ``` 26 | -h, --help help for shell 27 | ``` 28 | 29 | ### SEE ALSO 30 | 31 | * [ams.amc](ams.amc.md) - Anbox Management Client 32 | 33 | -------------------------------------------------------------------------------- /reference/cmd-ref/aar/aar_completion_powershell.md: -------------------------------------------------------------------------------- 1 | # aar completion powershell 2 | 3 | Generate the autocompletion script for powershell. 4 | 5 | To load completions in your current shell session: 6 | 7 | aar completion powershell | Out-String | Invoke-Expression 8 | 9 | To load completions for every new session, add the output of the above command 10 | to your powershell profile. 11 | 12 | ## Usage 13 | 14 | aar completion powershell [flags] 15 | 16 | ## Flags 17 | 18 | ``` 19 | -h, --help help for powershell 20 | --no-descriptions disable completion descriptions 21 | ``` 22 | -------------------------------------------------------------------------------- /howto/addons/update-addon.md: -------------------------------------------------------------------------------- 1 | (howto-update-addons)= 2 | # Update addons 3 | 4 | You can update an existing addon with a new version by using the following command: 5 | 6 | ```bash 7 | amc addon update foo ./foo-addon 8 | ``` 9 | ```{note} 10 | Due to Snap strict confinement, the addon must be located in your home directory. 11 | ``` 12 | 13 | AMS will update the addon and create a new version for all applications that use this addon in the background. If the addon you are updating is used by many applications, you might experience increased load on your cluster while AMS updates many applications simultaneously. 14 | -------------------------------------------------------------------------------- /howto/instance/index.md: -------------------------------------------------------------------------------- 1 | (howto-instance)= 2 | # Manage instances 3 | 4 | The following guides in this section describe how to work with instances in Anbox Cloud. 5 | 6 | ```{toctree} 7 | :titlesonly: 8 | 9 | create-instance 10 | list-instances 11 | configure-instance 12 | access-instance 13 | start-instance 14 | wait-for-instance 15 | share-session 16 | stop-instance 17 | restart-instance 18 | view-instance-logs 19 | delete-instance 20 | backup-restore-application-data 21 | configure-geographic-location 22 | expose-services 23 | ``` 24 | See {ref}`exp-instances` for an introduction to how instances are used in Anbox Cloud. 25 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_addon_update.md: -------------------------------------------------------------------------------- 1 | ## ams.amc addon update 2 | 3 | Update an existing addon 4 | 5 | ``` 6 | ams.amc addon update [flags] 7 | ``` 8 | 9 | ### Examples 10 | 11 | ``` 12 | $ tree addon 13 | addon/ 14 | ├── hooks 15 | │   └── install 16 | └── manifest.yaml 17 | 18 | $ amc addon update foo addon/ 19 | 20 | ``` 21 | 22 | ### Options 23 | 24 | ``` 25 | -h, --help help for update 26 | -t, --timeout string Maximum time to wait for the operation to complete (default "5m") 27 | ``` 28 | 29 | ### SEE ALSO 30 | 31 | * [ams.amc addon](ams.amc_addon.md) - Manage addons 32 | 33 | -------------------------------------------------------------------------------- /reference/cmd-ref/aar/aar_completion_fish.md: -------------------------------------------------------------------------------- 1 | # aar completion fish 2 | 3 | Generate the autocompletion script for the fish shell. 4 | 5 | To load completions in your current shell session: 6 | 7 | aar completion fish | source 8 | 9 | To load completions for every new session, execute once: 10 | 11 | aar completion fish > ~/.config/fish/completions/aar.fish 12 | 13 | You will need to start a new shell for this setup to take effect. 14 | 15 | ## Usage 16 | 17 | aar completion fish [flags] 18 | 19 | ## Flags 20 | 21 | ``` 22 | -h, --help help for fish 23 | --no-descriptions disable completion descriptions 24 | ``` 25 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_auth_identity_group.md: -------------------------------------------------------------------------------- 1 | ## ams.amc auth identity group 2 | 3 | Manage groups for an identity 4 | 5 | ### Synopsis 6 | 7 | Manage groups for an identity. 8 | 9 | ### Options 10 | 11 | ``` 12 | -h, --help help for group 13 | ``` 14 | 15 | ### SEE ALSO 16 | 17 | * [ams.amc auth identity](ams.amc_auth_identity.md) - Manage authentiation & authorization 18 | * [ams.amc auth identity group add](ams.amc_auth_identity_group_add.md) - Add an identity to authorization groups. 19 | * [ams.amc auth identity group delete](ams.amc_auth_identity_group_delete.md) - Remove an identity from authorization groups. 20 | 21 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_auth.md: -------------------------------------------------------------------------------- 1 | ## ams.amc auth 2 | 3 | Manage authentication & authorization 4 | 5 | ### Synopsis 6 | 7 | Manage authentication & authorization in AMS. 8 | 9 | Create users and groups for managing authentication and authorization in Anbox Management Service (AMS). 10 | 11 | 12 | ### Options 13 | 14 | ``` 15 | -h, --help help for auth 16 | ``` 17 | 18 | ### SEE ALSO 19 | 20 | * [ams.amc](ams.amc.md) - Anbox Management Client 21 | * [ams.amc auth group](ams.amc_auth_group.md) - Manage authorization groups in AMS 22 | * [ams.amc auth identity](ams.amc_auth_identity.md) - Manage authentiation & authorization 23 | 24 | -------------------------------------------------------------------------------- /howto/cluster/index.md: -------------------------------------------------------------------------------- 1 | (howto-manage-cluster)= 2 | # Manage cluster nodes 3 | 4 | The guides in this section describe how to distribute the load of your Anbox Cloud installation over several machines in a cluster. 5 | 6 | See {ref}`exp-clustering` for an introduction to how clustering works in Anbox Cloud. 7 | 8 | ```{important} 9 | Currently, Anbox Cloud Appliance does not support clustering. 10 | ``` 11 | The following how-to guides are available for operations related to clustering in charmed Anbox Cloud deployments: 12 | 13 | ```{toctree} 14 | :titlesonly: 15 | 16 | configure-nodes 17 | Scale down 18 | Scale up 19 | ``` 20 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_image_switch.md: -------------------------------------------------------------------------------- 1 | ## ams.amc image switch 2 | 3 | Set the default image 4 | 5 | ### Synopsis 6 | 7 | Set the default image. 8 | 9 | The default image is used when creating an application that does not have an image 10 | specified in the application manifest, or when launching a raw container without image ID. 11 | 12 | 13 | ``` 14 | ams.amc image switch [flags] 15 | ``` 16 | 17 | ### Examples 18 | 19 | ``` 20 | $ amc image switch foo 21 | ``` 22 | 23 | ### Options 24 | 25 | ``` 26 | -h, --help help for switch 27 | ``` 28 | 29 | ### SEE ALSO 30 | 31 | * [ams.amc image](ams.amc_image.md) - Manage images 32 | 33 | -------------------------------------------------------------------------------- /.github/workflows/automatic-doc-checks.yml: -------------------------------------------------------------------------------- 1 | # 2 | name: Automatic doc checks 3 | 4 | on: 5 | push: 6 | branches: [ main ] 7 | pull_request: 8 | paths: 9 | - '/**' # Removed docs as everything is in the root directory 10 | 11 | workflow_dispatch: 12 | # Manual trigger 13 | 14 | 15 | concurrency: 16 | group: ${{ github.workflow }}-${{ github.ref }} 17 | cancel-in-progress: true 18 | 19 | jobs: 20 | documentation-checks: 21 | uses: canonical/documentation-workflows/.github/workflows/documentation-checks.yaml@6f9c05eae99ca9fff05250810bba2a71a380ebd1 22 | with: 23 | working-directory: "/" 24 | fetch-depth: 0 25 | -------------------------------------------------------------------------------- /howto/addons/customize-android-example.md: -------------------------------------------------------------------------------- 1 | (howto-customize-android-example)= 2 | # Example: Customize Android 3 | 4 | To do any customization to the Android system that runs your application, use the `anbox-shell` tool within a hook. This tool is useful to interact with the Android system directly. 5 | 6 | In this example, we create a hook that configures the Android system to use an HTTP proxy: 7 | 8 | ```bash 9 | #!/bin/sh -ex 10 | 11 | # The settings we change are persistent, so we only need to set them once 12 | if [ "$INSTANCE_TYPE" = "regular" ]; then 13 | exit 0 14 | fi 15 | 16 | anbox-shell settings put global http_proxy myproxy:8080 17 | ``` 18 | -------------------------------------------------------------------------------- /reference/cmd-ref/aar/aar_completion.md: -------------------------------------------------------------------------------- 1 | # aar completion 2 | 3 | Generate the auto-completion script for AAR for the specified shell. 4 | See each sub-command's help for details on how to use the generated script. 5 | 6 | ## Usage 7 | 8 | aar completion [command] 9 | 10 | ## Flags 11 | 12 | -h, --help help for completion 13 | 14 | Use "aar completion [command] --help" for more information about a command. 15 | 16 | ## SEE ALSO 17 | * [aar completion bash](aar_completion_bash.md) 18 | * [aar completion fish](aar_completion_fish.md) 19 | * [aar completion powershell](aar_completion_powershell.md) 20 | * [aar completion zsh](aar_completion_zsh.md) 21 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_monitor.md: -------------------------------------------------------------------------------- 1 | ## ams.amc monitor 2 | 3 | Listen for events generated in AMS 4 | 5 | ### Synopsis 6 | 7 | Monitor AMS for events 8 | 9 | By default the monitor will listen to all message types. 10 | 11 | ``` 12 | ams.amc monitor [flags] 13 | ``` 14 | 15 | ### Options 16 | 17 | ``` 18 | --format string Output format - 'json' or 'yaml' (default "yaml") 19 | -h, --help help for monitor 20 | -t, --type string Comma-separated filters for events types - 'lifecycle', 'logging', 'operations' or 'all' (default "all") 21 | ``` 22 | 23 | ### SEE ALSO 24 | 25 | * [ams.amc](ams.amc.md) - Anbox Management Client 26 | 27 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: local 3 | hooks: 4 | - id: make-spelling 5 | name: Run make spelling 6 | entry: make spelling 7 | language: system 8 | pass_filenames: false 9 | files: ^.*\.(rst|md|txt)$ 10 | 11 | - id: make-linkcheck 12 | name: Run make linkcheck 13 | entry: make linkcheck 14 | language: system 15 | pass_filenames: false 16 | files: ^.*\.(rst|md|txt)$ 17 | 18 | - id: make-woke 19 | name: Run make woke 20 | entry: make woke 21 | language: system 22 | pass_filenames: false 23 | files: ^.*\.(rst|md|txt)$ 24 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_config_set.md: -------------------------------------------------------------------------------- 1 | ## ams.amc config set 2 | 3 | Set a single configuration item 4 | 5 | ### Synopsis 6 | 7 | Set a single configuration item. 8 | 9 | See https://documentation.ubuntu.com/anbox-cloud/en/latest/reference/ams-configuration/ for a list of 10 | available configuration items. 11 | 12 | ``` 13 | ams.amc config set [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc config set container.features enable_virtual_keyboard 20 | ``` 21 | 22 | ### Options 23 | 24 | ``` 25 | -h, --help help for set 26 | ``` 27 | 28 | ### SEE ALSO 29 | 30 | * [ams.amc config](ams.amc_config.md) - Manage AMS configuration 31 | 32 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_auth_group_permission.md: -------------------------------------------------------------------------------- 1 | ## ams.amc auth group permission 2 | 3 | Manage permissions for an authorization group 4 | 5 | ### Synopsis 6 | 7 | Manage permissions for an authorization group. 8 | 9 | ### Options 10 | 11 | ``` 12 | -h, --help help for permission 13 | ``` 14 | 15 | ### SEE ALSO 16 | 17 | * [ams.amc auth group](ams.amc_auth_group.md) - Manage authorization groups in AMS 18 | * [ams.amc auth group permission add](ams.amc_auth_group_permission_add.md) - Assign a permission to an authorization group 19 | * [ams.amc auth group permission delete](ams.amc_auth_group_permission_delete.md) - Revoke a permission from an authorization group 20 | 21 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_config_trust_add.md: -------------------------------------------------------------------------------- 1 | ## ams.amc config trust add 2 | 3 | Add a trusted client 4 | 5 | ### Synopsis 6 | 7 | Add a trusted client. 8 | 9 | Trust a new client to communicate with AMS by providing its certificate. 10 | Use '-' as certificate_path to read from stdin. 11 | 12 | 13 | ``` 14 | ams.amc config trust add [flags] 15 | ``` 16 | 17 | ### Examples 18 | 19 | ``` 20 | $ amc config trust add client.crt 21 | $ cat client.crt | amc config trust add - 22 | ``` 23 | 24 | ### Options 25 | 26 | ``` 27 | -h, --help help for add 28 | ``` 29 | 30 | ### SEE ALSO 31 | 32 | * [ams.amc config trust](ams.amc_config_trust.md) - Manage trusted clients 33 | 34 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_auth_group_set.md: -------------------------------------------------------------------------------- 1 | ## ams.amc auth group set 2 | 3 | Update fields for an authorization group 4 | 5 | ### Synopsis 6 | 7 | Update fields for an authorization group. 8 | 9 | Update specific fields for an existing auth group. 10 | The following fields can be updated: description 11 | 12 | ``` 13 | ams.amc auth group set [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc auth group set test-group description 'this is an auth group' 20 | ``` 21 | 22 | ### Options 23 | 24 | ``` 25 | -h, --help help for set 26 | ``` 27 | 28 | ### SEE ALSO 29 | 30 | * [ams.amc auth group](ams.amc_auth_group.md) - Manage authorization groups in AMS 31 | 32 | -------------------------------------------------------------------------------- /reference/cmd-ref/appliance/anbox-cloud-appliance_init.md: -------------------------------------------------------------------------------- 1 | ## anbox-cloud-appliance init 2 | 3 | Initialize and configure the Anbox Cloud Appliance 4 | 5 | ``` 6 | anbox-cloud-appliance init [flags] 7 | ``` 8 | 9 | ### Examples 10 | 11 | ``` 12 | $ anbox-cloud-appliance init 13 | ``` 14 | 15 | ### Options 16 | 17 | ``` 18 | --auto Automatic (non-interactive) mode 19 | --force Force run, even if already initialized 20 | -h, --help help for init 21 | --preseed Pre-seed mode, expects YAML config from stdin 22 | ``` 23 | 24 | ### SEE ALSO 25 | 26 | * [anbox-cloud-appliance](anbox-cloud-appliance.md) - Anbox Cloud Appliance, bringing Android at scale to any cloud 27 | 28 | -------------------------------------------------------------------------------- /reference/release-notes/1.12.4.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.12.4 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.12.4. 7 | 8 | Please see {ref}`ref-component-versions` for a list of updated components. 9 | 10 | ```{note} 11 | This is a bug fix release only for the Anbox Cloud Appliance. Regular Anbox Cloud deployments will not receive an update. 12 | ``` 13 | 14 | ## New features & improvements 15 | 16 | None. 17 | 18 | ## Bugs 19 | 20 | * AC-657 Traefik listens on port 8080 for incoming API requests 21 | 22 | ## Upgrade instructions 23 | 24 | See {ref}`howto-upgrade-appliance` for instructions on how to update your Anbox Cloud Appliance to the 1.12.4 release. -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | # Documentation changes 2 | 3 | [Summary of documentation updates] 4 | 5 | # Review and preview 6 | 7 | Have you reviewed and previewed your documentation updates? 8 | In your local repository, 9 | 1. Run `make spelling` and fix any spelling issues. 10 | 2. Run `make linkcheck` and fix any broken links. 11 | 3. Run `make run`. This will build a local copy of the entire documentation and you can preview the updated pages locally before creating this PR. 12 | 13 | ## Reviewers 14 | 15 | Make sure to get at least one review from the [Anbox](https://github.com/orgs/canonical/teams/anbox) team. 16 | 17 | # JIRA / Launchpad bug 18 | 19 | [Add the associated JIRA ticket or Launchpad bug ID] -------------------------------------------------------------------------------- /howto/aar/revoke.md: -------------------------------------------------------------------------------- 1 | (howto-revoke-aar)= 2 | 3 | # Revoke a client 4 | 5 | If a client gets compromised, it's important to block its access to the Anbox Application Registry (AAR) by revoking its certificate. 6 | 7 | Revoked clients are blocked from accessing the AAR. You'll need to create a new certificate and add it manually for the client to be trusted again. 8 | 9 | Use the following command to revoke a certificate: 10 | 11 | aar trust revoke 12 | 13 | ```{caution} 14 | This operation is irreversible. You cannot reverse a revocation or add the certificate again. 15 | ``` 16 | 17 | ## Related topics 18 | 19 | * {ref}`exp-aar` 20 | * {ref}`howto-configure-aar` 21 | * {ref}`howto-deploy-aar` 22 | -------------------------------------------------------------------------------- /howto/application/index.md: -------------------------------------------------------------------------------- 1 | (howto-manage-applications)= 2 | # Manage applications 3 | 4 | The guides in this section describe how to manage your applications. 5 | 6 | See {ref}`exp-applications` for an introduction to how applications are used in Anbox Cloud. To check which configuration options are available for applications, see {ref}`ref-application-manifest`. 7 | 8 | The following how-to guides are available for operations on applications: 9 | 10 | ```{toctree} 11 | :titlesonly: 12 | create-application 13 | delete-application 14 | extend-application 15 | list-applications 16 | stream-application 17 | test-application 18 | update-application 19 | Pass custom data 20 | wait-for-application 21 | ``` 22 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_application_revoke.md: -------------------------------------------------------------------------------- 1 | ## ams.amc application revoke 2 | 3 | Revoke a published application version 4 | 5 | ### Synopsis 6 | 7 | Revoke a published application version. 8 | 9 | Mark an application version as not published. 10 | 11 | 12 | ``` 13 | ams.amc application revoke [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc application revoke my-app 1 20 | 21 | ``` 22 | 23 | ### Options 24 | 25 | ``` 26 | -h, --help help for revoke 27 | -t, --timeout string Maximum time to wait for the operation to complete (default "5m") 28 | ``` 29 | 30 | ### SEE ALSO 31 | 32 | * [ams.amc application](ams.amc_application.md) - Manage applications 33 | 34 | -------------------------------------------------------------------------------- /reference/cmd-ref/aar/aar_trust_add.md: -------------------------------------------------------------------------------- 1 | ## aar trust add 2 | 3 | Register a client certificate. 4 | 5 | If a filename is provided, make sure your certificates is placed within /root'. 6 | 7 | Example: 8 | 9 | sudo aar trust add /root/client.crt 10 | 11 | If no argument is provided, AAR will read the standard input, allowing the use of pipes and redirections. 12 | 13 | Example: 14 | 15 | cat client.crt | sudo aar trust add 16 | 17 | ## Usage 18 | 19 | aar trust add [path to certificate] [flags] 20 | 21 | ## Flags 22 | 23 | ``` 24 | -h, --help help for add 25 | -p, --publisher Register client as publisher 26 | -q, --quiet Don't print warning when running in non-interactive mode 27 | ``` 28 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_image_sync.md: -------------------------------------------------------------------------------- 1 | ## ams.amc image sync 2 | 3 | Synchronizes the image with the remote image server 4 | 5 | ### Synopsis 6 | 7 | Synchronizes the image with the remote image server. 8 | 9 | If the image is coming from a remote image server this will trigger explicit 10 | synchronization with the remote server. This results in the image being 11 | downloaded to the cluster from the remote server. 12 | 13 | 14 | ``` 15 | ams.amc image sync [flags] 16 | ``` 17 | 18 | ### Examples 19 | 20 | ``` 21 | $ amc image sync foo 22 | ``` 23 | 24 | ### Options 25 | 26 | ``` 27 | -h, --help help for sync 28 | ``` 29 | 30 | ### SEE ALSO 31 | 32 | * [ams.amc image](ams.amc_image.md) - Manage images 33 | 34 | -------------------------------------------------------------------------------- /reference/release-notes/1.23.3.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.23.3 5 | 6 | This release is specifically for fixing an issue where an unusually high GPU memory consumption by an Anbox process was reported. 7 | 8 | The main trigger for this issue is when multiple clients connect with varying screen resolutions, the system is forced to reallocate GPU buffers of different sizes and does not release memory. 9 | 10 | The corresponding bug for this is reported at [LP 2089631](https://bugs.launchpad.net/anbox-cloud/+bug/2089631). 11 | 12 | ## Upgrade instructions 13 | 14 | See {ref}`howto-upgrade-anbox-cloud` and {ref}`howto-upgrade-appliance` for instructions on how to update your Anbox Cloud deployment to the 1.23.3 release. 15 | -------------------------------------------------------------------------------- /howto/images/use-specific-release.md: -------------------------------------------------------------------------------- 1 | (howto-use-specific-release)= 2 | # Use a specific release 3 | 4 | With every new Anbox Cloud release, updated images are published. By default, the latest image release is pulled by AMS, but you can request a specific release with the following syntax: 5 | 6 | amc image add @ 7 | 8 | For instance, to fetch the arm64 Android 13 image of the 1.24.2 release: 9 | 10 | amc image add foobar jammy:android13:arm64@1.24.2- 11 | 12 | You can then use the `foobar` image as you would any other image. 13 | 14 | ```{important} 15 | Image updates contain important security patches and optimizations. Use older images only when strictly necessary. 16 | ``` 17 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_application_unset.md: -------------------------------------------------------------------------------- 1 | ## ams.amc application unset 2 | 3 | Reset an application field 4 | 5 | ### Synopsis 6 | 7 | Reset an application field. 8 | 9 | The field is set to its default value. 10 | 11 | The following fields can be unset: tags, addons, features 12 | 13 | For resetting other fields, use the 'application set' command and specify a 14 | value. 15 | 16 | 17 | ``` 18 | ams.amc application unset [flags] 19 | ``` 20 | 21 | ### Examples 22 | 23 | ``` 24 | $ amc application unset foo tags 25 | ``` 26 | 27 | ### Options 28 | 29 | ``` 30 | -h, --help help for unset 31 | ``` 32 | 33 | ### SEE ALSO 34 | 35 | * [ams.amc application](ams.amc_application.md) - Manage applications 36 | 37 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_node_set.md: -------------------------------------------------------------------------------- 1 | ## ams.amc node set 2 | 3 | Set a configuration item for a node 4 | 5 | ### Synopsis 6 | 7 | Set a configuration item for a node. 8 | 9 | See https://documentation.ubuntu.com/anbox-cloud/en/latest/reference/ams-configuration/ for a list of 10 | available configuration items. 11 | 12 | ``` 13 | ams.amc node set [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc node set lxd0 cpus 8 20 | ``` 21 | 22 | ### Options 23 | 24 | ``` 25 | -h, --help help for set 26 | -t, --timeout string Maximum time to wait for the operation to complete (default "5m") 27 | ``` 28 | 29 | ### SEE ALSO 30 | 31 | * [ams.amc node](ams.amc_node.md) - Manage nodes 32 | 33 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_restart.md: -------------------------------------------------------------------------------- 1 | ## ams.amc restart 2 | 3 | Restart a running instance 4 | 5 | ### Synopsis 6 | 7 | Restart a running instance. 8 | 9 | Stop a running instance and start it again. If the instance is already 10 | stopped, it will not be started. 11 | 12 | 13 | ``` 14 | ams.amc restart [flags] 15 | ``` 16 | 17 | ### Examples 18 | 19 | ``` 20 | Restart a running instance: 21 | $ amc restart ceg2ukbhc8ic3ftkc990 22 | ``` 23 | 24 | ### Options 25 | 26 | ``` 27 | -h, --help help for restart 28 | -t, --timeout string Maximum time to wait for each operation to complete (default "5m") 29 | ``` 30 | 31 | ### SEE ALSO 32 | 33 | * [ams.amc](ams.amc.md) - Anbox Management Client 34 | 35 | -------------------------------------------------------------------------------- /howto/instance/configure-instance.md: -------------------------------------------------------------------------------- 1 | (howto-configure-instance)= 2 | # Configure an instance 3 | 4 | AMS allows some configuration options of an instance to be changed. A full list of configuration options is available at {ref}`ref-ams-instance-configuration` 5 | 6 | ## Show current configuration options 7 | 8 | To view the current set configuration options for an instance, you can run 9 | 10 | amc show 11 | 12 | ## Set configuration option 13 | 14 | Use the `amc set` command to configure instance level options: 15 | 16 | amc set 17 | 18 | For example, to set the `security.delete_protected` option for the instance `test0`: 19 | 20 | amc set test0 security.delete_protected true 21 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_show-log.md: -------------------------------------------------------------------------------- 1 | ## ams.amc show-log 2 | 3 | Show an instance log file 4 | 5 | ### Synopsis 6 | 7 | Show an instance log file. 8 | 9 | This command is used to get logs from an instance in 'stopped' or 'error' state. 10 | There are different log files that you can display. Use the following 11 | command to get the names of the available log files: 12 | amc show 13 | 14 | 15 | ``` 16 | ams.amc show-log [flags] 17 | ``` 18 | 19 | ### Examples 20 | 21 | ``` 22 | $ amc show-log bknj0n9hpuo01q954fq0 system.log 23 | ``` 24 | 25 | ### Options 26 | 27 | ``` 28 | -h, --help help for show-log 29 | ``` 30 | 31 | ### SEE ALSO 32 | 33 | * [ams.amc](ams.amc.md) - Anbox Management Client 34 | 35 | -------------------------------------------------------------------------------- /reference/cmd-ref/appliance/anbox-cloud-appliance_config.md: -------------------------------------------------------------------------------- 1 | ## anbox-cloud-appliance config 2 | 3 | Managed the Anbox Cloud Appliance configuration 4 | 5 | ### Synopsis 6 | 7 | Get and set global configuration items for the Anbox Cloud Appliance. 8 | 9 | ### Options 10 | 11 | ``` 12 | -h, --help help for config 13 | ``` 14 | 15 | ### SEE ALSO 16 | 17 | * [anbox-cloud-appliance](anbox-cloud-appliance.md) - Anbox Cloud Appliance, bringing Android at scale to any cloud 18 | * [anbox-cloud-appliance config set](anbox-cloud-appliance_config_set.md) - Set specific configuration items for the Anbox Cloud Appliance 19 | * [anbox-cloud-appliance config show](anbox-cloud-appliance_config_show.md) - Show the configuration of the Anbox Cloud Appliance 20 | 21 | -------------------------------------------------------------------------------- /howto/install/index.md: -------------------------------------------------------------------------------- 1 | (howto-install-anbox-cloud)= 2 | # Install Anbox Cloud 3 | 4 | It is important to remember that there is a difference between the charmed Anbox Cloud installation and the Anbox Cloud Appliance (see {ref}`sec-variants`). This section focuses on **Anbox Cloud**. For instructions on how to install the **Anbox Cloud Appliance**, see {ref}`tut-installing-appliance`. 5 | 6 | Also, see {ref}`ref-requirements` before you start your installation. 7 | 8 | The following guides in this section describe how to install Anbox Cloud. 9 | 10 | ```{toctree} 11 | :titlesonly: 12 | 13 | customize-installation 14 | deploy-bare-metal 15 | deploy-juju 16 | deploy-terraform 17 | enable-high-availability 18 | use-ceph-storage 19 | validate-deployment 20 | ``` 21 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_config_trust.md: -------------------------------------------------------------------------------- 1 | ## ams.amc config trust 2 | 3 | Manage trusted clients 4 | 5 | ### Synopsis 6 | 7 | Manage trusted clients. 8 | 9 | Clients must be trusted to communicate with AMS. 10 | Add or remove client certificates to allow or prevent communication with AMS. 11 | 12 | ### Options 13 | 14 | ``` 15 | -h, --help help for trust 16 | ``` 17 | 18 | ### SEE ALSO 19 | 20 | * [ams.amc config](ams.amc_config.md) - Manage AMS configuration 21 | * [ams.amc config trust add](ams.amc_config_trust_add.md) - Add a trusted client 22 | * [ams.amc config trust list](ams.amc_config_trust_list.md) - List trusted client certificates 23 | * [ams.amc config trust remove](ams.amc_config_trust_remove.md) - Remove trust for a client 24 | 25 | -------------------------------------------------------------------------------- /reference/release-notes/1.3.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.3.1 (September 2019) 5 | 6 | ## New features & improvements 7 | 8 | * Allow underlying image of an application to be changed 9 | * Support for applications without an APK 10 | * An Anbox platform can now specify the display refresh rate 11 | * Integrated Android security fixes for August 2019. See the [Android Security Bulletins](https://source.android.com/security/bulletin) for more information. 12 | 13 | ## Bug fixes 14 | 15 | * Refresh the LXD snap on demand when the configuration is changed 16 | * Don't use embedded etcd when a real etcd is available 17 | * Correctly determine the maximum OpenGL ES version the host GL driver supports 18 | * Support for gamepad devices in Anbox and the platform SDK -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_image_update.md: -------------------------------------------------------------------------------- 1 | ## ams.amc image update 2 | 3 | Update an existing image 4 | 5 | ### Synopsis 6 | 7 | Update an existing image. 8 | 9 | This command replaces the specified image with the new image and bumps its version number. 10 | 11 | 12 | ``` 13 | ams.amc image update ( | ) [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc image update foo foo-v2.tar.xz 20 | ``` 21 | 22 | ### Options 23 | 24 | ``` 25 | -d, --default Mark image as the default image 26 | -h, --help help for update 27 | -t, --timeout string Maximum time to wait for the operation to complete (default "5m") 28 | ``` 29 | 30 | ### SEE ALSO 31 | 32 | * [ams.amc image](ams.amc_image.md) - Manage images 33 | 34 | -------------------------------------------------------------------------------- /.sphinx/.wordlist.txt: -------------------------------------------------------------------------------- 1 | ACME 2 | ACME's 3 | addons 4 | AGPLv 5 | API 6 | APIs 7 | balancer 8 | Charmhub 9 | CLI 10 | DCO 11 | Diátaxis 12 | Dqlite 13 | dropdown 14 | EBS 15 | EKS 16 | enablement 17 | favicon 18 | Furo 19 | Git 20 | GitHub 21 | Grafana 22 | IAM 23 | installable 24 | JSON 25 | Juju 26 | Kubeflow 27 | Kubernetes 28 | Launchpad 29 | linter 30 | LTS 31 | LXD 32 | Makefile 33 | Makefiles 34 | Matrix 35 | Mattermost 36 | MicroCeph 37 | MicroCloud 38 | MicroOVN 39 | MyST 40 | namespace 41 | namespaces 42 | NodePort 43 | Numbat 44 | observability 45 | OEM 46 | OLM 47 | Permalink 48 | pre 49 | Quickstart 50 | ReadMe 51 | reST 52 | reStructuredText 53 | roadmap 54 | RTD 55 | subdirectories 56 | subfolders 57 | subtree 58 | TODO 59 | Ubuntu 60 | UI 61 | UUID 62 | VM 63 | webhook 64 | YAML 65 | -------------------------------------------------------------------------------- /.wordlist.txt: -------------------------------------------------------------------------------- 1 | # This wordlist is from the Sphinx starter pack and should not be 2 | # modified. Add any custom terms to .custom_wordlist.txt instead. 3 | 4 | addons 5 | API 6 | APIs 7 | balancer 8 | Charmhub 9 | CLI 10 | Diátaxis 11 | dropdown 12 | EBS 13 | EKS 14 | enablement 15 | favicon 16 | Furo 17 | Git 18 | GitHub 19 | Grafana 20 | IAM 21 | installable 22 | JSON 23 | Juju 24 | Kubeflow 25 | Kubernetes 26 | Launchpad 27 | linter 28 | LTS 29 | Makefile 30 | Matrix 31 | Mattermost 32 | MyST 33 | namespace 34 | namespaces 35 | NodePort 36 | Numbat 37 | observability 38 | OEM 39 | OLM 40 | Permalink 41 | pre 42 | Quickstart 43 | ReadMe 44 | reST 45 | reStructuredText 46 | RTD 47 | subdirectories 48 | subfolders 49 | subtree 50 | Ubuntu 51 | UI 52 | UUID 53 | VM 54 | YAML 55 | shaders 56 | adapter 57 | -------------------------------------------------------------------------------- /reference/release-notes/1.5.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.5.1 (May 2020) 5 | 6 | ## New features & improvements 7 | 8 | * Fix timeout issue when adding or removing LXD nodes from the cluster in AMS 9 | * Containers are now gracefully terminated to ensure the backup hook is executed 10 | * Support to start a container with one specific application version from Anbox Stream Gateway UI 11 | * Support numpad and mouse wheel input for the WebRTC based Streaming Stack 12 | * Collecting basic statistics (FPS, RTT and bandwidth) while streaming and display them in Anbox Stream Gateway UI 13 | * Stream Gateway will not directly be exposed to the public network but only accessible via a reverse proxy 14 | * Dropped the monitoring stack from the default Juju bundle. It is now available via an overlay -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_auth_group_create.md: -------------------------------------------------------------------------------- 1 | ## ams.amc auth group create 2 | 3 | Create a new group in AMS 4 | 5 | ### Synopsis 6 | 7 | Create a new group to manage access in AMS. 8 | 9 | Use this command to create a group to manage authorization permissions 10 | for a collection of identities in AMS. 11 | 12 | 13 | ``` 14 | ams.amc auth group create [flags] 15 | ``` 16 | 17 | ### Examples 18 | 19 | ``` 20 | $ amc auth group create test --description 'this is a new group' 21 | ``` 22 | 23 | ### Options 24 | 25 | ``` 26 | -d, --description string A description for the authorization group 27 | -h, --help help for create 28 | ``` 29 | 30 | ### SEE ALSO 31 | 32 | * [ams.amc auth group](ams.amc_auth_group.md) - Manage authorization groups in AMS 33 | 34 | -------------------------------------------------------------------------------- /howto/instance/stop-instance.md: -------------------------------------------------------------------------------- 1 | (howto-stop-instance)= 2 | # Stop an instance 3 | 4 | A running instance can be stopped using the `amc stop` command: 5 | 6 | amc stop 7 | 8 | `` is the ID of the instance that you want to stop. 9 | 10 | ```{important} 11 | Do not use the `lxc` command to manage an instance. Always use the `amc` command instead. In Anbox Cloud, instances have their own life cycle and using the `lxc` command to manage an instance can cause the instance to be out of sync. 12 | ``` 13 | 14 | By default, the `amc stop` command waits 5 minutes for an instance to stop before the operation times out. If you want to specify a custom wait time, you can do so by using the `--timeout` option in the `amc stop` command. 15 | 16 | amc stop --timeout 10m 17 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_config.md: -------------------------------------------------------------------------------- 1 | ## ams.amc config 2 | 3 | Manage AMS configuration 4 | 5 | ### Synopsis 6 | 7 | Manage AMS configuration. 8 | 9 | Get and set global configuration items for the Anbox Management Service 10 | (AMS). 11 | 12 | See https://documentation.ubuntu.com/anbox-cloud/en/latest/reference/ams-configuration/ for a list of 13 | available configuration items. 14 | 15 | ### Options 16 | 17 | ``` 18 | -h, --help help for config 19 | ``` 20 | 21 | ### SEE ALSO 22 | 23 | * [ams.amc](ams.amc.md) - Anbox Management Client 24 | * [ams.amc config set](ams.amc_config_set.md) - Set a single configuration item 25 | * [ams.amc config show](ams.amc_config_show.md) - Show all configuration items 26 | * [ams.amc config trust](ams.amc_config_trust.md) - Manage trusted clients 27 | 28 | -------------------------------------------------------------------------------- /howto/instance/delete-instance.md: -------------------------------------------------------------------------------- 1 | (howto-delete-instance)= 2 | # Delete an instance 3 | 4 | An instance can be deleted, which will cause any connected user to be disconnected immediately. 5 | 6 | ::::{tab-set} 7 | :::{tab-item} CLI 8 | :sync: cli 9 | 10 | Run: 11 | 12 | amc delete 13 | 14 | Provide the ID of the instance that you want to delete. 15 | 16 | In some cases, it is helpful to delete all instances currently available. 17 | The `amc` command provides a `--all` flag for this, but be careful while performing a deletion of all instances. 18 | 19 | amc delete --all 20 | ::: 21 | 22 | :::{tab-item} Dashboard 23 | :sync: dashboard 24 | 25 | On the *Instances* page, click *Delete* ( ![delete application icon](/images/icons/delete-icon.png) ) and confirm the deletion. 26 | 27 | ::: 28 | :::: 29 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_addon_show.md: -------------------------------------------------------------------------------- 1 | ## ams.amc addon show 2 | 3 | Show more information about a specific addon 4 | 5 | ### Synopsis 6 | 7 | Show more information about a specific addon. 8 | 9 | Formatting can be controlled with the '--format' flag. 10 | Valid formats are 'json' and 'yaml'. 11 | 12 | ``` 13 | ams.amc addon show [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc addon show foo 20 | name: foo 21 | versions: 22 | 0: 23 | size: 273B 24 | created-at: 2019-07-15 14:02:30 +0000 UTC 25 | used_by: [] 26 | 27 | ``` 28 | 29 | ### Options 30 | 31 | ``` 32 | --format string Output format - 'json' or 'yaml' (default "yaml") 33 | -h, --help help for show 34 | ``` 35 | 36 | ### SEE ALSO 37 | 38 | * [ams.amc addon](ams.amc_addon.md) - Manage addons 39 | 40 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_remote_add.md: -------------------------------------------------------------------------------- 1 | ## ams.amc remote add 2 | 3 | Add a remote 4 | 5 | ### Synopsis 6 | 7 | Add a remote. 8 | 9 | Set a connection to a remote AMS daemon. 10 | 11 | If you set up a trust password on the daemon, you must provide it when running the command. 12 | 13 | 14 | ``` 15 | ams.amc remote add [trust_password] [flags] 16 | ``` 17 | 18 | ### Examples 19 | 20 | ``` 21 | $ amc remote add local unix:// 22 | ``` 23 | 24 | ### Options 25 | 26 | ``` 27 | --accept-certificate Implicitly accept remote server certificate 28 | --auth-type string Server authentication type (tls or oidc) (default "tls") 29 | -h, --help help for add 30 | ``` 31 | 32 | ### SEE ALSO 33 | 34 | * [ams.amc remote](ams.amc_remote.md) - Interact with remote AMS daemons 35 | 36 | -------------------------------------------------------------------------------- /reference/release-notes/1.7.3.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.7.3 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.7.3 7 | 8 | ## New Features & Improvements 9 | 10 | * Android security fixes from September 2020 (patch level `2020-09-05`, see [here](https://source.android.com/security/bulletin/2020-09-01) for more details) 11 | * WebView update to upstream release ` 85.0.4183.101` (see [here](https://chromereleases.googleblog.com/2020/09/chrome-for-android-update.html) for more details) 12 | 13 | ## Bug Fixes 14 | 15 | None 16 | 17 | ## Upgrade Instructions 18 | 19 | This release does not include any charm changes. Only images are updated and will be automatically synchronized to your Anbox Cloud deployment via the Canonical image server. See {ref}`howto-manage-images` for more details. -------------------------------------------------------------------------------- /reference/release-notes/1.7.4.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.7.4 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.7.4 7 | 8 | ## New Features & Improvements 9 | 10 | * Android security fixes from October 2020 (patch level `2020-10-05` , see [here](https://source.android.com/security/bulletin/2020-10-01) for more details) 11 | * WebView update to upstream release `86.0.4240.75` (see [here](https://chromereleases.googleblog.com/2020/10/chrome-for-android-update.html) for more details) 12 | 13 | ## Bug Fixes 14 | 15 | None 16 | 17 | ## Upgrade Instructions 18 | 19 | This release does not include any charm changes. Only images are updated and will be automatically synchronized to your Anbox Cloud deployment via the Canonical image server. See {ref}`howto-manage-images` for more details. -------------------------------------------------------------------------------- /.readthedocs.yaml: -------------------------------------------------------------------------------- 1 | # .readthedocs.yaml 2 | # Read the Docs configuration file 3 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details 4 | 5 | # Required 6 | version: 2 7 | 8 | # Set the version of Python and other tools you might need 9 | build: 10 | os: ubuntu-22.04 11 | tools: 12 | python: "3.11" 13 | jobs: 14 | pre_install: 15 | - git fetch --unshallow || true 16 | 17 | # Build documentation in the docs/ directory with Sphinx 18 | sphinx: 19 | builder: dirhtml 20 | configuration: conf.py 21 | fail_on_warning: false 22 | 23 | # If using Sphinx, optionally build your docs in additional formats such as PDF 24 | formats: 25 | - pdf 26 | 27 | # Optionally declare the Python requirements required to build your docs 28 | python: 29 | install: 30 | - requirements: requirements.txt 31 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_connect.md: -------------------------------------------------------------------------------- 1 | ## ams.amc connect 2 | 3 | Connect to an instance via ADB 4 | 5 | ### Synopsis 6 | 7 | Connect to a running instance using an Android Debug Bridge (ADB) connection. 8 | 9 | If an instance ID is provided, a temporary share URL will be created to connect to the instance. 10 | If a share URL is provided, it will be used directly to establish the connection. 11 | 12 | The instance must be running and have an active session to be connected to. 13 | 14 | ``` 15 | ams.amc connect [flags] 16 | ``` 17 | 18 | ### Options 19 | 20 | ``` 21 | -k, --accept-remote-cert Accept remote certificate when running in non-interactive mode 22 | -h, --help help for connect 23 | ``` 24 | 25 | ### SEE ALSO 26 | 27 | * [ams.amc](ams.amc.md) - Anbox Management Client 28 | 29 | -------------------------------------------------------------------------------- /reference/cmd-ref/appliance/anbox-cloud-appliance_buginfo.md: -------------------------------------------------------------------------------- 1 | ## anbox-cloud-appliance buginfo 2 | 3 | Collection information for effective bug reports 4 | 5 | ### Synopsis 6 | 7 | Collection information for effective bug reports 8 | 9 | In order to provide all necessary information when reporting bugs in the 10 | Anbox Cloud Appliance, the buginfo command combines all necessary 11 | information in a single report which can be easily shared. with a bug 12 | report. 13 | 14 | Please report bugs on https://bugs.launchpad.net/anbox-cloud 15 | 16 | ``` 17 | anbox-cloud-appliance buginfo [flags] 18 | ``` 19 | 20 | ### Options 21 | 22 | ``` 23 | -h, --help help for buginfo 24 | ``` 25 | 26 | ### SEE ALSO 27 | 28 | * [anbox-cloud-appliance](anbox-cloud-appliance.md) - Anbox Cloud Appliance, bringing Android at scale to any cloud 29 | 30 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_addon_list.md: -------------------------------------------------------------------------------- 1 | ## ams.amc addon list 2 | 3 | List available addons 4 | 5 | ### Synopsis 6 | 7 | List available addons. 8 | 9 | Formatting can be controlled with the '--format' flag. 10 | Valid formats are 'table' (see example), 'json' and 'csv'. 11 | 12 | 13 | ``` 14 | ams.amc addon list [flags] 15 | ``` 16 | 17 | ### Examples 18 | 19 | ``` 20 | $ amc addon list 21 | +------+----------+---------+ 22 | | NAME | VERSIONS | USED BY | 23 | +------+----------+---------+ 24 | | foo | 1 | | 25 | +------+----------+---------+ 26 | 27 | ``` 28 | 29 | ### Options 30 | 31 | ``` 32 | --format string Output format - 'table', 'json' or 'csv' (default "table") 33 | -h, --help help for list 34 | ``` 35 | 36 | ### SEE ALSO 37 | 38 | * [ams.amc addon](ams.amc_addon.md) - Manage addons 39 | 40 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_auth_identity_create.md: -------------------------------------------------------------------------------- 1 | ## ams.amc auth identity create 2 | 3 | Create a new identity in AMS 4 | 5 | ### Synopsis 6 | 7 | Create a new identity to allow access to AMS. 8 | 9 | The identity can be created using different authentication methods. Currently "oidc" and "tls" are supported. 10 | 11 | 12 | ``` 13 | ams.amc auth identity create / [Path to PEM encoded certificate or - to read from stdin] [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc auth identity create oidc/john.doe@example.com\n$amc auth identity create tls/test-user - < client-cert.pem 20 | ``` 21 | 22 | ### Options 23 | 24 | ``` 25 | -h, --help help for create 26 | ``` 27 | 28 | ### SEE ALSO 29 | 30 | * [ams.amc auth identity](ams.amc_auth_identity.md) - Manage authentiation & authorization 31 | 32 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_completion_powershell.md: -------------------------------------------------------------------------------- 1 | ## ams.amc completion powershell 2 | 3 | Generate the autocompletion script for powershell 4 | 5 | ### Synopsis 6 | 7 | Generate the autocompletion script for powershell. 8 | 9 | To load completions in your current shell session: 10 | 11 | ams.amc completion powershell | Out-String | Invoke-Expression 12 | 13 | To load completions for every new session, add the output of the above command 14 | to your powershell profile. 15 | 16 | 17 | ``` 18 | ams.amc completion powershell [flags] 19 | ``` 20 | 21 | ### Options 22 | 23 | ``` 24 | -h, --help help for powershell 25 | --no-descriptions disable completion descriptions 26 | ``` 27 | 28 | ### SEE ALSO 29 | 30 | * [ams.amc completion](ams.amc_completion.md) - Generate the autocompletion script for the specified shell 31 | 32 | -------------------------------------------------------------------------------- /reference/release-notes/1.3.2.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # New features & improvements 5 | 6 | * Increased maximum allowed startup time for containers to 15 minutes 7 | * Containers can now started with additional disk space added 8 | * Nodes can be marked as unschedulable to allow rebooting them for maintenance 9 | * `amc` supports deleting containers on a specific node (e.g. `$ amc delete --node=lxd0 --all`) 10 | * The default deployment configuration now allows deploying AMS and LXD on the same machine 11 | * Integrated Android security fixes for September and October 2019. See the 12 | [Android Security Bulletins](https://source.android.com/security/bulletin) for more information. 13 | * Added `prepare` hook to allow customizing Android while it's running as part of the bootstrap process 14 | * Updated LXD charm to install latest NVIDIA CUDA drivers -------------------------------------------------------------------------------- /howto/addons/emulate-platforms-example.md: -------------------------------------------------------------------------------- 1 | (howto-emulate-platforms-example)= 2 | # Example: Emulate platforms 3 | 4 | To provide support for platforms that are not natively supported by your application (for example, you want to run an x86_64 application on Arm), use a hook. 5 | 6 | Create a hook that installs the software for binary translation and add the top-level key `provides` to your addon manifest. List the architectures that the addon supports, in the value for the `provides` key. 7 | 8 | ```yaml 9 | name: my-addon 10 | description: provides support for x86_64 architecture 11 | provides: 12 | abi-support: 13 | - arm64-v8a 14 | - armeabi-v7a 15 | ``` 16 | 17 | This manifest instructs the Anbox Management Service(AMS) that an application can be scheduled on `arm64-v8a` and `armeabi-v7a` systems even if no native support is detected in the APK. 18 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_node.md: -------------------------------------------------------------------------------- 1 | ## ams.amc node 2 | 3 | Manage nodes 4 | 5 | ### Synopsis 6 | 7 | Manage nodes. 8 | 9 | Nodes are LXD machines that run Anbox containers and are managed by AMS. 10 | 11 | See https://documentation.ubuntu.com/anbox-cloud/en/latest/explanation/clustering/ for more information. 12 | 13 | 14 | ### Options 15 | 16 | ``` 17 | -h, --help help for node 18 | ``` 19 | 20 | ### SEE ALSO 21 | 22 | * [ams.amc](ams.amc.md) - Anbox Management Client 23 | * [ams.amc node add](ams.amc_node_add.md) - Add a node to AMS 24 | * [ams.amc node list](ams.amc_node_list.md) - List available nodes 25 | * [ams.amc node remove](ams.amc_node_remove.md) - Remove a node 26 | * [ams.amc node set](ams.amc_node_set.md) - Set a configuration item for a node 27 | * [ams.amc node show](ams.amc_node_show.md) - Show information about a node 28 | 29 | -------------------------------------------------------------------------------- /reference/cmd-ref/appliance/anbox-cloud-appliance_config_show.md: -------------------------------------------------------------------------------- 1 | ## anbox-cloud-appliance config show 2 | 3 | Show the configuration of the Anbox Cloud Appliance 4 | 5 | ### Synopsis 6 | 7 | Show the configuration of the Anbox Cloud Appliance 8 | 9 | Some of the configuration items can be changed through the set command 10 | but others are read-only. See 11 | 12 | $ anbox-cloud-appliance config set --help 13 | 14 | for a list of configuration items which can be changed. 15 | 16 | ``` 17 | anbox-cloud-appliance config show [flags] 18 | ``` 19 | 20 | ### Examples 21 | 22 | ``` 23 | $ sudo anbox-cloud-appliance config show 24 | ``` 25 | 26 | ### Options 27 | 28 | ``` 29 | -h, --help help for show 30 | ``` 31 | 32 | ### SEE ALSO 33 | 34 | * [anbox-cloud-appliance config](anbox-cloud-appliance_config.md) - Managed the Anbox Cloud Appliance configuration 35 | 36 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_remote_list.md: -------------------------------------------------------------------------------- 1 | ## ams.amc remote list 2 | 3 | List registered remotes 4 | 5 | ### Synopsis 6 | 7 | List registered remotes. 8 | 9 | Formatting can be controlled with the '--format' flag. 10 | Valid formats are 'table' (see example), 'json' and 'csv'. 11 | 12 | ``` 13 | ams.amc remote list [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc remote list 20 | +--------+---------+---------+ 21 | | NAME | URL | DEFAULT | 22 | +--------+---------+---------+ 23 | | local | unix:// | true | 24 | +--------+---------+---------+ 25 | 26 | ``` 27 | 28 | ### Options 29 | 30 | ``` 31 | --format string Output format - 'table', 'json' or 'csv' (default "table") 32 | -h, --help help for list 33 | ``` 34 | 35 | ### SEE ALSO 36 | 37 | * [ams.amc remote](ams.amc_remote.md) - Interact with remote AMS daemons 38 | 39 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_set.md: -------------------------------------------------------------------------------- 1 | ## ams.amc set 2 | 3 | Set a configuration value for an existing instance 4 | 5 | ### Synopsis 6 | 7 | Set a configuration value for an existing instance. 8 | 9 | This command allows you to change the configuration of an existing instance. 10 | 11 | The following configs can be set: 12 | security.delete_protected 13 | 14 | ``` 15 | ams.amc set [flags] 16 | ``` 17 | 18 | ### Examples 19 | 20 | ``` 21 | Set a configuration value for an existing instance: 22 | $ amc set ceg2ukbhc8ic3ftkc990 security.delete_protected true 23 | ``` 24 | 25 | ### Options 26 | 27 | ``` 28 | -h, --help help for set 29 | -t, --timeout string Maximum time to wait for each operation to complete (default "5m") 30 | ``` 31 | 32 | ### SEE ALSO 33 | 34 | * [ams.amc](ams.amc.md) - Anbox Management Client 35 | 36 | -------------------------------------------------------------------------------- /howto/addons/enable-addons-globally.md: -------------------------------------------------------------------------------- 1 | (howto-enable-addons-globally)= 2 | # Enable an addon globally 3 | 4 | To enable an addon for an application, you must add it to the application manifest. 5 | 6 | However, if you want to use the same addon or addons for all your applications, you can enable them globally. To do so, run the following command after creating your addons: 7 | 8 | ```bash 9 | amc config set application.addons foo,bar 10 | ``` 11 | 12 | This command adds the `foo` and `bar` addons to all your new and existing applications. AMS will automatically update existing applications. 13 | 14 | If you define both global addons and application-specific addons, applications will use both. 15 | 16 | ```{caution} 17 | Addons can delay the start of your applications. Therefore, keep them light. 18 | ``` 19 | 20 | ## Related topics 21 | 22 | * {ref}`ref-application-manifest` 23 | -------------------------------------------------------------------------------- /reference/release-notes/1.16.4.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.16.4 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.16.4. 7 | 8 | This is an out-of-order release to mitigate a bug found with newer versions of LXD, specifically the 5.0.2 update to the 5.0 LTS release series. The bug prevents containers from starting when LXD 5.0.2 is installed. If you're running LXD 5.0.2, you must update the Anbox image that you're using. 9 | 10 | Please see the {ref}`ref-component-versions` for a list of updated components. 11 | 12 | ## New features & improvements 13 | 14 | n/a 15 | 16 | ## Bugs 17 | 18 | * AC-1320 Anbox containers fail to start with LXD 5.0.2 19 | 20 | ## Upgrade instructions 21 | 22 | See {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions on how to update your Anbox Cloud deployment to the 1.16.4 release. 23 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_stop.md: -------------------------------------------------------------------------------- 1 | ## ams.amc stop 2 | 3 | Stop a running instance 4 | 5 | ### Synopsis 6 | 7 | Stop a running instance. 8 | 9 | If the instance is in 'running' status, you can stop it with the 'amc stop' command. 10 | 11 | 12 | ``` 13 | ams.amc stop [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | Launch an instance: 20 | $ amc launch 21 | ceg2ukbhc8ic3ftkc990 22 | 23 | Stop the running instance: 24 | $ amc stop ceg2ukbhc8ic3ftkc990 25 | ``` 26 | 27 | ### Options 28 | 29 | ``` 30 | -h, --help help for stop 31 | --no-wait Don't wait for the instance to stop before returning (default disabled) 32 | -t, --timeout string Maximum time to wait for the operation to complete (default "5m") 33 | ``` 34 | 35 | ### SEE ALSO 36 | 37 | * [ams.amc](ams.amc.md) - Anbox Management Client 38 | 39 | -------------------------------------------------------------------------------- /reference/cmd-ref/aar/aar_completion_bash.md: -------------------------------------------------------------------------------- 1 | # aar completion bash 2 | 3 | Generate the autocompletion script for the bash shell. 4 | 5 | This script depends on the 'bash-completion' package. 6 | If it is not installed already, you can install it via your OS's package manager. 7 | 8 | To load completions in your current shell session: 9 | 10 | source <(aar completion bash) 11 | 12 | To load completions for every new session, execute once: 13 | 14 | For Linux, 15 | 16 | aar completion bash > /etc/bash_completion.d/aar 17 | 18 | For macOS, 19 | 20 | aar completion bash > $(brew --prefix)/etc/bash_completion.d/aar 21 | 22 | You will need to start a new shell for this setup to take effect. 23 | 24 | ## Usage 25 | 26 | aar completion bash 27 | 28 | ## Flags 29 | 30 | ``` 31 | -h, --help help for bash 32 | --no-descriptions disable completion descriptions 33 | ``` 34 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_completion_fish.md: -------------------------------------------------------------------------------- 1 | ## ams.amc completion fish 2 | 3 | Generate the autocompletion script for fish 4 | 5 | ### Synopsis 6 | 7 | Generate the autocompletion script for the fish shell. 8 | 9 | To load completions in your current shell session: 10 | 11 | ams.amc completion fish | source 12 | 13 | To load completions for every new session, execute once: 14 | 15 | ams.amc completion fish > ~/.config/fish/completions/ams.amc.fish 16 | 17 | You will need to start a new shell for this setup to take effect. 18 | 19 | 20 | ``` 21 | ams.amc completion fish [flags] 22 | ``` 23 | 24 | ### Options 25 | 26 | ``` 27 | -h, --help help for fish 28 | --no-descriptions disable completion descriptions 29 | ``` 30 | 31 | ### SEE ALSO 32 | 33 | * [ams.amc completion](ams.amc_completion.md) - Generate the autocompletion script for the specified shell 34 | 35 | -------------------------------------------------------------------------------- /reference/cmd-ref/appliance/anbox-cloud-appliance_ams.md: -------------------------------------------------------------------------------- 1 | ## anbox-cloud-appliance ams 2 | 3 | Manage the AMS service of the Anbox Cloud Appliance 4 | 5 | ### Synopsis 6 | 7 | Manage the AMS service of the Anbox Cloud Appliance 8 | 9 | Provides subcommands used to manage the AMS service of the Anbox Cloud Appliance. 10 | This includes management of users allowed to access AMS. 11 | 12 | ### Options 13 | 14 | ``` 15 | -h, --help help for ams 16 | ``` 17 | 18 | ### SEE ALSO 19 | 20 | * [anbox-cloud-appliance](anbox-cloud-appliance.md) - Anbox Cloud Appliance, bringing Android at scale to any cloud 21 | * [anbox-cloud-appliance ams authorize](anbox-cloud-appliance_ams_authorize.md) - Authorize a new user on the system to access the AMS service. 22 | * [anbox-cloud-appliance ams deauthorize](anbox-cloud-appliance_ams_deauthorize.md) - Deauthorize a user on the system from accessing the AMS service. 23 | 24 | -------------------------------------------------------------------------------- /.github/renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "config:recommended", 5 | "helpers:pinGitHubActionDigestsToSemver", 6 | ":disableDependencyDashboard", 7 | ":ignoreUnstable", 8 | "group:allNonMajor" 9 | ], 10 | "packageRules": [ 11 | { 12 | "description": "Schedule canonical/create-pull-request updates on the first day of each week to decrease noise.", 13 | "matchPackageNames": [ 14 | "canonical/create-pull-request" 15 | ], 16 | "schedule": [ 17 | "on the first day of the week" 18 | ] 19 | }, 20 | { 21 | "groupName": "GitHub actions", 22 | "matchManagers": [ 23 | "github-actions" 24 | ], 25 | "matchUpdateTypes": [ 26 | "digest", 27 | "patch", 28 | "minor", 29 | "major" 30 | ] 31 | } 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /reference/release-notes/1.3.3.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.3 (January 2020) 5 | 6 | ## New features & improvements 7 | 8 | * Generating thumbnails within `libstagefright` in the Android 7 images is now working reliable where it was generating single colored images at times before. 9 | * Error messages are now presented via the AMS REST API for application versions. 10 | * 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 ` for later inspection 11 | * Life-cycle events are now returned from the monitor endpoint the AMS REST API provides 12 | * Download of addons is now retried up to three times during the container bootstrap to workaround busy network environments 13 | * The addon prepare hook is now correctly executed while the container is running and before the bootstrap process finishes -------------------------------------------------------------------------------- /reference/cmd-ref/appliance/anbox-cloud-appliance_dashboard_export-identities.md: -------------------------------------------------------------------------------- 1 | ## anbox-cloud-appliance dashboard export-identities 2 | 3 | Export user identities from the Anbox Cloud dashboard 4 | 5 | ### Synopsis 6 | 7 | Export user identities from the Anbox Cloud dashboard 8 | 9 | This command allows you to export user identities from the Anbox Cloud dashboard. 10 | 11 | 12 | ``` 13 | anbox-cloud-appliance dashboard export-identities [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ anbox-cloud-appliance dashboard export-identities 20 | ``` 21 | 22 | ### Options 23 | 24 | ``` 25 | -h, --help help for export-identities 26 | -o, --output string Output file path. If not specified, output will be written to stdout. 27 | ``` 28 | 29 | ### SEE ALSO 30 | 31 | * [anbox-cloud-appliance dashboard](anbox-cloud-appliance_dashboard.md) - Manage the dashboard of the Anbox Cloud Appliance 32 | 33 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_auth_identity_group_add.md: -------------------------------------------------------------------------------- 1 | ## ams.amc auth identity group add 2 | 3 | Add an identity to authorization groups. 4 | 5 | ### Synopsis 6 | 7 | Add an identity to authorization groups. 8 | 9 | This command can be used to make an identity a member of a specific AMS group. 10 | The assigned permissions to groups are then inherited by the identities and can 11 | be used to manage access for the identities in AMS. 12 | 13 | 14 | ``` 15 | ams.amc auth identity group add [flags] 16 | ``` 17 | 18 | ### Examples 19 | 20 | ``` 21 | $ amc auth identity group add bknj0n9hpuo01q954fq0 --groups test,test-1 22 | ``` 23 | 24 | ### Options 25 | 26 | ``` 27 | -g, --groups strings Comma separated list of groups 28 | -h, --help help for add 29 | ``` 30 | 31 | ### SEE ALSO 32 | 33 | * [ams.amc auth identity group](ams.amc_auth_identity_group.md) - Manage groups for an identity 34 | 35 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_completion.md: -------------------------------------------------------------------------------- 1 | ## ams.amc completion 2 | 3 | Generate the autocompletion script for the specified shell 4 | 5 | ### Synopsis 6 | 7 | Generate the autocompletion script for ams.amc for the specified shell. 8 | See each sub-command's help for details on how to use the generated script. 9 | 10 | 11 | ### Options 12 | 13 | ``` 14 | -h, --help help for completion 15 | ``` 16 | 17 | ### SEE ALSO 18 | 19 | * [ams.amc](ams.amc.md) - Anbox Management Client 20 | * [ams.amc completion bash](ams.amc_completion_bash.md) - Generate the autocompletion script for bash 21 | * [ams.amc completion fish](ams.amc_completion_fish.md) - Generate the autocompletion script for fish 22 | * [ams.amc completion powershell](ams.amc_completion_powershell.md) - Generate the autocompletion script for powershell 23 | * [ams.amc completion zsh](ams.amc_completion_zsh.md) - Generate the autocompletion script for zsh 24 | 25 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_config_show.md: -------------------------------------------------------------------------------- 1 | ## ams.amc config show 2 | 3 | Show all configuration items 4 | 5 | ``` 6 | ams.amc config show [flags] 7 | ``` 8 | 9 | ### Examples 10 | 11 | ``` 12 | $ amc config show 13 | config: 14 | application.addons: "" 15 | application.auto_publish: "false" 16 | application.max_published_versions: "3" 17 | container.default_platform: "" 18 | container.security_updates: "true" 19 | core.trust_password: false 20 | gpu.type: none 21 | images.allow_insecure: "false" 22 | images.update_interval: 5m 23 | images.url: "" 24 | registry.filter: "" 25 | registry.fingerprint: "" 26 | registry.mode: pull 27 | registry.update_interval: 1h 28 | registry.url: "" 29 | image.auth: "" 30 | 31 | ``` 32 | 33 | ### Options 34 | 35 | ``` 36 | -h, --help help for show 37 | ``` 38 | 39 | ### SEE ALSO 40 | 41 | * [ams.amc config](ams.amc_config.md) - Manage AMS configuration 42 | 43 | -------------------------------------------------------------------------------- /reference/cmd-ref/aar/aar_completion_zsh.md: -------------------------------------------------------------------------------- 1 | # aar completion zsh 2 | 3 | Generate the autocompletion script for the zsh shell. 4 | 5 | If shell completion is not already enabled in your environment you will need 6 | to enable it. You can execute the following once: 7 | 8 | echo "autoload -U compinit; compinit" >> ~/.zshrc 9 | 10 | To load completions in your current shell session: 11 | 12 | source <(aar completion zsh) 13 | 14 | To load completions for every new session, execute once: 15 | 16 | For Linux 17 | 18 | aar completion zsh > "${fpath[1]}/_aar" 19 | 20 | For macOS, 21 | 22 | aar completion zsh > $(brew --prefix)/share/zsh/site-functions/_aar 23 | 24 | You will need to start a new shell for this setup to take effect. 25 | 26 | ## Usage 27 | 28 | aar completion zsh [flags] 29 | 30 | ## Flags 31 | 32 | ``` 33 | -h, --help help for zsh 34 | --no-descriptions disable completion descriptions 35 | ``` 36 | -------------------------------------------------------------------------------- /reference/cmd-ref/appliance/anbox-cloud-appliance_completion_powershell.md: -------------------------------------------------------------------------------- 1 | ## anbox-cloud-appliance completion powershell 2 | 3 | Generate the autocompletion script for powershell 4 | 5 | ### Synopsis 6 | 7 | Generate the autocompletion script for powershell. 8 | 9 | To load completions in your current shell session: 10 | 11 | anbox-cloud-appliance completion powershell | Out-String | Invoke-Expression 12 | 13 | To load completions for every new session, add the output of the above command 14 | to your powershell profile. 15 | 16 | 17 | ``` 18 | anbox-cloud-appliance completion powershell [flags] 19 | ``` 20 | 21 | ### Options 22 | 23 | ``` 24 | -h, --help help for powershell 25 | --no-descriptions disable completion descriptions 26 | ``` 27 | 28 | ### SEE ALSO 29 | 30 | * [anbox-cloud-appliance completion](anbox-cloud-appliance_completion.md) - Generate the autocompletion script for the specified shell 31 | 32 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_auth_identity.md: -------------------------------------------------------------------------------- 1 | ## ams.amc auth identity 2 | 3 | Manage authentiation & authorization 4 | 5 | ### Synopsis 6 | 7 | Manage authentiation & authorization in AMS. 8 | 9 | Create, Show and list users in Anbox Management Service (AMS). 10 | 11 | 12 | ### Options 13 | 14 | ``` 15 | -h, --help help for identity 16 | ``` 17 | 18 | ### SEE ALSO 19 | 20 | * [ams.amc auth](ams.amc_auth.md) - Manage authentication & authorization 21 | * [ams.amc auth identity create](ams.amc_auth_identity_create.md) - Create a new identity in AMS 22 | * [ams.amc auth identity delete](ams.amc_auth_identity_delete.md) - Delete an identity 23 | * [ams.amc auth identity group](ams.amc_auth_identity_group.md) - Manage groups for an identity 24 | * [ams.amc auth identity list](ams.amc_auth_identity_list.md) - List identities 25 | * [ams.amc auth identity show](ams.amc_auth_identity_show.md) - Show information about an identity 26 | 27 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_auth_identity_group_delete.md: -------------------------------------------------------------------------------- 1 | ## ams.amc auth identity group delete 2 | 3 | Remove an identity from authorization groups. 4 | 5 | ### Synopsis 6 | 7 | Remove an identity from authorization groups. 8 | 9 | This command can be used to remove an identity from a specific AMS group. 10 | The assigned permissions to groups are then revoked from the identities and can 11 | be used to manage access for the identities in AMS. 12 | 13 | 14 | ``` 15 | ams.amc auth identity group delete [flags] 16 | ``` 17 | 18 | ### Examples 19 | 20 | ``` 21 | $ amc auth identity groups delete bknj0n9hpuo01q954fq0 --groups test,test-1 22 | ``` 23 | 24 | ### Options 25 | 26 | ``` 27 | -g, --groups strings Comma separated list of groups 28 | -h, --help help for delete 29 | ``` 30 | 31 | ### SEE ALSO 32 | 33 | * [ams.amc auth identity group](ams.amc_auth_identity_group.md) - Manage groups for an identity 34 | 35 | -------------------------------------------------------------------------------- /reference/cmd-ref/appliance/anbox-cloud-appliance_dashboard.md: -------------------------------------------------------------------------------- 1 | ## anbox-cloud-appliance dashboard 2 | 3 | Manage the dashboard of the Anbox Cloud Appliance 4 | 5 | ### Synopsis 6 | 7 | Manage the dashboard of the Anbox Cloud Appliance 8 | 9 | Provides subcommands used to manage the dasboard of the Anbox Cloud Appliance. 10 | This includes management of users allowed to access the dashboard. 11 | 12 | ### Options 13 | 14 | ``` 15 | -h, --help help for dashboard 16 | ``` 17 | 18 | ### SEE ALSO 19 | 20 | * [anbox-cloud-appliance](anbox-cloud-appliance.md) - Anbox Cloud Appliance, bringing Android at scale to any cloud 21 | * [anbox-cloud-appliance dashboard export-identities](anbox-cloud-appliance_dashboard_export-identities.md) - Export user identities from the Anbox Cloud dashboard 22 | * [anbox-cloud-appliance dashboard register](anbox-cloud-appliance_dashboard_register.md) - Register a new user for access to the Anbox Cloud dashboard 23 | 24 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_addon_delete.md: -------------------------------------------------------------------------------- 1 | ## ams.amc addon delete 2 | 3 | Delete an existing addon 4 | 5 | ### Synopsis 6 | 7 | Delete an existing addon. 8 | 9 | Non-interactive deletion can be achieved with the '--yes'/'-y' flag. 10 | 11 | 12 | ``` 13 | ams.amc addon delete [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc addon delete foo 20 | The following addon will be REMOVED: 21 | - foo 22 | Do you want to continue? [Y/n]: Y 23 | 24 | ``` 25 | 26 | ### Options 27 | 28 | ``` 29 | -h, --help help for delete 30 | -t, --timeout string Maximum time to wait for the operation to complete (default "5m") 31 | -v, --version int Version of the application to delete. If not specified, all versions are deleted. 32 | -y, --yes Assume 'yes' as answer to all prompts and run non-interactively 33 | ``` 34 | 35 | ### SEE ALSO 36 | 37 | * [ams.amc addon](ams.amc_addon.md) - Manage addons 38 | 39 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_auth_group_show.md: -------------------------------------------------------------------------------- 1 | ## ams.amc auth group show 2 | 3 | Show information about an authorization group in AMS. 4 | 5 | ### Synopsis 6 | 7 | Show information about an authorization group in AMS. 8 | 9 | Formatting can be controlled with the '--format' flag. 10 | Valid formats are 'json' and 'yaml'. 11 | 12 | ``` 13 | ams.amc auth group show [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc auth group show test 20 | name: test 21 | description: this is a test group 22 | identities: [] 23 | created-at: 1970-01-01 00:00:00 +0000 UTC 24 | updated-at: 1970-01-01 00:00:00 +0000 UTC 25 | immutable: false 26 | 27 | ``` 28 | 29 | ### Options 30 | 31 | ``` 32 | --format string Output format - 'json' or 'yaml' (default "yaml") 33 | -h, --help help for show 34 | ``` 35 | 36 | ### SEE ALSO 37 | 38 | * [ams.amc auth group](ams.amc_auth_group.md) - Manage authorization groups in AMS 39 | 40 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_auth_group_permission_delete.md: -------------------------------------------------------------------------------- 1 | ## ams.amc auth group permission delete 2 | 3 | Revoke a permission from an authorization group 4 | 5 | ### Synopsis 6 | 7 | Revoke a permission to an authorization group. 8 | 9 | Use this command to revoke a permission from an authorization group to remove their access 10 | to manage the given resource in AMS. 11 | 12 | 13 | ``` 14 | ams.amc auth group permission delete [flags] 15 | ``` 16 | 17 | ### Examples 18 | 19 | ``` 20 | $ amc auth group permission delete test-group-1 application foo can_view 21 | ``` 22 | 23 | ### Options 24 | 25 | ``` 26 | -h, --help help for delete 27 | -p, --permissions strings Comma separated list of permissions to add to the group. 28 | ``` 29 | 30 | ### SEE ALSO 31 | 32 | * [ams.amc auth group permission](ams.amc_auth_group_permission.md) - Manage permissions for an authorization group 33 | 34 | -------------------------------------------------------------------------------- /howto/addons/install-tools-example.md: -------------------------------------------------------------------------------- 1 | (howto-install-tools-example)= 2 | # Example: Install tools 3 | 4 | Application images are designed to be as lightweight as possible, and as such, common tools you might expect to see in a regular cloud image might not be available. 5 | 6 | You can use hooks to install packages that you require for your application. In this example, we'll install `curl` and `python3`. 7 | 8 | To do so, create a new addon with the following `pre-start` hook: 9 | 10 | ```bash 11 | #!/bin/bash -e 12 | 13 | # We only need to install things once when the image is being created, so we 14 | # don't need to execute the hook when users are running the application. 15 | if [ "$INSTANCE_TYPE" = "regular" ]; then 16 | exit 0 17 | fi 18 | 19 | apt update -q 20 | apt install -y curl python3 21 | ``` 22 | 23 | When an application is created or updated with this addon, both `curl` and `python3` will be installed and made available for other hooks to use. 24 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_application_set.md: -------------------------------------------------------------------------------- 1 | ## ams.amc application set 2 | 3 | Update fields for an application 4 | 5 | ### Synopsis 6 | 7 | Update fields for an application. 8 | 9 | Update specific fields for an existing application without creating 10 | a new version of the application. 11 | 12 | The following fields can be updated: image, instance-type, addons, tags, inhibit-auto-updates, resources.cpus, resources.memory, resources.disk-size, resources.gpu-slots, resources.vpu-slots, boot-activity, features, hooks.timeout, bootstrap.keep, node-selector, watchdog.disabled, watchdog.allowed-packages 13 | 14 | ``` 15 | ams.amc application set [flags] 16 | ``` 17 | 18 | ### Examples 19 | 20 | ``` 21 | $ amc application set foo instance-type a4.3 22 | ``` 23 | 24 | ### Options 25 | 26 | ``` 27 | -h, --help help for set 28 | ``` 29 | 30 | ### SEE ALSO 31 | 32 | * [ams.amc application](ams.amc_application.md) - Manage applications 33 | 34 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_auth_group_permission_add.md: -------------------------------------------------------------------------------- 1 | ## ams.amc auth group permission add 2 | 3 | Assign a permission to an authorization group 4 | 5 | ### Synopsis 6 | 7 | Assign a permission to an authorization group. 8 | 9 | Use this command to assing a permission to an authorization group to give them access 10 | to manage the given resource in AMS. 11 | 12 | 13 | ``` 14 | ams.amc auth group permission add [] [flags] 15 | ``` 16 | 17 | ### Examples 18 | 19 | ``` 20 | $ amc auth group permission add test-group-1 application foo --permissions can_view,can_edit 21 | ``` 22 | 23 | ### Options 24 | 25 | ``` 26 | -h, --help help for add 27 | -p, --permissions strings Comma separated list of permissions to add to the group. 28 | ``` 29 | 30 | ### SEE ALSO 31 | 32 | * [ams.amc auth group permission](ams.amc_auth_group_permission.md) - Manage permissions for an authorization group 33 | 34 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_info.md: -------------------------------------------------------------------------------- 1 | ## ams.amc info 2 | 3 | Provide general information about the connected AMS service 4 | 5 | ### Synopsis 6 | 7 | Provide general information about the connected AMS service. 8 | 9 | Formatting can be controlled with the '--format' flag. 10 | Valid formats are 'json' and 'yaml'. 11 | 12 | ``` 13 | ams.amc info [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc info 20 | api_extensions: 21 | - addon_backup_hook 22 | ... 23 | - application_hooks 24 | api_status: stable 25 | api_version: "1.0" 26 | auth: trusted 27 | auth_methods: 28 | - 2waySSL 29 | config: 30 | application.addons: "" 31 | ... 32 | scheduler.strategy: spread 33 | service_version: 1.14.0 34 | ``` 35 | 36 | ### Options 37 | 38 | ``` 39 | --format string Output format - 'json' or 'yaml' (default "yaml") 40 | -h, --help help for info 41 | ``` 42 | 43 | ### SEE ALSO 44 | 45 | * [ams.amc](ams.amc.md) - Anbox Management Client 46 | 47 | -------------------------------------------------------------------------------- /reference/release-notes/1.15.2.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.15.2 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.15.2. 7 | 8 | Please see {ref}`ref-component-versions` for a list of updated components. 9 | 10 | ## New features & improvements 11 | 12 | * Included Android security updates for October 2022 (see [Android Security Bulletin - October 2022](https://source.android.com/security/bulletin/2022-10-01) for more information). 13 | 14 | ## Bugs 15 | 16 | * AC-1136 All containers were gone after the appliance snap got refreshed 17 | * AC-1130 Cannot reconnect to stream session after client with unsupported video codecs tried 18 | * AC-1087 Can't delete an application when the application bootstrap ends up in an error state 19 | 20 | ## Upgrade instructions 21 | 22 | See {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions on how to update your Anbox Cloud deployment to the 1.15.2 release. 23 | -------------------------------------------------------------------------------- /howto/instance/restart-instance.md: -------------------------------------------------------------------------------- 1 | (howto-restart-instance)= 2 | # Restart an instance 3 | 4 | A running instance can be restarted using the `amc restart` command: 5 | 6 | amc restart 7 | 8 | `` is the ID of the instance that you want to restart. 9 | 10 | ```{important} 11 | Do not use the `lxc` command to manage an instance. Always use the `amc` command instead. In Anbox Cloud, instances have their own life cycle and using the `lxc` command to manage an instance can cause the instance to be out of sync. 12 | ``` 13 | 14 | By default, the `amc restart` command waits 5 minutes for both stopping and starting the instance before the command times out. If you want to specify a custom wait time, you can do so by using the `--timeout` option in the `amc stop` command. 15 | 16 | amc restart --timeout 10m 17 | 18 | ## Related topics 19 | * {ref}`howto-create-instance` 20 | * {ref}`howto-start-instance` 21 | * {ref}`howto-stop-instance` 22 | -------------------------------------------------------------------------------- /reference/release-notes/1.4.0.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.4.0 (March 2020) 5 | 6 | ## New features & improvements 7 | 8 | * Support for Android 10 including latest security updates 9 | * Inclusion of an alpha version of the WebRTC based Streaming Stack 10 | * Updated and improve OpenGL/EGL layer to provide better performance and API support up to OpenGL ES 3.2 and EGL 1.4 11 | * 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. 12 | * Support for [explicit graphics synchronization](https://source.android.com/devices/graphics/sync) 13 | * Automatic GPU detection on deployment and at runtime 14 | * Default LXD version changed to 3.21 for shiftfs and extended GPU support 15 | * Container life-cycle events are now reported via `amc monitor` and the corresponding REST API 16 | * Support for VNC was removed as [scrcpy](https://github.com/Genymobile/scrcpy) offers a good alternative -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_exec.md: -------------------------------------------------------------------------------- 1 | ## ams.amc exec 2 | 3 | Execute a command inside an instance 4 | 5 | ### Synopsis 6 | 7 | Execute a command inside an instance. 8 | 9 | To use flags in your command, you must isolate the command with 10 | the '--' separator. 11 | 12 | The command is executed directly using exec, so there is no shell. 13 | Shell patterns (variables, file redirects ...) won't be understood. 14 | If you need a shell environment, execute the shell command and 15 | pass the actual command as an argument (see the example below). 16 | 17 | 18 | ``` 19 | ams.amc exec [--] [flags] 20 | ``` 21 | 22 | ### Examples 23 | 24 | ``` 25 | $ amc exec -- sh -c "cd /tmp && pwd" 26 | ``` 27 | 28 | ### Options 29 | 30 | ``` 31 | -T, --force-noninteractive Disable pseudo-terminal allocation 32 | -h, --help help for exec 33 | ``` 34 | 35 | ### SEE ALSO 36 | 37 | * [ams.amc](ams.amc.md) - Anbox Management Client 38 | 39 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_remote.md: -------------------------------------------------------------------------------- 1 | ## ams.amc remote 2 | 3 | Interact with remote AMS daemons 4 | 5 | ### Synopsis 6 | 7 | Interact with remote AMS daemons. 8 | 9 | AMC is a client talking to a daemon (AMS). You can configure the connection to different remote daemons. 10 | 11 | See https://documentation.ubuntu.com/anbox-cloud/en/latest/howto/anbox/control-ams-remotely/ for more information. 12 | 13 | 14 | ### Options 15 | 16 | ``` 17 | -h, --help help for remote 18 | ``` 19 | 20 | ### SEE ALSO 21 | 22 | * [ams.amc](ams.amc.md) - Anbox Management Client 23 | * [ams.amc remote add](ams.amc_remote_add.md) - Add a remote 24 | * [ams.amc remote list](ams.amc_remote_list.md) - List registered remotes 25 | * [ams.amc remote remove](ams.amc_remote_remove.md) - Remove a registered remote 26 | * [ams.amc remote set-default](ams.amc_remote_set-default.md) - Set default remote 27 | * [ams.amc remote set-url](ams.amc_remote_set-url.md) - Set the URL of an existing remote 28 | 29 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_auth_identity_show.md: -------------------------------------------------------------------------------- 1 | ## ams.amc auth identity show 2 | 3 | Show information about an identity 4 | 5 | ### Synopsis 6 | 7 | Show information about an identity. 8 | 9 | Formatting can be controlled with the '--format' flag. 10 | Valid formats are 'json' and 'yaml'. 11 | 12 | ``` 13 | ams.amc auth identity show [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc auth identity show bknj0n9hpuo01q954fq0 20 | id: bknj0n9hpuo01q954fq0 21 | authentication-method: oidc 22 | groups: [] 23 | email: test-user@anbox-cloud.io 24 | created-at: 1970-01-01 00:00:00 +0000 UTC 25 | updated-at: 1970-01-01 00:00:00 +0000 UTC 26 | name: test-user 27 | 28 | ``` 29 | 30 | ### Options 31 | 32 | ``` 33 | --format string Output format - 'json' or 'yaml' (default "yaml") 34 | -h, --help help for show 35 | ``` 36 | 37 | ### SEE ALSO 38 | 39 | * [ams.amc auth identity](ams.amc_auth_identity.md) - Manage authentiation & authorization 40 | 41 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_show.md: -------------------------------------------------------------------------------- 1 | ## ams.amc show 2 | 3 | Show information about an instance 4 | 5 | ### Synopsis 6 | 7 | Show information about an instance. 8 | 9 | Formatting can be controlled with the '--format' flag. 10 | Valid formats are 'json' and 'yaml'. 11 | 12 | ``` 13 | ams.amc show [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc show bknj0n9hpuo01q954fq0 20 | id: bknj0n9hpuo01q954fq0 21 | name: ams-bknj0n9hpuo01q954fq0 22 | status: running 23 | node: lxd0 24 | created_at: 2019-07-17T14:27:41Z 25 | image: 26 | id: bkkbiaphpuo3mh78ain0 27 | network: 28 | address: 192.168.100.2 29 | public_address: 10.48.61.89 30 | services: [] 31 | stored_logs: [] 32 | error_message: "" 33 | 34 | ``` 35 | 36 | ### Options 37 | 38 | ``` 39 | --format string Output format - 'json' or 'yaml' (default "yaml") 40 | -h, --help help for show 41 | ``` 42 | 43 | ### SEE ALSO 44 | 45 | * [ams.amc](ams.amc.md) - Anbox Management Client 46 | 47 | -------------------------------------------------------------------------------- /reference/license-information.md: -------------------------------------------------------------------------------- 1 | (ref-license-information)= 2 | # License information 3 | The copyright and license information of Anbox Cloud can be found within the container or the virtual machine at `/usr/share/doc/anbox/copyright`. 4 | 5 | Anbox Cloud is built using multiple open source software components. This guide lists those components and where to find their license information. 6 | 7 | | Software components | Where to find their licenses | 8 | |--|--| 9 | | LXD images | Within the LXD image,
`/usr/share/licenses` and `/usr/share/doc/*/copyright`. | 10 | | Android | In the LXD image instance,
`/var/lib/anbox/android-system/system/etc/NOTICE.xml.gz` | 11 | | Snaps | `/snap//current/`
Replace with the name of the Snap.| 12 | | Charms | In the instance where the charm is deployed, `//copyright`
Replace `` with the path where the charm is deployed. Usually, the charm is deployed in `/var/lib/juju/agents/unit-*/charm`. | 13 | -------------------------------------------------------------------------------- /reference/release-notes/1.10.3.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.10.3 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.10.3 7 | 8 | Please see {ref}`ref-component-versions` for a list of updated components. 9 | 10 | ## New Features & Improvements 11 | 12 | * Android security updates for July 2021 (see [here](https://source.android.com/security/bulletin/2021-07-01) for more information) 13 | * WebView based on [upstream 91.0.4472.134 release](https://chromereleases.googleblog.com/2021/06/chrome-for-android-update_0579445428.html) 14 | 15 | ## Bugs 16 | 17 | * LP #1933195 Sensor device doesn't handle sync and guest_sync commands 18 | * LP #1932362 [appliance] public address of the LXD node in AMS is not set 19 | * LP #1934877 A wrong main activity was used for some APKs 20 | 21 | ## Upgrade Instructions 22 | 23 | See {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions of how to update your Anbox Cloud deployment to the 1.10.3 release. -------------------------------------------------------------------------------- /reference/release-notes/1.12.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.12.1 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.12.1. 7 | 8 | Please see {ref}`ref-component-versions` for a list of updated components. 9 | 10 | ## New features & improvements 11 | 12 | * Improved graphics stability on Arm64 machines with NVIDIA GPUs 13 | 14 | ## Bugs 15 | 16 | * AC-472 A native crash occurred to `webview.apk` after upgrading it to 94.0.4606.80 17 | * AC-505 WebRTC platform crashes in `rtc::SocketDispatcher` 18 | * AC-503 CUDA resources are not correctly freed 19 | * AC-508 Units in stats overlay are incorrect 20 | * AC-545 Find patch in Mesa which fixes the crash 21 | * AC-553 no Audio output after rejoining a session 22 | * AC-555 Telegraf fails to run iptables commands 23 | 24 | ## Upgrade instructions 25 | 26 | See {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions on how to update your Anbox Cloud deployment to the 1.12.1 release. 27 | -------------------------------------------------------------------------------- /reference/cmd-ref/appliance/anbox-cloud-appliance_completion_fish.md: -------------------------------------------------------------------------------- 1 | ## anbox-cloud-appliance completion fish 2 | 3 | Generate the autocompletion script for fish 4 | 5 | ### Synopsis 6 | 7 | Generate the autocompletion script for the fish shell. 8 | 9 | To load completions in your current shell session: 10 | 11 | anbox-cloud-appliance completion fish | source 12 | 13 | To load completions for every new session, execute once: 14 | 15 | anbox-cloud-appliance completion fish > ~/.config/fish/completions/anbox-cloud-appliance.fish 16 | 17 | You will need to start a new shell for this setup to take effect. 18 | 19 | 20 | ``` 21 | anbox-cloud-appliance completion fish [flags] 22 | ``` 23 | 24 | ### Options 25 | 26 | ``` 27 | -h, --help help for fish 28 | --no-descriptions disable completion descriptions 29 | ``` 30 | 31 | ### SEE ALSO 32 | 33 | * [anbox-cloud-appliance completion](anbox-cloud-appliance_completion.md) - Generate the autocompletion script for the specified shell 34 | 35 | -------------------------------------------------------------------------------- /reference/release-notes/1.15.3.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.15.3 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.15.3. 7 | 8 | Note that this is an out of order release that only applies to the Anbox Cloud Appliance. 9 | 10 | Please see {ref}`ref-component-versions` for a list of updated components. 11 | 12 | ## New features & improvements 13 | 14 | * Work around a bug in Juju 2.9.35 that prevents the Anbox Cloud Appliance from deploying its software stack entirely. The workaround makes the deployment process independent of the Juju snap that is installed on the host system by including a Juju binary of a previous release inside the appliance snap. 15 | 16 | ## Bugs 17 | 18 | * [LP:1993137](https://bugs.launchpad.net/juju/+bug/1993137) Juju 2.9.35 breaks LXD deployment 19 | 20 | ## Upgrade instructions 21 | 22 | See {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions on how to update your Anbox Cloud deployment to the 1.15.3 release. 23 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_application_create.md: -------------------------------------------------------------------------------- 1 | ## ams.amc application create 2 | 3 | Create an application 4 | 5 | ### Synopsis 6 | 7 | Create an application. 8 | 9 | Applications can be created from plain directories, tarballs or zip archives. 10 | A valid application must contain an APK and a manifest that defines various 11 | application properties. 12 | 13 | 14 | ``` 15 | ams.amc application create ( | <.tar.bz2 tarball> | <.zip archive>) [flags] 16 | ``` 17 | 18 | ### Examples 19 | 20 | ``` 21 | $ tree my-app 22 | my-app/ 23 | ├── app.apk 24 | └── manifest.yaml 25 | 26 | $ amc application create my-app 27 | 28 | ``` 29 | 30 | ### Options 31 | 32 | ``` 33 | -h, --help help for create 34 | -t, --timeout string Maximum time to wait for the operation to complete (default "5m") 35 | --vm Create an application using VMs instead of containers 36 | ``` 37 | 38 | ### SEE ALSO 39 | 40 | * [ams.amc application](ams.amc_application.md) - Manage applications 41 | 42 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_application_publish.md: -------------------------------------------------------------------------------- 1 | ## ams.amc application publish 2 | 3 | Mark an application version as published 4 | 5 | ### Synopsis 6 | 7 | Mark an application version as published. 8 | 9 | Publishing a version marks it as the latest available version for that application. 10 | When you launch an application, AMS picks the latest published version unless specified otherwise. 11 | 12 | By default, application versions are unpublished. 13 | 14 | If you publish a wrong version, you can revert it with the 'application revoke' command. 15 | 16 | 17 | ``` 18 | ams.amc application publish [flags] 19 | ``` 20 | 21 | ### Examples 22 | 23 | ``` 24 | $ amc application publish foo 0 25 | ``` 26 | 27 | ### Options 28 | 29 | ``` 30 | -h, --help help for publish 31 | -t, --timeout string Maximum time to wait for the operation to complete (default "5m") 32 | ``` 33 | 34 | ### SEE ALSO 35 | 36 | * [ams.amc application](ams.amc_application.md) - Manage applications 37 | 38 | -------------------------------------------------------------------------------- /reference/release-notes/1.7.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.7.1 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.7.1 7 | 8 | ## New Features & Improvements 9 | 10 | * Switched to [LLVMpipe](https://docs.mesa3d.org/gallium/drivers/llvmpipe.html) based software rendering in favor of [swiftshader](https://swiftshader.googlesource.com/SwiftShader/) to mitigate memory corruption during rendering in the [Android WebView](https://developer.android.com/reference/android/webkit/WebView) on both ARM and x86 11 | 12 | ## Bug Fixes 13 | 14 | * LP #1892149: `anbox-shell pm install` fails in the prepare hook of an addon when bootstrapping an application 15 | * LP #1889747: Coturn should not run as root 16 | * LP #1891746: Some ARM applications crash because of failing `cacheflush` syscall 17 | 18 | ## Upgrade Instructions 19 | 20 | Please see the {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions of how to update your Anbox Cloud deployment to the 1.7.1 release. -------------------------------------------------------------------------------- /howto/addons/migrate-addon.md: -------------------------------------------------------------------------------- 1 | (howto-migrate-addons)= 2 | # Migrate from previous versions 3 | 4 | Starting with Anbox Cloud 1.12, use the following new hooks instead of the deprecated ones: 5 | 6 | * Use `pre-start` instead of `install` 7 | * Use `pre-start` instead of `restore` 8 | * Use `post-start` instead of `prepare` 9 | * Use `post-stop` instead of `backup` 10 | 11 | The new hooks run for **all** types of instances (containers and virtual machines). To execute a hook only for a regular or a base instance, use the `INSTANCE_TYPE` environment variable. This variable is set to either `base` or `regular`. 12 | 13 | For example, if you want to execute a hook only when your application is bootstrapped, you can do the following: 14 | ```bash 15 | if [ "$INSTANCE_TYPE" = "regular" ]; then 16 | exit 0 17 | fi 18 | 19 | # Rest of the code for your addon 20 | ``` 21 | 22 | ```{caution} 23 | Copying your existing addons without modifications might have unintended side effects, because your hooks will run for every instance. 24 | ``` 25 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_auth_identity_delete.md: -------------------------------------------------------------------------------- 1 | ## ams.amc auth identity delete 2 | 3 | Delete an identity 4 | 5 | ### Synopsis 6 | 7 | Deletes an identity from AMS. 8 | 9 | This can be used to revoke access from an identity in AMS. The identity 10 | can be re-registered to provide access to AMS again. 11 | 12 | 13 | ``` 14 | ams.amc auth identity delete [flags] 15 | ``` 16 | 17 | ### Examples 18 | 19 | ``` 20 | $ amc auth identity delete bknj0n9hpuo01q954fq0 21 | ``` 22 | 23 | ### Options 24 | 25 | ``` 26 | -f, --force force deletion of identity 27 | -h, --help help for delete 28 | --no-wait Don't wait for the delete operation to finish 29 | -t, --timeout string Maximum time to wait for the operation to complete (default "5m") 30 | -y, --yes Assume 'yes' as answer to all prompts and run non-interactively 31 | ``` 32 | 33 | ### SEE ALSO 34 | 35 | * [ams.amc auth identity](ams.amc_auth_identity.md) - Manage authentiation & authorization 36 | 37 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_delete.md: -------------------------------------------------------------------------------- 1 | ## ams.amc delete 2 | 3 | Delete an instance 4 | 5 | ``` 6 | ams.amc delete [flags] 7 | ``` 8 | 9 | ### Examples 10 | 11 | ``` 12 | $ amc delete bkm6mj1hpuo01q954fl0 13 | The following instance will be REMOVED: 14 | - bkm6mj1hpuo01q954fl0 15 | Do you want to continue? [Y/n]: 16 | 17 | ``` 18 | 19 | ### Options 20 | 21 | ``` 22 | -a, --all Delete all existing instances 23 | -f, --force Force the removal of the instance 24 | -h, --help help for delete 25 | --no-wait Don't wait for the delete operation to finish 26 | -n, --node string Select only instances for the specified node (this flag only works in combination with '--all') 27 | -t, --timeout string Maximum time to wait for the operation to complete (default "5m") 28 | -y, --yes Assume 'yes' as answer to all prompts and run non-interactively 29 | ``` 30 | 31 | ### SEE ALSO 32 | 33 | * [ams.amc](ams.amc.md) - Anbox Management Client 34 | 35 | -------------------------------------------------------------------------------- /howto/instance/access-instance.md: -------------------------------------------------------------------------------- 1 | (howto-access-instance)= 2 | # Access an instance 3 | 4 | In some cases, it might be necessary to access an individual instance for debugging reasons. 5 | You can do this on the command line with the `amc` command. 6 | 7 | ## Access an instance with `amc` 8 | 9 | The `amc` command provides simple shell access to any instance managed by AMS. To access a specific instance you only need its ID: 10 | 11 | amc shell 12 | 13 | This command opens a bash shell inside the instance. To access the nested Android container, use the `anbox-shell` command inside the new shell. If you combined the `anbox-shell` command with `amc exec`, you can get direct access to the Android container: 14 | 15 | amc exec -- anbox-shell 16 | 17 | If you only want to watch the Android log output, use the following command: 18 | 19 | amc exec -- anbox-shell logcat 20 | 21 | `amc shell` and `amc exec` open various possibilities for automation use cases. See the help output of the commands for further details. 22 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_node_remove.md: -------------------------------------------------------------------------------- 1 | ## ams.amc node remove 2 | 3 | Remove a node 4 | 5 | ### Synopsis 6 | 7 | Remove a node. 8 | 9 | Removing a node excludes it from the Anbox Cloud cluster and makes it unable to host containers. 10 | 11 | You cannot delete a node with running containers unless you specify the '--force'|'-f' flag. 12 | 13 | 14 | ``` 15 | ams.amc node remove [flags] 16 | ``` 17 | 18 | ### Examples 19 | 20 | ``` 21 | $ amc node remove lxd2 22 | ``` 23 | 24 | ### Options 25 | 26 | ``` 27 | -f, --force Force the removal of the node 28 | -h, --help help for remove 29 | --keep-in-cluster Keep the LXD node as part of the cluster and just remove it from the AMS database 30 | -t, --timeout string DEPRECATED: Maximum time to wait for the operation to complete (default "5m") 31 | -y, --yes Assume 'yes' as answer to all prompts and run non-interactively 32 | ``` 33 | 34 | ### SEE ALSO 35 | 36 | * [ams.amc node](ams.amc_node.md) - Manage nodes 37 | 38 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_image_add.md: -------------------------------------------------------------------------------- 1 | ## ams.amc image add 2 | 3 | Add an image 4 | 5 | ### Synopsis 6 | 7 | Add an image. 8 | 9 | The first image you add will be marked as the default image, which means it is used 10 | when creating an application or launching a raw container without specifying an image. 11 | After that, you can mark a new image as the default by adding the '--default' flag. 12 | 13 | 14 | ``` 15 | ams.amc image add [flags] 16 | ``` 17 | 18 | ### Examples 19 | 20 | ``` 21 | $ amc image add base path/to/image 22 | ``` 23 | 24 | ### Options 25 | 26 | ``` 27 | -d, --default Mark image as the default image 28 | -h, --help help for add 29 | -t, --timeout string Maximum time to wait for the operation to complete (default "5m") 30 | --type string Type of image to import. Only used when a remote image is added. Valid values are: any, container, vm (default "any") 31 | ``` 32 | 33 | ### SEE ALSO 34 | 35 | * [ams.amc image](ams.amc_image.md) - Manage images 36 | 37 | -------------------------------------------------------------------------------- /.sphinx/spellingcheck.yaml: -------------------------------------------------------------------------------- 1 | matrix: 2 | - name: rST files 3 | aspell: 4 | lang: en 5 | d: en_US 6 | dictionary: 7 | wordlists: 8 | - .sphinx/.wordlist.txt 9 | - .custom_wordlist.txt 10 | output: .sphinx/.wordlist.dic 11 | sources: 12 | - _build/**/*.html|!_build/venv/**/*.html|!_build/reference/cmd-ref/appliance/**/*.html|!_build/reference/cmd-ref/amc/**/*.html|!_build/reference/api-reference/**/*.html|!_build/reference/ams-configuration/index.html|!_build/reference/cmd-ref/aar/**/*.html 13 | pipeline: 14 | - pyspelling.filters.html: 15 | comments: false 16 | attributes: 17 | - title 18 | - alt 19 | ignores: 20 | - code 21 | - pre 22 | - spellexception 23 | - link 24 | - title 25 | - div.relatedlinks 26 | - strong.command 27 | - div.visually-hidden 28 | - img 29 | - a.p-navigation__link 30 | - a.contributor 31 | -------------------------------------------------------------------------------- /reference/api-reference/ams-api.md: -------------------------------------------------------------------------------- 1 | # AMS HTTP API 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 30 | -------------------------------------------------------------------------------- /reference/release-notes/1.8.3.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.8.3 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.8.3. 7 | 8 | ## New Features & Improvements 9 | 10 | * Android security fixes from January 2021 (patch level `2021-01-05`, see [here](https://source.android.com/security/bulletin/2021-01-01) for more details) 11 | * WebView update to upstream release `87.0.4280.141` (see [here](https://chromereleases.googleblog.com/2021/01/chrome-for-android-update.html) for more details) 12 | * Various improvements to the Coturn charm to allow proper use behind [AWS Elastic Load Balancers](https://aws.amazon.com/elasticloadbalancing/) 13 | 14 | ## Bugs 15 | 16 | * LP #1910583 Anbox-stream-gateway gets stuck and demands restart after some time of use 17 | * LP #1912342 Gateway reports database locked errors for various operations 18 | 19 | ## Upgrade Instructions 20 | 21 | See {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions of how to update your Anbox Cloud deployment to the 1.8.3 release. -------------------------------------------------------------------------------- /reference/api-reference/gateway-api.md: -------------------------------------------------------------------------------- 1 | # Stream Gateway API 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 30 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_auth_group.md: -------------------------------------------------------------------------------- 1 | ## ams.amc auth group 2 | 3 | Manage authorization groups in AMS 4 | 5 | ### Synopsis 6 | 7 | Manage groups in AMS. 8 | 9 | Create, Show and list authorization groups in Anbox Management Service (AMS). 10 | 11 | 12 | ### Options 13 | 14 | ``` 15 | -h, --help help for group 16 | ``` 17 | 18 | ### SEE ALSO 19 | 20 | * [ams.amc auth](ams.amc_auth.md) - Manage authentication & authorization 21 | * [ams.amc auth group create](ams.amc_auth_group_create.md) - Create a new group in AMS 22 | * [ams.amc auth group delete](ams.amc_auth_group_delete.md) - Delete an authorization group 23 | * [ams.amc auth group list](ams.amc_auth_group_list.md) - List authorization groups in AMS 24 | * [ams.amc auth group permission](ams.amc_auth_group_permission.md) - Manage permissions for an authorization group 25 | * [ams.amc auth group set](ams.amc_auth_group_set.md) - Update fields for an authorization group 26 | * [ams.amc auth group show](ams.amc_auth_group_show.md) - Show information about an authorization group in AMS. 27 | 28 | -------------------------------------------------------------------------------- /reference/release-notes/1.10.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.10.1 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.10.1. 7 | Please see {ref}`ref-component-versions` for a list of updated components. 8 | 9 | ## New Features & Improvements 10 | 11 | * Properly shut down containers when they are still writing to a ZFS dataset. 12 | * Android security updates for May 2021 (see [here](https://source.android.com/security/bulletin/2021-05-01) for more information) 13 | 14 | ## Bugs 15 | 16 | * LP #1926695 Task reaper fails to deleted container because of "target is busy" 17 | * LP #1927234 `Sysctl` settings for new LXD nodes are not applied 18 | * LP #1927910 Public status endpoint of the appliance returns internal endpoints without authentication 19 | * LP #1927342 `wifi-service.odex` is marked as imported but is not found for Android 11 20 | 21 | ## Upgrade Instructions 22 | 23 | See {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions of how to update your Anbox Cloud deployment to the 1.10.1 release. -------------------------------------------------------------------------------- /reference/release-notes/1.11.4.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.11.4 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.11.4. 7 | 8 | Please see {ref}`ref-component-versions` for a list of updated components. 9 | 10 | ## New features & improvements 11 | 12 | None. 13 | 14 | ## Bugs 15 | 16 | A bug in the Anbox runtime caused random WebView-based applications to crash when upgrading the `WebView.apk` to [94.0.4606.80](https://chromereleases.googleblog.com/2021/10/chrome-for-android-update.html). For this reason, we downgraded the WebView version to [93.0.4577.82](https://chromereleases.googleblog.com/2021/09/chrome-for-android-update.html) for stability, and we are planning to provide a fix in the Anbox Cloud 1.12 release. 17 | 18 | 19 | ## Upgrade instructions 20 | 21 | This release does not include any charm changes. Only the images are updated, and they are automatically synchronized to your Anbox Cloud deployment via the Canonical image server. See [Manage images](https://anbox-cloud.io/docs/howto/manage/images) for details. 22 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_image_show.md: -------------------------------------------------------------------------------- 1 | ## ams.amc image show 2 | 3 | Show information about an image 4 | 5 | ### Synopsis 6 | 7 | Show information about an image. 8 | 9 | Formatting can be controlled with the '--format' flag. 10 | Valid formats are 'json' and 'yaml'. 11 | 12 | ``` 13 | ams.amc image show ( | ) [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc image show foo 20 | id: bkkbiaphpuo3mh78ain0 21 | name: foo 22 | status: active 23 | versions: 24 | 0: 25 | size: 2.26MB 26 | created-at: 2019-07-12 16:45:31 +0000 UTC 27 | status: active 28 | used_by: 29 | - bkmtdm9hpuo01q954fng 30 | architecture: x86_64 31 | default: true 32 | type: container 33 | variant: android 34 | 35 | ``` 36 | 37 | ### Options 38 | 39 | ``` 40 | --format string Output format - 'json' or 'yaml' (default "yaml") 41 | -h, --help help for show 42 | --vm Show the virtual machine image instead of a container image 43 | ``` 44 | 45 | ### SEE ALSO 46 | 47 | * [ams.amc image](ams.amc_image.md) - Manage images 48 | 49 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_addon_add.md: -------------------------------------------------------------------------------- 1 | ## ams.amc addon add 2 | 3 | Add an addon 4 | 5 | ### Synopsis 6 | 7 | Add an addon. 8 | 9 | Addons can be created from plain directories or tarballs or zip archives. 10 | A valid addon must contain a manifest and hooks. 11 | 12 | Addons are not used automatically, but they must be enabled for an application 13 | by adding them to the application manifest. 14 | Alternatively, you can enable them globally by setting the configuration item 15 | 'application.addons'. 16 | 17 | ``` 18 | ams.amc addon add ( | <.tar.bz2 tarball> | <.zip zip archive>) [flags] 19 | ``` 20 | 21 | ### Examples 22 | 23 | ``` 24 | $ tree my-addon 25 | my-addon/ 26 | ├── hooks 27 | │   └── install 28 | └── manifest.yaml 29 | 30 | $ amc addon add foo my-addon/ 31 | 32 | ``` 33 | 34 | ### Options 35 | 36 | ``` 37 | -h, --help help for add 38 | -t, --timeout string Maximum time to wait for the operation to complete (default "5m") 39 | ``` 40 | 41 | ### SEE ALSO 42 | 43 | * [ams.amc addon](ams.amc_addon.md) - Manage addons 44 | 45 | -------------------------------------------------------------------------------- /howto/application/delete-application.md: -------------------------------------------------------------------------------- 1 | (howto-delete-application)= 2 | # Delete an application 3 | 4 | When an application is no longer needed, it can be fully removed from Anbox Cloud. However, be mindful of the consequences that come with removing an application such as: 5 | - Removal of associated base instances. Note that the base instance could first enter an error state before being cleaned up. 6 | - Removal of all the versions of the deleted application. 7 | 8 | Once you're sure you want to remove the application, you can delete it via the dashboard or the CLI. 9 | 10 | ::::{tab-set} 11 | :::{tab-item} CLI 12 | :sync: cli 13 | 14 | Run: 15 | 16 | amc application delete bcmap7u5nof07arqa2ag 17 | 18 | The command will ask for your approval before the application is removed. If you want to bypass the check, you can add the `--yes` flag to the command. 19 | ::: 20 | 21 | :::{tab-item} Dashboard 22 | :sync: dashboard 23 | 24 | On the *Applications* page, click *Delete* ( ![delete application icon](/images/icons/delete-icon.png) ) and confirm the deletion. 25 | ::: 26 | :::: 27 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_image_list.md: -------------------------------------------------------------------------------- 1 | ## ams.amc image list 2 | 3 | List available images 4 | 5 | ### Synopsis 6 | 7 | List available images. 8 | 9 | Formatting can be controlled with the '--format' flag. 10 | Valid formats are 'table' (see example), 'yaml', 'json' and 'csv'. 11 | 12 | 13 | ``` 14 | ams.amc image list [flags] 15 | ``` 16 | 17 | ### Examples 18 | 19 | ``` 20 | $ amc image list 21 | +----------------------+------+--------+----------+----------------+---------+ 22 | | ID | NAME | STATUS | VERSIONS | ARCHITECTURE | DEFAULT | 23 | +----------------------+------+--------+----------+----------------+---------+ 24 | | bkkbiaphpuo3mh78ain0 | foo | active | 1 | x86_64 | true | 25 | +----------------------+------+--------+----------+----------------+---------+ 26 | 27 | ``` 28 | 29 | ### Options 30 | 31 | ``` 32 | --format string Output format - 'table', 'json' or 'csv' (default "table") 33 | -h, --help help for list 34 | ``` 35 | 36 | ### SEE ALSO 37 | 38 | * [ams.amc image](ams.amc_image.md) - Manage images 39 | 40 | -------------------------------------------------------------------------------- /howto/addons/index.md: -------------------------------------------------------------------------------- 1 | (howto-addons)= 2 | # Addons 3 | 4 | In Anbox Cloud, addons can be used to customize images that are used for instances. See {ref}`exp-addons` and {ref}`ref-addon-manifest` to learn about addons in detail. 5 | 6 | You can use addons to, for example: 7 | - Enable SSH access for automation tools (see {ref}`howto-create-addon`) 8 | - Set up user-specific data when starting an application (see {ref}`howto-backup-restore-example`) 9 | - Install additional tools in the instance (see {ref}`howto-install-tools-example`) 10 | - Back up data when the instance is stopping (see {ref}`howto-backup-restore-example`) 11 | - Configure the Android system before running the application (see {ref}`howto-customize-android-example`) 12 | - Provide support for other platforms (see {ref}`howto-emulate-platforms-example`) 13 | 14 | If you have used addons before Anbox Cloud 1.12, see {ref}`howto-migrate-addons` to update your addons to use the new hooks. 15 | 16 | ```{toctree} 17 | :hidden: 18 | 19 | 20 | create-addon 21 | enable-addons-globally 22 | migrate-addon 23 | update-addon 24 | examples 25 | ``` 26 | -------------------------------------------------------------------------------- /reference/release-notes/1.7.2.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.7.2 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.7.2 7 | 8 | ## New Features & Improvements 9 | 10 | * Various improvements for HA support in the Anbox Stream Gateway and its [Dqlite](https://dqlite.io) integration 11 | * The Anbox Stream Gateway now exposes a `/1.0/status` endpoint to allow simple health checks 12 | * The number of registered stream agents is now exported via the Prometheus endpoint of the Anbox Stream Gateway 13 | * The LXD charm can now use Juju storage (AWS EBS, ..) at deployment time as base for the LXD storage pool 14 | * Coturn can now be manually configured via the Anbox Stream Agent charm configuration 15 | 16 | ## Bug Fixes 17 | 18 | * Various fixes around interoperability of the various charms in an Anbox Cloud deployment 19 | * Updated and verified NRPE checks for all service components 20 | 21 | ## Upgrade Instructions 22 | 23 | Please see the {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions of how to update your Anbox Cloud deployment to the 1.7.2 release. -------------------------------------------------------------------------------- /explanation/resources.md: -------------------------------------------------------------------------------- 1 | (exp-resources-presets)= 2 | # Resources and resource presets 3 | 4 | Resource presets denote the resources available to an instance. Anbox Cloud uses some default resource presets if there are no custom resource requirements specified. 5 | 6 | For a container instance, the default resource preset is: 7 | 8 | ```yaml 9 | name: my-application 10 | resources: 11 | cpus: 2 12 | memory: 3GB 13 | disk-size: 3GB 14 | ``` 15 | For a virtual machine instance, the default resource preset is: 16 | 17 | ```yaml 18 | name: my-application 19 | resources: 20 | cpus: 2 21 | memory: 3GB 22 | disk-size: 15GB 23 | ``` 24 | 25 | If your application requires different resources than the default, specify the required resources in the application manifest to override some or all of default resource preset options. 26 | 27 | In addition to the `cpus`, `memory` and the `disk-size` requirements, if your application requires a custom number of GPU slots, change the `gpu-slots` value for the `resources` attribute in the application manifest. 28 | 29 | ## Related topics 30 | 31 | * {ref}`ref-application-manifest` 32 | -------------------------------------------------------------------------------- /reference/release-notes/1.9.4.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.9.4 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.9.4. 7 | 8 | Please see {ref}`ref-component-versions` for a list of updated components. 9 | 10 | ## New Features & Improvements 11 | 12 | The 1.9.4 release adapts the AMS service to work with LXD newer than 4.0.5. LXD recently changed which certificate is being used on the API endpoint when running clustered. With newer LXD versions, AMS fails to setup the initial LXD node within a cluster. For subsequently added nodes, the problem 13 | does not exist. With the 1.9.4 release, AMS now correctly uses the new certificate used by LXD and allows the initial LXD cluster bootstrap to succeed. 14 | 15 | The only component updated with the 1.9.4 release is the AMS service. All other components are not changed and remain at version 1.9.3. 16 | 17 | ## Bugs 18 | 19 | No bugs were fixed in this release. 20 | 21 | ## Upgrade Instructions 22 | 23 | See {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions of how to update your Anbox Cloud deployment to the 1.9.4 release. -------------------------------------------------------------------------------- /howto/port/grant-runtime-permissions.md: -------------------------------------------------------------------------------- 1 | (howto-grant-runtime-permissions)= 2 | # Grant runtime permissions 3 | 4 | An Anbox Cloud application cannot automatically grant runtime permissions to the app it runs upon creation. Therefore, you must specify the permissions that are required to run the Android app in the application manifest of the Anbox Cloud application. When creating the application in AMS, Anbox Cloud will then grant the specified permissions. 5 | 6 | To list all required runtime permissions of an Android app, use [AAPT2](https://developer.android.com/studio/command-line/aapt2): 7 | 8 | aapt2 dump permissions 9 | 10 | Add the required permissions to the top-level key `required-permissions` in the application manifest. For example: 11 | 12 | ```yaml 13 | ... 14 | required-permissions: 15 | - android.permission.WRITE_EXTERNAL_STORAGE 16 | - android.permission.READ_EXTERNAL_STORAGE 17 | - android.permission.INTERNET 18 | ... 19 | ``` 20 | 21 | You can also grant all runtime permissions to an application in the following way: 22 | 23 | ```yaml 24 | ... 25 | required-permissions: ['*'] 26 | ... 27 | ``` 28 | -------------------------------------------------------------------------------- /howto/troubleshoot/troubleshoot-application-creation.md: -------------------------------------------------------------------------------- 1 | (howto-ts-application-creation-issues)= 2 | # Troubleshoot issues with application creation 3 | 4 | You might encounter the following issues when creating an application. 5 | 6 | ## Automatic creation of application manifest 7 | 8 | *Applies to: Anbox Cloud, Anbox Cloud Appliance* 9 | 10 | > Is there an automatic way to create a manifest for an application? 11 | 12 | No. The application manifest describes necessary metadata on top of the APK, which AMS needs. You can simplify the manifest to only contain the `name` and `instance-type` fields or the `name` and `resources` fields, but you will lose a lot of control about how your application is being executed. 13 | 14 | ## `No such file or directory` error 15 | 16 | *Applies to: Anbox Cloud, Anbox Cloud Appliance* 17 | 18 | > When creating an application, I get an error that there is “no such file or directory”. Why? 19 | 20 | Due to Snap strict confinement, the directory, the tarball file, or the zip archive file must be located in the home directory. There is no workaround for this requirement. The same requirement applies to addon creation. -------------------------------------------------------------------------------- /reference/release-notes/1.9.5.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.9.5 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.9.5 7 | 8 | Please see {ref}`ref-component-versions` for a list of updated components. 9 | 10 | ## New Features & Improvements 11 | 12 | No features were added in this release. 13 | 14 | ## Bugs 15 | 16 | * LP #1927676 No image is imported in AMS when deploying 1.9.x based Anbox Cloud 17 | 18 | With Anbox Cloud 1.10 packages are now version specific which allows users to deploy older versions of Anbox Cloud while a newer version is available. Due to a bug in AMS 1.9.x no images were imported as the 1.10 ones were always seen as newer (when `images.version_lockstep` is set to `true`) and older 1.9.x images were not considered. With 1.9.5 AMS will now correctly download the latest 1.9.x image and ignore any newer one. 19 | 20 | Existing deployments based on 1.9.x are not affected by this bug. 21 | 22 | ## Upgrade Instructions 23 | 24 | See {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions of how to update your Anbox Cloud deployment to the 1.9.5 release. -------------------------------------------------------------------------------- /reference/cmd-ref/appliance/anbox-cloud-appliance_completion.md: -------------------------------------------------------------------------------- 1 | ## anbox-cloud-appliance completion 2 | 3 | Generate the autocompletion script for the specified shell 4 | 5 | ### Synopsis 6 | 7 | Generate the autocompletion script for anbox-cloud-appliance for the specified shell. 8 | See each sub-command's help for details on how to use the generated script. 9 | 10 | 11 | ### Options 12 | 13 | ``` 14 | -h, --help help for completion 15 | ``` 16 | 17 | ### SEE ALSO 18 | 19 | * [anbox-cloud-appliance](anbox-cloud-appliance.md) - Anbox Cloud Appliance, bringing Android at scale to any cloud 20 | * [anbox-cloud-appliance completion bash](anbox-cloud-appliance_completion_bash.md) - Generate the autocompletion script for bash 21 | * [anbox-cloud-appliance completion fish](anbox-cloud-appliance_completion_fish.md) - Generate the autocompletion script for fish 22 | * [anbox-cloud-appliance completion powershell](anbox-cloud-appliance_completion_powershell.md) - Generate the autocompletion script for powershell 23 | * [anbox-cloud-appliance completion zsh](anbox-cloud-appliance_completion_zsh.md) - Generate the autocompletion script for zsh 24 | 25 | -------------------------------------------------------------------------------- /reference/release-notes/1.5.0.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.5.0 (April 2020) 5 | 6 | ## New features & improvements 7 | 8 | * Support for Android 10 including latest security updates 9 | * Updated software rendering to work on Android 10 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 11 | * Use [Dqlite](https://dqlite.io/) in the Stream Gateway for High Availability 12 | * HTTP/HTTPS proxy support in AMS 13 | * Highly Availability support for Anbox Stream Gateway via [Dqlite](https://dqlite.io/) 14 | * Charms now properly work with DNS names when adding machines 15 | * Updated Android WebView to [80.0.3987.132](https://chromereleases.googleblog.com/2020/03/stable-channel-update-for-desktop.html) 16 | * Preliminary support for Ubuntu 20.04 17 | * Software rendering and video encoding support for the streaming stack 18 | * GPUs are now identified by their PCI address in order for a correct mapping inside containers 19 | 20 | ## Deprecations 21 | 22 | * Android 7 images are now deprecated and will be dropped with the next release of Anbox Cloud -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_addon.md: -------------------------------------------------------------------------------- 1 | ## ams.amc addon 2 | 3 | Manage addons 4 | 5 | ### Synopsis 6 | 7 | Manage addons. 8 | 9 | Addons are a way of customising the images that are used as the base for containers. 10 | 11 | Basically, an addon is a tarball that provides several hooks and additional metadata. 12 | An example for an addon is one that enables the SSH service inside a container, to 13 | provide access from the outside for any kind of automation of the container. 14 | 15 | See https://documentation.ubuntu.com/anbox-cloud/en/latest/explanation/addons/ for more information. 16 | 17 | ### Options 18 | 19 | ``` 20 | -h, --help help for addon 21 | ``` 22 | 23 | ### SEE ALSO 24 | 25 | * [ams.amc](ams.amc.md) - Anbox Management Client 26 | * [ams.amc addon add](ams.amc_addon_add.md) - Add an addon 27 | * [ams.amc addon delete](ams.amc_addon_delete.md) - Delete an existing addon 28 | * [ams.amc addon list](ams.amc_addon_list.md) - List available addons 29 | * [ams.amc addon show](ams.amc_addon_show.md) - Show more information about a specific addon 30 | * [ams.amc addon update](ams.amc_addon_update.md) - Update an existing addon 31 | 32 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_completion_bash.md: -------------------------------------------------------------------------------- 1 | ## ams.amc completion bash 2 | 3 | Generate the autocompletion script for bash 4 | 5 | ### Synopsis 6 | 7 | Generate the autocompletion script for the bash shell. 8 | 9 | This script depends on the 'bash-completion' package. 10 | If it is not installed already, you can install it via your OS's package manager. 11 | 12 | To load completions in your current shell session: 13 | 14 | source <(ams.amc completion bash) 15 | 16 | To load completions for every new session, execute once: 17 | 18 | #### Linux: 19 | 20 | ams.amc completion bash > /etc/bash_completion.d/ams.amc 21 | 22 | #### macOS: 23 | 24 | ams.amc completion bash > $(brew --prefix)/etc/bash_completion.d/ams.amc 25 | 26 | You will need to start a new shell for this setup to take effect. 27 | 28 | 29 | ``` 30 | ams.amc completion bash 31 | ``` 32 | 33 | ### Options 34 | 35 | ``` 36 | -h, --help help for bash 37 | --no-descriptions disable completion descriptions 38 | ``` 39 | 40 | ### SEE ALSO 41 | 42 | * [ams.amc completion](ams.amc_completion.md) - Generate the autocompletion script for the specified shell 43 | 44 | -------------------------------------------------------------------------------- /reference/release-notes/1.15.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.15.1 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.15.1. 7 | 8 | Please see {ref}`ref-component-versions` for a list of updated components. 9 | 10 | ## New features & improvements 11 | 12 | * Included Android security updates for September 2022 (see [Android Security Bulletin - September 2022](https://source.android.com/security/bulletin/2022-09-01) for more information). 13 | * Updated Android WebView to [105.0.5195.79](https://chromereleases.googleblog.com/2022/09/chrome-for-android-update_5.html). 14 | 15 | ## Bugs 16 | 17 | * AC-1087 Can't delete an application when the application bootstrap ends up in an error state 18 | * AC-1079 Not possible to stream container anymore after Android rebooted 19 | * AC-1078 No input is possible after rebooting Android 20 | * AC-1069 Transport channel closed error occurred when disconnecting a stream on Android client 21 | 22 | ## Upgrade instructions 23 | 24 | See {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions on how to update your Anbox Cloud deployment to the 1.15.1 release. 25 | -------------------------------------------------------------------------------- /howto/instance/wait-for-instance.md: -------------------------------------------------------------------------------- 1 | (howto-wait-for-instance)= 2 | # Wait for an instance 3 | 4 | When launching an instance, the instance should not be considered started until it reaches the running state. Sometimes if you want to interact with the instance (with the `amc shell` command, for example), you must wait until the instance reaches a `running` status. 5 | 6 | The `amc wait` command allows to wait for an instance to reach a specific condition. If the condition is not satisfied within the specified time (five minutes by default), a timeout error will be returned by AMS. 7 | 8 | The supported conditions for an instance are as follows: 9 | 10 | Name | Value 11 | ----------------|------------ 12 | `app` | Application name or ID 13 | `type` | Type of the instance, possible values: "base", "regular" 14 | `node` | Node on which the instance runs 15 | `status` | instance status, possible values: "created", "prepared", "started", "stopped", "running", "error", "deleted", "unknown" 16 | 17 | For example, to wait for the instance to reach state `running`: 18 | 19 | amc wait -c status=running bdpaqaqhmss611ruq6kg 20 | -------------------------------------------------------------------------------- /reference/release-notes/1.11.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.11.1 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.11.1. 7 | 8 | Please see {ref}`ref-component-versions` for a list of updated components. 9 | 10 | ## New features & improvements 11 | 12 | * Android security updates for August 2021 (see [Android Security Bulletin - August 2021](https://source.android.com/security/bulletin/2021-08-01) for more information) 13 | 14 | ## Bugs 15 | 16 | * LP #1939277 `lxc-attach` fails on sendfile with EINVAL on 5.11 17 | * LP #1938877 Native crash occurred when creating an application from Android 11 after finishing application bootstrap 18 | * LP #1939274 Anbox crashes after "Failed to put memory protection in place" 19 | * LP #1939666 Bootstrap fails because of missing `/dev/fd0` 20 | * LP #1939129 The `anbox-stream-sdk.js` file is missing from Android WebView based projects 21 | * LP #1938901 Appliance upgrade fails with Juju 2.9.x 22 | 23 | ## Upgrade instructions 24 | 25 | See {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions on how to update your Anbox Cloud deployment to the 1.11.1 release. 26 | -------------------------------------------------------------------------------- /reference/release-notes/1.16.2.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.16.2 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.16.2. 7 | 8 | Please see the {ref}`ref-component-versions` for a list of updated components. 9 | 10 | ## New features & improvements 11 | 12 | * Included Android security updates for January 2023 (see [Android Security Bulletin - January 2023](https://source.android.com/security/bulletin/2023-01-01) for more information). 13 | * Updated Android WebView to [108.0.5359.128](https://chromereleases.googleblog.com/2022/12/chrome-for-android-update_13.html). 14 | 15 | ## Bugs 16 | 17 | * AC-1276 `finalrd.service`: Failed with result 'exit-code'. 18 | * AC-1277 The pre-start/install hook to modify Android's root file system always failed 19 | * [LP #2002020](https://bugs.launchpad.net/charm-etcd/+bug/2002020): `anbox-cloud-core`: `etcd/jammy`: hook failed: "install" due to `error in Tempita setup command: use_2to3 is invalid.` 20 | 21 | ## Upgrade instructions 22 | 23 | See {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions on how to update your Anbox Cloud deployment to the 1.16.2 release. 24 | -------------------------------------------------------------------------------- /explanation/custom-images.md: -------------------------------------------------------------------------------- 1 | (exp-custom-images)= 2 | # Custom images 3 | 4 | Android Automotive OS(AAOS) includes reference designs that can be customized. Car makers will typically adapt these reference designs to fit their needs in terms of user experience. Additionally, most of them will complement the reference designs with features or functionalities of their own. 5 | 6 | To enable such use cases, we support customized AAOS images integration with Anbox Cloud. Hence, building custom images of Anbox Cloud based on custom AAOS is possible. 7 | 8 | ```{note} 9 | Building custom images is currently possible only for Android 13 and AAOS images. 10 | ``` 11 | 12 | By default, Anbox Cloud is regularly updated with security updates provided by the Android team to keep systems secure for consumers of generic AAOS images. Anbox Cloud users using a custom AAOS image are expected to maintain their systems secure by integrating these security updates, along with the updated version of Anbox Cloud. This might require manual deployment steps. 13 | 14 | If you are using or have a need for an Anbox Cloud image built on customized AAOS, please [contact us](https://anbox-cloud.io/contact-us). 15 | -------------------------------------------------------------------------------- /explanation/images.md: -------------------------------------------------------------------------------- 1 | (exp-images)= 2 | # Images 3 | 4 | An image represents the Anbox Cloud image available in the AMS node. An image is the base for an instance, which contains all necessary components like Anbox or the Android root file system. The image type can be container or virtual machine. 5 | 6 | ## Possible image statuses 7 | 8 | The following table lists the different statuses that an image can have depending on its state and what each status means: 9 | 10 | | Image status | Description | 11 | |--------------------|-------------| 12 | | `initializing` | The image is currently being created. | 13 | | `created` | The image was uploaded to AMS but not yet available on all LXD nodes. | 14 | | `available` | The image is present on the remote but not in the LXD cluster. | 15 | | `active` | The image is available on all LXD nodes. | 16 | | `deleted` | The image has been deleted and no longer available for use. | 17 | | `error` | The image has encountered an error. | 18 | | `unknown` | A possible error occurred and the real state of the image cannot be determined. | 19 | 20 | If you encounter the `error` or the `unknown` status, [file a bug](https://bugs.launchpad.net/anbox-cloud). 21 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_auth_group_delete.md: -------------------------------------------------------------------------------- 1 | ## ams.amc auth group delete 2 | 3 | Delete an authorization group 4 | 5 | ### Synopsis 6 | 7 | Deletes an authorization group from AMS. 8 | 9 | An authorization group can be deleted regularly only if the group is empty with no identities as members. 10 | To delete a group having identities, you need to delete the group forcefully with a --force 11 | flag. This will remove the memberships of all the identities from the group before removal. 12 | 13 | 14 | ``` 15 | ams.amc auth group delete [flags] 16 | ``` 17 | 18 | ### Examples 19 | 20 | ``` 21 | $ amc auth group delete test-group 22 | ``` 23 | 24 | ### Options 25 | 26 | ``` 27 | -f, --force Force deletion of groups 28 | -h, --help help for delete 29 | --no-wait Don't wait for the delete operation to finish 30 | -t, --timeout string Maximum time to wait for the operation to complete (default "5m") 31 | -y, --yes Assume 'yes' as answer to all prompts and run non-interactively 32 | ``` 33 | 34 | ### SEE ALSO 35 | 36 | * [ams.amc auth group](ams.amc_auth_group.md) - Manage authorization groups in AMS 37 | 38 | -------------------------------------------------------------------------------- /reference/release-notes/1.8.2.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.8.2 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.8.2. 7 | 8 | There are no charm upgrades for 1.8.2. Only new images are provided which should automatically arrive on your Anbox Cloud deployment shortly. 9 | 10 | ## New Features & Improvements 11 | 12 | * Android security fixes from December 2020 (patch level `2020-12-05`, see [here](https://source.android.com/security/bulletin/2020-12-01) for more details) 13 | * WebView update to upstream release ` 87.0.4280.86` (see [here](https://chromereleases.googleblog.com/2020/12/chrome-for-android-update.html) for more details) 14 | 15 | ## Bugs 16 | 17 | * LP #1907464 NvEnc fails to encode when stream is in portrait mode (720x1280) 18 | * LP #1904078 Garbled image/video generated when taking a picture/recording a video when screen orientation is in portrait mode 19 | * LP #1904417 [REGRESSION] `adb screenrecord` output has incorrect orientation 20 | 21 | ## Upgrade Instructions 22 | 23 | See {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions of how to update your Anbox Cloud deployment to the 1.8.2 release. -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_start.md: -------------------------------------------------------------------------------- 1 | ## ams.amc start 2 | 3 | Start an existing instance 4 | 5 | ### Synopsis 6 | 7 | Start an existing instance that has an status 'prepared', 'stopped'. 8 | 9 | When an Anbox instance is initialised with the 'amc init' command, it is not started automatically. 10 | You must start it explicitly with the 'amc start' command. 11 | 12 | When an Anbox instance ends up with the 'error' status, you can start it again with 'amc start' command. 13 | 14 | 15 | ``` 16 | ams.amc start [flags] 17 | ``` 18 | 19 | ### Examples 20 | 21 | ``` 22 | Initialise an instance: 23 | $ amc init 24 | ceg2ukbhc8ic3ftkc990 25 | 26 | Start the instance: 27 | $ amc start ceg2ukbhc8ic3ftkc990 28 | ``` 29 | 30 | ### Options 31 | 32 | ``` 33 | -h, --help help for start 34 | --no-wait Don't wait for the instance to start before returning (default disabled) 35 | -t, --timeout string Maximum time to wait for the operation to complete (default "5m") 36 | -y, --yes error Force start the instance from error state 37 | ``` 38 | 39 | ### SEE ALSO 40 | 41 | * [ams.amc](ams.amc.md) - Anbox Management Client 42 | 43 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_completion_zsh.md: -------------------------------------------------------------------------------- 1 | ## ams.amc completion zsh 2 | 3 | Generate the autocompletion script for zsh 4 | 5 | ### Synopsis 6 | 7 | Generate the autocompletion script for the zsh shell. 8 | 9 | If shell completion is not already enabled in your environment you will need 10 | to enable it. You can execute the following once: 11 | 12 | echo "autoload -U compinit; compinit" >> ~/.zshrc 13 | 14 | To load completions in your current shell session: 15 | 16 | source <(ams.amc completion zsh) 17 | 18 | To load completions for every new session, execute once: 19 | 20 | #### Linux: 21 | 22 | ams.amc completion zsh > "${fpath[1]}/_ams.amc" 23 | 24 | #### macOS: 25 | 26 | ams.amc completion zsh > $(brew --prefix)/share/zsh/site-functions/_ams.amc 27 | 28 | You will need to start a new shell for this setup to take effect. 29 | 30 | 31 | ``` 32 | ams.amc completion zsh [flags] 33 | ``` 34 | 35 | ### Options 36 | 37 | ``` 38 | -h, --help help for zsh 39 | --no-descriptions disable completion descriptions 40 | ``` 41 | 42 | ### SEE ALSO 43 | 44 | * [ams.amc completion](ams.amc_completion.md) - Generate the autocompletion script for the specified shell 45 | 46 | -------------------------------------------------------------------------------- /reference/release-notes/1.11.5.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.11.5 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.11.5. 7 | 8 | This release prepares for an upcoming Ubuntu kernel release on AWS. With the 5.13 kernel, which will be introduced on instances running Ubuntu 20.04 (focal) starting at the end of February, Anbox must be adopted to work with changes in the `/proc` file system and semantic changes to the mount system API. If you are running on Ubuntu with kernel version 5.13 or later, make sure you're using the 1.11.5 images. Using older images will result in Anbox and the nested Android container failing to start. 9 | 10 | Instances running Ubuntu 18.04 (bionic) are not affected, because the latest kernel version for Ubuntu 18.04 is 5.4. 11 | 12 | Please see {ref}`ref-component-versions` for a list of updated components. 13 | 14 | ## New features & improvements 15 | 16 | n/a 17 | 18 | ## Bugs 19 | 20 | * AC-662 Android containers fail to start on Linux 5.13.x 21 | 22 | ## Upgrade instructions 23 | 24 | See {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions on how to update your Anbox Cloud deployment to the 1.11.5 release. 25 | 26 | 27 | -------------------------------------------------------------------------------- /reference/addon-manifest.md: -------------------------------------------------------------------------------- 1 | (ref-addon-manifest)= 2 | # Addon manifest 3 | 4 | The following table lists the valid keys in an addon manifest: 5 | 6 | | Name | Type | Description | Allowed values | 7 | |-----------------------|--------------|----------------|-----------------| 8 | | `name` | string | Name of the addon. Can be used to reference the addon.| All characters except for the following: `< > : " / \ \| ? *`, as well as space. | 9 | | `description` | string | Description of the addon. | Any character | 10 | | `provides.abi-support`| string array | Tells AMS that this addon adds support for the given architecture even if the application doesn't support it natively. Use this when your addon brings instruction translation or provides libraries for other architectures. | `arm64-v8a`, `armeabi-v7a`, `armeabi` | 11 | | `hooks.timeout`| string | Execution timeout for each hook that is included in an addon. By default, the timeout is set to 5 minutes. It can be extended to up to 15 minutes. Configure this option if a hook takes longer than 5 minutes to finish. | `10m` | 12 | 13 | ## Related topics 14 | 15 | * {ref}`howto-create-addon` 16 | * {ref}`howto-addons` 17 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_application_show.md: -------------------------------------------------------------------------------- 1 | ## ams.amc application show 2 | 3 | Show information about a specific application 4 | 5 | ### Synopsis 6 | 7 | Show information about a specific application. 8 | 9 | Formatting can be controlled with the '--format' flag. 10 | Valid formats are 'json' and 'yaml'. 11 | 12 | ``` 13 | ams.amc application show [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc application show foo 20 | id: bkmtdm9hpuo01q954fng 21 | name: foo 22 | status: ready 23 | published: true 24 | immutable: false 25 | vm: false 26 | inhibit-auto-updates: false 27 | parent-image: jammy:android13:amd64 28 | parent-image-variant: android 29 | tags: [] 30 | config: 31 | instance-type: a2.3 32 | boot-package: com.android.foo 33 | versions: 34 | 0: 35 | image: bkkbiaphpuo3mh78ain0 (version 0) 36 | manifest-version: 0.1 37 | published: true 38 | status: active 39 | extra-data: {} 40 | 41 | ``` 42 | 43 | ### Options 44 | 45 | ``` 46 | --format string Output format - 'json' or 'yaml' (default "yaml") 47 | -h, --help help for show 48 | ``` 49 | 50 | ### SEE ALSO 51 | 52 | * [ams.amc application](ams.amc_application.md) - Manage applications 53 | 54 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_application_update.md: -------------------------------------------------------------------------------- 1 | ## ams.amc application update 2 | 3 | Update an existing application 4 | 5 | ### Synopsis 6 | 7 | Update an existing application. 8 | 9 | Updating an application creates a new version that must run through 10 | the bootstrap process. 11 | 12 | If no package is provided, AMS checks what updates are possible by looking 13 | at newer images and addons and applies any pending changes if necessary. 14 | 15 | Depending on which updates you want to do to your existing application, 16 | consider using the 'application set' command instead. That command allows 17 | to update specific fields of the application without updating the application. 18 | 19 | 20 | ``` 21 | ams.amc application update [] [flags] 22 | ``` 23 | 24 | ### Examples 25 | 26 | ``` 27 | $ tree foo-app 28 | foo-app/ 29 | ├── app.apk 30 | └── manifest.yaml 31 | 32 | $ amc application update foo foo-app/ 33 | 34 | ``` 35 | 36 | ### Options 37 | 38 | ``` 39 | -h, --help help for update 40 | -t, --timeout string Maximum time to wait for the operation to complete (default "5m") 41 | ``` 42 | 43 | ### SEE ALSO 44 | 45 | * [ams.amc application](ams.amc_application.md) - Manage applications 46 | 47 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_node_show.md: -------------------------------------------------------------------------------- 1 | ## ams.amc node show 2 | 3 | Show information about a node 4 | 5 | ### Synopsis 6 | 7 | Show information about a node. 8 | 9 | Formatting can be controlled with the '--format' flag. 10 | Valid formats are 'json' and 'yaml'. 11 | 12 | ``` 13 | ams.amc node show [flags] 14 | ``` 15 | 16 | ### Examples 17 | 18 | ``` 19 | $ amc node show node1 20 | name: node1 21 | managed: true 22 | status: online 23 | unschedulable: false 24 | architecture: x86_64 25 | disk: 26 | pool: ams0 27 | size: 13GB 28 | network: 29 | address: 10.48.61.89 30 | bridge-mtu: 1500 31 | gpus: 32 | 0: 33 | pci-address: 00:08.0 34 | config: 35 | public-address: 10.48.61.89 36 | cpus: 0 37 | cpu-allocation-rate: 4 38 | memory: 0B 39 | memory-allocation-rate: 2 40 | gpu-slots: 0 41 | gpu-encoder-slots: 0 42 | tags: [] 43 | 44 | ``` 45 | 46 | ### Options 47 | 48 | ``` 49 | --allocations Show resource allocations 50 | -f, --format string Output format - 'json' or 'yaml' (default "yaml") 51 | --gpu-allocations Show GPU allocations 52 | -h, --help help for show 53 | ``` 54 | 55 | ### SEE ALSO 56 | 57 | * [ams.amc node](ams.amc_node.md) - Manage nodes 58 | 59 | -------------------------------------------------------------------------------- /reference/release-notes/1.23.2-hotfix1.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.23.2 hotfix 1 5 | 6 | These release notes are for a hotfix release for Anbox Cloud 1.23.2 to work around the [LP #2083961](https://bugs.launchpad.net/snapd/+bug/2083961) bug in [snapd](https://github.com/canonical/snapd). 7 | 8 | The only updated component is the [`ams-lxd` charm](https://charmhub.io/ams-lxd). The version of the updated charm is `1.23.2-40ab511`. You can find the updated list of component versions for the 1.23.2 at {ref}`ref-component-versions` . 9 | 10 | The fixed problem manifests itself in the `ams-lxd` charm running into error status when trying to perform a reload of the `lxd.daemon` systemd service unit. The charm invokes `snap restart --reload lxd.daemon` for this which causes a failure on the systemd side as it is attempting to restart more than the necessary units. In order to mitigate the problem, until it is fixed in snapd, the `ams-lxd` charm has been updated to reload LXD by running `systemctl reload-or-restart snap.lxd.daemon.service` instead. 11 | 12 | ## Upgrade instructions 13 | 14 | See {ref}`howto-upgrade-anbox-cloud` and {ref}`howto-upgrade-appliance` for instructions on how to update your Anbox Cloud deployment to the 1.23.2 release. 15 | -------------------------------------------------------------------------------- /reference/api-reference/index.md: -------------------------------------------------------------------------------- 1 | (ref-api)= 2 | # API reference 3 | 4 | Anbox Cloud includes various APIs to help you build solutions with it. This page provides an overview of the available APIs and their uses. 5 | 6 | All these APIs except for the {ref}`anbox-https-api` have an auto-generated Open API specification describing its API endpoints. 7 | 8 | ## AMS HTTP API 9 | 10 | The AMS services provide an HTTP based API to help you manage all of its objects. Internally the `amc` client uses the same API to perform its operation. 11 | 12 | ## Anbox HTTP API 13 | 14 | The Anbox runtime inside each instance managed by the AMS provides an HTTP API over a UNIX domain socket that helps interacting with various functionalities offered by Anbox. This includes the injection of position or sensor events into Android, among other things. 15 | 16 | You can find the API specification at {ref}`anbox-https-api`. 17 | 18 | ## Anbox Stream Gateway API 19 | 20 | The Anbox Stream Gateway service provides an API endpoint to help you to manage streaming sessions. 21 | 22 | ```{toctree} 23 | :hidden: 24 | 25 | ams-api 26 | anbox-https-api 27 | Anbox Platform API 28 | gateway-api 29 | ``` 30 | -------------------------------------------------------------------------------- /reference/release-notes/1.11.3.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.11.3 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.11.3. 7 | 8 | Please see {ref}`ref-component-versions` for a list of updated components. 9 | 10 | ## New features & improvements 11 | 12 | * Android security updates for October 2021 (see [Android Security Bulletin - October 2021](https://source.android.com/security/bulletin/2021-10-01) for more information) 13 | * Android WebView has been updated to [94.0.4606.80](https://chromereleases.googleblog.com/2021/10/chrome-for-android-update.html) 14 | * The shared memory transport used for the `null` platform is now disabled by default for increased stability 15 | * ANGLE libraries used for `null` platform are updated to increase stability and cause Anbox to not crash in certain situations 16 | 17 | ## Bugs 18 | 19 | * AC-321 Deploying multiple AMS units at the same time causes problems 20 | * AC-343 ANDROID_EMU_* extensions are visible for Android applications 21 | * AC-384 Fix steam view in the dashboard 22 | 23 | ## Upgrade instructions 24 | 25 | See {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions on how to update your Anbox Cloud deployment to the 1.11.3 release. 26 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_image_delete.md: -------------------------------------------------------------------------------- 1 | ## ams.amc image delete 2 | 3 | Delete an image 4 | 5 | ### Synopsis 6 | 7 | Delete an image. 8 | 9 | Deleting an image removes all of its versions. If you want to remove only a 10 | specific version, use the '--version' flag. 11 | 12 | Images synchronised from the image server cannot be deleted unless you specify 13 | the '--force'|'-f' flag. 14 | 15 | 16 | ``` 17 | ams.amc image delete ( | ) [flags] 18 | ``` 19 | 20 | ### Examples 21 | 22 | ``` 23 | $ amc image delete foo 24 | The following image will be REMOVED: 25 | - foo 26 | Do you want to continue? [Y/n]: 27 | 28 | ``` 29 | 30 | ### Options 31 | 32 | ``` 33 | -f, --force Force the deletion of immutable images 34 | -h, --help help for delete 35 | -t, --timeout string Maximum time to wait for the operation to complete (default "5m") 36 | -v, --version int Version of the image to delete. If not specified, all versions are deleted. 37 | --vm Delete the virtual machine variant of the image 38 | -y, --yes Assume 'yes' as answer to all prompts and run non-interactively 39 | ``` 40 | 41 | ### SEE ALSO 42 | 43 | * [ams.amc image](ams.amc_image.md) - Manage images 44 | 45 | -------------------------------------------------------------------------------- /reference/release-notes/1.1.0.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.1.0 (January 2019) 5 | 6 | ## New features & improvements 7 | 8 | * The Anbox container is now based on Ubuntu 18.04 9 | * Experimental support for an application registry which serves as a central repository of applications for multiple Anbox Cloud deployments 10 | * Updated Android 7.x with all [security patches](https://source.android.com/security/bulletin) as of Jan 5 2019 11 | * Added GPU support to allow hardware accelerated rendering and video encoding/decoding 12 | * Various improvements to container startup time and overall performance 13 | * Improved AMS SDK (Go) 14 | * Support for “raw” containers (containers without installed applications) 15 | * The container scheduler now accounts for container disk requirements 16 | * AMS exposes additional metrics (containers per app, ...) 17 | * Anbox Platform SDK ABI version is marked as stable 18 | * Containers logs can be retrieved via the REST API and command line tools 19 | * Extended instance types (a6.3, a8.3, a10.3) 20 | * Binder support is now based on the new binderfs coming with Linux 5.0 21 | * AMS can now run on Arm64 machines 22 | * Example platform plugin with software rendering and VNC support 23 | 24 | ## Known issues 25 | 26 | None -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_logs.md: -------------------------------------------------------------------------------- 1 | ## ams.amc logs 2 | 3 | Show runtime logs of a running instance 4 | 5 | ### Synopsis 6 | 7 | Show runtime logs of a running instance. 8 | 9 | Anbox instances run a regular Ubuntu system with a nested Android container. 10 | You can display system-level logs of the Anbox instance or the nested Android 11 | instance. 12 | 13 | NOTE: The specified instance must be in the 'started' or 'running' state for this command to show output. 14 | 15 | ``` 16 | ams.amc logs [flags] 17 | ``` 18 | 19 | ### Examples 20 | 21 | ``` 22 | Show the runtime logs of the Ubuntu instance: 23 | 24 | $ amc logs burp70p3p7j1icvtebig 25 | 26 | Show the logs of the Android container: 27 | 28 | $ amc logs -t android burp70p3p7j1icvtebig 29 | 30 | Follow the logs for new entries: 31 | 32 | $ amc logs -f burp70p3p7j1icvtebig 33 | 34 | ``` 35 | 36 | ### Options 37 | 38 | ``` 39 | -f, --follow Show only the most recent log entries and continuously print new entries as they are appended to the log 40 | -h, --help help for logs 41 | -t, --type string Type of logs to show: anbox, android, console, container (default "anbox") 42 | ``` 43 | 44 | ### SEE ALSO 45 | 46 | * [ams.amc](ams.amc.md) - Anbox Management Client 47 | 48 | -------------------------------------------------------------------------------- /reference/appliance-configuration.md: -------------------------------------------------------------------------------- 1 | (ref-appliance-configuration)= 2 | # Anbox Cloud Appliance configuration 3 | 4 | The Anbox Cloud Appliance provides various configuration items to customize its behavior. Currently set configuration can be seen by running 5 | 6 | sudo anbox-cloud-appliance config show 7 | 8 | Available configuration items can be changed by using the following command 9 | 10 | sudo anbox-cloud-appliance config set = ... 11 | 12 | The following table lists the available configuration items and their meaning. 13 | 14 | | Name
*(Type, Default)* | Description | 15 | |-----|-----------------------| 16 | | `network.public_address`
*(string, N/A)* | Public address (if behind NAT) of the machine the appliance is running on | 17 | | `network.location`
*(string, N/A)* | DNS name used to access the appliance | 18 | | `core.https_allowed_origin`
*(string, N/A)* | `Access-Control-Allow-Origin` HTTP header value for the reverse proxy of the appliance | 19 | | `core.https_allowed_headers`
*(string, N/A)* | `Access-Control-Allow-Headers` HTTP header value for the reverse proxy of the appliance | 20 | | `core.https_allowed_methods`
*(string, N/A)* | `Access-Control-Allow-Methods` HTTP header value for the reverse proxy of the appliance | -------------------------------------------------------------------------------- /reference/cmd-ref/appliance/anbox-cloud-appliance_completion_bash.md: -------------------------------------------------------------------------------- 1 | ## anbox-cloud-appliance completion bash 2 | 3 | Generate the autocompletion script for bash 4 | 5 | ### Synopsis 6 | 7 | Generate the autocompletion script for the bash shell. 8 | 9 | This script depends on the 'bash-completion' package. 10 | If it is not installed already, you can install it via your OS's package manager. 11 | 12 | To load completions in your current shell session: 13 | 14 | source <(anbox-cloud-appliance completion bash) 15 | 16 | To load completions for every new session, execute once: 17 | 18 | #### Linux: 19 | 20 | anbox-cloud-appliance completion bash > /etc/bash_completion.d/anbox-cloud-appliance 21 | 22 | #### macOS: 23 | 24 | anbox-cloud-appliance completion bash > $(brew --prefix)/etc/bash_completion.d/anbox-cloud-appliance 25 | 26 | You will need to start a new shell for this setup to take effect. 27 | 28 | 29 | ``` 30 | anbox-cloud-appliance completion bash 31 | ``` 32 | 33 | ### Options 34 | 35 | ``` 36 | -h, --help help for bash 37 | --no-descriptions disable completion descriptions 38 | ``` 39 | 40 | ### SEE ALSO 41 | 42 | * [anbox-cloud-appliance completion](anbox-cloud-appliance_completion.md) - Generate the autocompletion script for the specified shell 43 | 44 | -------------------------------------------------------------------------------- /howto/port/index.md: -------------------------------------------------------------------------------- 1 | (howto-port-android-apps)= 2 | # Port Android apps 3 | 4 | When porting an Android app to Anbox Cloud (usually in the form of an APK), there are a few issues that might cause your app to not function properly: 5 | 6 | * Missing dependencies, most importantly to Google Play services. Google Play services are not supported by Anbox Cloud, and apps that require Google Play services can therefore not be ported to Anbox Cloud. 7 | * Missing runtime permissions. See {ref}`howto-grant-runtime-permissions` for instructions on how to grant the required permissions. 8 | * Mismatched architecture. See {ref}`howto-choose-apk-architecture` for information on which architecture you should choose. 9 | * App size. See {ref}`howto-exchange-oob-data` for instructions on how to port large APKs. 10 | * Strict watchdog restrictions. See {ref}`howto-configure-watchdog` if you want to turn the watchdog off for debugging or configure it to not trigger for specific apps. 11 | * Install an APK as a system app. See {ref}`howto-install-apk-system-app` if you want to install a user app as a system app running in an Android container. 12 | 13 | ```{toctree} 14 | :hidden: 15 | 16 | choose-apk-architecture 17 | configure-watchdog 18 | grant-runtime-permissions 19 | install-apk-system-app 20 | port-apk-obb-files 21 | ``` 22 | -------------------------------------------------------------------------------- /reference/release-notes/1.9.2.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.9.2 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.9.2. 7 | 8 | Please see {ref}`ref-component-versions` for a list of updated components. 9 | 10 | ## New Features & Improvements 11 | 12 | * Stability and reliability improvements in AMS and the Juju charms for auto scaling of the LXD cluster. See the {ref}`sec-lxd-auto-scaling` for recommendations and guidelines on how to implement auto scaling. 13 | 14 | ## Bugs 15 | 16 | * LP #1910676 AMS leaks file descriptors 17 | * LP #1917862 AMS charm tries to add/remove node when AMS service is not available 18 | * LP #1917867 LXD charm doesn't respect configured channel 19 | * LP #1917869 AMS fails to get started due to error `tls: private key does not match public key` when multiple AMS units are deployed 20 | * LP #1918089 Failed to remove LXD node from cluster 21 | * LP #1918431 Container logs are missing in a HA AMS 22 | * LP #1918675 Image synchronization is not triggered in AMS when relevant config items change 23 | * LP #1918676 Image server configuration can be stale in HA AMS 24 | 25 | ## Upgrade Instructions 26 | 27 | See {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions of how to update your Anbox Cloud deployment to the 1.9.2 release. -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_image.md: -------------------------------------------------------------------------------- 1 | ## ams.amc image 2 | 3 | Manage images 4 | 5 | ### Synopsis 6 | 7 | Manage images. 8 | 9 | Images are the base for a container running in Anbox Cloud and contain everything 10 | necessary to properly run an Android application in a container. 11 | 12 | Images can be provided manually or via an image server. You can add, update or 13 | delete them from AMS. 14 | 15 | See https://documentation.ubuntu.com/anbox-cloud/en/latest/reference/provided-images/ and 16 | https://documentation.ubuntu.com/anbox-cloud/en/latest/howto/anbox/manage-images/ for more information. 17 | 18 | 19 | ### Options 20 | 21 | ``` 22 | -h, --help help for image 23 | ``` 24 | 25 | ### SEE ALSO 26 | 27 | * [ams.amc](ams.amc.md) - Anbox Management Client 28 | * [ams.amc image add](ams.amc_image_add.md) - Add an image 29 | * [ams.amc image delete](ams.amc_image_delete.md) - Delete an image 30 | * [ams.amc image list](ams.amc_image_list.md) - List available images 31 | * [ams.amc image show](ams.amc_image_show.md) - Show information about an image 32 | * [ams.amc image switch](ams.amc_image_switch.md) - Set the default image 33 | * [ams.amc image sync](ams.amc_image_sync.md) - Synchronizes the image with the remote image server 34 | * [ams.amc image update](ams.amc_image_update.md) - Update an existing image 35 | 36 | -------------------------------------------------------------------------------- /howto/anbox/resize-storage.md: -------------------------------------------------------------------------------- 1 | (howto-resize-lxd-storage)= 2 | # Resize LXD storage 3 | 4 | Resizing the LXD storage pool that Anbox Cloud uses is not recommended. Before you deploy Anbox Cloud, you should analyze and plan the capacity you need, so that you can size the storage that you need correctly right from the start. See {ref}`exp-capacity-planning` for detailed information. 5 | 6 | However, if you run into a situation where you need to grow the LXD storage pool, try the following workarounds depending on your setup. 7 | 8 | - **Loop-backed storage pool** 9 | 10 | If you use a loop file for your LXD storage, follow the instructions for ZFS in [Resize a storage pool](https://documentation.ubuntu.com/lxd/en/latest/howto/storage_pools/#resize-a-storage-pool) in the LXD documentation. 11 | 12 | After resizing the storage pool, you must restart AMS. 13 | - **Dedicated block device** 14 | 15 | You cannot resize a dedicated block device. Instead, replace the block device with a bigger one. Once you replace the block device, you must redeploy the cluster node. 16 | - **EBS volume** 17 | 18 | While it is generally [possible to resize an EBS volume](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/requesting-ebs-volume-modifications.html), it is usually easier to replace the cluster node with a new one that has a bigger EBS volume. 19 | -------------------------------------------------------------------------------- /reference/release-notes/1.16.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.16.1 5 | 6 | The Anbox Cloud team is pleased to announce the release of Anbox Cloud 1.16.1. 7 | 8 | Please see the {ref}`ref-component-versions` for a list of updated components. 9 | 10 | ## New features & improvements 11 | 12 | * Included Android security updates for December 2022 (see [Android Security Bulletin - December 2022](https://source.android.com/security/bulletin/2022-12-01) for more information). 13 | * Updated Android WebView to [108.0.5359.79](https://chromereleases.googleblog.com/2022/12/chrome-for-android-update.html). 14 | 15 | ## Bugs 16 | 17 | * AC-1222 `ext4` online metadata check service is active but should not be 18 | * AC-1229 Appliance bootstrap doesn't fail when an Juju unit ends up in an error status 19 | * AC-1230 The `gpu-slots` remains 0 occasionally even after AMS detects NVIDIA GPU type 20 | * AC-1235 ANGLE for `null` platform attempts to initialize Vulkan renderer 21 | * AC-1264 Fatal exception occurred to `com.android.systemui` when launching an application (Android 13 based) with boot package 22 | * AC-1267 Data channels fail to connect 23 | 24 | ## Upgrade instructions 25 | 26 | See {ref}`howto-upgrade-anbox-cloud` or {ref}`howto-upgrade-appliance` for instructions on how to update your Anbox Cloud deployment to the 1.16.1 release. 27 | -------------------------------------------------------------------------------- /reference/release-notes/1.2.0.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | # 1.2.0 (April 2019) 5 | 6 | ## New features & improvements 7 | 8 | * Full support for an {ref}`exp-aar`. 9 | * Updated Android 7.x with all [security patches](https://source.android.com/security/bulletin) as of Mar 5 2019 10 | * Support for Intel and AMD GPUs 11 | * If configured, images will now be automatically pulled from a Canonical provided image server which will automatically bring updates once published. 12 | * Various performance and stability improvements 13 | * Dynamic management of [KSM](https://www.kernel.org/doc/html/latest/admin-guide/mm/ksm.html) 14 | * Dedicated tool to backup and restore user data of Android applications 15 | * Extended timeouts for addon hook execution 16 | * Tab completion (bash only) for the `amc` command 17 | * Improve startup time for the Android container 18 | * The `amc` command now has `shell` and `exec` subcommands to allow easy access of containers 19 | * Applications can now be tagged 20 | * Filtering of containers and applications via the `amc` command 21 | * `amc wait` allows to wait for a status change of a container or application object 22 | * Reworked APK validator for application packages 23 | * The Android container now uses dnsmasq, as provided by LXD on the host, as DNS server 24 | * Various improvements on the Anbox Cloud charms -------------------------------------------------------------------------------- /howto/addons/backup-and-restore-example.md: -------------------------------------------------------------------------------- 1 | (howto-backup-restore-example)= 2 | # Example: Back up data 3 | When an instance is stopped, all the data and logs produced during the runtime are lost. To avoid this, you can use hooks to back up and restore any type of data you want. 4 | 5 | ## Back up data 6 | 7 | In this example, we create a backup hook that uploads logs onto a cloud storage if Android terminated with an error. 8 | 9 | Add the following `post-stop` hook to a new or existing addon: 10 | ```bash 11 | #!/bin/sh -ex 12 | 13 | # Don't upload logs if no error happened 14 | if [ "$ANBOX_EXIT_CODE" = 0 ]; then 15 | exit 0 16 | fi 17 | 18 | FILE_NAME=container-logs.tar.bz2 19 | (cd /var/lib/anbox/logs; tar cvjf ../"${FILE_NAME}" *) 20 | # Upload the tarball to a public or private cloud storage service 21 | curl -i -X POST --data-binary @"${FILE_NAME}" 22 | ``` 23 | 24 | ## Restore data 25 | 26 | In this example, we create a hook that restores some user application data. 27 | 28 | Add the following `pre-start` hook to a new or existing addon: 29 | ```bash 30 | #!/bin/sh -ex 31 | 32 | # Download the tarball from a public or private cloud storage service 33 | if curl -o app-data.tar.bz2 ; then 34 | tar xvjf app-data.tar.bz2 -C /var/lib/anbox/data/data/com.foo.bar 35 | fi 36 | ``` 37 | -------------------------------------------------------------------------------- /reference/cmd-ref/appliance/anbox-cloud-appliance_completion_zsh.md: -------------------------------------------------------------------------------- 1 | ## anbox-cloud-appliance completion zsh 2 | 3 | Generate the autocompletion script for zsh 4 | 5 | ### Synopsis 6 | 7 | Generate the autocompletion script for the zsh shell. 8 | 9 | If shell completion is not already enabled in your environment you will need 10 | to enable it. You can execute the following once: 11 | 12 | echo "autoload -U compinit; compinit" >> ~/.zshrc 13 | 14 | To load completions in your current shell session: 15 | 16 | source <(anbox-cloud-appliance completion zsh) 17 | 18 | To load completions for every new session, execute once: 19 | 20 | #### Linux: 21 | 22 | anbox-cloud-appliance completion zsh > "${fpath[1]}/_anbox-cloud-appliance" 23 | 24 | #### macOS: 25 | 26 | anbox-cloud-appliance completion zsh > $(brew --prefix)/share/zsh/site-functions/_anbox-cloud-appliance 27 | 28 | You will need to start a new shell for this setup to take effect. 29 | 30 | 31 | ``` 32 | anbox-cloud-appliance completion zsh [flags] 33 | ``` 34 | 35 | ### Options 36 | 37 | ``` 38 | -h, --help help for zsh 39 | --no-descriptions disable completion descriptions 40 | ``` 41 | 42 | ### SEE ALSO 43 | 44 | * [anbox-cloud-appliance completion](anbox-cloud-appliance_completion.md) - Generate the autocompletion script for the specified shell 45 | 46 | -------------------------------------------------------------------------------- /howto/instance/start-instance.md: -------------------------------------------------------------------------------- 1 | (howto-start-instance)= 2 | # Start an instance 3 | 4 | When an instance is either initialized with the `amc init` command or stopped with the `amc stop` command, you must start it explicitly with the `amc start` command: 5 | 6 | amc start 7 | 8 | `` is the ID of the instance that you want to start. 9 | 10 | ```{important} 11 | Do not use the `lxc` command to manage an instance. Always use the `amc` command instead. In Anbox Cloud, instances have their own life cycle and using the `lxc` command to manage an instance can cause the instance to be out of sync. 12 | ``` 13 | 14 | By default, the `amc start` command waits 5 minutes for an instance to run before the operation times out. When starting an instance, you can specify a custom wait time with the `--timeout` option. 15 | 16 | amc start --timeout 10m 17 | 18 | When the `--no-wait` option is specified, the `amc start` command exits immediately after the instance starts and will not wait till it is running. 19 | 20 | amc start --no-wait 21 | 22 | ```{important} 23 | Starting an instance that has stopped with an error status is is not allowed. Doing so would cause the `amc start` command to fail. 24 | ``` 25 | 26 | ## Related topics 27 | * {ref}`howto-create-instance` 28 | * {ref}`howto-stop-instance` 29 | -------------------------------------------------------------------------------- /reference/cmd-ref/amc/ams.amc_wait.md: -------------------------------------------------------------------------------- 1 | ## ams.amc wait 2 | 3 | Wait for an instance to reach a specific condition 4 | 5 | ### Synopsis 6 | 7 | Wait for an instance to reach a specific condition. 8 | 9 | You must specify one or multiple conditions with the '--condition'|'-c' flag. 10 | 11 | A condition is of the form 'key=value', where 'key' is a supported attribute 12 | and 'value' defines what to wait on. 13 | 14 | Valid attributes: 15 | - For applications: published, status 16 | - For application versions: published, status 17 | - For instances: status 18 | 19 | Use '--selector version=' to wait on an application version. 20 | 21 | ``` 22 | ams.amc wait ( | ) [flags] 23 | ``` 24 | 25 | ### Examples 26 | 27 | ``` 28 | Wait for the application to be either ready or in an error state: 29 | 30 | $ amc wait bkhk491hpuo2c84rai9g -c status=ready -c status=error 31 | 32 | ``` 33 | 34 | ### Options 35 | 36 | ``` 37 | -c, --condition stringArray Condition of the application or instance to wait for 38 | -h, --help help for wait 39 | -s, --selector string Selector to filter the application or instance 40 | -t, --timeout string Maximum time to wait for the condition (default "5m") 41 | ``` 42 | 43 | ### SEE ALSO 44 | 45 | * [ams.amc](ams.amc.md) - Anbox Management Client 46 | 47 | -------------------------------------------------------------------------------- /explanation/nodes.md: -------------------------------------------------------------------------------- 1 | (exp-nodes)= 2 | # Nodes 3 | 4 | A node is a machine in the LXD cluster. Depending on whether it is running the management components of Anbox Cloud or streaming services, the node can serve multiple purposes such as a control node, worker node etc. The Anbox Management Service(AMS) hosts metadata that is necessary for its functioning on the nodes. 5 | 6 | ## Possible node statuses 7 | 8 | The following table lists the different statuses that a node can have depending on its state and what each status means: 9 | 10 | | Image status | Description | 11 | |--------------------|-------------| 12 | | `created` | The node is successfully created and ready to be used. | 13 | | `initializing` | The status of the node when its corresponding LXD instance is currently being configured. | 14 | | `initialized` | The status of the node after its corresponding LXD instance is initialized. | 15 | | `online` | The node is available and can be used by the AMS. | 16 | | `offline` | The node is not available and cannot be used by the AMS. | 17 | | `deleted` | The node has been deleted and no longer available for use. | 18 | | `error` | The node cannot be used because of an error. | 19 | | `unknown` | A possible error occurred and the real state of the node cannot be determined. | 20 | 21 | If you encounter the `error` or the `unknown` status, [file a bug](https://bugs.launchpad.net/anbox-cloud). 22 | -------------------------------------------------------------------------------- /reference/anbox-features.md: -------------------------------------------------------------------------------- 1 | (ref-aosp-aaos)= 2 | # Supported features for AOSP vs AAOS images 3 | 4 | Anbox Cloud provides images based on the Android Open Source Project (AOSP), an operating system typically used in mobile devices or an Anbox Cloud AAOS image which is based on the Android Automotive OS (AAOS), an infotainment platform used in automobiles. Supported Anbox features differ depending what a given image is based on. 5 | 6 | The following table lists some Anbox features and whether they are supported for a given base. 7 | 8 | |Feature | AOSP | AAOS | 9 | |--------|------|------| 10 | | boot-package and boot-activity in {ref}`ref-application-manifest` | ✓ | - | 11 | | {ref}`howto-install-apk-system-app` | ✓ | - | 12 | | {ref}`Custom Android ID `| ✓ | - | 13 | | {ref}`System UI ` | ✓ | - | 14 | | {ref}`Virtual keyboard ` | ✓ | - | 15 | | {ref}`Client-Side Virtual Keyboard ` | ✓ | - | 16 | | {ref}`VHAL HTTP API ` | - | ✓ | 17 | | [VhalConnector](https://canonical.github.io/anbox-cloud.github.com/latest/anbox-platform-sdk/classanbox_1_1VhalConnector.html) in Platform SDK API | - | ✓ | 18 | | {ref}`exp-custom-images` | - | ✓ | 19 | -------------------------------------------------------------------------------- /reference/cmd-ref/appliance/anbox-cloud-appliance_disable.md: -------------------------------------------------------------------------------- 1 | ## anbox-cloud-appliance disable 2 | 3 | Disable individual features of the Anbox Cloud Appliance 4 | 5 | ### Synopsis 6 | 7 | Disable individual features of the Anbox Cloud Appliance 8 | 9 | Individual features of the Anbox Cloud Appliance can be disabled if 10 | they have been enabled either during initialization or manually 11 | afterwards. The following features can be disabled: 12 | 13 | * metrics: An authenticated and HTTPS secured Prometheus client endpoint 14 | to allow external tools to collect metrics from Anbox Cloud 15 | 16 | To disable a specific feature you can run 17 | 18 | $ sudo anbox-cloud-appliance disable metrics 19 | 20 | This will disable the feature and return once the operation has been 21 | completed. 22 | 23 | Please note that disabling certain features may require some internal 24 | services of the Anbox Cloud Appliance to be restarted and causing 25 | operations to be interrupted until they are back running. 26 | 27 | 28 | ``` 29 | anbox-cloud-appliance disable [flags] 30 | ``` 31 | 32 | ### Examples 33 | 34 | ``` 35 | $ sudo anbox-cloud-appliance disable metrics 36 | ``` 37 | 38 | ### Options 39 | 40 | ``` 41 | -h, --help help for disable 42 | ``` 43 | 44 | ### SEE ALSO 45 | 46 | * [anbox-cloud-appliance](anbox-cloud-appliance.md) - Anbox Cloud Appliance, bringing Android at scale to any cloud 47 | 48 | -------------------------------------------------------------------------------- /howto/port/choose-apk-architecture.md: -------------------------------------------------------------------------------- 1 | (howto-choose-apk-architecture)= 2 | # Choose APK architecture 3 | 4 | In most cases, an Android app is not distributed as a universal APK. If the app contains native libraries, the [ABI split approach](https://developer.android.com/studio/build/configure-apk-splits) is used to produce different APK files for the different architectures. Before creating an application in AMS, you must determine which architecture to use. 5 | 6 | There are several ways to detect for what architecture an APK's native libraries are built. Since an APK file is just a zip file, a straight-forward way to determine the available architectures is to unzip the APK file and check the sub-folders in the `libs` folder. Typically, they are: 7 | 8 | - `armeabi-v7a`: native code compiled for ARMv7 architecture CPUs (32-bit) 9 | - `arm64-v8a`: native code compiled for ARMv8 architecture CPUs (64-bit) 10 | - `x86`: native code compiled for x86 architecture CPUs (32-bit) 11 | - `x86_64`: native code compiled x86-64 architecture CPUs (64-bit) 12 | 13 | Which APK to use to create the Anbox Cloud application depends on the architecture of your Anbox Cloud deployment: 14 | 15 | - If the instance layer runs on 64-bit x86 hardware, use an APK that supports the `x86` or `x86_64` architecture. 16 | - If the instance layer runs on 64-bit Arm hardware, use an APK that supports the `armeabi-v7a` or `arm64-v8a` architecture. 17 | --------------------------------------------------------------------------------