Power Manager

Note: To display only the features present on a particular device, select one or more filters from the SmartDocs bar below.

EMDK For Android - 7.0

Overview

The Power Manager (PowerMgr) allows an app to perform certain OS- and power-related actions on the device. These include rebooting or performing an OS update, resetting the device to a factory-fresh state or putting the device into Sleep mode. On some devices, such as the VC80x vehicle-mounted computer and similarly equipped Zebra devices, PowerMgr also can control device heaters and perform actions based on ignition status of vehicle-mounted computers and similarly equipped Zebra devices. PowerMgr performs only actions; it currently supports no queries other than to determine the version of the CSP that implements PowerMgr itself.

It's important to note that PowerMgr actions such as Reboot and Reset, once executed, prevent the execution of subsequent actions submitted by the Request XML document, including the submission of a Result XML to the application sending the original Request. Zebra therefore recommends using Condition Manager in conjunction with PowerMgr to ensure that appropriate conditions exist on a device before attempting to perform "risky" operations such as OS updates, the failure of which can render a device unusable, severely limited or otherwise in need of service.

Main Functionality

  • Reboot a device
  • Update, upgrade or downgrade the OS on a device
  • Suppress reboot following an OS upgrade or downgrade
  • Put a device into Sleep Mode
  • Perform an Enterprise Reset on a device
  • Bypass the Android Setup Wizard (GMS Welcome Screen)
  • Perform a Factory Reset on a device
  • Wipe a device (erase all storage)
  • Verify an OS update
  • Perform multiple updates in a single step
  • Upload/Download an OS Update from a streaming server
  • Set Authorization Type for Upgrade/Downgrade Streaming
  • Enter user name and password for server connections
  • Download a .zip file from a URL
  • Set Battery Saver Mode Automatic/Manual
  • Set battery charge percentage threshold to activate Battery Saver Mode
  • Enable/disable:
    • Doze Mode
    • Battery Saver Mode
    • Wake-up methods (hardware or software)
    • Wake-up sources (device buttons)
    • Individual buttons to wake device
    • Keyboard heater on VC8300 devices
    • Scanner-window heater on MC93 devices.
  • On the VC80x vehicle-mounted computer and similarly equipped Zebra devices:
    • Turn power to specific serial and USB ports on and off
    • Control heaters for touch panel and battery, and on serial and USB ports
    • Set temperature thresholds (in degrees Celsius) for turning heaters on and off
    • Set the device to automatically turn on and/or off vehicle-mounted computers along with vehicle ignition switch
    • Set a delay (in minutes) for device auto-off

Sleep Mode

On Android devices, Sleep mode turns off the device display screen and places some subsystems into low-power states. Depending on device configuration settings, certain apps and/or subsystems such as Wi-Fi and Cellular might remain active.

Reboot

Rebooting an Android device generally causes only volatile information such as application state and transient data to be lost. Non-volatile data such as device settings and stored apps and data are preserved. A Reboot is sometimes referred to as a "Reset" or "Normal Reset," but is not to be confused with an Enterprise Reset or Factory Reset (explained below).

Note: The Reboot Action causes the device to immediately restart, preventing any subsequent Actions from executing, including the submission of a Result XML to the application sending the original request.

Enterprise Reset

Enterprise Reset is intended to return the device to an enterprise-defined default state, generally as determined by the contents of the /enterprise partition. On Zebra Android devices, an Enterprise Reset is the same as a Factory Reset except that the /enterprise partition is preserved. This action is supported only on Zebra devices running Android 4.4 KitKat and higher. On Zebra Android devices running Android Jelly Bean or lower, the same action could be performed using the "OS Update" action if a suitable OS Update .zip file was used.

Note: The Enterprise Reset Action causes the device to Reboot (into Recovery Mode), preventing any subsequent Actions from executing, including the submission of a Result XML to the application sending the original request.

BEST PRACTICE: Enterprise Reset should be triggered only through Power Manager and only with the Setup Wizard Bypass flag set to "true." Manually triggering Enterprise Reset without setting the bypass flag could leave the device in an unexpected state.

Factory Reset

The Factory Reset is intended to return the device to its factory-fresh condition with the exception of certain conditions related to its internal storage card(s) (see below). On Zebra Android devices, a Factory Reset erases all key partitions and storage cards containing /data, /cache, and /enterprise partitions. This action is supported only on Zebra devices running Android 4.4 KitKat and higher. On Zebra Android devices running Android Jelly Bean or lower, the same action could be performed using the "OS Update" Action if a suitable OS Update .zip file was used.

Note: This Action causes the device to Reboot (into Recovery Mode), preventing any subsequent Actions from executing, including the submission of a Result XML to the application sending the original request.

Resetting Storage Cards

A Factory Reset will erase a storage card if:

  • The card was implemented within the /data or /enterprise partitions

A Factory Reset will NOT erase a storage card if:

  • The card was implemented with its own dedicated partition
  • The card is physically removable

Full Device Wipe

The Full Device Wipe is intended to return the device to its condition as it would have shipped from the factory with its current OS plus any subsequent OS update(s). On Zebra Android devices, a Full Device Wipe is the same as a Factory Reset plus the unconditional erasure of all storage cards. This action is supported only on Zebra devices running Android 4.4 KitKat and higher. On Zebra Android devices running Android Jelly Bean or lower, the same action could be performed using the "OS Update" Action if a suitable OS Update .zip file was used.

