views:

28

answers:

2

How do I ensure that my mobile application runs only on the mobile of the user who bought my app?

Thanks.

+1  A: 

An idea:

  1. Create a "Provide a passkey to register/unlock application"-functionality.

  2. Ask the user for his phones IMEI number, at the same time as you charge him for the application

  3. Encode his passkey with the IMEI number.

  4. Each time the application starts, make sure the application runs with a key, compatible with the current phones IMEI number.

aioobe
+1  A: 

The task is no different from protecting an application on any other platform. The solutions are:

  1. Hardware-bound license keys. In case of smartphones this is IMEI number (on GSM device) or corresponding ID on CDMA devices. You generate the key which includes the IMEI or it's CRC32 or other hash, and you check this hash on each application start.
  2. Activation. This means that the application must connect to the server to register itself and then, on each start (or in certain interval) connect to the server to confirm it's validity. Activation involves binding to hardware as well, but in case of activation the license key itself doesn't need to be hardware-bound. Activation works great in case of internet-connected applications. If you develop the game or productivity tool, though, then requirement to be able to connect to network might distract customers (I never install Android applications that should not go to network but claim to need it).
  3. Use of certain hardware which can't be easily duplicated. This is certain kind of binding to hardware as well. However this method is not quite applicable for general-purpose smartphones.
  4. Charging for service, not for application. This is good for applications which are client side of some internet service or so. If you have such application, you authenticate the user by his login/password and charge for each (or some) operation on the server. Then the user pays and you become interested in spreading your application instead of copy-protecting it :)
Eugene Mayevski 'EldoS Corp