Automated License Generator, Manager and Verifier System for Mobile and Desktop Applications

Frequently Asked Questions

licmax
™
offers answers to
frequently asked questions about licensing, getting started, piracy, and services offered. Click on a subject
heading below to view questions and answers relating to your selection. Links throughout the answers will guide you
to further information on our website or from other sources. Should you have any further questions, please consult
our
Contact Us page.

QWhat steps do I need to take at
licmax™ to get a store to start acquiring licenses for my application listed there?

A

Sign up and confirm your registration at licmax™.

Define your product at licmax™. At the completion of this step,
licmax™ generates a unique key (prodDefKey). Treat this key as the secret key for your product. It
is sent as a parameter on the request to fetch license key (/fetchLicKey.html/) as well as verify
license key validity (/verifyLic.html). It also can be used as the secret key for generating hashed
license keys.

Add product instance configuration that belongs to the product
definition above. Here you want to choose the store where your product is listed and enter the ID
assigned to your product by that store (the Store Product ID). Choose values for the rest of the other
fields as you see suitable for your product.

A These terms are used interchangeably in licmax™ literature
depending on the context. In precise terms, "Application" refers to the compiled and packaged code you
have developed and that gets downloaded and installed on your customer's device. "Product" is the
conceptual embodiment of your application as a unique functionality, technology, feature-set and brand
together with all ancillary manifest accouterments such as documentation, logos, trademarks, patents,
marketing, packaging...etc.

QWhat is the difference between "Product Definition" and "Product Instance"
with regard to defining, or creating, a Product/Application?

AIndividual products/applications of the same functionality listed at
various online stores belong to one Product Definition. A Product Instance of the Product Definition
represents your product/application you listed at a particular store to sell there. The Product Instance
is associated with its counterpart at the store through the Store Product ID which the store assigns to
your product/application when you list it there. Each Product Instance belongs to a Product Definition.
Each Instance is configured individually.

AVery little and it is really easy. To verify the license validity in your
application, it can be as easy as this:

Java:

LicValidVerifier lvv = new LicValidVerifier("YLABR", //licKey
"PDVNVCPSTKMAQPPLCNKOZWPUV"); //prodDefKey
if (lvv.verifyValidity() == NOT_AUTHORIZED){
//license for this app on this device is not valid
//handle accordingly
}

These above assume you have the advantage of using a licmax™ Reference
Implementation library. If one is not available for your platform, you may need to implement the system
calls to get the device ID, and the HTTP request to licmax™ for verifying the license. The code
shouldn't be too much however, depending on your platform, and examples are provided in the source code for
the licmax™ Reference Implentations for the platforms already available.

ASometimes depending on the context, these two terms may be interchanged.
However, there is a distinct difference between the two. A License is the right you grant to your customer
to use the application you have developed - a copy of which you have enabled her to download via one of
the mobile stores where you listed your product. Licmax™ provides a service where you can manage the
licenses of your various products. licmax™ maintains descriptive information about your licenses
which you can view and manage on the licmax™ website. A License Key is the unique identifier for a
License. Viewing a list of licenses on the Licenses tab of the licmax™ website, you'll see the
License Key listed with all the other details of a License such as Date Acquired, Device ID, Store, Life,
Product, Customer Email.

AThe Device ID is a unique identifier of the mobile phone, smartphone or
small-device of the customer who bought your application. Most mobile stores use the device's
International Mobile Equipment Identifier (IMEI) as the Device ID they send to licmax™ when
acquiring a license at the time your customer purchases your application. Consult the manufacturer's
instructions to find how to determine the IMEI of a device manually. The licmax™ Reference
Implementations show how to retrieve the IMEI programmatically for each platform provided. Some earlier
platforms don't have IMEI numbers, or don't provide it programmatically. In such case, you can use
whatever unique device identifier the mobile store uses if such, or you can use the unique identifier of
your choice and acquire the license for your customer manually upon sale. Nonetheless, the Device ID used
must uniquely identify your customer's mobile device that (theoretically) no other piece of mobile
equipment in the world will have.

AThe store assigns an ID to your listed product, and sends this ID as a
parameter to acquire a license key when a customer purchases your product. For each application you list
at an online app store you need to configure a counterpart Product Instance for it on the licmax™
site. The Store Product ID uniquely identifies your application at the store and the licmax™ Product
Instance in a one-to-one relationship.

QI don't see the Reference Implementation for my platform. When will it be
available?

AReference Implementations aren't necessary to use the licmax™
service. Any language and platform capbable of making HTTP requests is capable of fetching and verifying
licmax™ licenses. These HTTP requests and their responses are documented in the licmax™
Reference Implementation Guide available on the Developers tab of the licmax™ website. For the
convenience of developers, we try to provide as many Reference Implementations as possible, and will
continue to do so. If the language or platform you need is not available on the licmax™ Developers
tab, please use the Reference Implementation Guide and the Reference Implementation for one of the other
platforms to implement access to licmax™ on your platform.

QI've downloaded one of the Reference Implementations and modified the demo
application for my valid license key, but always get "Not Authorized" back from licmax™. What is
wrong?

AFirst, be sure to sanity-check your parameters manually using the
licmax™ webpages for Fetch and Verify at the following pages respectively: /fetchLicKey.html/verifyLicKey.html
Next check that you are using the correct Product Definition Key and Device ID in both the Fetch and
Verify requests. Be sure you are verifying against the server licmax.com, and not licmax.org. All these
parameters in the demo applications have been contrived for QA testing prior to being posted for download.

QI'm having trouble linking to the Runtime Only downloads. How are they
suppose to be used?

AFor your convenience, compiled jar files or static libraries have been
included with the Reference Implementations we have provided. If you download the full Reference
Implementation archive, or just the Runtime Only archive, you will get such jar file or static library. If
you are developing for the precise platform and version of that Reference Implementation, then you may
link to that runtime jar or static library directly without recompiling the Reference Implementation
sources. If you have problems linking, or are developing for a different platform version, then you can
always rebuild the runtime jar or lib using the sources and project build files in the full Reference
Implementation.

Q Why should I use licmax™ over what is offered by the online
application stores?

APresently, no online app store offers any service for online license
verification. While each has their own offerings for some extent of anti-piracy protection, none of these
mechanisms is as secure against cracking as online license verification. See our white paper on Copy
Protection in App Stores

Additionally, requests for acquiring licenses differ from store to store.
With licmax™ you have a ready-made license generation server capable of handling requests from all
app stores. There are numerous other benefits to using licmax™, such as our unique Fetch License
Key™ service, capability to transfer and decommission license keys, on-demand analytics and view of
all sales activity at all app stores. Visit our pages Features and Why Use Licmax™? for more details.

AUse a Dynamic license key for applications intended to run on smartphones
and/or connected devices (having internet connection). Dynamic license keys are verified online. The
application verifies its given license key by making an HTTP request to licmax™. Use a Hashed
license key for applications intended to run on disconnected devices. The application verifies its given
license key by checking if it is equal to the output of a hash algorithm it applies on a combination of
the device ID and a secret key.

One strategy is to choose Hashed license keys and verify them both online
and offline. Hashed license keys can be verified online just like Dynamic ones. Verify your Hashed license
key online when an internet connection is available, and verify it offline when not.