Note: This Action causes the device to Reboot (into Recovery Mode), preventing any subsequent Actions from executing, including the submission of a Result XML to the application sending the original request.

OS Update

The OS Update allows the device operating system to be replaced or patched using a specified OS Update Zip File or a text file containing a list of OS updates and/or patches. Depending on the contents of the file(s), this process also can be used to perform an OS Downgrade (on devices some), Enterprise Reset, Factory Reset or Full Device Wipe to facilitate the installation of the update or patch contained in the file(s).

Devices running Android 7.x Nougat and below support OS Update only. Devices with Android 8.x Oreo and later support Upgrade and Downgrade Actions and the Supress Reboot parameter.

Notes:

  • The OS Update Action causes the device to Reboot (into Recovery Mode), which prevents execution of any subsequent Actions, including the submission of a Result XML to the application sending the original request.
  • OS Update can be used to upgrade or downgrade Android 7.x Nougat and older.
  • On devices running Android 8.x Oreo or later, the OS Update Action can only upgrade.

OS Upgrade/Downgrade

OS Upgrade (Oreo+)

Use the following basic steps to perform an OS Upgrade on devices running Oreo and higher. Steps might vary slightly depending on the device(s), the environment or other factors.

To perform an OS Upgrade:

  1. Create a StageNow Profile with PowerMgr settings.
  2. Push upgrade .zip file to internal storage (/storage/sdcard0) of the unit under test (UUT).
  3. Set PowerMgr ResetAction as "10" (OS Upgrade) to perform an update of the UUT.
  4. Enter "file-details" characteristic with location of the .zip file in UUT (see sample XML below).
  5. Optionally, set SuppressReboot as False (unchecked).
    This step is optional because the OS Update Action automatically triggers a device reboot.
  6. StageNow only: Generate a barcode that contains the Profile with these settings.
  7. StageNow only: Launch StageNow and scan the barcode.
  8. Verify that the UUT starts an update process and reboots after a successful OS Update (and Enterprise Reset if security patch is different).

XML for Upgrade


<wap-provisioningdoc>
    <characteristic type="PowerMgr" version="8.1" >
            <parm name="ResetAction" value="10"/>
        <characteristic type="file-details">
            <parm name="ZipFile" value="/storage/sdcard0/name_of_upgrade_file.zip"/> // <-- upgrade .zip file
        </characteristic>
            <parm name="SuppressReboot" value="2"/>
    </characteristic>
</wap-provisioningdoc>

OS Downgrade (Oreo+)

Use the following basic steps to perform an OS Downgrade on devices running Oreo and higher. Steps might vary slightly depending on the device(s), the environment or other factors.

To perform an OS Downgrade:

  1. StageNow only: Create a StageNow Profile with PowerMgr Settings.
  2. Push downgrade .zip file to internal storage (/storage/sdcard0) of the UUT.
  3. Set PowerMgr ResetAction as "11" (OS Downgrade) to perform a downgrade of the UUT.
  4. Enter the "file-details" characteristic with the location of the .zip file in UUT (see sample XML below).
  5. StageNow only: Generate a barcode that contains the Profile with these settings.
  6. StageNow only: Launch StageNow and scan the barcode.
  7. Verify that the UUT starts an update process and reboots after a successful OS Downgrade (and Enterprise Reset if security patch is different).

XML for Downgrade


<wap-provisioningdoc>
    <characteristic type="PowerMgr" version="8.1" >
            <parm name="ResetAction" value="11"/>
        <characteristic type="file-details">
            <parm name="ZipFile" value="/storage/sdcard0/name_of_downgrade_file.zip"/> // <-- downgrade .zip file
        </characteristic>
    </characteristic>
</wap-provisioningdoc>

Reset Action

Used to invoke an OS- or power-related action on the device.

WARNING: Read Overview section carefully for important information and device restrictions related to the use of Reset, OS Update, OS Upgrade and OS Downgrade Actions.

Note: Upload list (.upl) files are not supported on TC70/TC75 devices running Android 4.x KitKat.

Parm Name: ResetAction

Option Name Description Note Requires
0 Do nothing This value (or the absence of this parm from the XML) causes no action to be performed on the device; any previously selected setting is retained.

MX: 4.2+

1 Sleep Mode Puts the device into Sleep mode, reducing power usage and some app functions. See Overview for more information.

MX: 4.1+

4 Reboot Reboots the operating system on the device, resetting volatile memory and terminating execution of any subsequent PowerMgr actions (non-volatile settings and storage are preserved).

MX: 4.2+

Android API: 16+

5 Enterprise Reset Performs an Enterprise Reset, returning the device to an enterprise-defined default state as generally determined by the contents of the /enterprise partition. See Overview for more information.

OSX: 4.2+

MX: 4.2+

Android API: 19+

6 Factory Reset Performs a Factory Reset, erasing all data partitions, including /data, /cache and /enterprise, and some storage cards. See Overview for more information.

OSX: 4.2+

MX: 4.2+

