9 Replies Latest reply on Mar 27, 2017 8:18 AM by Ian Hatton

    Deploying StageNow profiles with a centralised FTP server

    Ian Hatton

      The method detailed below will allow a StageNow profile to be manually modified in order to allow the profile to be staged from any FTP server i.e. it is no longer dependent upon the StageNow server on the local subnet. This allows an internet/intranet-based FTP server to be used to deploy profiles e.g. the attached SN barcode (created using this method) will install Adobe PDF reader on any device which has a pre-configured Internet connection. This functionality is due to be added to a future release of the tool but this method will work on the current 2.2 or later release.


      StageNow 2.2 (or Later) Central Server Config


      1. Create profile to copy file from SN server to device and add any other required steps
      2. Export profile as XML using icon from main profile list
      3. Load XML into file editor and modify the file copy section e.g.




      <parm name="SourceURI" value="ftp-p://StageNow:StageNow@localhost:21/SETTINGS/_060515_155208_528/tunein.player.apk" />




      <parm name="SourceURI" value="ftp-p://username:password@ftp.ibackup.com:21/android/utils/tunein.player.apk" />


      Where:                     username =  FTP username (NB: usernames in the format xxx@yyy.com are not supported!!!!)

                                     Password = FTP password

                                     ftp.ibackup.com = FTP server URL

                                     21 = default FTP port

                                     /android/utils/tunein.player.apk = path and filename of file on FTP server


      1. Make sure that file exists at the specified FTP server/path – it will not be deployed there by StageNow so has to be manually copied to the required location
      2. Make sure that each remote file included in the profile is in a separate folder on the FTP server
      3. Transfer the MD5 checksum to the FTP server sub-folder in which each file is located. The checksum can be generated via a tool such as the ones detailed in the subsequent posts on this thread. It can also be copied directly from the internal StageNow FTP folder structure which is located in the path C:\Users\<your accountname>\AppData\Roaming\StageNow\AST\FTP\SETTINGS. The sub-folders in this path contain the files to be deployed for each profile together with the MD5 checksum file. The screenshots below show two FTP folders containing the file to transfer and the associated MD5 checksum file

      sn  blog.com.pngsn  blog1.com.png





           4.Rename the profile on import , generate barcode and test. Device will require an internet connection (either configured as part of the profile or pre-configured)

        • Re: Deploying StageNow profiles with a centralised FTP server
          Vijayaditya K

          we have to add one more step in the process. File manger CSP expects a Checksum file in the same directory where the apk (or any other file) to check the integrity of the download process.


          After placing the file in the FTP server folder,

          1) compute the md5 checksum of the actual file. you may use  Online MD5 Hash Generator & SHA1 Hash Generator

          2) copy the MD5 checksum of the file

          3) create a new text file in the same directory/folder with the name equivalent to checksum we just copied in the previous step.

          in the above example, copy MD5 check sum file to "_060515_155208_528" folder. please see the below image which shown how the new structure should be.checksum.PNG




          • Re: Deploying StageNow profiles with a centralised FTP server
            Matt Dermody

            Is there any way to modify the StageNow server IP to a statically assigned public IP? I would like to create a central, cloud hosted StageNow server that I can share between multiple people. It seems like I am able to modify an individual Profile's FTP location to the public IP using this technique, but I need a way to also change the StageNow server address to the same value. It seems to just query the local adapter list and provide me with a list of options from there. Devices that I'm attempting to stage are obviously unable to resolved to the private IP that it finds for my adapter.


              • Re: Deploying StageNow profiles with a centralised FTP server
                Matt Dermody

                I figured out a way to trick StageNow into using the public IP address by statically assigning the public IP as a secondary IP on my network adapter.



                Despite, successfully modifying the StageNow IP address to my public IP, I still don't seem to be able to stage a device while on a public internet connection. I keep getting the following series of errors:


                1. Query Error, Reason-FMC downloadFTPFile Connection closed without indication.

                2. Batch Decoding -Exception, Could not decode profile data :/data/tmp/StageNow_andMX_upgrade_Deploy.bin: open failed: ENOENT (No such file or directory)

                3. Query Error, Reason-FMC File doesn't exist, delete canceled.


                Does this indicate that the device is getting to the StageNow server, but is unable to apply the profile for some other reason? Or is the device unable to even establish a connection with StageNow?

              • Re: Deploying StageNow profiles with a centralised FTP server
                Pajtim Ajvazi



                I tried to modify the exported profile to target another ftp server.  Created the profile, exported it, changed value of <param name="SourceURI".../> to point to my server URI and imported the profile.  After that I can see the changed values in the file location chooser in the UI. But the created 2D barcode somehow manages to still target my local IP.


                I am using StageNow


                My exported pofile XML looks like this:

                <?xml version="1.0" encoding="utf-8"?>



                  <characteristic version="5.0" type="FileMgr">

                    <parm name="FileAction" value="1" />

                    <characteristic type="file-details">

                      <parm name="TargetAccessMethod" value="2" />

                      <parm name="TargetPathAndFileName" value="/sdcard/<app>.apk" />

                      <parm name="SourceAccessMethod" value="1" />

                      <parm name="SourceURI" value="stagenow:stagenow@<server>:21/<app>.apk" />




                  <characteristic version="4.2" type="AppMgr">

                    <parm name="Action" value="Install" />

                    <parm name="APK" value="/sdcard/<app>.apk" />



                  <characteristic version="4.3" type="Intent">

                    <parm name="Action" value="StartActivity" />

                    <parm name="ActionName" value="android.intent.action.MAIN" />

                    <parm name="Package" value="<package>" />

                    <parm name="Class" value="<class>" />



                • Re: Deploying StageNow profiles with a centralised FTP server
                  Raymond Buil

                  Within Stagenow 2.5 I found a none documented feature (at least I cannot find it in the documents) about externalStagingServer


                  Within the installation folder C:\Program Files (x86)\Symbol Technologies\Staging_Solution a file called Symbol.StageNow.V2Client.exe.config can be found


                  Open this file into your editor and modify this section:


                      <!-- External Satging Server  -->

                      <add key="EnableExternalStagingServer" value="1"/>

                      <add key="ExternalServerAddress" value=""/>

                      <add key="ExternalServerUser" value="stagenow"/>

                      <add key="ExternalServerPassword" value="stagenow"/>


                  Restart your Stagenow application and the External Staging Server will be used.



                  1 of 1 people found this helpful