Skip to main content
Version: 3.26.0 (latest)

Face SDK licensing

supports all major platforms and is available on flexible license terms. Platform licensing or fine-grained licensing of individual features is possible upon request.

We offer the following licenses:

If you have any questions, contact us at face@3divi.com .

License activation

Online licenses

  • The license directory is a default online license working directory. You can prepare another working directory – all applications that use 3DiVi Face SDK must have read/write access to it. Copy the log_params.xml and net_params.xml files to that directory from the license directory.
  • Get the license file from the online license server.
  • Copy the license file to the online license working directory and rename the file to 3divi_face_sdk.lic.
  • When you call FacerecService.createService, provide the path to the online license working directory in the license_dir parameter (or keep it empty if the default online license directory is used).

While any application(s), which use 3DiVi Face SDK with an online license, are running, the license file will be regularly updated (in the background). The license update includes the license renewal and, if necessary, the hardware signature change.

The network settings used for license updates are stored in the net_params.xml file:

  • timeout – timeout in seconds
  • use_system_proxyyes or no. Set yes to use system proxy settings
  • no_proxy_for_serveryes or no. Set yes not to use any proxy
  • proxy – Set url:port to use that proxy if both parameters use_system_proxy and no_proxy_for_server are set to no

Offline licenses

To activate the license on Face SDK Licensing Portal, follow the steps below:

  • Unpack the archive with the distribution package in any directory on your device (See Getting Started]).
  • Generate/get the 3divi_face_sdk.lic file with the information about your hardware required for licensing:
    • [Windows/Linux] Run the get_license utility from the bin folder on a target PC/device. As a result, the 3divi_face_sdk.lic file will be created in the bin folder.
    • [Android] Call the FacerecService.getLicenseState function and get the LicenseState.hardware_reg field (See how to get a Hardware ID in Android Demo). Send your Hardware ID to your personal manager. Your manager will send you the 3divi_face_sdk.lic file.
  • Log in to the Face SDK Licensing Portal. If you forget your password, you can reset it here.
  • Click Face SDK in the menu on the left.
  • Select the license file generated in the licensing portal by 3DiVi (see the image below).

Select the license file from the list of created licenses

  • Click on the license name. You'll see a new window with detailed information about the license file.
  • Click the Upload file button.

Upload the license file to the Face SDK Licensing Portal

  • After that, you'll see the "Activate FaceSDK license" window. Click the Upload button to upload the 3divi_face_sdk.lic file created in the bin folder.

Activate the license file

  • Click the Generate button to generate the final license file locked to your hardware.
  • Copy the license file to the license directory and rename it to 3divi_face_sdk.lic if necessary.

License locking

Depending on the locking type, some licenses let you use Face SDK only on specific devices. Currently, the following locking types of Face SDK licenses are available:

  • No locking – Face SDK license can be used on any device.
  • Locking to a platform – The license can be used only on devices with a specific platform (Windows/Linux/Android/iOS).
  • Locking to an application ID – The license can be used only as a part of a specific application (available on Android and iOS).
  • Locking to a hardware ID – The license can be used only on a specific device (available on Windows, Linux and Android).
  • Locking to a USB token – The license can be used only on a device with a plugged-in USB token (available on Windows and Linux).

Lock to a Hardware ID

Locking to a Hardware ID lets you use Face SDK only on a specific device. The license is locked to a device during activation. Online licenses are automatically locked, when the library is launched for the first time. If you use an offline license, get a Hardware ID on a target device before activation. See how to lock your offline license to a Hardware ID in Offline Lisenses.

You can transfer the online licenses locked to a Hardware ID to other devices. However, the license can only be used on one device at a time. To transfer the license, download the license file 3divi_face_sdk.lic from your personal Face SDK account once again and move it to the license folder on the new device. Do not copy the license file from the previous device because in this case an error will occur during re-activation of the license.

Lock to an Application ID

You can bind the Face SDK license to your mobile application. In this case, end users of your app won't need to purchase or activate the license themselves. To bind the license, you need to specify the application ID (android_app_id for Android or ios_app_id for iOS), which is generated based on the app's package name and signing key.

info

