Scan2Deploy Studio

Overview

Scan2Deploy Studio can be used to stage Datalogic Mobile Computers running Android 8 and above. It is installable on 64-bit Windows 7/8/10 PCs.

Features include:

  • configure the device Wi-Fi network,
  • control some device inner system settings (e.g. the lock-screen enabled state),
  • download a data archive from a HTTP/HTTPS server and unpack it to the device,
  • install/update applications and the system image, and
  • run a script (to perform any additional setup).
important

This document reflects the features and settings available in Scan2Deploy Studio 1.5.

Downloads

Downloads are available in the Releases section on the Scan2Deploy Studio Github page.

Compatibility

  • Scan2Deploy Studio requires Scan2Deploy Android agent version 1.11 or higher running on the Android device. All Datalogic devices running Android 9 and above should already have this version. For Android 8 devices, this version can be installed directly from the "Hi There!" setup screen as described here.

  • For more detail regarding what versions of Scan2Deploy Android agent support what associated Scan2Deploy Studio features, see the full list of Scan2Deploy Android releases.

Installation

  • Copy the installer file to any convenient location on your PC.
  • Launch the installer.
  • If User Access Control (UAC) is enabled on your computer, authorize the installer to run. (UAC is enabled by default on all supported Windows operating systems, but it can be disabled by default. If you do not see this prompt, UAC may have been disabled.)
  • Follow on-screen prompts to finish installing.

Task tray

When Scan2Deploy Studio is closed, it doesn't stop running. It continues running in the background, and displays a task tray icon on the far right side of the Windows taskbar, near the clock.

Task tray

Right-clicking on the Scan2Deploy Studio icon in the task tray will result in a menu being displayed.

Task tray right click

This gives you the option to Exit Scan2Deploy Studio or set Settings.

Exit

If you choose Exit, all processes related to Scan2Deploy Studio immediately stop.

important

Carefully consider whether or not you want to completely stop Scan2Deploy Studio, particularly if you are relying on Scan2Deploy Studio to serve profiles for mobile devices

Settings

Task tray settings

Currently there is only one setting available.

  • Run at startup - If checked (default), Scan2Deploy Studio will start after booting into Windows. If unchecked, it will not do so.

Welcome Page

The first page displayed when you open Scan2Deploy Studio is the Welcome page. Choose one of the following options from the Welcome page.

  • Create - to create a new Scan2Deploy profile.
  • Edit - to edit the existing Scan2Deploy profile (.tar file).

Welcome

Either way, the next page you end up on will be the Action Selection page.

A table of recent profiles appears below the Create and Edit buttons once you have saved at least one profile. Each row in the table includes the ability to edit, delete, and make a copy of a given profile, as well as display the QR code.

Recent Profiles

Profile QR

Make a Copy

Action Selection Page

This page allows to user to add or remove various actions to the current profile, which fall under 2 categories, Deployment Actions and Firmware Actions, represented by two different radio boxes. By default, Deployment Actions radio box is selected with Wi-Fi action already selected.

Action Selection

note

Unlike deployment profiles, firmware profiles are much more limited as they are focused solely on updating device firmware.

Deployment Actions

ActionDescriptionDevice SpecificHost required
Wi-Fi SetupConfigure Wi-Fi network connection settings
ApplicationsEnable/disable device applications
Scanner SettingsConfigure scanner settings and parameters
Device SettingsSet Datalogic device settings
Add ScriptsConfigure script commands to apply to the device
File UploadUpload files with arbitrary file extension
Visual FormatterSetup barcode visual formatting

Firmware Actions

ActionDescriptionDevice SpecificHost required
Wi-Fi SetupConfigure Wi-Fi network connection settings
Firmware UpdateUpdate device firmware with OTA package

Device Selection

Three fields allow you to select the specific device you will be deploying to.

  • Select Model (e.g. Memor 20, Memor 10 etc.)
  • Select SKU (e.g. US, EU, China etc.)
  • Select OS Version (Android version)

