Face SDK licensing
We offer the following licenses:
- By activation type:
- By locking type:
- Application ID – Bound to your iOS or Android app
- Hardware ID – Bound to hardware signature
- USB token – A device used instead of a standard license file
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
andnet_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 thelicense_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 secondsuse_system_proxy
–yes
orno
. Setyes
to use system proxy settingsno_proxy_for_server
–yes
orno
. Setyes
not to use any proxyproxy
– Seturl:port
to use that proxy if both parametersuse_system_proxy
andno_proxy_for_server
are set tono
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 theLicenseState.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 the3divi_face_sdk.lic
file.
- [Windows/Linux] Run the get_license utility from the bin folder on a target PC/device. As a result, the
- 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.
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
.
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
- Connect the USB token to your computer. Make sure that only one USB token is connected.
- 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 theupdate_hwkey
utility as superuser (command:sudo update_hwkey
).
Activate a license
- Log in to your personal account and select a license in the My licenses section on Dashboard.
- Enter the serial number of your USB token in the Activation Information section (see Get the serial number of the USB token]).
- Download the license file
3divi_face_sdk.lic
from your personal account. - 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 linehardware_key_serial <USB token serial number>
Example:
hardware_key_serial senselock000000000000000b
- Specify
0x436e9514-hardware-key-serial-<key>
in thelicense_dir
parameter of theFacerecService.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.