Android API: 19+

7 Full Device Wipe Erases all data on the device and storage cards, if any. See Overview for more information.

OSX: 4.2+

MX: 4.2+

Android API: 19+

8 OS Update Launches an OS upgrade or downgrade on devices using the specified OS Update Zip file. Restrictions apply to devices running Android 8.x Oreo and later. See Overview for more information.

MX: 4.1+

Android API: 16+

9 Verify OS Update Verifies the proper installation of an OS update on devices running Android 8.x Oreo or later.

MX: 8.1+

Android API: 26+

10 OS Upgrade Launches an OS Upgrade on devices running Android 8.x Oreo and later. See Overview for more information.

MX: 8.1+

Android API: 26+

11 OS Downgrade Launches an OS Downgrade. See Overview for more information.

MX: 8.1+

Android API: 26+

12 OS Upgrade Streaming Launches a full-package OS Upgrade via streaming server. See Overview for more information.

MX: 10.1+

Android API: 29+

13 OS Downgrade Streaming Launches a full-package OS Downgrade via streaming server. See Overview for more information.

MX: 10.1+

Android API: 29+

OS Update 'Zip' File

Used to enter the path and filename of the file to be consumed when updating the device using a supported Action. The OS Update file must be the specific .zip file being applied, or a text file (with .upl extension) containing a list of patches (multiple .zip files) to be applied in the desired order from top to bottom as listed in the file.

For example, if the .zip files M99N0KXXVPUCP14500.zip and CFE-M99-L-N0-010101_G_00_02.zip are to be applied in that order, an OS Update text file should be created as follows:


//Contents of the "osupdate.upl" text file:

package:M99N0KXXVPUCP14500.zip
package:CFE-M99-L-N0-010101_G_00_02.zip

// Note the package files are preceded by the notation "package:" 

Update File Rules

  • Device "Reset" commands are supported for use within a .upl file only on devices running Android 10. Other devices must execute all required reset(s) using Reset Actions in one or more StageNow Profile(s). See syntax, below.
  • Zebra recommends matching case when entering file names to avoid case-sensitivity errors on some devices.
  • Required file(s) must be on the device before a Reset Action is initiated.
  • The .upl file and all referenced .zip files must be in the same device folder.
  • The folder used for storing file(s) must be a supported location according to the Android Location/Device Location Rules below.
  • Location rules and characteristics vary by device.
  • The following devices do not support .upl files:
    • TC70 KitKat
    • TC75 KitKat

Device Reset Commands

Device "Reset" commands are supported for use within a .upl file only on devices running Android 10 and only using the syntax below.


// On devices running Android 10 (or later) the "osupdate.upl" text file can contain
// one or more Reset commands using the following syntax:

command:FactoryReset
command:EnterpriseReset

// See the Overview section for more information about resetting the device. 

Android File Location Rules

  • Update file location must not be blocked by SdCardMgr or any other means.
  • Removable media must be physically present. Storage partitions implemented on a removable medium such as a Micro SD Card must be inserted in the device when the Reset Action is initiated.
  • The location must not be encrypted. A location that is encrypted cannot be used for OS Updates. For example, if Full Storage Card Encryption is enabled for a particular Storage Card, that card contains no suitable locations for OS Updates. Similarly, if an Encrypted File System was mounted on a Storage Card, that card also would be unsuitable for OS Updates.
  • The update entity must have write permissions in the update file location.
  • Emulated Storage Cards are not supported on Jelly Bean. Devices running KitKat and higher are not effected by this limitation.
  • Adoptable Storage is not supported. Zebra devices by default do not implement the Android Adoptable Storage spec, which formats the SD Card for use with a single device. An Adoptable SD Card cannot be used to store update files.

Note: The path specified using this parameter would normally be the same as the path to which the file was written when it was transferred to the device. However, path names can sometimes appear to be different while ending at the same destination, and it's possible that some such paths will fail to initiate an OS Update when specified using this parameter. Therefore, Zebra recommends using paths in the following table when entering the OS Update file to the PowerMgr.

Device File Location Rules

Device Model Android Version(s) Supported Paths Comment
ET1N0 JB 4.1-4.3.1 /sdcard

/data/tmp

Removable Micro SD Card (must be physically present)

Internal Data Partition (folder exists and is world-writable)

ET1N2 JB 4.1-4.3.1 /sdcard

/data/tmp

Removable Micro SD Card (must be physically present)

Internal Data Partition (folder exists and is world-writable)

MC32 JB 4.1-4.3.1 /sdcard

/data/tmp

Removable Micro SD Card (must be physically present)

Internal Data Partition (folder exists and is world-writable)

MC40 JB 4.1-4.3.1 /sdcard

/data/tmp

Internal Storage Card

Internal Data Partition (folder exists and is world-writable)

MC40 KK 4.4 /sdcard

/storage/sdcard0

Internal Storage Card

Internal Storage Card

MC67 JB 4.1-4.3.1 /sdcard

/data/tmp

Removable Micro SD Card (must be physically present)

Internal Data Partition (folder exists and is world-writable)

TC55 KK w/GMS 4.4 /sdcard

/storage/sdcard0

/storage/sdcard1

Internal Storage Card

