To remote control the Zebra device without any interaction with the end-user (unattended access), the Eventinjection Service must be configured, and the TeamViewer apps need to have access to the Eventinjection Service. This configuration is handled over an XML-File. 

This documentation will explain how to enable the Host app to remote control your Zebra device.

This article applies to licensed users who have MDS (Mobile Device Support).

Prerequisites

This document assumes the following items are already in place:

  • The device is a Zebra device with an Android operating system
  • MX 9.3+ is installed
  • Host app is installed on the device

📌Note: You can check which MX version your device has via this link: 

Which MX/OSX is Installed? - TechDocs

How to push your XML file on your devices

You have plenty of ways to push your XML file on your devices. You can push it:

Via MDM/EMM

1. XML Config

If your MDM/EMM supports Zebra XML config deployment, all you need to do is push the XML through your MDM/EMM portal.

<wap-provisioningdoc>
  <characteristic version="9.3" type="AccessMgr">
    <parm name="OperationMode" value="1" />
    <parm name="ServiceAccessAction" value="1" />
    <parm name="ServiceIdentifier" value="com.zebra.eventinjectionservice" />
  </characteristic>
  <characteristic version="9.3" type="AccessMgr">
    <parm name="OperationMode" value="1" />
    <parm name="ServiceAccessAction" value="4" />
    <parm name="ServiceIdentifier" value="com.zebra.eventinjectionservice" />
    <parm name="CallerPackageName" value="com.teamviewer.host.market" />
    <parm name="CallerSignature" value="MIIDmjCCAoKgAwIBAgIETMAbjTANBgkqhkiG9w0BAQUFADCBjTELMAkGA1UEBhMCREUxGzAZBgNVBAgTEkJhZGVuIFd1ZXJ0dGVtYmVyZzETMBEGA1UEBxMKR29lcHBpbmdlbjEYMBYGA1UEChMPVGVhbVZpZXdlciBHbWJIMRgwFgYDVQQLEw9UZWFtVmlld2VyIEdtYkgxGDAWBgNVBAMTD1RlYW1WaWV3ZXIgR21iSDAgFw0xMDEwMjExMDUzMDFaGA8yMDUxMTExNTEwNTMwMVowgY0xCzAJBgNVBAYTAkRFMRswGQYDVQQIExJCYWRlbiBXdWVydHRlbWJlcmcxEzARBgNVBAcTCkdvZXBwaW5nZW4xGDAWBgNVBAoTD1RlYW1WaWV3ZXIgR21iSDEYMBYGA1UECxMPVGVhbVZpZXdlciBHbWJIMRgwFgYDVQQDEw9UZWFtVmlld2VyIEdtYkgwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWiS0FVkYhfPqp4exJUvuRmxJ1c+ofWVP7G8WUlw4FAg/81B1tGkUi11ezsJXwqkeH9v3bJRBTq1ibt/HWNXU25ubwQCX9w9ukD/VH4f1zi5vaeFy4u+xbUf59wDPrTQuOL8P5omE9p4INTI434Y8qEGU9152EOflQcLCkgqP8+NrpxKK4BUL864tC/QeO5TIj1fqJYrrUDkZCkmdI7xLnU72lX3wtOdntTNU55JAp7S8MOfCSWqWURyMtXZjvXH1Pcz0/Z9nrVqxy0H5V4olaLhtt6jN/iV75Zau0IDPzpkqtd6vJ9VfWkU5S7tm2DTuMn2byLh3nbqsM9iAlJZ91AgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAJVK2jvHKBAYnqY64U2isMjj45Ksh5cDc52z7paSVjvXFgs1HGk6JamrfroxP0dp5adB5BtWmq+ogdpSeGQcIDz3Y0dlYa7lCfswMgrUXzvzJJ6eujSC8WGgRWxTheW5TBB8kl1xPemypKNWYUSopAEFlftW2L4fQfcNBwM+sX2QJpRohSxWhdI2Qv0OQ1fawNoL2ImDYpUeHAsUtb8VLewF+PSFGCGRR28LjItzoOK7AfbMpDE1VDnM8V+b8uoK4TbC3Q4EDBs6gdII68gaQPzg9wRMawhwNAPpugnZsacEKTks32VwM01ECZk/taKx8hyADZvg5DWHQoSjVNhm1S8=" />
  </characteristic>
 <characteristic version="9.3" type="AccessMgr">
    <parm name="ServiceAccessAction" value="1" />
    <parm name="ServiceIdentifier" value="com.zebra.remotedisplayservice" />
  </characteristic>
  <characteristic version="9.3" type="AccessMgr">
    <parm name="ServiceAccessAction" value="4" />
    <parm name="ServiceIdentifier" value="com.zebra.remotedisplayservice" />
    <parm name="CallerPackageName" value="com.teamviewer.host.market" />
    <parm name="CallerSignature" value="MIIDmjCCAoKgAwIBAgIETMAbjTANBgkqhkiG9w0BAQUFADCBjTELMAkGA1UEBhMCREUxGzAZBgNVBAgTEkJhZGVuIFd1ZXJ0dGVtYmVyZzETMBEGA1UEBxMKR29lcHBpbmdlbjEYMBYGA1UEChMPVGVhbVZpZXdlciBHbWJIMRgwFgYDVQQLEw9UZWFtVmlld2VyIEdtYkgxGDAWBgNVBAMTD1RlYW1WaWV3ZXIgR21iSDAgFw0xMDEwMjExMDUzMDFaGA8yMDUxMTExNTEwNTMwMVowgY0xCzAJBgNVBAYTAkRFMRswGQYDVQQIExJCYWRlbiBXdWVydHRlbWJlcmcxEzARBgNVBAcTCkdvZXBwaW5nZW4xGDAWBgNVBAoTD1RlYW1WaWV3ZXIgR21iSDEYMBYGA1UECxMPVGVhbVZpZXdlciBHbWJIMRgwFgYDVQQDEw9UZWFtVmlld2VyIEdtYkgwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWiS0FVkYhfPqp4exJUvuRmxJ1c+ofWVP7G8WUlw4FAg/81B1tGkUi11ezsJXwqkeH9v3bJRBTq1ibt/HWNXU25ubwQCX9w9ukD/VH4f1zi5vaeFy4u+xbUf59wDPrTQuOL8P5omE9p4INTI434Y8qEGU9152EOflQcLCkgqP8+NrpxKK4BUL864tC/QeO5TIj1fqJYrrUDkZCkmdI7xLnU72lX3wtOdntTNU55JAp7S8MOfCSWqWURyMtXZjvXH1Pcz0/Z9nrVqxy0H5V4olaLhtt6jN/iV75Zau0IDPzpkqtd6vJ9VfWkU5S7tm2DTuMn2byLh3nbqsM9iAlJZ91AgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAJVK2jvHKBAYnqY64U2isMjj45Ksh5cDc52z7paSVjvXFgs1HGk6JamrfroxP0dp5adB5BtWmq+ogdpSeGQcIDz3Y0dlYa7lCfswMgrUXzvzJJ6eujSC8WGgRWxTheW5TBB8kl1xPemypKNWYUSopAEFlftW2L4fQfcNBwM+sX2QJpRohSxWhdI2Qv0OQ1fawNoL2ImDYpUeHAsUtb8VLewF+PSFGCGRR28LjItzoOK7AfbMpDE1VDnM8V+b8uoK4TbC3Q4EDBs6gdII68gaQPzg9wRMawhwNAPpugnZsacEKTks32VwM01ECZk/taKx8hyADZvg5DWHQoSjVNhm1S8=" />
