Get desktop application:
View/edit binary Protocol Buffers messages
Used in:
Used in:
user configurable, non unique
name of GuestOS, e.g. android
(minimal) version of GuestOS; will be updated if container is started with a more recent GuestOS version.
complete image sizes from GuestOS for user partitions
unit = MBytes
type of container, e.g. KVM or CONTAINER
Flags indicating the allows for containers:
TODO: add further features as necessary
a list of strings wich contain the features image prefix name without .img
a list of network interfaces assigned to this container
a list of devices explicitely allowed for this container
a list of devices exclusively assigned to this container
list of virtual network interface configuration
* Must be kept in sync with definition in container.h!
Used in:
virtual name of the image file in guestos
size (bytes) of the image file
name of alternat image file which overwrites image_name of guestos config
Used in:
Note: This message may change in the future!
* The various states that a container can be in. TODO must be kept in sync with definition in container.h!
Used in:
* Represents the status of a single container.
Used in:
TBD more state values
* Type of container KVM|CONTAINER
Used in: ,
Used in:
name of virtual veth endpoint in container
should cmld configure the interface or leav it unconfigured
* Control message sent to and processed by the cml-daemon on the device.
Container
container UUID(s) for GET_CONTAINER_* and CONTAINER_*
start parameters for CONTAINER_START
parameter for CONTAINER_ASSIGNIFACE / CONTAINER_UNASSIGNIFACE
new container config for CREATE_CNTAINER
Daemon
new/updated GuestOS config for PUSH_GUESTOS_CONFIG
signature of the GuestOS config file
sw signing certificate to verify the signature on the config file
//////////////////////////////////////////// Commands (global) that query information // ////////////////////////////////////////////
Used in:
Responds with [guestos_configs] which includes a list of all GuestOS configs installed on the device.
-> [guestos_configs]
Responds with [container_uuid] with the UUIDs of all containers available on the device.
-> [container_uuid]
Responds [container_status] with the ContainerStatus for each specified container in [container_uuid], or for all containers if [container_uuid] is empty.
[container_uuid] -> [container_status]
Responds [container_config] with the ContainerStatus for each specified container in [container_uuid], or for all containers if [container_uuid] is empty. Also fills [container_uuids] with the corresponding container UUIDs.
[container_uuid] -> [container_config]
Returns /proc/last_kmsg and /dev/log/main (line by line). This is a debugging feature!
Returns a namespace PID for the given container UUID
Starts or stops observing the status. TODO not implemented yet
Starts or stops observing log messages.
Push new GuestOS config. Needs [guestos_config_*]. Images will be updated later.
Reloads containers from config files, e.g. if a new container should be created
Creates a container, answers with CONTAINER_CONFIGS
Removes container config and destroys created container image files
Wipes the entire device (i.e. all containers) TODO: Only wipes containers, not e.g. GuestOSes and device.conf.
Starts a container. Also needs [start_params].
Stops a container.
Switches to a container.
Freezes a container.
Unfreezes a container.
Wipes a container.
TODO
Assigns a network interface to a container. Also needs [assign_iface_params]
Unassigns a network interface from a container. Also needs [assign_iface_params]
List network interfaces assigned to a container
* Control message sent from the cml-daemon on the device to the backend/cmdline tool/etc. TODO: Maybe (but only maybe) use separate messages for the different endpoints.
GuestOS configs for LIST_GUESTOS_CONFIGS
UUIDs for LIST_CONTAINERS
ContainerStatus(es) for GET_CONTAINER_STATUS
ContainerConfig(s) for GET_CONTAINER_CONFIG
Container network interface(s) for CONTAINER_LIST_IFACES
PID of the container's namespace
log message received because of OBSERVE_LOG_START
Device UUID for LOGON_DEVICE and LOG_MESSAGE
Hardware name (e.g. "i9505", "hammerhead", ...) for LOGON_DEVICE
Hardware serial number for LOGON_DEVICE
IMEI for LOGON_DEVICE
MAC address for LOGON_DEVICE
Phone number for LOGON_DEVICE
Push info to other endpoint:
Used in:
-> [guestos_config]
-> [container_uuid]
-> [container_status]
-> [container_config], [container_uuids]
-> [container_ifaces]
-> [container_pid]
-> [log_message]
-> [log_message]
-> [log_message]
-> [response]
Log-on the device onto the backend (not applicable for cmdline tool).
[device_uuid] ->
Used in:
Used in:
The following three fields together should UNIQUELY identify the actual guestos image files and config:
unique name of the operating system
target hardware; must match hardware_get_name(), e.g. "i9505", etc.
TODO version string OR major.minor-suffix? ("RC1", "beta", etc.)
version string for the guest OS
list of mounts inside the container
path to the init binary, e.g. "/init"
parameters (argv) for init
environment variables
list of mounts for setup mode of a container
Flags indicating the features supported by the OS:
TODO: add further features as necessary
TODO: Determine RAM limit policy...
required minimum RAM size (MBytes)
default RAM size (MBytes)
Descriptive information (for GUI):
description/full name
help text
upstream version
name of icon file
build date
Represents a single mount point/image provided by the GuestOS
Used in:
Path for the image files is derived from guestos_path/guestos_name.
name of the image file, e.g. system
mountpoint inside the container
file system type, e.g. "ext4"
type of the image file
The following three fields are only used for EMPTY mount types:
required minimum size (MBytes) for EMPTY partition
allowed maximum size (MBytes) for EMPTY partition
default size (MBytes) for EMPTY partition
The following two fields are only used when an actual image file is provided:
size (bytes) of the image
hash(es) of image file
TODO add further hashes as necessary
mount_data used for mount syscall, e.g. "context=" for selinux
Used in:
image shared by all containers of same OS type
image file is copied from a device partition
image file is copied from a device partition
empty, created when a corresponding container is first instantiated
deprecated
image to be flashed to a partition (e.g. boot.img; base system updates only for now)
image shared between different containers and OSs
read only overlay images e.g. for system features
image shared by all containers of same OS type (writable tmpfs as overlay)
similar to EMPTY image, however overlayed on given mount_point (writable persitent fs as overlay)
(English) string with optional translations in other languages
Used in:
TODO: add other languages as necessary...
Used in:
Used in: