Device image User Guide

Automate instance parameters

User data parameters enable configuration by applying settings during deployment.

Overview

User data parameters enable configuration by applying settings during deployment.

User data parameters are in JSON format:

{ "parameter": "value" }

Top-level parameters

| Key/Object | Type | Description | Default |

|---|---|---|---|

| applyEveryBoot | Boolean | If true, parameters values are applied after every boot. | false |

| configuration | Object | Instance specific configuration (see configuration object). | {} |

| hwProfile | Object | Virtual device specific configuration (see hwprofile object). | {} |

| user_dns | String | Domain name for SSL certificate. | |

configuration object

| Key (Parameter) | Type | Description | Default |

|---|---|---|---|

| root.active | Boolean | If true, the device is "rooted". | false |

| adb.active | Boolean | If true, ADB access is enabled for the device. | false |

| authentication.enable | Boolean | If true, authentication is required. | true |

| authentication.username | String | Sets a username (SHA-1)*. | |

| authentication.password | String | Sets a password (SHA-1)*. | |

*The username and password objects values must be strings encoded in SHA-1.

hwProfile object

| Key (Parameter) | Type | Description | Default |

|---|---|---|---|

| displaySettings.displays | Array | Device display settings. | {} |

| width | Integer | Display width (px). | 600 |

| height | Integer | Display height (px). | 1024 |

| density | Integer | Display density (ddp). | 180 |

| contentPadding | Integer | Display padding (px). | 0 |

| topCornerRadius | Integer | Radius of the top display rounded corners. | 0 |

| bottomCornerRadius | Integer | Radius of the bottom display rounded corners. | 0 |

JSON Example

{
  "applyEveryBoot": true,
  "configuration": {
    "adb": {
      "active": true
    },
    "authentication": {
      "enable": true,
      "username": "0db0f30519f66ad6c9f4b42df56a7e08102e8374",
      "password": "2eaa80a32c113dfe583f3d6120425fec54b89dd8"
    },
    "root": {
      "active": true
    }
  },
  "hwProfile": {
    "displaySettings": {
      "displays": [
        {
          "width": 768,
          "height": 1280,
          "density": 160,
          "contentPadding": 125,
          "topCornerRadius": 125,
          "bottomCornerRadius": 0
        }
      ]
    }
  },
  "user_dns": "genymotion.com"
}

Usage by provider

Each Cloud provider has its own way to handle user data parameters. Please follow these tutorials to learn how to use them.

This feature is not available on Azure.

When creating an instance

AWS

Alibaba

GCP

The parameters can be set when creating the instance, in the Advanced details section at step 3 (Configure Instance). You can then copy and paste your code, or import a file containing the code in JSON format. The parameters can only be set from an existing instance when it is stopped. See On an existing instance below. The parameters can be set when creating the instance, in the Management > Metadata section: Click ADD ITEM In the Key field, input the string genymotionConfig In the Value field, copy and paste your JSON code: Create your instance. Your parameters will be displayed in the VM instance details, in the Custom metadata section:

In an existing instance

AWS

Alibaba

GCP

Make sure the instance is stopped and go to Actions > Instance Settings > Edit user data: You can then copy and paste your code, or import a file containing the code in JSON format. From the Aliyun console, go to Elastic Compute Service > Instances & Images > Instances Click on a stopped instance to access its details: Click on All Operations and select Set user data: Copy and paste your JSON code: Click Ok to apply the parameters. Stop the instance if it is running and follow these steps: In VM instance details, click EDIT In Custom metadata, click Add item Set the Key to genymotionConfig and copy and paste your JSON code in the Value field: Click Save

In an existing instance (visual cues)

The following steps show where to edit user data in the console for an existing instance:

[JSON Excerpt for reference: user data blocks and metadata] [End of content reference]

[MARKDOWN ends]