</wap-provisioningdoc>

2. OEMConfig

If your MDM/EMM supports OEMConfig, you can create a profile with the config parameters below, then assign it to your device from the MDM/EMM portal. These parameters are the same for all of MDMs/EMMs which we integrate with, even though the access UI to the OEMConfig setup is different for each MDM/EMM.

OEMConfig parameters setup:

1. Allow Remote Control

  • In Transaction Step select “Service Access Configuration” then “Configure”
  • Select ‘Allow’ for ‘Service Binding Action’.
  • Fill in the ‘Allow Service Identifier’ with: com.zebra.eventinjectionservice
  • Select ‘Allow’ for ‘Service Caller Action’ and use the same service identifier as in the above
  • Fill in the ‘Allow Caller package’ with: com.teamviewer.host.market
  • Fill in the ‘Allow Caller signature’ with:
MIIDmjCCAoKgAwIBAgIETMAbjTANBgkqhkiG9w0BAQUFADCBjTELMAkGA1UEBhMCREUxGzAZBgNVBAgTEkJhZGVuIFd1ZXJ0dGVtYmVyZzETMBEGA1UEBxMKR29lcHBpbmdlbjEYMBYGA1UEChMPVGVhbVZpZXdlciBHbWJIMRgwFgYDVQQLEw9UZWFtVmlld2VyIEdtYkgxGDAWBgNVBAMTD1RlYW1WaWV3ZXIgR21iSDAgFw0xMDEwMjExMDUzMDFaGA8yMDUxMTExNTEwNTMwMVowgY0xCzAJBgNVBAYTAkRFMRswGQYDVQQIExJCYWRlbiBXdWVydHRlbWJlcmcxEzARBgNVBAcTCkdvZXBwaW5nZW4xGDAWBgNVBAoTD1RlYW1WaWV3ZXIgR21iSDEYMBYGA1UECxMPVGVhbVZpZXdlciBHbWJIMRgwFgYDVQQDEw9UZWFtVmlld2VyIEdtYkgwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWiS0FVkYhfPqp4exJUvuRmxJ1c+ofWVP7G8WUlw4FAg/81B1tGkUi11ezsJXwqkeH9v3bJRBTq1ibt/HWNXU25ubwQCX9w9ukD/VH4f1zi5vaeFy4u+xbUf59wDPrTQuOL8P5omE9p4INTI434Y8qEGU9152EOflQcLCkgqP8+NrpxKK4BUL864tC/QeO5TIj1fqJYrrUDkZCkmdI7xLnU72lX3wtOdntTNU55JAp7S8MOfCSWqWURyMtXZjvXH1Pcz0/Z9nrVqxy0H5V4olaLhtt6jN/iV75Zau0IDPzpkqtd6vJ9VfWkU5S7tm2DTuMn2byLh3nbqsM9iAlJZ91AgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAJVK2jvHKBAYnqY64U2isMjj45Ksh5cDc52z7paSVjvXFgs1HGk6JamrfroxP0dp5adB5BtWmq+ogdpSeGQcIDz3Y0dlYa7lCfswMgrUXzvzJJ6eujSC8WGgRWxTheW5TBB8kl1xPemypKNWYUSopAEFlftW2L4fQfcNBwM+sX2QJpRohSxWhdI2Qv0OQ1fawNoL2ImDYpUeHAsUtb8VLewF+PSFGCGRR28LjItzoOK7AfbMpDE1VDnM8V+b8uoK4TbC3Q4EDBs6gdII68gaQPzg9wRMawhwNAPpugnZsacEKTks32VwM01ECZk/taKx8hyADZvg5DWHQoSjVNhm1S8=

