Remote activation for offline devices

Introduction

Offline devices do not allow the comfort of the preactivation from Sygic license web portal or the automatic real-time activation on device. With offline devices it is necessary to place a unique license activation code directly on device with some kind of preinstallation procedure.
This typically involves building a script or an application with a temporary internet access and access to device id, which reads ID of a device, performs activation operation communicating with Sygic server and finally places the activation code on a device.
We support the activation part of the process with the following 3 options:

  1. activation php request
  2. activation library
  3. activation application

1. Remote activation with PHP request

You can develop your own tool for remote activation of the licenses using https/php request which allows you to connect directly to sygic server and perform activation operations. The requirement is that each device is having established internet connection.
Please note on August 2, 2016 we have migrated business license system into the new generation version where product id's have different values than before so you might need to update your activation script to use new values. Besides we are also changing service URL, but for the compatibility reasons we still keep the old one till December 31, 2016. For details check the Backward compatibility paragraph bellow.

Request format

The request to be used is in the following format:
https://api.bls.sygic.com/partners/activate.php?type=2&SD_password=%s&product_ID=%s&device_code=%s&description=%s
Replace %s sign in the request above with a real SD password, Product ID, Device Code and Description (as specified in the request) to assign a license to your account.

  • SD password is the password you can generate through the Business License site. Check Password retrieval.
  • Product ID is a specific number, that your Sales Account Manager will give you on request.
  • Device code is a unique code identifying your device by Sygic Navigation application. Check Device code retrieval.
  • Description is optional. It can be a number or a name used to identify the owner of the license.

Activation process

You can integrate the php request into your own tool or even you can execute it via a web browser

 
As a response to the request sent to the Sygic license server, an activation code will be generated (e.g. "cc20fean7d0d" like on the picture below). Please, save it as "license.txt" file and store it in the same folder as the .mlm file that is located in the map folder on your device. Now you can launch the navigation on your device and it will read valid activation code for the map.

Protocol details

The following are the possible outputs of the service

topic Http Status Response
successful activation of a free license 200 OK1:activationcode
successful reactivation of an already activated license 200 OK2:activationcode
no more free licenses 200 ERROR:no free SD license on this product
wrong service type 200 ERROR:Incorrect service type
wrong or expired password 200 ERROR:Incorrect SD_password
missing product id in the request 200 ERROR:Missing product_ID
referring to non existing product 200 ERROR:Non existing product_ID
referring to incorrect product 200 ERROR:Incorrect product_ID
missing device code in the request 200 ERROR:Missing device_code

 

Backward compatibility

We have this protocol change from August 02, 2016 on.

topic before August 02, 2016 after August 02, 2016
url http://www.sygic.com/partners/activate.php? https://api.bls.sygic.com/partners/activate.php?
passwords 8 hexadecimal numbers 8 alphabet lowercase characters
protocol security http https
password retrieval not available anymore through www.sygic.com/partners through bls.sygic.com tab Orders button Remote activation
product ids retrieval not available anymore through www.sygic.com/partners through bls.sygic.com tab tab Orders Remote activation

 
For backward compatibility we keep the old URL link http://www.sygic.com/partners/activate.php? valid till December 31, 2016.
However for new remote activations you need to use new passwords and product id's.

2. Remote activation using library

This remote activation type means that Sygic provides you with the library, through which you can activate navigation licenses in an automated way.
You can integrate that library into your device side application, which then can trigger the activation functions from the library.

The activation is called from your application, which includes Sygic activation library and it is important that there is an internet connectivity during the activation call. The activation call requires a password and the location of license file. You can retrieve the password through logging to your Sygic Partner account. Check Password retrieval chapter bellow.
Calling the activation function consumes one licence from your account. Make sure you don't call the activation function twice on the same device as it can consume two licenses for one device.

Activation flow

We provide RemoteActivation.dll. You need to include this dll into your application project, and include the extern declaration

extern "C" int RemoteActivate(WCHAR* strMlmPath, WCHAR* strPassword);

The function to be called is RemoteActivate(string pathToMlm, string password).
It is important that mlm file exists on device (i.e. navigation is fully preinstalled).

3. Remote activation with exe utility

Sygic offers the utility RemoteActivation.exe, through which you can activate navigation licenses in an automated way.
This type of activation is suitable for mass activation. The activation utility is called from your application with a single activation request per device.
It is important that there is an internet connectivity during the activation request. The activation request requires a password and the location of license file. You can retrieve the password through logging to your Sygic Partner account. Check Password retrieval.
Each activation request consumes one licence from your account. Make sure you don't call the activation twice on the same device as it can consume two licenses for one device.

Activation process

You first need to copy the exe on your Windows device.
Then you can call the executable with a command line or using a script in the following form:

**RemoteActivation.exe mlm_file passwd**

where:
mlm_file is the full path to the license file (mlm file)
passwd is the password obtained from your partner's account

Example:
RemoteActivation.exe "\Storage Card\Maps\Europe.mlm" BF19EFFF

For the operation success it is important that mlm file exists on device (i.e. navigation is fully preinstalled).

Activation password

In order to obtain a password for remote activation you need to enter the Business License System site through your login credentials. If you do not have the login or you forgot it please contact your Sygic sales representative.

Password retrieval steps

  1. Go to the site bls.sygic.com
  2. Go to the Orders tab and Select your product of interest subject to remote activation
  3. Click on the Remote activation button
  4. You will obtain the password, product ID and the template for remote activation requests generated on the screen

Retrieval of device identification

The device code (or device id) is the unique identification of your mobile device, to which licensing is bound. For correct activation you need to read the device code properly. This sections describes two methods how to do it.

There are 2 ways how to get it automatically:

  1. Via our SDK using the function GetUniqueDeviceID.
    It is available on each version of the Sygic Navigation having enabled SDK.
  2. Via mapStatus.csv file.
    It is only available for Sygic 2D version from the version 15d or higher.
    In this case the Fleet navigation doesn't have to have SDK enabled.

Retrieve device code via mapStatus.csv

Note: the process is only supported for Sygic 2D version.
You can find the file under the subfolder .../Drive/Windows

With the first launch of the Sygic Navigation the file mapStatus.csv is created and the device code is stored as 4th parameter in the first line.
So you can programmatically read out this parameter from the file. The example is below.