File Manager

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

Input fields accept ENGLISH ONLY.

Queries from MX are not supported on Zebra devices running Android 11 or later. See alternative method.

StageNow - 5.12

Overview

The File Manager (FileMgr) allows an application to manage files on the device. For example, FileMgr permits an app to download a file from a server to the device, copy a file or folder from one area of the device to another and to delete files on the device. The File Manager also can extract files embedded within an XML document and download from the internet with or without basic authentication.

Main Functionality

  • Copy file(s) from local or remote computers to the device
  • Copy a file from data embedded in an XML object to the device
  • Copy a file from one location to another on a device
  • Delete a file from the device
  • Copy a folder or archive file containing multiple files to the device
  • Download files from a server using HTTP, HTTPS, FTP or FTPS (FTP over TLS/SSL)
  • Upload file(s) from the device to a server using FTP or FTPS
  • Perform basic authentication on HTTP servers when embedded within a URI
  • Download and process ".archive" files generated with StageNow using HTTP or HTTPS
  • Retry and/or resume operations after Wi-Fi or mobile network disconnects
  • Wait for a connection to be available before initiating a download
  • Control behavior if duplicate files are encountered when copying or moving
  • Select the sort order when multiple files being copied or moved
  • Specify a naming pattern for uploaded files
  • Delete file after uploading
  • Specify a target app for granting file access
  • Select whether to persist a file on device following an Enterprise Reset

IMPORTANT NOTES

  • Scoped Storage might block access to device folders, including:
    • /enterprise
    • /sdcard/Android/data
    • /storage/emulated/0/Download
  • File Manager does NOT support anonymous FTP
  • StageNow limits file size to 2GB for FTP transfers from the workstation to devices. See IMPORTANT NOTE in File Action section for more information.

File Action

Used to select an Action to be performed on a file or folder (if empty) on the device.

IMPORTANT NOTE

StageNow limits file size to 2GB for FTP transfers from the workstation to devices. To transfer files larger than 2GB to devices, use the following process to deploy from an external staging server:

  1. Transfer the large file(s) to an external server capable of processing FTP/S or HTTP/S requests for downloads.
  2. Specify the location of each file using the Source URI2 parameter (seen here as "New Source URI") in the settings Profile.

Using SSM

The use of the /enterprise partition is deprecated, and will eventually be prohibited.

Zebra recommends switching as soon as possible to the SSM-based approach, which uses Zebra's Secure Storage Manager to securely store, share and persist apps, config files and data on a device. Changes for using this method are minimal. Instead of specifying an on-device path for file deployment, files are deployed through SSM using an app-specific URI. For complete staging instructions, see Using SSM with AppMgr and FileMgr.

SSM is compatible with MX 11.3 (and later; MX 11.9 is recommended) and its processes were designed to be transparent to the administrator in many file- and/or data-sharing scenarios. However, apps designated as the recipient of files and/or data shared through SSM must be able to access a file via URI. Such changes would be required not specifically for working with Zebra devices, but for compliance with Android security mandates that will eventually be required of all Android devices sharing data.

SSM is preinstalled on all Zebra devices running Android 11 and later.

Required Parameters

File Action Option 10 (in the table below) requires (or optionally works with, as indicated) these additional parameters:

  • TargetApplicationAndFileName (required) provides a "Target Application File Definition," which combines the target app name, optional target-app folder and file name in the format:
    • com.targetApp.package.name/optionalAppFolderName/file.name (see notes, below)
  • TargetApplicationSignature (required) verifies that the "target" app (with which the file is being shared) is genuine
  • SourceAccessMethod2 (required) provides the location of the file being shared to be copied/transferred to the device
    For added security, Zebra recommends selecting the "File on remote server" option (see SourceURI2, below)
  • SourceURI2 provides the server location of file being shared (required if using the "File on remote server" option)
  • PersistFile (optional) allows copied data and/or file to securely persist following an Enterprise Reset
  • When exporting a StageNow Profile that contains any "ExternalURI" field, data in that field is encrypted.
    If a Profile containing an encrypted field is imported, contents of that field cannot be edited
    .

About Target Application File Definition

The "Target Application File Definition" parameter (aka 'TargetApplicationAndFileName') accepts a combination of an app's package name (com.targetApp.package.name in the example above), and the name of the file (file.name) being shared. This file can be an app installer package (.apk) for installation on the device, a config file for configuring app settings, or any other type of file.

