Overview

Product Overview

The EMS Suite Installer is an application to assist clients in installing the EMS Product Line. This application will download, install, and if desired, start EMS Products. The major benefit of this application is to give application permissions, and it will do all the work in the background (silently).

Note Suite Installer is currently available and supported on Zebra Devices only.

Flow A - Downloaded Config File

This flow allows for installing a configuration file that contains the appropriate commands for installing EMS.

  1. Install the Suite Installer using your favorite MDM.
  2. Invoke the Silent Initialzation.
  3. Install a Suite JSON file.
  4. Invoke the Silent Install.

Installation

Get the APK from BlueFletch and install to your device using your MDM.

Example ADB Command

adb install suiteinstaller-1.0.1.apk

Silent Initialzation

Invoke the application with the following information:

Package: com.bluefletch.ems.suite.installer Class: com.bluefletch.ems.suite.installer.SilentActivity

Example ADB Command

adb shell am start -n com.bluefletch.ems.suite.installer/com.bluefletch.ems.suite.installer.SilentActivity

Example AirWatch Command

mode=explicit,action=android.action.intent.MAIN,package=com.bluefletch.ems.suite.installer,class=com.bluefletch.ems.suite.installer.SilentActivity,broadcast=false

Install a Suite JSON file

Install a Suite.JSON file to this location:

/sdcard/Android/data/com.bluefletch.ems.suite.installer/files/emssuite/suite.json

Invoke the Silent Install

Invoke the application with the following information:

Package: com.bluefletch.ems.suite.installer Class: com.bluefletch.ems.suite.installer.SilentActivity Extras: action=install

Example ADB Command

adb shell am start -n com.bluefletch.ems.suite.installer/com.bluefletch.ems.suite.installer.SilentActivity -e action install

Example AirWatch Command

mode=explicit,action=android.action.intent.MAIN,package=com.bluefletch.ems.suite.installer,class=com.bluefletch.ems.suite.installer.SilentActivity,extraString=action=install,broadcast=false

Example SOTI Command

sendintent -a "intent:#Intent;action=android.intent.action.MAIN;component=com.bluefletch.ems.suite.installer/com.bluefletch.ems.suite.installer.SilentActivity;S.action=install;end;"

Flow B - Pass Configuration as URL

This flow allows for hosting the configuration file on a server and having the Suite Installer first download the configuration, then install EMS.

  1. Install the Suite Installer using your favorite MDM.
  2. Invoke the Silent Install passing the Suite JSON as URL Parameter.

Invoke the Silent Install

Invoke the application with the following information:

Package: com.bluefletch.ems.suite.installer Class: com.bluefletch.ems.suite.installer.SilentActivity Extras: url=URL POINTING TO A Suite JSON File

Example ADB Command

adb shell am start -n com.bluefletch.ems.suite.installer/com.bluefletch.ems.suite.installer.SilentActivity -e url https://somewhere.com/suite.json

Example AirWatch Command

mode=explicit,action=android.action.intent.MAIN,package=com.bluefletch.ems.suite.installer,class=com.bluefletch.ems.suite.installer.SilentActivity,extraString=url=https://somewhere.com/suite.json,broadcast=false |

Flow C - Install individual APK's

This flow allows for installing individual EMS Product APKs, but it uses a URL to point to the APK hosted on a download server.

  1. Install the Suite Installer using your favorite MDM.
  2. Invoke the Silent Install using a File parameter that points to an APK.

Invoke the Silent Install

Invoke the application with the following information:

Package: com.bluefletch.ems.suite.installer Class: com.bluefletch.ems.suite.installer.SilentActivity Extras: file=URL POINTING TO APK TO INSTALL

Example ADB Command

adb shell am start -n com.bluefletch.ems.suite.installer/com.bluefletch.ems.suite.installer.SilentActivity -e file https://somewhere.com/this.apk

Example AirWatch Command

mode=explicit,action=android.action.intent.MAIN,package=com.bluefletch.ems.suite.installer,class=com.bluefletch.ems.suite.installer.SilentActivity,extraString=file=https://somewhere.com/this.apk,broadcast=false

Configuration

Base Configuration

Field Description
version Free Formatted Configuration Version, informational only.
files A collection of File Objects. Required

File Object

Field Description
url Download url for the Application. Required
version Version of the Package to install. Optional
package Name of the Package. Optional (required for action=remove)
action Defaults to install. Can specify 'remove' to uninstall a package. Optional
intent Intent object describing the intent to fire once application is installed. Optional

Intent Object

Field Description
action Package Action to invoke. Required
package Name of the Package. Required
class Class name to invoked. Required

Example Configuration File:

{
  "version": "lastest-2020-12-12",
  "files": [
      {
          "url": "https://www.somewhere.com/apk/supportApplication-5.3.3-prod.apk",
          "version" : "5.3.3",
          "package" : "com.bluefletch.ems.support",
          "intent" : {
              "action": "android.intent.action.MAIN",
              "package": "com.bluefletch.ems.support",
              "class" : "com.bluefletch.ems.support.features.ui.hidden.SilentInitActivity"
          }
      },
      {
          "url": "https://www.somewhere.com/apk/emsMessaging-2.3.1.apk",
          "version" : "2.3.1",
          "package" : "com.bluefletch.ems.messaging"
      },
      {
          "url": "https://www.somewhere.com/apk/emsauth_okta-1.3.7.apk",
          "version" : "1.3.7",
          "package" : "com.bluefletch.ems.auth"
      },
      {
          "url": "https://www.somewhere.com/apk/bluelauncher-production-2.9.2.apk",
          "version" : "2.9.2",
          "package" : "com.bluefletch.launcher",
          "intent" : {
              "action": "android.intent.action.MAIN",
              "package": "com.bluefletch.launcher",
              "class" : "com.bluefletch.launcher.Launcher"
          }
      }
  ]
}