Internal Storage Card

Removable Micro SD Card (must be physically present)

TC55 KK 4.4 /sdcard

/storage/sdcard0

/storage/sdcard1

Internal Storage Card

Internal Storage Card

Removable Micro SD Card (must be physically present)

TC70 GA1 KK 4.4 /sdcard

/storage/sdcard0

/storage/sdcard1

/data/tmp

Removable Micro SD Card (must be physically present)

Removable Micro SD Card (must be physically present)

Internal Storage Card

Internal Data Partition (folder exists and is world-writable)

TC75 KK 4.4 /sdcard

/storage/sdcard0

/data/tmp

Internal Storage Card

Internal Storage Card

Internal Data Partition (folder exists and is world-writable)

(multiple)

Lollipop and higher

/data/tmp/public Zebra recommends using this path; it will be supported on all devices running Android 5.0 Lollipop and higher. See note below.


Note: Zebra devices running Android Lollipop and Marshmallow might support update-file locations other than the location recommended in the table above. Other supported locations might include:

  • /storage/sdcard0 (internal)
  • /storage/sdcard1 (external)

However, support of such locations is subject to changes that are beyond Zebra's control. Zebra recommends testing any update procedure on a working device before the process is considered for mass deployment.

Parm value input rules:

  • String from 1–255 characters containing full path and file name of OS Update .zip or .upl file

Note: Upload list (.upl) files are not supported on TC70/TC75 devices running Android KK

Shown if: The Reset Action is "OS Update" or "OS Upgrade" or "OS Downgrade"

Parm Name: ZipFile

Requires:

  • MX: 4.1+
  • Android API: 16+

Setup Wizard Bypass

Controls whether to bypass the "Android device setup wizard" (also known as the "Welcome Screen") and the Zebra Setup Wizard (with Analytics data collection agent opt-out) following an Enterprise Reset initiated through PowerMgr. Applies only on devices with Google Mobile Services (GMS) and only when Enterprise Reset is initiated by PowerMgr.

Important: The bypass setting does not persist on the device following an Enterprise Reset. If SUW bypass is desired following an Enterprise Reset, this parameter must be included and set to "true" in the same Profile that is used to initiate the Enterprise Reset. The bypass flag was intended to be available as an option ONLY when Enterprise Reset is selected. However, MX 7.1 and 7.2 allow SUW bypass to be configurable regardless of the Enterprise Reset parameter setting. Once pushed to such devices, a bypass flag value of "true" will persist until an Enterprise Reset is executed or the flag is changed to "false" by a subsequent profile.

Note: Once running, the setup wizard can be exited on some devices by scanning a barcode. More info.

Shown if: The Reset Action is "Enterprise Reset"

Parm Name: SUWByPass

Option Name Description Note Requires
0 Do Nothing This value (or the absence of this parm from the XML) causes no action on the device; the default value is used.

MX: 7.1+

1 true Causes the Android and Zebra device setup wizards to be skipped following an Enterprise Reset initiated through PowerMgr.

MX: 7.1+

2 false Allows Android and Zebra setup wizards to be performed following an Enterprise Reset initiated through PowerMgr (default).

MX: 7.1+

Suppress Reboot

Controls whether the device reboots following a full-OS package Upgrade or Downgrade on a SDM660 device running Android 8.x Oreo or later. Not supported for differential or LifeGuard updates.

Note: Supported only for full-OS package Upgrade/Downgrade Actions on SDM660-platform devices running Android 8.x Oreo or later.

Shown if: The Reset Action is "OS Upgrade"

Parm Name: SuppressReboot

Option Name Description Note Requires
0 Do Nothing This value (or the absence of this parm from the XML) causes no action on the device; the default value is used.

MX: 8.1+

1 true Prevents the device from rebooting following an OS Upgrade or Downgrade Action.

MX: 8.1+

2 false Allows the device to reboot following an OS Upgrade or Downgrade Action.

MX: 8.1+

Update Verification File

Used to enter the path and filename of the manifest in the device file system to be used to verify an OS update. The manifest is an XML file delivered in the OS update .zip file. The "Verify OS Update" Reset Action compares settings specified in the manifest with those on the device to confirm OS- and hardware-level device compatibility requirements before allowing an OS update procedure to continue. Supported only on devices running Android 8.x Oreo and later. See sample manifest.

Parm value input rules:

  • String from 1–255 characters containing a full path and file name

Note: Supported only on devices running Android 8.x Oreo and later.

Shown if: The Reset Action is "OS Update" or "OS Upgrade" or "OS Downgrade"

Parm Name: OsupdateVerifyFile

Requires:

  • MX: 8.1+
  • Android API: 26+

Port Action

Used to enter an action to perform on the selected port. Turning off power when not needed for a port can help reduce pin corrosion. This feature applies only to the VC80x vehicle-mounted computer and similarly equipped Zebra devices.

Parm Name: PortAction

Option Name Description Note Requires
0 Do Nothing This value (or the absence of this parm from the XML) will cause no action to be performed on the device; any previously selected setting will be retained.

MX: 7.1+

1 Turn Output Power On Applies power to the selected port.

MX: 7.1+

2 Turn Output Power Off Removes power from the selected port.

MX: 7.1+

