Skip to main content

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.

general-component


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

OptionEnumDescription
OutletACPower source is an AC charger.
USB chargingUSBPower source is a USB port.
Wireless chargingWIRELESSPower 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

OptionEnumDescription
DefaultMICROPHONE_ACCESS_UNSPECIFIEDThis is equivalent to user choice.
User choice MICROPHONE_ACCESS_USER_CHOICEThis 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.
DisabledMICROPHONE_ACCESS_DISABLEDThe 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.
EnforcedMICROPHONE_ACCESS_ENFORCEDThe 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

OptionEnumDescription
DefaultAUTO_DATE_AND_TIME_ZONE_UNSPECIFIEDUnspecified. Defaults to AUTO_DATE_AND_TIME_ZONE_USER_CHOICE.
Manual AUTO_DATE_AND_TIME_ZONE_USER_CHOICEAuto date, time, and time zone are left to user's choice.
EnforcedAUTO_DATE_AND_TIME_ZONE_ENFORCEDEnforce 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.

FieldsAPI ReferenceTypeDescription
System update typetypeenum (System update type)The type of system update to configure.
Start time startMinutesintegerIf 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 endMinutesintegerIf 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.
freezePeriodsfreezePeriods[]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

OptionEnumDescription
Default SYSTEM_UPDATE_TYPE_UNSPECIFIEDFollow the default update behavior for the device, which typically requires the user to accept system updates.
AutomaticAUTOMATICInstall automatically as soon as an update is available.
On selected schedule WINDOWEDInstall 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

FieldsAPI ReferenceTypeDescription
Start date freezePeriods[].startDateobject (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[].endDateobject (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:

FieldstypeDescription
yearintegerYear of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
monthintegerMonth of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
dayintegerDay 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

FieldsAPI ReferencetypeDescription
Custom localizationlocalizedMessagesmap (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 screendefaultMessagestringThe 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 nameEnterpriseDisplayNameVisibilitybooleanControls 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.

FieldsAPI ReferenceTypeDescription
Screen brightness settingsscreenBrightnessSettingsobject(screenBrightnessSettings)Controls the screen brightness settings.
Screen timeout settingsscreenTimeoutSettingsobject(screenTimeoutSettings)Controls the screen timeout settings.

Screen brightness settings

API reference: displaySettings.screenBrightnessSettings

Type: object

Controls the screen brightness configuration.

FieldsAPI ReferenceTypeDescription
Screen brightness modescreenBrightnessModeenum (ScreenBrightnessMode)Controls the screen brightness mode.
Fixed brightness level screenBrightnessintegerApplicable 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.

FieldsAPI ReferenceTypeDescription
Screen timeout modescreenTimeoutModeenum (ScreenTimeoutMode)Controls whether the user is allowed to configure the screen timeout.
Screen timeout duration screenTimeoutstringApplicable 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

OptionEnumDescription
DefaultSCREEN_BRIGHTNESS_MODE_UNSPECIFIEDUnspecified. Defaults to BRIGHTNESS_USER_CHOICE.
Allow user to set BRIGHTNESS_USER_CHOICEThe user is allowed to configure the screen brightness. screenBrightness must not be set.
Automatic BRIGHTNESS_AUTOMATICThe 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_FIXEDThe 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

OptionEnumDescription
DefaultSCREEN_TIMEOUT_MODE_UNSPECIFIEDUnspecified. Defaults to SCREEN_TIMEOUT_USER_CHOICE.
Allow user to set SCREEN_TIMEOUT_USER_CHOICEThe user is allowed to configure the screen timeout. screenTimeout must not be set.
Set Fixed SCREEN_TIMEOUT_ENFORCEDThe 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.