General Component
The General Policy Component allows you to change basic behavior and restrictions on managed devices. These settings control things like screen behavior, microphone access, updates, and system time.
Use this component when you want to configure how a device behaves on a daily basis.

Stay on Plugged Modes
API reference: stayOnPluggedModes
Type: enum
The battery plugged in modes for which the device stays on. When using this setting, it is recommended to clear maximumTimeToLock so that the device doesn't lock itself while it stays on.
Modes for plugging in the battery.
Options
| Option | Enum | Description |
|---|---|---|
| Outlet | AC | Power source is an AC charger. |
| USB charging | USB | Power source is a USB port. |
| Wireless charging | WIRELESS | Power source is wireless. |
Microphone Access
API reference: microphoneAccess
Type: enum
Controls the use of the microphone and whether the user has access to the microphone access toggle. This applies only on fully managed devices.
On fully managed devices, controls the use of the microphone and whether the user has access to the microphone access toggle. This setting has no effect on devices which are not fully managed. The microphone access toggle exists on Android 12 and above.
Options
| Option | Enum | Description |
|---|---|---|
| Default | MICROPHONE_ACCESS_UNSPECIFIED | This is equivalent to user choice. |
| User choice | MICROPHONE_ACCESS_USER_CHOICE | This is the default device behaviour: the microphone on the device is available. On Android 12 and above, the user can use the microphone access toggle. |
| Disabled | MICROPHONE_ACCESS_DISABLED | The microphone on the device is disabled (for fully managed devices, this applies device-wide). The microphone access toggle has no effect as the microphone is disabled. |
| Enforced | MICROPHONE_ACCESS_ENFORCED | The microphone on the device is available. On devices running Android 12 and above, the user is unable to use the microphone access toggle. On devices which run Android 11 or below, this is equivalent to MICROPHONE_ACCESS_USER_CHOICE. |
Enable changing device volume
API reference: adjustVolumeDisabled
Type: boolean
Controls whether users can adjust device volume
Whether adjusting the master volume is disabled. Also mutes the device. The setting has effect only on fully managed devices.
Enable the easter egg in settings
API reference: funDisabled
Type: boolean
Controls access to the Android hidden Easter Egg screen.
Whether the user is allowed to have fun. Controls whether the Easter egg game in Settings is disabled.
Skip tutorials for system apps
API reference: skipFirstUseHintsEnabled
Type: boolean
Skips initial welcome screens and tutorials that appear when apps are first opened.
When enabled, the device will automatically skip setup tutorials and introductory screens for system applications.
Flag to skip hints on the first use. Enterprise admin can enable the system recommendation for apps to skip their user tutorial and other introductory hints on first start-up.
Automatic time, date and time zone
API reference: autoDateAndTimeZone
Type: enum
Whether auto date, time, and time zone are enabled on a company-owned device. If this is set, then autoTimeRequired is ignored.
Options
| Option | Enum | Description |
|---|---|---|
| Default | AUTO_DATE_AND_TIME_ZONE_UNSPECIFIED | Unspecified. Defaults to AUTO_DATE_AND_TIME_ZONE_USER_CHOICE. |
| Manual | AUTO_DATE_AND_TIME_ZONE_USER_CHOICE | Auto date, time, and time zone are left to user's choice. |
| Enforced | AUTO_DATE_AND_TIME_ZONE_ENFORCED | Enforce auto date, time, and time zone on the device. |
Location tracking
API reference: locationUploadInterval
Type: string
Defines how often the device sends its location information to the server.
Time interval for location reporting (e.g., Never, 1 hour, 4 hours, 8 hours, 12 hours, Every day).
Device Heartbeat
API reference: heartbeatInterval
Type: string
Controls how often the device checks in with the Mambo server.
Time between check-ins (e.g., Never, 1 hour, 4 hours, 8 hours, 12 hours, Every day).
System Updates
API reference: systemUpdate
Type: object
The system update policy, which controls how OS updates are applied. If the update type is WINDOWED, the update window will automatically apply to Play app updates as well.
Note: Google Play system updates (also called Mainline updates) are automatically downloaded and require a device reboot to be installed. Refer to the mainline section in Manage system updates for further details.
The type of system update configuration.
| Fields | API Reference | Type | Description |
|---|---|---|---|
| System update type | type | enum (System update type) | The type of system update to configure. |
| Start time | startMinutes | integer | If the type is WINDOWED, the start of the maintenance window, measured as the number of minutes after midnight in the device's local time. This value must be between 0 and 1439, inclusive. |
| End time | endMinutes | integer | If the type is WINDOWED, the end of the maintenance window, measured as the number of minutes after midnight in device's local time. This value must be between 0 and 1439, inclusive. If this value is less than startMinutes, then the maintenance window spans midnight. If the maintenance window specified is smaller than 30 minutes, the actual window is extended to 30 minutes beyond the start time. |
| freezePeriods | freezePeriods[] | object (Freeze Period) | An annually repeating time period in which over-the-air (OTA) system updates are postponed to freeze the OS version running on a device. To prevent freezing the device indefinitely, each freeze period must be separated by at least 60 days. |
System update type
API reference: systemUpdate.type
Type: enum
Controls how system updates are applied on the device.
Options
| Option | Enum | Description |
|---|---|---|
| Default | SYSTEM_UPDATE_TYPE_UNSPECIFIED | Follow the default update behavior for the device, which typically requires the user to accept system updates. |
| Automatic | AUTOMATIC | Install automatically as soon as an update is available. |
| On selected schedule | WINDOWED | Install automatically within a daily maintenance window. This also configures Play apps to be updated within the window. This is strongly recommended for kiosk devices because this is the only way apps persistently pinned to the foreground can be updated by Play. If autoUpdateMode is set to AUTO_UPDATE_HIGH_PRIORITY for an app, then the maintenance window is ignored for that app and it is updated as soon as possible even outside of the maintenance window. |
Freeze Period
API reference: systemUpdate.freezePeriods[]
Type: object (Date)
A system freeze period. When a device’s clock is within the freeze period, all incoming system updates (including security patches) are blocked and won’t be installed.
When the device is outside any set freeze periods, the normal policy behavior (automatic, windowed, or postponed) applies.
Leap years are ignored in freeze period calculations, in particular:
- If Feb. 29th is set as the start or end date of a freeze period, the freeze period will start or end on Feb. 28th instead.
- When a device’s system clock reads Feb. 29th, it’s treated as Feb. 28th.
- When calculating the number of days in a freeze period or the time between two freeze periods, Feb. 29th is ignored and not counted as a day.
Note: For Freeze Periods to take effect, SystemUpdateType cannot be specified as SYSTEM_UPDATE_TYPE_UNSPECIFIED, because freeze periods require a defined policy to be specified.
Freeze Period fields
| Fields | API Reference | Type | Description |
|---|---|---|---|
| Start date | freezePeriods[].startDate | object (Date) | The start date (inclusive) of the freeze period. Note: day and month must be set. year should not be set as it is not used. For example: { "month": 1, "day": 30 } |
| End date | freezePeriods[].endDate | object (Date) | The end date (inclusive) of the freeze period. Must be no later than 90 days from the start date. If the end date is earlier than the start date, the freeze period is considered wrapping year-end. Note: day and month must be set. year should not be set as it is not used. For example: { "month": 1, "day": 30 } |
Date (API Specific Notes)
Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following:
- A full date, with non-zero year, month, and day values.
- A month and day, with a zero year (for example, an anniversary).
- A year on its own, with a zero month and a zero day. A year and month, with a zero day (for example, a credit card expiration date).
Related types:
- google.type.TimeOfDay
- google.type.DateTime
google.protobuf.Timestamp
Fields type Description year integer Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. month integer Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. day integer Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
Lock Screen Message
API reference: deviceOwnerLockScreenInfo
Type: object
The device owner information to be shown on the lock screen.
Provides a user-facing message with locale info. The maximum message length is 4096 characters.
Options
| Fields | API Reference | type | Description |
|---|---|---|---|
| Custom localization | localizedMessages | map (key: string, value: string) | A map containing <locale, message> pairs, where locale is a well-formed BCP 47 language code, such as en-US, es-ES, or fr. An object containing a list of "key": value pairs. Example: { "en-US": "Company device", "fr": "Appareil de l’entreprise" }. |
| Default Message displayed on device lock screen | defaultMessage | string | The default message displayed if no localized message is specified or the user's locale doesn't match with any of the localized messages. A default message must be provided if any localized messages are provided. |
| Display enterprise name | EnterpriseDisplayNameVisibility | boolean | Controls whether the enterpriseDisplayName is visible on the device (e.g. lock screen message on company-owned devices). |
Display settings
API reference: displaySettings
Type: object
Controls device display behavior, including screen brightness configuration and screen timeout enforcement. These settings define whether brightness and timeout are user-controlled, automatic, fixed, or enforced by policy.
The display configuration applied to the device.
| Fields | API Reference | Type | Description |
|---|---|---|---|
| Screen brightness settings | screenBrightnessSettings | object(screenBrightnessSettings) | Controls the screen brightness settings. |
| Screen timeout settings | screenTimeoutSettings | object(screenTimeoutSettings) | Controls the screen timeout settings. |
Screen brightness settings
API reference: displaySettings.screenBrightnessSettings
Type: object
Controls the screen brightness configuration.
| Fields | API Reference | Type | Description |
|---|---|---|---|
| Screen brightness mode | screenBrightnessMode | enum (ScreenBrightnessMode) | Controls the screen brightness mode. |
| Fixed brightness level | screenBrightness | integer | Applicable when: ScreenBrightnessMode = BRIGHTNESS_FIXED.Fixed brightness level The screen brightness between 1 and 255 where 1 is the lowest and 255 is the highest brightness. A value of 0 (default) means no screen brightness set. Any other value is rejected. screenBrightnessMode must be either BRIGHTNESS_AUTOMATIC or BRIGHTNESS_FIXED to set this. Supported on Android 9 and above on fully managed devices. A NonComplianceDetail with API_LEVEL is reported if the Android version is less than 9. Supported on work profiles on company-owned devices on Android 15 and above.Note: In the UI, the brightness is selected using a slider with a range of 1–100 for a better user experience and is internally scaled to the required 1–255 API range before sending the request. |
Screen timeout settings
API reference: displaySettings.screenTimeoutSettings
Type: object
Controls the screen timeout configuration.
| Fields | API Reference | Type | Description |
|---|---|---|---|
| Screen timeout mode | screenTimeoutMode | enum (ScreenTimeoutMode) | Controls whether the user is allowed to configure the screen timeout. |
| Screen timeout duration | screenTimeout | string | Applicable when: ScreenTimeoutMode = SCREEN_TIMEOUT_ENFORCED.Enforced timeout duration(in seconds) Controls the screen timeout duration. The screen timeout duration must be greater than 0, otherwise it is rejected. Additionally, it should not be greater than maximumTimeToLock, otherwise the screen timeout is set to maximumTimeToLock and a NonComplianceDetail with INVALID_VALUE reason and SCREEN_TIMEOUT_GREATER_THAN_MAXIMUM_TIME_TO_LOCK specific reason is reported. If the screen timeout is less than a certain lower bound, it is set to the lower bound. The lower bound may vary across devices. If this is set, ScreenTimeoutMode must be SCREEN_TIMEOUT_ENFORCED. Supported on Android 9 and above on fully managed devices. A NonComplianceDetail with API_LEVEL is reported if the Android version is less than 9. Supported on work profiles on company-owned devices on Android 15 and above.A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s". |
ScreenBrightnessMode
API reference: screenBrightnessMode
Type: enum
Controls the screen brightness mode.
Options
| Option | Enum | Description |
|---|---|---|
| Default | SCREEN_BRIGHTNESS_MODE_UNSPECIFIED | Unspecified. Defaults to BRIGHTNESS_USER_CHOICE. |
| Allow user to set | BRIGHTNESS_USER_CHOICE | The user is allowed to configure the screen brightness. screenBrightness must not be set. |
| Automatic | BRIGHTNESS_AUTOMATIC | The screen brightness mode is automatic in which the brightness is automatically adjusted and the user is not allowed to configure the screen brightness. screenBrightness can still be set and it is taken into account while the brightness is automatically adjusted. Supported on Android 9 and above on fully managed devices. A NonComplianceDetail with API_LEVEL is reported if the Android version is less than 9. Supported on work profiles on company-owned devices on Android 15 and above. |
| Set Fixed | BRIGHTNESS_FIXED | The screen brightness mode is fixed in which the brightness is set to screenBrightness and the user is not allowed to configure the screen brightness. screenBrightness must be set. Supported on Android 9 and above on fully managed devices. A NonComplianceDetail with API_LEVEL is reported if the Android version is less than 9. Supported on work profiles on company-owned devices on Android 15 and above. |
ScreenTimeoutMode
API reference: displaySettings.screenTimeoutSettings.screenTimeoutMode
Type: enum
Controls whether the user is allowed to configure the screen timeout.
Options
| Option | Enum | Description |
|---|---|---|
| Default | SCREEN_TIMEOUT_MODE_UNSPECIFIED | Unspecified. Defaults to SCREEN_TIMEOUT_USER_CHOICE. |
| Allow user to set | SCREEN_TIMEOUT_USER_CHOICE | The user is allowed to configure the screen timeout. screenTimeout must not be set. |
| Set Fixed | SCREEN_TIMEOUT_ENFORCED | The screen timeout is set to screenTimeout and the user is not allowed to configure the timeout. screenTimeout must be set. Supported on Android 9 and above on fully managed devices. A NonComplianceDetail with API_LEVEL is reported if the Android version is less than 9. Supported on work profiles on company-owned devices on Android 15 and above. |
Summary
Use the General Policy Component to:
✔ Control screen and power behavior
✔ Restrict microphone and user actions
✔ Manage updates and time settings
✔ Improve device security
✔ Standardize device behavior
This is one of the most important components for setting a consistent experience across all managed devices.