Action Pages

Wi-Fi Setup

This page allows users to configure Wi-Fi networks on the device.

Wi-Fi Setup Deployment Network

Configuring a network

The first network added will always be the Deployment Network. It is also possible to add any number of Additional Networks which will not be used during the deployment process.

Encryption Mode

Each network can have one of the following network encryption modes:

  • None
  • WEP
  • WPA/WPA2-Personal
  • WPA3-Personal
  • WPA/WPA2/WPA3-Enterprise
  • WPA3-Enterprise 192-bit
note

WPA3-Personal and WPA3-Enterprise 192-bit networks are only available on certain Datalogic devices running Android 10 and above. These options will only appear if the device selected on the Action Selection page supports it.

EAP

By setting the Encryption Mode to None, WPA/WPA2/WPA3-Enterprise, or WPA3-Enterprise 192-bit, the EAP section is enabled. This section allows you to configure the following types of EAP networks:

  • PEAP
  • TLS
  • TTLS
  • PWD
  • SIM
  • AKA
  • AKA-PRIME

Wi-Fi Setup EAP

Advanced

The Advanced section offers the ability to set a network proxy to use for the connection as well as various other deployment options. Currently, all Advanced settings apply to all Wi-Fi profile encryption method and EAP method types.

  • Proxy Host - Server name or IP address of the proxy to be used for HTTP/HTTPS communications.
  • Proxy Port Number - Server IP port of the proxy for HTTP/HTTPS communications.
  • Forget network when done (deployment network only) - If checked, the deployment network connection will be used solely during the staging process, and deleted once complete. If left unchecked, the network will still be present after the staging process is done.
  • Remove other networks (deployment network only) - If checked, any currently configured wireless networks will be removed. This can be useful in order to avoid profile roaming or to ensure no unauthorized network connections are allowed.
  • Reconfigure - When checked, if configuration for the same network is already present on the device, it will be reconfigured. If unchecked, the existing network will be left alone. This setting is unnecessary if Remove other networks is checked.
  • Wait for connection (deployment network only) - If checked, Scan2Deploy agent will wait for the Wi-Fi deployment network connection to be established before proceeding to subsequent device configuration steps.

Wi-Fi Setup WPA2

Adding additional networks

To add Additional Networks, click the Add network button.

Add Networks

Applications

This page has three tabs; Manage, Install, and Update. Each supports a different set of application related actions.

Applications page

Manage

This tab allows users to enable/disable apps on the device as well as set managed configurations for apps that offer it. The list of applications can be searched by Application name and Package name. It is also possible to filter by app Vendor.

Search apps

note

The list of applications that shows up on the Applications page is dependent upon the selected device type on the Action Selection page.

Action column
  • This column allows you to specify if an app should be enabled (+), disabled (-), or left alone (leave at current/default setting value).

Applications page

Configuration column
  • This columns allows you to configure managed configurations for certain apps that support them. For example, you can add URL blacklists and whitelists to Chrome. The list of apps that currently support managed configurations include:

    • Google Chrome
    • Google Gmail
    • Datalogic SoftSpot
    • 42 Gears SureFox
    • 42 Gears SureLock

Chrome Managed Configurations

Install

This tab allows users to install Android apps (APKs) from the local file system or from a remote URL.

Install tab

Update

This tab allows users to update Datalogic apps to the latest available versions.

Update tab

note

The list of applications that show up on the Update tab is dependent upon the the selected device type on the Action Selection page.

Scanner Settings

This page allows users to configure scanner settings and parameters for the device.

Scanner Settings page

Device Settings

This page allows users to set Datalogic device settings, including:

Device Settings page

Scripts

This page allows users to configure script commands to apply to the device.

Add Scripts page

The commands offered are a subset of the script commands available in the Android schema.

  • <> Angle brackets indicate required fields
  • [] Square brackets indicate optional fields

BATTERY_OPTIMIZATION

BATTERY_OPTIMIZATION <action> <package>

