To remote control the Zebra device, 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 QuickSupport or 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 8.3+ is installed
  • QuickSupport or 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?

How to deploy the app

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

I. 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.

a) For QuickSupport use

<wap-provisioningdoc>
  <characteristic version="8.3" type="AccessMgr">
    <parm name="OperationMode" value="1" />
    <parm name="ServiceAccessAction" value="1" />
    <parm name="ServiceIdentifier" value="com.zebra.eventinjectionservice" />
  </characteristic>
  <characteristic version="8.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.quicksupport.market" />
    <parm name="CallerSignature" value="MIIDmjCCAoKgAwIBAgIETMAbjTANBgkqhkiG9w0BAQUFADCBjTELMAkGA1UEBhMCREUxGzAZBgNVBAgTEkJhZGVuIFd1ZXJ0dGVtYmVyZzETMBEGA1UEBxMKR29lcHBpbmdlbjEYMBYGA1UEChMPVGVhbVZpZXdlciBHbWJIMRgwFgYDVQQLEw9UZWFtVmlld2VyIEdtYkgxGDAWBgNVBAMTD1RlYW1WaWV3ZXIgR21iSDAgFw0xMDEwMjExMDUzMDFaGA8yMDUxMTExNTEwNTMwMVowgY0xCzAJBgNVBAYTAkRFMRswGQYDVQQIExJCYWRlbiBXdWVydHRlbWJlcmcxEzARBgNVBAcTCkdvZXBwaW5nZW4xGDAWBgNVBAoTD1RlYW1WaWV3ZXIgR21iSDEYMBYGA1UECxMPVGVhbVZpZXdlciBHbWJIMRgwFgYDVQQDEw9UZWFtVmlld2VyIEdtYkgwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWiS0FVkYhfPqp4exJUvuRmxJ1c+ofWVP7G8WUlw4FAg/81B1tGkUi11ezsJXwqkeH9v3bJRBTq1ibt/HWNXU25ubwQCX9w9ukD/VH4f1zi5vaeFy4u+xbUf59wDPrTQuOL8P5omE9p4INTI434Y8qEGU9152EOflQcLCkgqP8+NrpxKK4BUL864tC/QeO5TIj1fqJYrrUDkZCkmdI7xLnU72lX3wtOdntTNU55JAp7S8MOfCSWqWURyMtXZjvXH1Pcz0/Z9nrVqxy0H5V4olaLhtt6jN/iV75Zau0IDPzpkqtd6vJ9VfWkU5S7tm2DTuMn2byLh3nbqsM9iAlJZ91AgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAJVK2jvHKBAYnqY64U2isMjj45Ksh5cDc52z7paSVjvXFgs1HGk6JamrfroxP0dp5adB5BtWmq+ogdpSeGQcIDz3Y0dlYa7lCfswMgrUXzvzJJ6eujSC8WGgRWxTheW5TBB8kl1xPemypKNWYUSopAEFlftW2L4fQfcNBwM+sX2QJpRohSxWhdI2Qv0OQ1fawNoL2ImDYpUeHAsUtb8VLewF+PSFGCGRR28LjItzoOK7AfbMpDE1VDnM8V+b8uoK4TbC3Q4EDBs6gdII68gaQPzg9wRMawhwNAPpugnZsacEKTks32VwM01ECZk/taKx8hyADZvg5DWHQoSjVNhm1S8=" />
  </characteristic>
</wap-provisioningdoc>

b) For the Host app use

<wap-provisioningdoc>
  <characteristic version="8.3" type="AccessMgr">
    <parm name="OperationMode" value="1" />
    <parm name="ServiceAccessAction" value="1" />
    <parm name="ServiceIdentifier" value="com.zebra.eventinjectionservice" />
  </characteristic>
  <characteristic version="8.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>
</wap-provisioningdoc>

c) For a combined QuickSupport and Host app use

<wap-provisioningdoc>
  <characteristic version="8.3" type="AccessMgr">
    <parm name="OperationMode" value="1" />
    <parm name="ServiceAccessAction" value="1" />
    <parm name="ServiceIdentifier" value="com.zebra.eventinjectionservice" />
  </characteristic>
  <characteristic version="8.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.quicksupport.market" />
    <parm name="CallerSignature" value="MIIDmjCCAoKgAwIBAgIETMAbjTANBgkqhkiG9w0BAQUFADCBjTELMAkGA1UEBhMCREUxGzAZBgNVBAgTEkJhZGVuIFd1ZXJ0dGVtYmVyZzETMBEGA1UEBxMKR29lcHBpbmdlbjEYMBYGA1UEChMPVGVhbVZpZXdlciBHbWJIMRgwFgYDVQQLEw9UZWFtVmlld2VyIEdtYkgxGDAWBgNVBAMTD1RlYW1WaWV3ZXIgR21iSDAgFw0xMDEwMjExMDUzMDFaGA8yMDUxMTExNTEwNTMwMVowgY0xCzAJBgNVBAYTAkRFMRswGQYDVQQIExJCYWRlbiBXdWVydHRlbWJlcmcxEzARBgNVBAcTCkdvZXBwaW5nZW4xGDAWBgNVBAoTD1RlYW1WaWV3ZXIgR21iSDEYMBYGA1UECxMPVGVhbVZpZXdlciBHbWJIMRgwFgYDVQQDEw9UZWFtVmlld2VyIEdtYkgwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWiS0FVkYhfPqp4exJUvuRmxJ1c+ofWVP7G8WUlw4FAg/81B1tGkUi11ezsJXwqkeH9v3bJRBTq1ibt/HWNXU25ubwQCX9w9ukD/VH4f1zi5vaeFy4u+xbUf59wDPrTQuOL8P5omE9p4INTI434Y8qEGU9152EOflQcLCkgqP8+NrpxKK4BUL864tC/QeO5TIj1fqJYrrUDkZCkmdI7xLnU72lX3wtOdntTNU55JAp7S8MOfCSWqWURyMtXZjvXH1Pcz0/Z9nrVqxy0H5V4olaLhtt6jN/iV75Zau0IDPzpkqtd6vJ9VfWkU5S7tm2DTuMn2byLh3nbqsM9iAlJZ91AgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAJVK2jvHKBAYnqY64U2isMjj45Ksh5cDc52z7paSVjvXFgs1HGk6JamrfroxP0dp5adB5BtWmq+ogdpSeGQcIDz3Y0dlYa7lCfswMgrUXzvzJJ6eujSC8WGgRWxTheW5TBB8kl1xPemypKNWYUSopAEFlftW2L4fQfcNBwM+sX2QJpRohSxWhdI2Qv0OQ1fawNoL2ImDYpUeHAsUtb8VLewF+PSFGCGRR28LjItzoOK7AfbMpDE1VDnM8V+b8uoK4TbC3Q4EDBs6gdII68gaQPzg9wRMawhwNAPpugnZsacEKTks32VwM01ECZk/taKx8hyADZvg5DWHQoSjVNhm1S8=" />
  </characteristic>
  <characteristic version="8.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>
</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 the MDMs/EMMs which we integrate with, even though the access UI to the OEMConfig setup is different for each MDM/EMM.

OEMConfig parameters setup:

• 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

• For QuickSupport: fill in the ‘Allow Caller package’ with: com.teamviewer.quicksupport.market

• For the Host app (when the OEM integration is supported): 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=

For illustration purposes, we provide a snapshot of the Microsoft Intune OEMConfig UI here. More Illustrations from other MDMs/EMMs will follow.

II. 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 for QuickSupport and the Host App for the sake of simplification.