The middle section of the definition (/optionalAppFolderName/) is an OPTIONAL folder (or path) under the target app (or created there if it did not already exist) that can be used to organize files for the target app. This storage area is accessible only by the designated target app, which can be another app on the device or the target app itself.

Any app intended to receive data shared through SSM must be capable of consuming data via URI.

Also see docs for Android Content Provider

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Parm Name: FileAction

Option Name Description Note Status Requires
1 Transfer/Copy File Copies a specified file to the device.

MX: 4.3+

2 Upload File(s) Uploads specified file(s) from the device to a remote system.

MX: 10.1+

4 Delete File Erases a specified file or folder (if empty) from the device.

MX: 4.3+

9 Download and Expand Archive File Copies an archive file to the device and extracts its contents.

MX: 5.0+

10 Deploy file for an application Downloads or copies a file to the device and grants access to a targeted application on the device. See Using SSM section, above.

MX: 11.3+

Target URI

Used to enter the location (URI) of the file to copy from the device to a remote server.

When exporting a StageNow Profile that contains any "external" URI field, data in that field is encrypted. If such a Profile is imported, contents of external URI field(s) in the Profile cannot be edited. See video, below.

Parm value input rules:

  • String containing the URI of the source file

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is "Upload File(s)"

Parm Name: TargetURI

Requires:

  • MX: 10.1+

Target Access Method

Controls whether a file is copied/transferred to the device file system or embedded within an XML file.

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is "Transfer/Copy"

Parm Name: TargetAccessMethod

Option Name Description Note Status Requires
2 File in Device File System Specifies that the file is in the device file system.

MX: 4.3+

Target Path and File Name

Used to enter the path and file name on the device on which to perform the selected File Action.

Parm value input rules:

  • String from 1–255 characters containing the destination path and file name

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is "Transfer/Copy"

Parm Name: TargetPathAndFileName

Requires:

  • MX: 4.3+

Target Path and Folder Name

Used to enter the path and folder name on the device on which to perform the selected File Action.

Parm value input rules:

  • String from 1–255 characters containing the destination path and folder name
  • String MUST end with a "/" (slash) character

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is "Transfer/Copy"

Parm Name: TargetPathAndFolderName

Requires:

  • MX: 4.3+

Target File Name Pattern

Used to (optionally) enter a pattern to generate file names for files uploaded to a remote system.

Parm value input rules:

  • String from 0–255 characters containing a file-naming pattern
  • Accepts constants of model, serial number, date and time
  • Default pattern is "SerialNo_FileName"
  • If pattern not entered or invalid, default pattern is used

Example: A specified pattern of "model-serial-date-time" results in the file name:
"TC57-12345678901234-DD-MM-YYYY-HH:MM:SS-FileName"

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

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is "Upload file(s)"

Parm Name: TargetFileNamePattern

Requires:

  • MX: 10.1+

Target App File Definition

Used to enter the target application package name, optional path/folder name and file name of a file to be retrieved by the target application.

On devices running Android 11 and later, the target application must retrieve the file from Zebra Secure Storage Manager (SSM) in order to consume it. The optional folder path entered using this parameter can help the application maintain an application-specific file structure, if required.

Parm value input rules:

  • String from 1–255 characters
  • Example: com.targetApp.package.name/optionalAppFolderName/filename.ext

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is "Deploy file for an application" and New Source Access Method is "File on device file system"

Parm Name: TargetApplicationAndFileName

Requires:

  • MX: 11.3+

Target-app Signature

Used to enter the signature of the target application.

Parm value input rules:

  • String from 1–255 characters

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is "Deploy file for an application"

Parm Name: TargetApplicationSignature

Requires:

  • MX: 11.3+

Source Path and File Spec

Used to enter the path and name of an on-device file to be uploaded to a remote system.

Parm value input rules:

  • String from 1–255 characters
  • Supports wildcard (*) character for specifying file(s)

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

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is "Upload file(s)"

Parm Name: SourcePathAndFileSpec

Requires:

  • MX: 10.1+

Upload Order

Used to select the sort order when multiple files are copied or moved.

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

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Parm Name: UploadOrder