Port Selection

Used to select a port upon which to perform an action using the Port Action parameter, such as turning power on or off. This feature applies only to the VC80x vehicle-mounted computer and similarly equipped Zebra devices.

Shown if: The Port Action is not "Do Nothing"

Parm Name: PortSelect

Option Name Description Note Requires
1 Serial Port 1 Selects Serial Port 1 for the specified Action.

MX: 7.1+

2 Serial Port 2 Selects Serial Port 2 for the specified Action.

MX: 7.1+

3 USB Port 2 Selects USB Port 2 for the specified Action.

MX: 7.1+

Heater Selection

Used to enter the device heater upon which to perform an action using the Heater Action parameter. Device heaters are used to compensate for external temperatures and humidity levels, to help maintain proper device operation, prevent screen and/or internal frost or condensation, and to keep the device battery at optimal temperature. This feature applies only to the VC80x vehicle-mounted computer and similarly equipped Zebra devices.

Parm Name: HeaterSelect

Option Name Description Note Requires
1 Serial IO Selects the heater connected to a serial port.

MX: 7.1+

2 USB IO Selects the heater connected to the USB port.

MX: 7.1+

3 Battery Selects the battery heater.

MX: 7.1+

4 Touch Panel Selects the touch-panel heater.

MX: 7.1+

5 Keyboard Selects the keyboard heater on the VC8300 vehicle computer.

MX: 9.1+

6 Scanner Window Selects the scanner-window heater on the MC93 device.

MX: 9.1+

Heater-On Threshold

Used to enter the temperature (in degrees Celsius) at which the device heater should turn on. This feature applies only to the VC80x vehicle-mounted computer and similarly equipped Zebra devices.

Parm value input rules:

  • Integer value from -30 to 50 on VC80x
  • Integer value from -30 to 25 on VC8300

Note: Supported on VC80x, VC8300 and similarly equipped devices only.

Shown if: The Heater Action is "Set ON/OFF Thresholds"

Parm Name: OnThreshold

Requires:

  • MX: 7.1+

Heater-Off Threshold

Used to enter the temperature (in degrees Celsius) at which the device heater should turn off. This feature applies only to the VC80x vehicle-mounted computer and similarly equipped Zebra devices.

Parm value input rules:

  • Integer value from -30 to 50 on VC80x
  • Integer value from -30 to 25 on VC8300

Note: Supported on VC80x, VC8300 and similarly equipped devices only.

Shown if: The Heater Action is "Set ON/OFF Thresholds"

Parm Name: OffThreshold

Requires:

  • MX: 7.1+

Auto Power Control (checkbox)

Indicates whether automatic power controls will be configured. When enabled (value=1), settings configured in Auto-power parameters will be used. This feature applies only to the VC80x vehicle-mounted computer and similarly equipped Zebra devices.

Parm value input rules:

  • Integer value

Parm Name: AutoPowerControl

Requires:

  • MX: 7.1+

Auto Power-on

Used to control whether the device will power up when vehicle-mounted computer and similarly equipped Zebra devices ignition is turned on. This feature applies only to the VC80x vehicle-mounted computer and similarly equipped Zebra devices.

Shown if: The Auto-Power Control is "Checked"

Parm Name: AutoPowerOn

Option Name Description Note Requires
0 Never Does not power up device when vehicle-mounted computer and similarly equipped Zebra devices ignition is turned on.

MX: 7.1+

1 When Ignition Turned On Powers up device when vehicle-mounted computer and similarly equipped Zebra devices ignition is turned on.

MX: 7.1+

Auto Power-off

Used to control whether the device will power down when vehicle-mounted computer and similarly equipped Zebra devices when ignition is turned off. This feature applies only to the VC80x vehicle-mounted computer and similarly equipped Zebra devices.

Shown if: The Auto-Power Control is "Checked"

Parm Name: AutoPowerOff

Option Name Description Note Requires
0 Never Does not power down device when vehicle-mounted computer and similarly equipped Zebra devices ignition is turned off.

MX: 7.1+

1 When Ignition Turned Off Powers down device when vehicle-mounted computer and similarly equipped Zebra devices ignition is turned off.

MX: 7.1+

Auto Power-off Timeout

Used to enter the time (in minutes) before the device will shut down after vehicle-mounted computer and similarly equipped Zebra devices ignition is turned off. Default value is 30 minutes. This feature applies only to the VC80x vehicle-mounted computer and similarly equipped Zebra devices.

Parm value input rules:

  • Integer value from 0-60 minutes (0=none)
  • If no value is entered, default value of 30 (minutes) will be used

Shown if: The Auto Power Control is "Checked" and Auto Power-off Action is "When Ignition Turned Off"

Parm Name: AutoPowerOffTimeout

Requires:

  • MX: 7.1+

Doze Mode Enable/Disable

This is the On/Off switch for Doze Mode energy saving features on the device. When Doze Mode is enabled, only apps specifically added to the "exemption whitelist" can prevent the device from entering this low-power state. Apps are added to the exemption whitelist using the App Manager CSP.

Parm Name: DozeModeUsage

Option Name Description Note Requires
0 Do not change This value (or the absence of this parm from the XML) causes no change to be performed on the device; any previously selected setting is retained.

