How to prevent sharing my Paid Application? - android

I have an Already paid App in Playstore. then I want to check user already paid in play store or not. If the user installs apk from other Resource(like Bluetooth, Xender.etc) how to prevent those users who not paid or not Install From Playstore.

It Totally Depends on you and your phone!
Let me Explain You Clearly:-
There is a feature in most of the Paid Third-Party Apps which is called license verification. This is how this whole process works:-
If you buy an app, at the first launch it will require an internet connection, then it will verify a license from play store which you buy at the time you buy the app. Then if the verification is successful the app will launch. But if you share an app with a user who didn’t purchased the same app and tries to open, it will say you to buy the app.
There are another methods by which you can bypass the verification. To do that you will need to root your device (which is very risky) and do some editing with that app(a little complicated).
So Indirectly Yes it can run
But the Direct Answer Is NO.!
Source - My Experience!

Related

Understanding Android Application Licensing

I am trying to understand the Android Application Licensing. I read most of the documentation on the android website about this subject, but I'm still confused.
Here is my dilema:
I create an Android app and I'm deciding whether I want to release it as a paid app or in-app billing. Now, I'm currently looking into releasing the app as paid. My understanding is that I can submit the app to android google play ( or market) as paid and specify the price of the app and that's it.
However, I see that google provides the Application Licensing service which seems to allow Google to control a list of users who purchase the app and verify that the user has indeed paid for the app. Otherwise prevent users who have illegally installed the paid app on their devices if they didn't purchased it. Please correct me if I'm wrong so far.
Now, it seems that when the application is first executed, it will use Google's application licensing to check whether the user is authenticated. What will happen if the user does not have internet connectivity? Will the app still be able to launch or will the app require internet connectivity in order to run every time?
Thank you
Andy
Of course checking the license need internet connectivity.Android is doing this using the google play services client in your device.
But the decision making on allowing user access is given to us.We can implement the Policy interface, There we get two methods, processServerResponse() and allowAccess().
processServerResponse(), lets us to preprocess the response we got from licensing server like storing the licensing information locally etc.
allowAccess() decides whether to grant the user access to the application.In this method we can decide whether to allow the user access in case of no internet connectivity.(some policy like, user can gain access 5 times without internet connection etc.)

Security against sharing my app

I have a simple question as to how can we prevent the user to share an apk file from his/her device to others.Like if i put a paid application in the market and a user downloads it . If its downloaded how can i be sure that he doesn't transfer the application to other or puts it in some third party market . I need to find some security measure to do it for my application.Is there any permissions that needs to be added or any third party security .
All the answers are appreciated.
As I came across this link. How can i prevent LVL
The Google Licensing Manager is what you should use which can be found at http://developer.android.com/google/play/licensing/index.html.
This uses some code that you can put at the start of your application that uses the licensing API to check that your app is licensed. This is done by checking that the account that the user is using on their device has paid for the app via Google Wallet and that a refund has not provided. If it is found to have been paid, then you can let the app run, otherwise you can display an error to the user informing them that it is not licensed. Most apps that do this provide a button that will launch the play store at your app to let them download the legit version.
This doesn't directly stop users copying the APK or publishing it on other markets but it ensures that app cannot be used unless has been purchased by the current user on the Google account they are using.
Although there may be ways to circumvent this check but this is probably the best and most reliable way.
Hope this helps.
You can do something like verify user on your server when app launched, but you cannot force user not to share .apk by technical means. Apk can be easily copied from non-rooted device, and there's absolutely impossible to prohibit user to copy .apk from rooted device even if Google adds some copy protection in future.

Copy protection and pay per installation on different device

I want with my app such that user can not copy it. and user must pay for an app when user install on different mobile.
Once user paid app then it should work only in one mobile. when user install the app with same login then user can not install the app on different mobile. For this user need to pay for this.
How to achieve this.
You cannot do this through Google Play's paid app feature.
At best, you can make your app free and have an in app purchase that the user must make, which ties the device IMEI or MAC Address to that purchase on a server you own. That way, you can make users buy the app everytime they install it on a new device.
The copy protection feature is now deprecated, and you can't use it. Additionally, any user with a rooted device can pull your apk off their device. This is outside your control.

How to limit the installation of Android App only to the premium user.