Option Name Description Note Status Requires
1 Newest files first Moves/copies files by date from newest to oldest.

MX: 10.1+

2 Oldest files first Moves/copies files by date from oldest to newest.

MX: 10.1+

3 Sorted by filename Moves/copies files in ascending alphabetical order (from A to Z).

MX: 10.1+

Duplicate File Handling

Used to control File Manager behavior when moving or copying files when a file of the same name exists at the destination.

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

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is "Upload File(s)" or "Transfer/Copy File" and Target Access Method is "File in Device File System"

Parm Name: IfDuplicate

Option Name Description Note Status Requires
1 Replace the file in the destination Overwrites the duplicate file at the destination, replacing it with the file being copied or moved.

MX: 10.1+

2 Skip the file and remove from the source Erases the source file and leaves the duplicate file at destination unchanged.

MX: 10.1+

3 Skip the file and keep it at the source Leaves source file and duplicate file at destination unchanged.

MX: 10.1+

Source Access Method

Used to enter the location of the source file to be copied or transferred.

Note: Zebra recommends using this feature for files no larger than 2-300KB.

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs. Deprecated in MX 11.2.

Parm Name: SourceAccessMethod

Option Name Description Note Status Requires
1 File on remote server Indicates the source file is on a remote server.

MX: 4.3+

2 File on device file system Indicates the source file is on the device.

MX: 4.3+

3 File embedded in XML Indicates the source file is embedded in XML.

MX: 4.3+

New Source Access Method

Used to enter the location of the source file to be copied or transferred.

Note: Zebra recommends using this feature for files no larger than 2-300KB.

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is "Deploy file for an application"

Parm Name: SourceAccessMethod2

Option Name Description Note Status Requires
1 File on remote server Indicates the source file is on a remote server.

MX: 11.3+

2 File on device file system Indicates the source file is on the device.

MX: 11.3+

Persistence Options

Used to select whether the file should persist locally on the device following an Enterprise Reset. Learn more about Enterprise Reset.

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is "Deploy file for an application"

Parm Name: PersistFile

Option Name Description Note Status Requires
0 Do not persist Stores the file so that it DOES NOT remain on the device following an Enterprise Reset.

MX: 11.3+

2 Persist Stores the file so that it DOES remain on the device following an Enterprise Reset.

MX: 11.3+

Source URI

Used to enter the URI of the location of the file on a server. Supports HTTP, HTTPS, FTP and FTPS (FTP over TLS or SSL) protocols and basic authentication of URL-embedded credentials. See Examples section for syntax.

IMPORTANT: File Manager does NOT support anonymous FTP.

Parm value input rules:

  • String containing the URI of the source file
  • Credentials must be embedded within URI
  • Use "protocol=SSL" to override default (TLS)
  • Use "implicit=true" to override default (false)

Note: HTTP/S requires MX 7.0+; FTPS requires MX 7.1+. HTTP/S not supported on devices running Android 4.4 (KitKat); use built-in source URI references only. File Manager does NOT support anonymous FTP.

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs. Deprecated in MX 11.2.

Shown if: File Action is Transfer/Copy and source is remote server

Parm Name: SourceURI

Requires:

  • MX: 4.3+

New Source URI

Used to enter the URI of the location of the file on a server. Supports HTTP, HTTPS, FTP and FTPS (FTP over TLS or SSL) protocols and basic authentication of URL-embedded credentials. See Examples section for syntax.

IMPORTANT:

  • StageNow limits file size to 2GB for FTP transfers from the workstation to devices. See IMPORTANT NOTE in File Action section for more information.
  • File Manager does NOT support anonymous FTP.
  • When exporting a StageNow Profile that contains any "external" URI field, data in that field is encrypted.
    If such a Profile is imported, contents of external URI field(s) in the Profile cannot be edited
    . See video, below.

Parm value input rules:

  • String containing the URI of the source file
  • Credentials must be embedded within URI
  • Use "protocol=SSL" to override default (TLS)
  • Use "implicit=true" to override default (false)

Note: HTTP/S requires MX 7.0+; FTPS requires MX 7.1+. HTTP/S not supported on devices running Android 4.4 (KitKat); use built-in source URI references only. File Manager does NOT support anonymous FTP. StageNow limits file size for some FTP transfers to 2GB.

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is "Deploy file for an application" and New Source Access Method is "File on device file system"

