Overview

This utility will automate the creation of many StageNow WiFi profiles which can have different essid and password combinations for each customer site. It utilises the StageNow NFC Writer app from Play (https://play.google.com/store/apps/details?id=com.zebra.ses.nfcwriter ) to generate the barcode based on an XML file pushed to an Android device and then retrieves the barcode profile as a single PNG image for each site.

The method used is flexible to allow extra staging steps to be added to the basic WiFi profile (e.g. application installation) and the generated profiles can then be staged via either Barcode scanning or NFC bump. The additional steps required to do this are detailed in the second section of this document.

 

Usage

  1. Install the required utilities via the attached wifi_profile_create_install.exe installer. Ensure that the launch option is unchecked before clicking Finish as shown below:

     2. In Windows File Explorer, right click on the default installation folder (C:\Program Files (x86)\Wifi Profile Create) and select Properties/Security to check the file permissions of the folder to ensure that folder has full read/write access granted for the current Windows user. If not, select the user name/group and press Edit in order to change the folder permissions to have full control.

     3. In the installation folder , start a Windows command window

     4. Connect a Zebra Android device such as a TC52/56 via USB cable. Download and install the Zebra Android USB drivers from support.symbol.com (if not already installed). Enable ADB via reading the StageNow code below:

 

     5. Check the ADB connection via typing ‘ADB devices’ in the command window:

     6. Install StageNow TagWriter via the adb command below (or via Google Play if you want to access the latest published version)

     7. With a text editor ,edit the file storelist.csv to include the store/site names , essid and password required (WPA2 Personal supported currently). Additional lines can be added if required.

Store1,essid1,password1

Store2,essid2,password2

Store3,essid3,password3

Store4,essid4,password4

Store5,essid5,password5

Store6,essid6,password6

Store7,essid7,password7

Store8,essid8,password8

Store9,essid9,password9

Store10,essid10,password10

     8. On the Android device, run StageNow NFC Writer and change the display orientation to Landscape (enable rotation the Android Notification bar and turn the device in landscape mode). This is to allow the barcode to be generated at a larger scale than if using the default portrait orientation.

     9. On the PC ,run the application wifi_profile_create.exe. This will process the storelist.csv file and create a new profile for each entry in this file. A command window will open up briefly for each profile as it is being transferred to the device. If the process does not work correctly, there will normally be an error message in the command window indicating the type of problem.

     10. The resulting profiles will be saved in the same PC folder as the utilities – there will be a XML profile and a PNG barcode image for each store/site in the input list.

 

     11. PNG files can then be printed/emailed and used to stage devices at the local sites.

 

     12. Note that the XML files will also be stored on the device in the /sdcard/myxml/wifi folder and can be individually selected and staged using the TagWriter app (either via barcode or NFC bump).  NFC tags will not be usable as the profile is too large to fit onto a standard tag.

 
 

 

Including additional steps in the profile

The template for the generated profiles is the wifi.xml file in the installation folder. This file can be edited to include additional staging steps such as file transfer, application install , additional configuration changes etc. The easiest way to do this is to use StageNow to create the new profile steps and then export the profile using the ‘Export for MDM’ option in StageNow which will write the raw XML to a file. This file can be edited to extract the new XML steps to include in the wifi.xml file as per the example below :

 

Original Contents of wifi.xml:

 

<wap-provisioningdoc>

<!--WIFI-->

<characteristic version="4.4" type="Wi-Fi">

<characteristic type="System">

      <parm name="WiFiAction" value="enable" />

      <parm name="WifiSleepPolicy" value="AlwaysOn" />

</characteristic>

    <parm name="UseRegulatory" value="0" />

    <parm name="UseDiagnosticOptions" value="0" />

    <parm name="UseAdvancedOptions" value="0" />

    <parm name="NetworkAction" value="Add" />

<characteristic type="network-profile">

      <parm name="SSID" value="networkname" />

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

      <parm name="WPAMode" value="3" />

<characteristic type="auth-details">

<characteristic type="encryption-details">

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

</characteristic>

</characteristic>

<characteristic type="key-details">

        <parm name="KeyType" value="Passphrase" />

        <parm name="ProtectKey" value="0" />

        <parm name="PassphraseWPAClear" value="password" />

</characteristic>

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

      <parm name="UseProxy" value="0" />

</characteristic>

</characteristic>

<!--CONNECT-->

<characteristic version="4.4" type="Wi-Fi">

    <parm name="UseRegulatory" value="0" />

    <parm name="UseDiagnosticOptions" value="0" />

    <parm name="UseAdvancedOptions" value="0" />

    <parm name="NetworkAction" value="Connect" />

<characteristic type="network-profile">

      <parm name="SSID" value="networkname" />

</characteristic>

</characteristic>

</wap-provisioningdoc>

 

Modified contents with additional steps to transfer a file via HTTP and install it on the device:

 

<wap-provisioningdoc>

<!--WIFI-->

<characteristic version="4.4" type="Wi-Fi">

<characteristic type="System">

      <parm name="WiFiAction" value="enable" />

      <parm name="WifiSleepPolicy" value="AlwaysOn" />

</characteristic>

    <parm name="UseRegulatory" value="0" />

    <parm name="UseDiagnosticOptions" value="0" />

    <parm name="UseAdvancedOptions" value="0" />

    <parm name="NetworkAction" value="Add" />

<characteristic type="network-profile">

      <parm name="SSID" value="networkname" />

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

      <parm name="WPAMode" value="3" />

<characteristic type="auth-details">

<characteristic type="encryption-details">

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

</characteristic>

</characteristic>

<characteristic type="key-details">

        <parm name="KeyType" value="Passphrase" />

        <parm name="ProtectKey" value="0" />

        <parm name="PassphraseWPAClear" value="password" />

      </characteristic>

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

      <parm name="UseProxy" value="0" />

</characteristic>

</characteristic>

<!--CONNECT-->

<characteristic version="4.4" type="Wi-Fi">

    <parm name="UseRegulatory" value="0" />

    <parm name="UseDiagnosticOptions" value="0" />

    <parm name="UseAdvancedOptions" value="0" />

    <parm name="NetworkAction" value="Connect" />

<characteristic type="network-profile">

      <parm name="SSID" value="networkname" />

</characteristic>

</characteristic>

<!--SettingID=11-->

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

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

<characteristic type="file-details">

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

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

        <parm name="SourceURI" value="http://moto.airsetup.com/2018/ar/Augment-com.ar.augment-v3.3.0-1-30623.apk"/>

        <parm name="TargetPathAndFileName" value="/sdcard/Augment-com.ar.augment-v3.3.0-1-30623.apk"/>

</characteristic>

</characteristic>

<!--SettingID=17-->

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

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

    <parm name="APK" value="/sdcard/Augment-com.ar.augment-v3.3.0-1-30623.apk" />

</characteristic>

</wap-provisioningdoc>

 

After modification, the same process can be used to generate the site-specific profiles as per the instructions above . Each profile will have a site-specific WLAN connection followed by a generic application/settings configuration. Once additional steps have been added to the basic WiFi profile, it will normally be too large to fit into a single barcode so the PC will only receive the first of several barcodes required for each site. In order to create a barcode sheet containing all the required barcodes, follow the manual steps below:

 

     1. In TagWriter, browse to the generated profiles folder (/sdcard/myxml/wifi) and press+hold the required XML file to access the popup menu

     2. Select Display barcode from the popup menu below

 

     3. First barcode will be displayed on screen , press the 3 dot menu in the top right to select Print

 
 

     4. Select Save As PDF and then press the save icon to confirm the filename to save the PDF .

 

     5. PDF files can be saved for each profile and then copied to a PC for printing/email distribution etc.

     6. To stage via NFC bump , select the profile in NFC Writer and it will be immediately ready to bump to another device running StageNow . Note that when the two devices are held back-to-back in order to bump the profile, it is necessary to tap the screen of the sending device in order to push the profile to the receiving device.