OSX: 7.3+

MX: 7.2+

1 Turn on Enables Doze Mode energy saving features on the device.

OSX: 7.3+

MX: 7.2+

2 Turn off Disables Doze Mode energy saving features on the device.

OSX: 7.3+

MX: 7.2+

Battery Saver Control Mode

Controls whether Battery Saver Mode is automatically turned on when charge percentage reaches the charge level set in the Battery Saver Threshold parameter.

Note: Supported only on devices running Android 8 and 10 or later.

Parm Name: BatterySaverControlMode

Option Name Description Note Requires
0 Do not change This value (or the absence of this parm from the XML) causes no action to be performed on the device; any previously selected setting is retained.

MX: 10.1+

Android API: 26+

1 Automatically Enables Battery Saver Mode energy saving features on the device.

MX: 10.1+

Android API: 26+

2 Manually Disables Battery Saver Mode energy saving features on the device.

MX: 10.1+

Android API: 26+

Battery Saver Threshold

Used to enter a percentage of battery charge below which Battery Saver Mode is automatically turned on Note: On devices running Android 8.x Oreo, value must be from 5–20.

Parm value input rules:

  • Integer value from 5–75
  • Integer value from 5–20 on devices running Android Oreo 8.x

Note: Supported only on devices running Android 8 and 10 or later.

Shown if: The Battery Saver Control Mode is "Automatic"

Parm Name: BatterySaverThreshold

Requires:

  • MX: 10.1+
  • Android API: 26+

Battery Saver Mode On/Off

This is the On/Off switch for Battery Saver Mode energy saving features on the device.

Note: Supported only on devices running Android 8 and 10 or later.

Parm Name: BatterySaverMode

Option Name Description Note Requires
0 Do not change This value (or the absence of this parm from the XML) causes no action to be performed on the device; any previously selected setting is retained.

MX: 10.1+

Android API: 26+

1 Turn on Enables Battery Saver Mode energy saving features on the device.

MX: 10.1+

Android API: 26+

2 Turn off Disables Battery Saver Mode energy saving features on the device.

MX: 10.1+

Android API: 26+

Wake-up Method

Controls whether the device wakes up from power-saving modes when it detects a hardware signal (such as a button press) or a mappable software keycode signal.

WARNING: Setting or switching the Wake-up Method requires any previously configured Wake-up Sources to be reapplied.

Parm Name: WakeUpMethods

Option Name Description Note Requires
0 Do not change This value (or the absence of this parm from the XML) causes no action to be performed on the device; any previously selected setting is retained.

MX: 9.1+

1 Hardware Enables device wake-up when a hardware signal is detected.

MX: 9.1+

2 Software Enables device wake-up when a programmable keycode signal is detected.

MX: 9.1+

Wake-up Sources Enable/Disable

Used to control the button-presses that wake the device from suspend mode. Supported devices by default wake only when the power button is pressed. Enabling this parameter (option 1) adds as wake-up sources the push-to-talk (PTT) button (on the left side of the device), scan buttons and any other button listed in the "Wake-up Sources" page in the device Settings panel (varies by device). To control individual buttons, see the Wake-up Individual Action parameter (not supported on TC20/TC25 devices).

Note: Supported on SDM660-platform devices with MX 9.2 or later only. Otherwise supported only on TC20/TC25 devices.

Parm Name: WakeUpSources

Option Name Description Note Requires
0 Do not change This value (or the absence of this parm from the XML) causes no change to the device; any previously selected setting is retained.

OSX: 7.7+

MX: 8.0+

1 Turn on Enables PTT and scan buttons (in addition to power button) to wake the device from suspend mode.

OSX: 7.7+

MX: 8.0+

2 Turn off Allows only the power button to wake the device from suspend mode.

OSX: 7.7+

MX: 8.0+

Wake-up Individual Action Enable/Disable

Controls whether individual device buttons are allowed to wake the device from suspend mode. For example, if after using the Wake-up Sources parameter to "Turn on" all buttons as wake-up sources, this parameter–combined with the Wake-up Key Identifier parameter–can be used to turn off individual buttons. This feature is NOT supported on TC20/TC25 devices.

Note: Supported on SDM660-platform devices only.

Parm Name: WakeUpIndividualAction

Option Name Description Note Requires
0 Do not change This value (or the absence of this parm from the XML) causes no change to the device; any previously selected setting is retained.

OSX: 7.7+

MX: 9.2+

1 Turn on Enables individual buttons to be selected for waking the device from suspend mode.

OSX: 7.7+

MX: 9.2+

2 Turn off Prevents individual buttons from being selected to wake the device from suspend mode.

OSX: 7.7+

MX: 9.2+

Wake-up Key Identifier

Used to select an individual device button to allow or prevent the device from waking from power-saving modes when the button (if so equipped) is pressed. Use this parameter when selecting an Action using the Wake-up Individual Action parameter.

Parm Name: WakeUpKeyIdentifier

Option Name Description Note Requires
1 BUTTON_L1 Selects the button on the device's upper-left side.

MX: 9.2+

2 BUTTON_L2 Selects the button on the device's lower-left side.

MX: 9.2+