Enables or disables battery optimization for the given package.

  • action - Required parameter. Allowed values:

    • ENABLE - enable battery optimization for the given package. i.e. the app's background processing capability will be diminished for the sake of improved battery life.
    • DISABLE - the given package will not be limited by the battery optimization feature in any way. Could result in decreased battery life.
  • package - Package name of the app for which battery optimization should be adjusted.

BROADCAST

BROADCAST <arguments>

Broadcasts the intent with the specified intent arguments. Supported extra arguments:

  • -e | -es - Add string data as a key-value pair
  • -ef - Add float data as a key-value pair
  • -ei - Add integer data as a key-value pair
  • -el - Add long data as a key-value pair
  • -ez - Add boolean data as a key-value pair

COPY

COPY <source-file-path> <target-file-path> <overwrite>

Copies a file located on-device from one location to another. If the target-file-path does not exist, it will be automatically created for you, even multiple folders deep if necessary.

  • source-file-path - the full path to the source file to be copied, starting with /.

  • target-file-path - the full path to the destination location where the file should be copied to. Should include the destination file name as well.

  • overwrite - true or false. if set to true, the copy should overwrite an existing file. if set to false, the copy should not overwrite an existing file.

DELETE

DELETE <path> [pattern] [include]

Recursively deletes files/folders starting from path, only if the name matches the pattern regular-expression. If folder path is empty at the end of the process it will be deleted, as well.

  • pattern - Optional regular expression to match. Often, this would just be the name of the file to be deleted. Default value: "^.+$" (i.e. delete all files with names one or more characters long).

  • include - Optional value. If include is true, the matching entries will be deleted. If include is false, the non-matching entries will be deleted. Default value: true.

INFLATE

INFLATE <archive-path> <target-path>

Inflates the ZIP archive found at archive-path to target-path folder.

LAUNCH

LAUNCH <package-name>

Starts the launching intent given an application package-name.

SET_SETTING

SET_SETTING <namespace> <setting> <value>

Set a system setting. namespace must be one of: GLOBAL, SECURE, or SYSTEM.

SHELL

SHELL <adb_shell_command>

Run an arbitrary adb shell command. This is an experimental feature. Not all shell commands that work at an adb shell prompt will work here. No output that may be provided in the command will be displayed.

  • adb_shell_command - the adb shell command to run. This could be any command you can run at an adb shell prompt, although the adb shell has different permission levels than Scan2Deploy, so there is no guarantee if the command will run successfully or not.

  • Android's official documentation for SHELL command can be found here.

UNINSTALL

UNINSTALL <package-name>

Uninstalls a previously installed application given its package-name.

WAIT

WAIT <milliseconds>

Suspend the script execution for milliseconds milliseconds.

File Upload

This page allows users to upload files with arbitrary file extensions.

Scanner Settings page

Apply DXU Config

