MobiControl and Honeywell OTA Update

MobiControl and Honeywell OTA Update


Regarding MobiControl and Honeywell Android units, for example the Honeywell CT50 Android 6 I'm currently testing.
I was wondering if anyone maybe have tested something like this before or have some toughts, I find Honeywell easier to work whit than Zebra but Zebra may have a little more advantage whit MobiControl as script comand to rund update downloaded on to the unit before hand.

So from Honeywell and CT50 in this case, may have been changed in the newer units.
Honeywell describe OTA update as making a xml provisioner whit their EZConfig as tasks:

Source:         http://server_ip/
Action:          InstallFile
Destination:   /storage/IPSM/honeywell/autoinstall/

This basically downloads and moves CommonES to destination folder and is automatically runned on reboot.

Source:         http://server_ip/
Action:          InstallOta

Downloads and rund the kernel update whit a reboot when finished, on boot again the CommonES first downloaded is being runned.

This is ok in itself sinse it can be downloaded from HTTP, HTTPS and FTP but when running several thousend units and more comming in diffrent location in non and secure networks it becomes a challenge to setup all the FTP and web servers to make this happen.

So, could the Content Libary be used for this action, upload the OS files and downloaded to the unit.
Downloading the CommonES to a file location should be ok but download kernel and run action InstallOta I'm a little more unsure of.

Or could Content Libary setup a path in either HTTPS or FTP as we could have linked to barcode in EZConfig.
So Ota is downloaded from https://sotiurl/ContenLibaryPath?


Best regards

Øystein Stakvik


5 Answers

Order By:   Standard | Newest | Votes
Raymond Chan | posted this 12 July 2018

I don't have a Honeywell device to check it out.  However, the chance of using Content Library to do what you want is very very slim.  It can handle document files, AV media files, and many standard file formats which can be viewed with reader apps registered with the device kernel.  However, I don't think you can pass an html/ftp link.


If you can get the update/patch file downloaded on the MobiControl server, using file-sync rule may be a viable option to get the file to the required directory (/storage/IPSM/honeywell/autoinstall ) on the device, and a post-script associated with the file-sync rule may run required command(s) to initiate install/reboot.   To handle bandwidth/loading for thousand of devices, You can  target different smaller groups of devices with different sync schedule for the file-sync rule(s).   I must admit using this approach is just a wild guess, as I don't have the device to do any test on the install/reboot mechanism.


  • 0
  • 0
Øystein, Stakvik | posted this 19 July 2018

I've figured out 2 ways to do this whit Honeywell CT50.

Option 1:

Create package whit Kernel update, CommonES and Provisioner.xml.
Provisioner.xml and kernel can be deployed somewhere on the unit as long as Provisioner.xml is pointing to the location and script is pointing to Provisioner.xml location.
CommonES will be deployed to /IPSM/honeywell/autoinstall/ sp when rebooted on kernel upgrade unit will start install of CommonES.

This can be deployed to the unit folder as wanted.


Option 2, the one i want to use:

Create File Sync rule that transfeer kernel, CommonES and Provisioner.xml as above and also Provisioner.xml and script has to point to the correct locations aswell.

This means we can use Virtual Folders that is filtered on OEM version, we can them separate unit and only upgrade the one whit older OS versions.


So testing both options above whit a unit staged as Android+ works perfect.
When staged whit Enterprise as we want, I was earlier able to download the files but not run the script for Provision.xml, no error messages, just script sendt.

Now I'm not even able to download the files from File Sync, no error messages.


Script we are sending and that are tested is:

sendintent -b "intent:#Intent;;S.path=/storage/IPSM/Provisioner.xml;launchFlags=0x0000020;end"


So my question now is, if anyone knows or have any ideas where to find is:

What are Enterprise doing that Android+ is not, blocking, removing, uninstalling that may affect the script or download?

Enterprise is staged by adding afw#MobiControl at startup so it should have its permissions.
I've tried enable_system_app on almost everey package I find in pm list whitout any luck.


  • 0
  • 0
Matt Dermody | posted this 19 July 2018

My understanding is that a lot of the scripting functionality that works on Android+ won't necessarily work on Android Enterprise yet, or ever. It will likely be some time before we have parity in manageability between DA (Android+) and DO (Android Enterprise) so I would not expect to have the same capabilities with an AE device. We are going to hold off on AE for as long as possible for this very reason.

  • 0
  • 0
Øystein, Stakvik | posted this 19 July 2018

Hi Matt

I've gone thru most scripting relating to my case and most of them are valid between Android+ and Enterprise, it seems some scripting as for example showmessagebox (Note) (Timer) (User respons) is not working or on Android generally, read something around this but can't remeber exactly at the moment.

However I got little braketrught reagard the script, basically I just want to start the Provisioning tool on Honeywell and import the Provisioning.xml to again start the InstallOta for kernel.

It seems that Enterprise is hiding the, and when hidden it cannot run.
I did enable_system_app on this and manually dragged the kernel over manually and tried script again, it did then work as I wanted.

So the only part I'm left whit tot figure out is why File Sync now suddenly do not want to download the files as it did yesterday whitout problem.

I tried enable_system_app on filebrowser thinking it was something like the provisioner but nothing.

  • 0
  • 0
Øystein, Stakvik | posted this 15 August 2018

Consider this as solved, issue found but no solution at this point.

Doing upgrade by transfering files to unit than running script to start Provisioner works OK on Android+ enrollment.
When enrolling as Enterprise then MobiControl is not getting correct "rights" to transfeer files directly to the correct folders.

So it would be a possibility to copy files over to root then then add "move files" script in Provisioner before update start so files is moved internally.

  • 0
  • 0

Give us your feedback
Give us your feedback