Parm Name: SourceURI2

Requires:

  • MX: 11.3+
  • Android API: 30+

Source Path and File

Used to enter the path and file name of the source file location on the device.

Parm value input rules:

  • String from 1–255 characters

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs. Deprecated in MX 11.2.

Shown if: File Action is "Transfer/Copy" and source is on device

Parm Name: SourcePathAndFileName

Requires:

  • MX: 4.3+

New Source Path and File

Used to enter the path and file name of the source file location on the device.

Parm value input rules:

  • String from 1–255 characters

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is "Deploy file for an application" and New Source Access Method is "File on device file system"

Parm Name: SourcePathAndFileName2

Requires:

  • MX: 11.3+

Delete After Upload (checkbox)

Controls whether source files are deleted after being uploaded.

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

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Parm Name: DeleteAfterUpload

Option Name Description Note Status Requires
0 (unchecked) Does not delete source file after upload.

MX: 10.1+

1 (checked) Deletes source file after upload.

MX: 10.1+

Embedded File Type

Used to enter the type of file to be embedded.

Note: Zebra recommends using this feature for files no larger than 2-300KB.

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is "Transfer/Copy" and Source is "Embedded"

Parm Name: SourceType

Option Name Description Note Status Requires
1 General data file (any extension) Indicates a source file with any extension type.

MX: 4.3+

2 Android application package (.APK file) Indicates a source file with an .apk extension.

MX: 4.3+

3 Android OS Update (.ZIP file) Indicates a source file with a .zip extension.

MX: 4.3+

XML Embedded Source

Used to enter the source file data to be embedded in the XML.

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is "Transfer/Copy "and Source Type is "File Embedded in XML" and Source Type is "General Data File"

Parm Name: SourceDataAny

Requires:

  • MX: 4.3+

APK Embedded Source

Used to enter the APK source file data to be embedded in the XML.

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is Transfer/Copy and source type is 'File embedded in XML' and Embed type is 'Android Application' remote server

Parm Name: SourceDataApk

Requires:

  • MX: 4.3+

OS Update Embedded Source

Provide the source ZIP file data to be embedded in the XML.

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is Transfer/Copy and source type is 'File embedded in XML' and Embed type is 'Android OS Update' remote server

Parm Name: SourceDataZip

Requires:

  • MX: 4.3+

Archive Target Path and Folder Name

Used to enter the path and folder name into which the downloaded archive file should be expanded.

Parm value input rules:

  • String from 1–255 characters containing the path and file name of the destination folder

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is "Download and Expand Archive"

Parm Name: ArchiveTargetPathAndFolderName

Requires:

  • MX: 5.0+

Archive Source URI

Used to enter the URI of the source archive/ZIP file.

Parm value input rules:

  • String from 1–255 characters containing the URI of the source archive/ZIP file

Note: MX 8.3 (or later) is required to specify a remote (external) download server, if desired.

Status: In devices running Android 13 and later, this feature can be accessed through StageNow and compatible EMM systems, or using Android system APIs.

Shown if: File Action is "Download and Expand Archive"

Parm Name: ArchiveSourceURI

Requires:

  • MX: 5.0+

Examples

Download From HTTP/HTTPs


<wap-provisioningdoc>
    <characteristic type="FileMgr" version="5.0" >
        <parm name="FileAction" value="1"/>
    <characteristic type="file-details">
        <parm name="TargetAccessMethod" value="2"/>
        <parm name="SourceAccessMethod" value="1"/>
        <parm name="SourceURI" value=" http://mycompany.com/file/emmtk.war"/>
        <parm name="TargetPathAndFileName" value="/internal/tmpp/10m_testfile.bin"/>
    </characteristic>
    </characteristic>
</wap-provisioningdoc>

Download and Unarchive


<wap-provisioningdoc>
    <characteristic type="FileMgr" version="5.0" >
        <parm name="FileAction" value="9"/>
    <characteristic type="file-details">
        <parm name="ArchiveTargetPathAndFolderName" value="/sdcard/Android/extract3"/>
        <parm name="ArchiveSourceURI" value="https://secure.mycompany.com/httpsdownload/ArchiveFileTemp.archive"/>
    </characteristic>
    </characteristic>
</wap-provisioningdoc>