If the file added is a DXU configuration file, it can be selected for application on the device. Build your DXU configuration file using the Datalogic DXU application, along with a connected device of the type you are planning to deploy to (i.e. connect a Memor 10 if that's the device type you plan to configure for in Scan2Deploy Studio). Follow the Save a Configuration File steps as described in the DXU manual.

Apply DXU Config page

Visual Formatter

The Visual Formatter page allows users to create formatting rules to manipulate the barcode data received from the scanner. The user can decide which inputs and outputs to consider and create a connection that goes from the specified inputs towards the outputs, passing through some nodes, each representing a specific operation. This data flow is used to manipulate the input data in order to obtain the desired output.

See the following sections on the next page for a more in-depth explanation of the different components available in the Visual Formatter:

Visual Formatter page

Firmware Update

This page allows users to upload an OTA (over-the-air) update file compatible with the selected device.

Firmware Update page

note

The OTA file you upload must be compatible with the selected device model and Android version on the Action Selection page. Otherwise, an error will be given, preventing you from using the incorrect OTA file

tip

Firmware images are available for download at developer.datalogic.com.

Save and Print

This final page allows users to save the profile (.tar file) and preview and save the generated barcodes (.pdf file). There are three main sections on this page, Name and Save, Advanced, and Deployment QR Codes

Save and Print page

Name and Save

  • A name for your profile is required and will determine the file name of the profile when it is saved to disk.

  • The Description field allows you to enter some notes about the profile for future reference. It will be displayed on the printed barcode PDF as well.

Profile host location

This section appears if your profile requires a Scan2Deploy profile (.tar file). Use this section to specify how the profile will be transferred to the device.

tip

Check the tables in the Action Selection page section to understand which settings require a profile host location and which do not.

When visible, you must select from the following options:

tip

Regardless of what option you choose, all profiles are saved to disk at C:\users\<user>\scan2deploy_uploads\<profile-id>.

Scan2Deploy Studio

The profile will be hosted directly within Scan2Deploy Studio itself. Scan2Deploy Studio inserts the hosting PC's hostname as well as IP addresses for all connected interfaces to increase the likelihood of a successful profile retrieval by the Android device on the connected network.

important

Scan2Deploy Studio must be running and reachable by the mobile device. When you close Scan2Deploy, it keeps running in the background. See the task tray section for more detail.

Hosted in Studio

External hosting

In this use case, you are responsible for knowing ahead of time where the profile will be hosted. The barcode created will point to the Custom deployment server location specified.

Hosted externally

Additional hosting options ...

These options allow you to locate the profile on the device, avoiding having to download the profile. Some likely use cases are that an EMM was used to push the tar file to the device and then apply it using the service intent, or deployment without use of Wi-Fi is required.

Additional hosting options

  • The options are:

    • Device storage - the internal flash storage of the device.
    • SD card - physical micro SD card. This option only appears in Scan2Deploy Studio if the device you selected on the Action Selection page has an SD card slot.
    • USB storage device - a USB hard drive or flash drive attached to the device with an on-the-go USB cable.
  • Each option requires a Path. For each option, Path is defined as below.

    • Device storage - the absolute path to the deployment package on the device. Example: /sdcard/Download/s2d/profile.tar
    • SD card - path to the deployment package relative to the root of the removable storage device. Example: /s2d/profile.tar
    • USB storage device - path to the deployment package relative to the root of the removable storage device. Example: /s2d/profile.tar

Advanced

A few specialized fields are available here:

Final Action

  • Action - Determines the last action Scan2Deploy should take before finishing profile processing. Values are none, close, enterprise-reset, factory-reset, and reset. The default value is none. If intent is selected, you will be expected to provide an intent URI that should be sent.
  • Intent - The intent that should be sent. Only applicable if the action field is set to intent.

Default Home/Launcher

  • Launcher type - The type of launcher that should be used as the default launcher. Selecting Google Launcher App will use the standard, default launcher. Selecting SureLock will set SureLock as the default launcher. Selecting Custom App will require you to enter the name of a package in the Package name field. Selecting No Default will clear any previously selected default launcher. Selecting Select type will make no change to the device.
  • Package name - Package name of an APK that is or will be installed on the device that should serve as the device's Home/Launcher app. Not just any application can be used as a launcher app. It has to meet certain requirements specified by Google to be set as the launcher app.

Deployment Settings

  • Hide from launcher - Caution if checked, Scan2Deploy will become hidden after the barcode read and the profile is processed fully.
  • Valid until - Set a date on which the barcode will be invalidated.
  • Install latest OEMConfig - (Recommended) If checked, Scan2Deploy will include the latest version of OEMConfig in the profile and it will be automatically installed when the profile is applied to a device. If unchecked, the OEMConfig app will not be included in the profile.
    important

    The Datalogic OEMConfig application must be installed on the device to apply settings from the Scanner Settings and Device Settings pages. Scan2Deploy Agent may not report settings that fail to apply if OEMConfig is either not installed or if the version that is installed doesn't support the latest settings.

Deployment QR Codes

Barcode displayed when Scan2Deploy Studio hosts the profile:

Scan2Deploy hosting barcode

Barcode displayed when an external server hosts the profile:

Hosted somewhere else barcode

Download PDF

This button allows you to download a PDF document that contains the full set of barcodes generated.

Sample generated PDF

Copy data

This option allows you to copy the underlying data contained in the barcode(s). It is useful for making manual edits to the JSON file, as well as passing the data to the Scan2Deploy app via the start service and start activity intents. Three options are provided:

  • Copy JSON data (no whitespace) - copy unencrypted JSON for use with the start service and start activity intents, either from Java/Kotlin code or an adb shell.

  • Copy JSON data - copy unencrypted data suitable for pasting into a file. Includes newlines and proper spacing. This could be useful if you want to hand-edit the file and re-import it into Scan2Deploy Studio later.

  • Copy encrypted data - primary use case is also to pass to Scan2Deploy via the start service and start activity intents. Unless you intend on making adjustments to the JSON, this is recommended way of passing data via intent since it is encrypted.

Copy data save and print

note

The Copy data button is also available as part of the Show QR action view of a given profile on the Welcome page.

Copy data home

info

Right click on barcodes and select Copy Image to copy the barcode image itself. It can then be pasted into the application of your choice.

Next steps

Typically, the next step is to open the Scan2Deploy app on your device and scan the barcodes provided by Scan2Deploy Studio.

Screenshot

note

Older versions of device firmware require enabling Scan2Deploy first. See the Enable Scan2Deploy section on the Scan2Deploy Android page for more information.

Alternatively, Scan2Deploy configuration data can be passed into the Scan2Deploy app directly from other Android applications. For instance an MDM agent installed on the device could directly pass barcode data to Scan2Deploy agent, eliminating the need for a barcode to be physically scanned. The following steps are necessary to achieve this.

Start Service intent

Scan2Deploy offers a service that listens for requests to apply Scan2Deploy profiles without the Scan2Deploy UI (activity) being visible. The profile will be applied silently, without any Scan2Deploy UI being displayed in the foreground.

  • Broadcast action: datalogic.scan2deploy.intent.action.START_SERVICE
  • Broadcast receiver: com.datalogic.scan2deploy.S2dServiceReceiver

Extras

ExtraTypeRequiredDefaultDescription
encodingenumnov2Indicates how the data field is encoded. Allowed values are:
json - plain, unencrypted JSON file
v1 - v1 encryption, generated by dl_config.exe
v2 - v2 encryption generated by Scan2Deploy Studio
datastringyesnullThe data that Scan2Deploy should process that would normally be received in a barcode.

Examples

These examples demonstrate passing properly escaped json data in data extra. The encoding extra must be set to json in this case.

Intent i = new Intent("datalogic.scan2deploy.intent.action.START_SERVICE")
.putExtra("encoding", "json")
.putExtra("data", "{\"global\":{\"action\":\"reset\"}}");
.setClassName("com.datalogic.scan2deploy", "com.datalogic.scan2deploy.S2dServiceReceiver");
getApplicationContext().sendBroadcast(i);

Start activity intent

Alternatively, you can start the Scan2Deploy activity if you want the Scan2Deploy UI to be visible. The same intent extras can be used in this case (encoding and data). These examples demonstrate passing in v2 barcode data exported by Scan2Deploy Studio in the data extra. Since v2 is the default, no encoding parameter is required.

Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.datalogic.scan2deploy");
launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
launchIntent.putExtra("data", "Bm9uiYc//NWOnA0ZtIrgJ/qy0DCvHR+a1XwUz1sTne8s0KEM9ANwTS0XD4NbIOf/hV0+MM7cOFiZMbUDtO1L4sb4vnJluFbQOEM3phIuCRiBuMtpnh85");
getApplicationContext().startActivity(launchIntent);
note

You can utilize an MDM console to start the Scan2Deploy activity or service with the desired data intent extra. However, that process will differ significantly from one MDM to the next and is outside the scope of what can be documented here.