The application ID must be obtained from the release build signed with the production key. If the package name or signing key changes, the appID will also change, and the license will become invalid. This also applies to cases where the app is re-released or transferred to another store, if the signature changes.

To obtain the appID, call the method FacerecService.getLicenseState and retrieve the value of the android_app_id or ios_app_id field in logcat. Alternatively, you can enable license debug mode by setting license_debug_log: true in the configuration file conf/facere/config.json. The identifier will then be printed to the log during SDK initialization.

Use the obtained identifier when purchasing the license. After that, add the license file to the application. The license will be valid on all devices running the corresponding platform, provided the appID remains unchanged. A single license is valid for one application only. Different apps—even with minor changes to the package name or signing key—require separate licenses.

Publishing for Google Play

When publishing an Android app on Google Play, keep in mind that Google uses the Signature Lineage mechanism. This mechanism helps manage the history of signing keys and ensures compatibility between different versions of the app during updates. However, Signature Lineage only works if you use Google Play App Signing and can affect the resulting appID.

Publishing with Signature Lineage Enabled

  • Build and upload your AAB bundle to Google Play Console.

  • Enable Google Play App Signing with Signature Lineage.

In this case, the application signature will be managed by Google and may be preserved when rotating keys.

To correctly bind a license, you need to get the appID on the final build, already signed by Google, via getLicenseState or via license debugging.

Publishing Without Signature Lineage

  • Sign the app with your own production key.

  • Disable Signature lineage in Google Play Console.

  • Upload the AAB bundle and your own key — Google will use it without modifications.

In this case, you have full control over the signature and, therefore, the stability of the appID.

tip

To better control the generation of appID, it is recommended to sign the application with its own key and not use Signature lineage.

Lock to a USB token

A USB token is a device that can be used instead of a standard license file. Just like a license file, a USB token stores the information about purchased Face SDK components. However, a USB token is not linked to hardware signature. All you need to do is to plug your USB token into your device. A USB token is copy-protected. One USB token can be used by one process on one device. Therefore, if you want to run one more process on another device, you have to purchase one more USB token. To order a USB token, contact 3DiVi Sales: face@3divi.com

Support for USB tokens was added in the following distribution packages:

  • Linux x86_32
  • Linux x86_64
  • Windows x86_32
  • Windows x86_64

Get the serial number of the USB token

  1. Connect the USB token to your computer. Make sure that only one USB token is connected.
  2. Run the update_hwkey utility (See Using the update_hwkey utility). As a result, the console will display the serial number of the key, for example, senselock000000000000000b. If the USB token is not available on Linux, run the update_hwkey utility as superuser (command: sudo update_hwkey).

Activate a license

  1. Log in to your personal account and select a license in the My licenses section on Dashboard.
  2. Enter the serial number of your USB token in the Activation Information section (see Get the serial number of the USB token]).
  3. Download the license file 3divi_face_sdk.lic from your personal account.
  4. Connect the USB token to the computer and copy the license to the USB token using the command ./update_hwkey update 3divi_face_sdk.lic.

Use the USB token

To use the USB token, select one of the options below:

  • In 3divi_face_sdk.lic, replace the standard content of the license with the line hardware_key_serial <USB token serial number>

Example:

hardware_key_serial senselock000000000000000b
  • Specify 0x436e9514-hardware-key-serial-<key> in the license_dir parameter of the FacerecService.createService function, where <key> is the key serial number.

Note: If a USB token with the specified serial number is not found, you'll see the list of all available USB tokens with their serial numbers in the text of an exception thrown by FacerecService.createService.

Use the update_hwkey utility

To work with the USB token, you can use the utility update_hwkey, included in Face SDK distribution. The utility lets you read and update the license on a USB token, as well as change its mode of operation for compatibility with Linux/Windows.

Available commands:

  • update (command ./update_hwkey update 3divi_face_sdk.lic) - Updates the license on the USB token.
  • read (command ./update_hwkey read 3divi_face_sdk.lic) - Saves the license from the USB token to the 3divi_face_sdk.lic file.
  • setHID (command ./update_hwkey setHID) - Switches the key to Windows compatibility mode (the key in this mode won't be available on Linux).
  • setUSB (command ./update_hwkey setUSB) - Switches the key to Linux compatibility mode.