3 BUTTON_R1 Selects the button on the device's upper-right side.

MX: 9.2+

4 BUTTON_R2 Selects the button on the device's lower-right side.

MX: 9.2+

5 GUN_TRIGGER Selects the button on the device's gun or grip trigger (if so equipped).

MX: 9.2+

6 REAR_BUTTON Selects the button on the back or outward-facing side of the device (if so equipped).

MX: 9.2+

86 Custom Allows use of a custom key identifier. See Custom Wake-up Key Identifier parameter.

MX: 9.2+

Custom Wake-up Key Identifier

Used to enter a custom key identifier code to allow or prevent the device from waking from power-saving modes when that key signal is detected.

Parm value input rules:

  • Text string of at least one character

Shown if: The Wake-up Key Identifier is "86" and Wake Individual Action is NOT "Do Nothing"

Parm Name: WakeUpKeyIdentifierCustom

Requires:

  • MX: 9.2+

Remote Zip File Name

Used to enter the URL and file name of the Remote Zip File.

Parm value input rules:

  • Text string from 1–255 characters
  • Supports only URLs with http:// or https://

Note: Supported only on devices running Android 8 and 10 or later.

Shown if: The Reset Action is "OS Upgrade Streaming" or "OS Downgrade Streaming"

Parm Name: RemoteZipFile

Requires:

  • MX: 10.1+
  • Android API: 26+

Authorization Type

Used to select the Authorization Type required for making the Upgrade/Downgrade Streaming server connection.

Note: Supported only on devices running Android 8 and 10 or later.

Shown if: The Reset Action is "OS Upgrade Streaming" or "OS Downgrade Streaming"

Parm Name: AuthorizationType

Option Name Description Note Requires
0 No Authorization Selects no authorization for Upgrade/Downgrade Streaming server connection.

MX: 10.1+

Android API: 26+

1 Zebra Authentication Token Selects Zebra Authentication Token for Upgrade/Downgrade Streaming server connection.

MX: 10.1+

Android API: 26+

2 Basic Authentication Selects Basic Authentication for Upgrade/Downgrade Streaming server connection.

MX: 10.1+

Android API: 26+

3 Custom Authorization Header Selects Custom Authentication Header for Upgrade/Downgrade Streaming server connection. Requires a value to be entered in the CustomAuthorizationHeader parameter.

MX: 10.1+

Android API: 26+

Zebra Authentication Token

Used to enter the Zebra Authentication Token required to access a Remote Zip File from the Zebra Support Central portal.

Parm value input rules:

  • Text string of at least one character

Note: Supported only on devices running Android 8 and 10 or later.

Shown if: The Authorization Type is "Zebra Authentication Token"

Parm Name: ZebraAuthToken

Requires:

  • MX: 10.1+
  • Android API: 26+

User Name

Used to enter authentication credentials for accessing a Remote Zip File.

Parm value input rules:

  • Text string of at least one character

Note: Supported only on devices running Android 8 and 10 or later.

Shown if: The Authorization Type is "Basic Authentication"

Parm Name: UserName

Requires:

  • MX: 10.1+
  • Android API: 26+

Password

Used to enter authentication credentials for accessing a Remote Zip File.

Parm value input rules:

  • Text string of at least one character

Note: Supported only on devices running Android 8 and 10 or later.

Shown if: The Authorization Type is "Basic Authentication"

Parm Name: Password

Requires:

  • MX: 10.1+
  • Android API: 26+

Custom Authorization Header

Used to enter a Custom Authorization Header value as required to access the Remote Zip File.

Parm value input rules:

  • Text string of at least one character

Note: Supported only on devices running Android 8 and 10 or later.

Shown if: The Authorization Type is "Custom Authorization Header"

Parm Name: CustomAuthorizationHeader

Requires:

  • MX: 10.1+
  • Android API: 26+

Examples

Reboot Device


<wap-provisioningdoc>
    <characteristic type="PowerMgr" version="4.2" >
        <parm name="ResetAction" value="4"/>
    </characteristic>
</wap-provisioningdoc>

Perform Enterprise Reset


<wap-provisioningdoc>
    <characteristic type="PowerMgr" version="4.2" >
        <parm name="ResetAction" value="5"/>
    </characteristic>
</wap-provisioningdoc>

Perform Factory Reset


<wap-provisioningdoc>
    <characteristic type="PowerMgr" version="4.2" >
        <parm name="ResetAction" value="6"/>
    </characteristic>
</wap-provisioningdoc>

Perform Full Device Wipe


<wap-provisioningdoc>
    <characteristic type="PowerMgr" version="4.2" >
        <parm name="ResetAction" value="7"/>
    </characteristic>
</wap-provisioningdoc>

Perform OS Update


<wap-provisioningdoc>
    <characteristic type="PowerMgr" version="4.2" >
        <parm name="ResetAction" value="8"/>
        <characteristic type="file-details">
            <parm name="ZipFile" value="/sdcard/osupdate.zip"/>
        </characteristic>
    </characteristic>
</wap-provisioningdoc>

Power-on Serial Port 1


<wap-provisioningdoc>
    <characteristic type="PowerMgr">
        <parm name="PortAction" value="1" />
        <characteristic type="port-details">
            <parm name="PortSelect" value="Serial Port 1" />
        </characteristic>
    </characteristic>
