The writeprivateprofstring Command

writeprivateprofstring is a general purpose script command that writes to (or deletes from) an agent side database, specifically to the registry under the PDB registry path, as well as to the pdb.ini file.

Important: writeprivateprofstring is a powerful script. Use with caution.

Syntax

Write writeprivateprofstring scripts using the following syntax:

writeprivateprofstring section [key] [value]

Where:

  • section is the name of the section in the .ini file to which the value will be written. If the section does not exist, it will be created. The name of the section is case-sensitive.
  • key is the name of the key. If the key does not exist in the specified section, it will be created. If this parameter is not entered, the entire section (including all entries within it) will be deleted.
  • value is the string to be written to the file. If this parameter is not entered, the key will be deleted.
Note: Use quotation marks if either the key or value contain spaces.

Examples

Description Syntax
Changes a device's name writeprivateprofstring Device DeviceName MyDevice
Changes the orientation of the display image of a device that is remote controlled.

Requires

  • Android
writeprivateprofstring RcOrientationFix manufacturer model value

Where

  • manufacturer is from android.os.Build.MANUFACTURER("ro.product.manufacturer") and falling back to android.os.Build.BRAND("ro.product.brand") if the manufacturer is unknown
  • modelis from android.os.Build.MODEL("ro.product.model")
  • value is one of the following:
    • CW for clockwise
    • CCW for counter-clockwise
    • NONE for no rotation
    • UPSIDEDOWN for upside-down
Specifies the minimum WiFi security level on a device

Requires

  • Android Enterprise
writeprivateprofstring DeviceFeature MinimumWifiSecurityLevel securityLevel apply featurecontrol

Where securityLevel is one of the following values:

  • 0 sets the WiFi security level to Open
  • 1 sets the WiFi security level to WEP
  • 2 sets the WiFi security level to WPA
  • 3 sets the WiFi security level to EAP LEAP
  • 4 sets the WiFi security level to EAP FAST
  • 5 sets the WiFi security level to EAP TTLS
  • 6 sets the WiFi security level to EAP TLS
Blocks users from removing Managed WiFi networks.

Requires:

  • Android OS version 11 and earlier.
writeprivateprofstring DeviceFeature DisableWiFiManagement value apply featurecontrol

Where value is one of the following numeric values:

  • 0 sets the ability to remove WiFi networks to Allowed
  • 1 sets the ability to remove WiFi networks to None
  • 2 sets the ability to remove WiFi networks to Restricted
Prevents users from disabling/enabling mobile data. writeprivateprofstring DeviceFeature DisableCellularData value apply featurecontrol

Where value is one of the following numeric values:

  • 0 controllable by the users
  • 1 enforced OFF
  • 2 enforced ON
Controls system updates

Requires

  • Android Enterprise (Work Managed) with an agent 13.9.0 or later.

writeprivateprofstring SystemUpdatePolicy SystemUpdatePolicy 0|1|2|3

apply SystemUpdatePolicy

Where

  • 0 is the default option and represents the device's default behavior. Use when you want to remove a system update policy.
  • 1 is Automatic. The system update installs automatically as soon as an update is available
  • 2 is Windowed. The system update is installed automatically when the system clock is inside the specified daily maintenance window. If the update has not been installed within 30 days, the system reverts to the default update policy.
  • 3 is Postpone. The system update is postponed for 30 days. After 30 days, the system reverts to the default policy.
  • apply SystemUpdatePolicy is the last line of your script.

For windowed 2, add the following commands:

writeprivateprofstring SystemUpdatePolicy StartTime minute

writeprivateprofstring SystemUpdatePolicy EndTime minute

Where

  • StartTime is the start of the maintenance window.
  • EndTime is the end of the maintenance window.
  • minute indicates the number of minutes from midnight when the window opens or closes.
Note: You can add Freeze Periods on top of your system update policies. A freeze period stops all updates during the specified time frame. When the freeze period is inactive, the regular system update policy applies.

Freeze periods can last up to 90 days. You can set multiple freeze periods but they cannot overlap and there must be at least 60 days between freeze periods. Freeze periods can cross year boundaries so you can set a freeze that lasts from 12-12 to 02-13 (December 12 to February 13).

Supported on Android 9 and later.

To set a freeze period, add this command: writeprivateprofstring SystemUpdatePolicy UpdateFreezePeriodCount number

Where

  • number is the number of freeze periods you want to set.

Then, for each freeze period add:

writeprivateprofstring SystemUpdatePolicy UpdateFreezePeriodStartDatenumber "monthDay"

writeprivateprofstring SystemUpdatePolicy UpdateFreezePeriodEndDatenumber "monthDay"

Where

  • The number in UpdateFreezePeriodStartDatenumber and UpdateFreezePeriodEndDatenumber is a number that identifies the matching start and end dates of the freeze periods.
  • monthDay is the start or end of the freeze period, in the format of MM-DD. So October 19 becomes 10-19

Examples:

To postpone a system update for 30 days:

writeprivateprofstring SystemUpdatePolicy SystemUpdatePolicy 3
apply SystemUpdatePolicy

To set a maintenance window between 1 and 6 AM for system updates with a summer holiday and a winter holiday freeze period:

writeprivateprofstring SystemUpdatePolicy SystemUpdatePolicy 2
writeprivateprofstring SystemUpdatePolicy StartTime 60
writeprivateprofstring SystemUpdatePolicy EndTime 360
writeprivateprofstring SystemUpdatePolicy UpdateFreezePeriodCount 2
writeprivateprofstring SystemUpdatePolicy UpdateFreezePeriodStartDate0 "06-01"
writeprivateprofstring SystemUpdatePolicy UpdateFreezePeriodEndDate0 "09-01"
writeprivateprofstring SystemUpdatePolicy UpdateFreezePeriodStartDate1 "12-22"
writeprivateprofstring SystemUpdatePolicy UpdateFreezePeriodEndDate1 "01-07"
apply SystemUpdatePolicy

writesecuresetting

The writesecuresetting script command has the same functionality as writeprivateprofstring except that the data that is being written is not logged.

Description Syntax
Modifies device system settings

Requires

  • Android Classic
  • Android Enterprise agent 13.7.1+
    • Plugin 1.16.0.100+
  • Android Enterprise
    • Managed devices
    • Agent: 13.7.1+
    • If running an Android version earlier than 9.0 Plugin: 1.16.0.100
writesecuresetting -sys parameter value

To see a list of available parameters, visit Android Developers Reference: Settings.System.

Examples

Use writesecuresetting -sys accelerometer_rotation 1 to enable screen auto-rotation. 0 disables auto-rotation.

Use writesecuresetting -sys screen_off_timeout 60000 to control how long (in milliseconds) until the device goes to sleep after being idle.

Modifies global settings

Requires

  • Android Classic
  • Android Enterprise
    • Managed devices
    • Agent: 13.7.1+
writesecuresetting -glo parameter value

To see a list of available parameters, visit Android Developers Reference: SetGlobalSetting.

Example

Use writesecuresetting -glo auto_time 1 to tell the device to use date, time, and time zone information pulled from the device's network.

Modifies secure settings.

Requires

  • Android Classic
  • Android Enterprise
    • Managed devices
    • Agent 13.6.0+
writesecuresetting -sec parameter value

To see a list of available parameters, visit Android Developers Reference: SetSecureSetting.

Example

Use writesecuresetting -sec skip_first_use_hints 1 to indicate that apps should bypass any initial launch hints.