Description : I have Tracking Application , I am posting it on Google Play . I have two version of App one is the free version and other one is for premium user.
In Free version any once can download my app from Google play..
For premium version: I will give license to App for the particular User who buys it..
Problem: I don't want my premium version app to be shared to other device. I want premium version app to be installed to that person who buys it and I am giving the domain to the premium user who can track his/her record from web page...
Can anybody tell me how to maintain this records so that i can restrict my premium version app to be get installed from other device...
Some solution which i thought is : I will maintain an IMEI number along with license code when user install the app , I will block that license ..
Any other solution please suggest me...
Please don't do this. This is inconsistent with user expectations.
Google Play allows you to release your application (or a version of it) for a fee. Google takes a transaction fee from this, and you receive the rest. In exchange, the user is able to install the application on any device their account is linked to.
Adding arbitrary restrictions like the ones you propose will frustrate users; I would strongly advise you to avoid it unless you have a very compelling reason to implement them.
Edit: as has been pointed out elsewhere in this thread, you can use DeviceLimiter from the licensing API. I would still advise against this for the other reasons above, but it is possible.
You can allow anybody to install it but ask for login. In that way only registered users can use that application.
Give licence number for only whom purchased the application. Ask and validate the licence number during the first time login.

How to distribute updates to users of pre-installed paid Android App?

I wrote a small Android app. It is published on Google Play as two distinct versions
a free demo version with limited features
and the paid version without limitations
Now I have been approached by the distributor of a tablet who wants to pre-install my app on his device. Obviously, I want the owners of his product to benefit from later updates for my app.
Is there a way to pre-install the paid app on the device and still allow free updates to the app?
Thanks!
The pre-installed app has to be free. This comes verbatim from the Google Play Support site:
Unpublished Apps
Existing app users will still be able to receive app updates, even if
you unpublish your app. If you don't want new users to find and
download your app but still want to provide updates to your existing
users, set your app to Unpublished in the Developer Console.
Updating system apps
The user’s system apps (including any pre-loaded apps) are shown in
the My Apps section of the user's device in the Google Play store as
soon as an application with the same package name is uploaded to the
Google Play Developer Console, even if the application is unpublished.
Google Play can manage updates to preloaded applications, provided the
following conditions are met:
The preloaded app needs to be in the system partition
The preloaded app needs to be free
The preloaded app needs to be signed with the same signature as the app published in Google Play
The Package Name of the preloaded and updated app needs to be the same
The Version Code of the updated app needs to be greater than that of the preloaded app
This should happen automatically as long as you use the same signing key and package name.
You can test this and verify by doing the following:
Install the .apk file that you will be providing to the distributor
(lets call this 2.0).
Now upload 2.1 to Google Play (same signing key and package name)
When the user's automatic update checking runs, or when the user opens the package in Google Play, the update will be offered and work great.
The only case I have seen where this doesn't work is with cross-licensing. For example, if I license an App through the Amazon appstore, I will see updates in Google Play, but attempting to update will give me a "not paid" or "buy now" error.
In a common LVL implementation, if a user is not licensed, app should hang at start page and prompt user a dialog pointing them to purchase URL (can be opened via either Google Play client app or web browser).
For a paid app (LVL integrated and published via Google Play), if end user want to use it and keep receiving updates, he must use his Google account purchase it via either Google Play client app or Google Play web version.
The normal procedure to get paid app via Google Play client app is:
Purchase
Download
Install
Is there a way to pre-install the paid app on the device and still allow free updates to the app?
You can send them app-pro.apk file and let them install it without purchasing it first, however, when the app is first opened and in case that license check (requires Google Play client app installed on end user's device) is failed, the purchase dialog should popped up and ask them purchase it. Once the user has purchased it and open the app again and pass license check, he can start using it normally (with ability to update).
The answer is Yes, you can let user pre-install paid app, but in order to use it normally and keep receiving updates, the user must purchase it anyway.
I'm looking for solution for the same problem, and it appears to be impossible.
But I think I have a workaround:
Make your app free, with limited functionality, and offer advanced features ("pro" version) with in-app purchase.
For the in-app purchase version you can have a second licensing method. I'm not sure if it's allowed by Google Play terms, but technically this way you can support these two kind of users, and still have them update automatically through Google Play.

Categories

Resources