Perform Basic Authentication


<wap-provisioningdoc>
    <characteristic type="FileMgr" version="5.0" >
        <parm name="FileAction" value="1"/>
    <characteristic type="file-details">
        <parm name="TargetAccessMethod" value="2"/>
        <parm name="SourceAccessMethod" value="1"/>
        <parm name="SourceURI" value="http://username:password@192.168.0.100:21/secure/10m_testfile.bin"/>
        <parm name="TargetPathAndFileName" value="/internal/tmpp/10m_testfile.bin"/>
    </characteristic>
    </characteristic>
</wap-provisioningdoc>

Download From FTPS With Explicit Connection

NOTE: File Manager does NOT support anonymous FTP.


<wap-provisioningdoc>
  <characteristic version="0.6" type="FileMgr">
    <parm name="FileAction" value="1" />
    <characteristic type="file-details">
      <parm name="TargetAccessMethod" value="2" />
      <parm name="TargetPathAndFileName" value="/storage/sdcard0/sample.apk"/>
      <parm name="SourceAccessMethod" value="1" />
      <parm name="SourceURI" value="ftps://username:password@192.168.0.100:21/secure/10m_testfile.bin" />
    </characteristic>
  </characteristic>
</wap-provisioningdoc>

Download From FTPS With Implicit connection

NOTE: File Manager does NOT support anonymous FTP.


<wap-provisioningdoc>
  <characteristic version="0.6" type="FileMgr">
    <parm name="FileAction" value="1" />
    <characteristic type="file-details">
      <parm name="TargetAccessMethod" value="2" />
      <parm name="TargetPathAndFileName" value="/storage/sdcard0/sample.apk"/>
      <parm name="SourceAccessMethod" value="1" />
      <parm name="SourceURI" value="ftps://username:password@192.168.0.100:21/secure/10m_testfile.bin?implicit=true" />
    </characteristic>
  </characteristic>
</wap-provisioningdoc>

Download From FTPS Through Open SSL server with Explicit Connection

**NOTE**: File Manager does NOT support anonymous FTP.

<wap-provisioningdoc>
    <characteristic type="FileMgr" version="5.0" >
        <parm name="FileAction" value="1"/>
    <characteristic type="file-details">
        <parm name="TargetAccessMethod" value="2"/>
        <parm name="SourceAccessMethod" value="1"/>
        <parm name="SourceURI" value="ftp-p://username:password@192.168.0.100:21/secure/TestFile.apk"/>
        <parm name="TargetPathAndFileName" value="/sdcard/TestFile.apk"/>
    </characteristic>
  </characteristic>
</wap-provisioningdoc>

Download From FTPS through Open SSL Server with Implicit connection

NOTE: File Manager does NOT support anonymous FTP.


<wap-provisioningdoc>
    <characteristic type="FileMgr" version="5.0" >
        <parm name="FileAction" value="1"/>
    <characteristic type="file-details">
        <parm name="TargetAccessMethod" value="2"/>
        <parm name="SourceAccessMethod" value="1"/>
        <parm name="SourceURI" value="ftp-p://username:password@192.168.0.100:21/secure/TestFile.apk?ftpClient.keyStore.file=/enterprise/usr/stagenow/vsftpd.p12&amp;ftpClient.keyStore.password=password&amp;ftpClient.keyStore.type=PKCS12&amp;implicit=true&amp;protocol=SSL"/>
        <parm name="TargetPathAndFileName" value="/sdcard/TestFile.apk"/>
    </characteristic>
  </characteristic>
</wap-provisioningdoc>

Encode Special Characters in Username

Special (reserved) characters in a user name (i.e. the @ sign) must be encoded. For example, "username@company.com" should appear as "username%40company.com" in the SourceURI (as below).


<wap-provisioningdoc>
    <characteristic version="5.0" type="FileMgr">
        <parm name="FileAction" value="1" />
    <characteristic type="file-details">
        <parm name="TargetAccessMethod" value="2" />
        <parm name="TargetPathAndFileName" value="/sdcard/TestFile.apk" />
        <parm name="SourceAccessMethod" value="1" />
        <parm name="SourceURI" value="ftp-p://username%40company.com:password@192.168.0.100:21/Test/TestFile.apk />
    </characteristic>
    </characteristic>
</wap-provisioningdoc>