</wap-provisioningdoc>

Power-off USB Port 2


<wap-provisioningdoc>
    <characteristic type="PowerMgr">
        <parm name="PortAction" value="2" />
        <characteristic type="port-details">
            <parm name="PortSelect" value="USB Port 2" />
        </characteristic>
    </characteristic>
</wap-provisioningdoc>

Power-On/Off Vehicle-mount Computer w/Vehicle Power


<wap-provisioningdoc>
    <characteristic type="PowerMgr">
        <parm name="AutoPowerControl" value="1" />
        <characteristic type="auto-power-details">
            <parm name="AutoPowerOff" value="1" />
            <parm name="AutoPowerOffTimeout" value="0" />
            <parm name="AutoPowerOn" value="1" />
        </characteristic>
    </characteristic>
</wap-provisioningdoc>

Power-off Vehicle-mount Computer 10 Minutes After Vehicle Turns Off; Do Not Power-on Automatically


<wap-provisioningdoc>
    <characteristic type="PowerMgr">
        <parm name="AutoPowerControl" value="1" />
        <characteristic type="auto-power-details">
            <parm name="AutoPowerOff" value="1" />
            <parm name="AutoPowerOffTimeout" value="10" />
            <parm name="AutoPowerOn" value="0" />
        </characteristic>
    </characteristic>
</wap-provisioningdoc>

Enable Touch-panel Heater in -10°C to 5°C Range


<wap-provisioningdoc>
    <characteristic type="PowerMgr">
        <parm name="HeaterAction" value="3" />
        <characteristic type="heater-details">
            <parm name="HeaterSelect" value="4" />
            <parm name="OnThreshold" value="-10" />
            <parm name="OffThreshold" value="5" />
        </characteristic>
    </characteristic>
</wap-provisioningdoc>

<wap-provisioningdoc>
    <characteristic type="PowerMgr">
        <parm name="HeaterAction" value="1" />
        <characteristic type="heater-details">
            <parm name="HeaterSelect" value="4" />
        </characteristic>
    </characteristic>
</wap-provisioningdoc>

Disable USB IO Heater


<wap-provisioningdoc>
    <characteristic type="PowerMgr">
        <parm name="HeaterAction" value="2" />
        <characteristic type="heater-details">
            <parm name="HeaterSelect" value="2" />
        </characteristic>
    </characteristic>
</wap-provisioningdoc>

Enable Wake-up Sources

<wap-provisioningdoc>
    <characteristic type="PowerMgr" version="8.0" >
        <parm name="WakeUpSources" value="1"/>
    </characteristic>
</wap-provisioningdoc>

Manifest file (sample)

<?xml version="1.0"?>
<Properties>
    <product>
        <ro.product.name value="TC97,TC52,TC57,TC72,TC77,MC93,PS20J"/>
        <ro.product.model value="TC97,TC52,TC57,TC72,TC77,MC93,PS20J"/>
        <ro.product.board value="sdm660"/>
        <ro.product.brand value="Zebra"/>
        <ro.product.locale value="en-US"/>
        <ro.product.manufacturer value="Zebra Technologies"/>
        <ro.product.cpu.abilist value="arm64-v8a,armeabi-v7a,armeabi"/>
    </product>
    <build>
        <ro.build.id value="01-10-09.00-OG-U06-STD"/>
        <ro.build.display.id value="01-10-09.00-OG-U06-STD"/>
        <ro.build.version.incremental value="144"/>
        <ro.build.version.sdk value="27"/>
        <ro.build.version.preview_sdk value="0"/>
        <ro.build.version.codename value="REL"/>
        <ro.build.version.all_codenames value="REL"/>
        <ro.build.version.release value="8.1.0"/>
        <ro.build.version.security_patch value="2018-08-01"/>
        <ro.build.version.base_os value=""/>
        <ro.build.date value="Wed Aug 15 17:48:34 EDT 2018"/>
        <ro.build.date.utc value="1534369714"/>
        <ro.build.type value="user"/>
        <ro.build.user value="jenksvc"/>
        <ro.build.host value="z61sp-gitapp05"/>
        <ro.build.tags value="release-keys"/>
        <ro.build.flavor value="helios-user"/>
        <ro.build.system_root_image value="true"/>
        <ro.build.ab_update value="true"/>
        <ro.build.product value="helios"/>
        <ro.build.description value="01-10-09.00-OG-U06-STD"/>
        <ro.build.fingerprint value="Zebra/helios/helios:8.1.0/01-10-09.00-OG-U06-STD/144:user/release-keys"/>
        <ro.build.characteristics value="nosdcard"/>
        <ro.build.security.critical value="0"/>
        <ro.build.baseline value="01-10-09.00-OG"/>
    </build>
    <bsp>
        <ro.config.bsp.gms value="false,true"/>
        <ro.config.bsp.hwrev value="100,101"/>
        <ro.config.bsp.fips value="true,false"/>
        <ro.config.bsp.beta value="true,false"/>
    </bsp>
    <device>
        <ro.config.device.hwrev value="110,111"/>
    </device>
    <customized>
    </customized>
</Properties>