2. Allow Unattended Access

a) Add Transaction Step:

  • Select the “Transaction Steps” options (3 dots)
  • Select “Add setting”
  • In the newly created Transaction Step select “Service Access Configuration” then "Configure"

b) Apply settings:

  • Select ‘Allow’ for ‘Service Binding Action’.
  • Fill in the ‘Allow Service Identifier’ with: com.zebra.remotedisplayservice
  • Select ‘Allow’ for ‘Service Caller Action’ and use the same service identifier as in the above
  • Fill in the ‘Allow Caller package’ with: com.teamviewer.host.market
  • Fill in the ‘Allow Caller signature’ with:
MIIDmjCCAoKgAwIBAgIETMAbjTANBgkqhkiG9w0BAQUFADCBjTELMAkGA1UEBhMCREUxGzAZBgNVBAgTEkJhZGVuIFd1ZXJ0dGVtYmVyZzETMBEGA1UEBxMKR29lcHBpbmdlbjEYMBYGA1UEChMPVGVhbVZpZXdlciBHbWJIMRgwFgYDVQQLEw9UZWFtVmlld2VyIEdtYkgxGDAWBgNVBAMTD1RlYW1WaWV3ZXIgR21iSDAgFw0xMDEwMjExMDUzMDFaGA8yMDUxMTExNTEwNTMwMVowgY0xCzAJBgNVBAYTAkRFMRswGQYDVQQIExJCYWRlbiBXdWVydHRlbWJlcmcxEzARBgNVBAcTCkdvZXBwaW5nZW4xGDAWBgNVBAoTD1RlYW1WaWV3ZXIgR21iSDEYMBYGA1UECxMPVGVhbVZpZXdlciBHbWJIMRgwFgYDVQQDEw9UZWFtVmlld2VyIEdtYkgwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWiS0FVkYhfPqp4exJUvuRmxJ1c+ofWVP7G8WUlw4FAg/81B1tGkUi11ezsJXwqkeH9v3bJRBTq1ibt/HWNXU25ubwQCX9w9ukD/VH4f1zi5vaeFy4u+xbUf59wDPrTQuOL8P5omE9p4INTI434Y8qEGU9152EOflQcLCkgqP8+NrpxKK4BUL864tC/QeO5TIj1fqJYrrUDkZCkmdI7xLnU72lX3wtOdntTNU55JAp7S8MOfCSWqWURyMtXZjvXH1Pcz0/Z9nrVqxy0H5V4olaLhtt6jN/iV75Zau0IDPzpkqtd6vJ9VfWkU5S7tm2DTuMn2byLh3nbqsM9iAlJZ91AgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAJVK2jvHKBAYnqY64U2isMjj45Ksh5cDc52z7paSVjvXFgs1HGk6JamrfroxP0dp5adB5BtWmq+ogdpSeGQcIDz3Y0dlYa7lCfswMgrUXzvzJJ6eujSC8WGgRWxTheW5TBB8kl1xPemypKNWYUSopAEFlftW2L4fQfcNBwM+sX2QJpRohSxWhdI2Qv0OQ1fawNoL2ImDYpUeHAsUtb8VLewF+PSFGCGRR28LjItzoOK7AfbMpDE1VDnM8V+b8uoK4TbC3Q4EDBs6gdII68gaQPzg9wRMawhwNAPpugnZsacEKTks32VwM01ECZk/taKx8hyADZvg5DWHQoSjVNhm1S8=

Via StageNow

You must prepare this master device by creating a staging profile via StageNow. Once the settings on the master device are done, you need to export it so that you can deploy it on your device. You will obtain an XML file which you can choose your preferred method to push your XML Config to your devices:

  • Via Barcode
  • Via Audio
  • Via NFC Tag

Once this is done, you will be able to remote control your Zebra device.

To allow an app to call the Event Injection service, we need to specify the Signature of that app. When using the StageNow Tool, a .crt file has to be specified from which the caller's signature will be included. Please use the attached file TeamViewer AppSignature.crt

We also provide a working example of bar codes the Host App for the sake of simplification.