Restrict Android app to an operator - android

Does anyone know if it is possible to limit the distribution of an Android app to a specific telecom operator in a specific country? for example if I want to sell my app to Verizon customers only?
Thanks!
Frederic

Verizon has its own "sub-store" in the Android marketplace for Android apps (as far as I can tell), and they're also supposedly coming out with their own app store by the end of the year. Here's the sign-up page:
http://promo.verizon.com/how2kit/concept_submission.aspx
In general, I believe that the only way to limit distribution of an app to a specific carrier is to use that carrier's app store (if they have one).
Update: I'm not sure how you could go about restricting download access to an app available in the marketplace, but you could have your app determine the phone's carrier and not allow itself to run if it's the wrong carrier. See:
http://www.mail-archive.com/android-developers#googlegroups.com/msg48701.html

see http://groups.google.com/group/android-discuss/msg/ee236fbfb97a3837
in which poster "TreKing" writes:
You would lose that bet =). In the
developer console, where you set the
country your app shows up in, if you
uncheck all countries, you get a list
of countries to opt in to. If you then
click a country, you can select the
carriers within that country.
As usual dealing with the Developer
Console, this is unmarked and
completely non-intuitive, but it's
there.

You could read out the SIM card's IMSI (this may work) and analyze it.

Related

Deploying an Android app on devices without Play Store account

Big company X provides its employees with Android phones. Those employees don't necessarily own a Play Store account (gmail address required AFAIK).
At the moment, my alternative is to send a link to our .apk file, however the installation procedure might be quite complicated, not even mentioning the updates.
What's the best way to deploy my app to these phones?
Uchiha Madara is right, but it's not very convenient. They can also subscribe to Google Apps for Business ! Besides, if phones are Lollipop phones, you can very easily enable Android For Work, with pretty useful features to controll mass-hardware !
However, it's not the unique solution. You can self-host your apk file as you do, make a webservice and make your app able to communicate with to check updates ! The only problem is to teach users how to allow install from unknown sources (in security settings), which may be hard if they aren't very confortable with Android phones.
Other solution, some companies offer whole turnkey solutions, like PushLink
You could try HockeyApp to allow the users to install the application and know them about the updates.
http://hockeyapp.net/features/
My guess is you will have to use DropBox and they can download it as long as there is Wi Fi of course and ro to the settings > security and check Unknown sources so that it can install the apk from the internet, they can then go to their downloads folder and see the apk there, then install it onto their phones. Hope this helped!
Source: http://www.cnet.com/how-to/how-to-install-apps-outside-of-google-play/
I think the best way to achieve your requirements is using Microsoft Intune.
Microsoft Intune is a cloud-based service that focuses on mobile device management (MDM) and mobile application management (MAM). You control how your organization’s devices are used, including mobile phones, tablets, and laptops. You can also configure specific policies to control applications. For example, you can prevent emails from being sent to people outside your organization. Intune also allows people in your organization to use their personal devices for school or work. On personal devices, Intune helps make sure your organization's data stays protected and can isolate organization data from personal data.

How Google Play maintains the device list?

I wonder if anyone knows about how Google play maintains the device list?
This is my case:
We are developing a NFC APP which at the beginning it will work with only about 10 handsets, we really want to limit and filter by handset model (not only by the manifest).
We want to do this through the Google Play's device manager list, however I would like to know this list is maintained, in principle we would like to use the TAC value to identify each handset, but I don't think GP use TAC as ID.
I have doing some testing, I can see there e.g several Samsung S4s, do you know why is that? and even if I allow all of them in the Developer console, then when I try to download the APP, I get the error, "your device is not compatible".
Lots of smartphones have different variations, for various countries, network providers etc. If you update the playstore to allow/block a device from installing the app it can take a couple of hours to propogate across there servers.
How the list is maintained I don't know, I would assume that when a device is activated onto Google Play, it likely stores the information within the Play Store device listing. Failing that, the OEM sends the information to Google while they are getting approved for Google Play Services. This is only a guess though, I would guess there is no information actually explaining how this list is maintained as developers do not normally need to know.

What demographics are available from Google Play?

I'm in my fourth year at university and I was considering making an Android application as part of my dissertation.
I was wondering, what sort of demographics are available for Apps that are downloaded? e.g. Age, Sex, Location, etc.
The Google Play Developer Console gives you some statistics about your application installs/usage, but it is limited to mostly technical data:
Android Version
Device
Country
Language
App Version
Carrier
So for your purpose it looks like only country and possibly language are relevant. If you need more information you'll have to ask the user (or trick them into telling you ;) ).
In the developer console you have the following statistics:
Downloads over time
Android version
Device
Country (of download)
Language (of the device)
Active installs by app version
Carrier

How to link paid app user account to the system?

I have an issue related publishing the paid app to android market. (My application is internet connection based app.)
If I've put the app to the android market, can user who bought the app pass to anyone ?
How is its security (I mean safe of .apk file) ?
Also, what is payment tool of android market ?
My main point is choosing the best way to link paid user to our system.
Actually I don't know how to link paid user account to my system(by email address or device unique id ?... what is better way ?).
Can you suggest me on this part ?
I really appreciate for help.
Thanks in advance.
the Android Market use Google Checkout for payment. You might want to check if you live in a country currently supported to sale Android application (I've learned the hard way...).
Austria
France
Germany
Italy
Japan
Netherlands
Spain
United Kingdom
United States
etc.
Edit: The list is now much bigger than that. The below link list them all.
https://checkout.google.com/support/sell/bin/answer.py?hlrm=fr&answer=150324
There seems to have some issues with the apk protection (look for android .apk copy on google). As far as I know, user can't pass the app to anyone (except if they crack the drm of course). Average user probably will not do this.

How to prevent application thievery (specific to Android applications)?

I was wondering what the most effective way of preventing people from stealing my application (downloading a copy of the .apk online rather than buying it).
I've spent a lot of time on one in particular (Droidbox) and won't be releasing Sync until I can guarantee that the people who are providing illegal copies of the pro version aren't able to.
Anyone implemented this? I've tried checking my package signature verses an the signature of an unsigned copy but it appears to be the same - perhaps I'm doing something incorrectly here. I'm unsure whether people actually distribute the signed .apk in which case I don't think signature validation would work to begin with...
Please note, this question is specific to Android Marketplace Applications - the difference being, application delivery is out of my hands and I have no way of linking between a legitimate purchase and an illegal download.
Now there is the new Google App Licensing available. For deeper information read about it in the android developer blog.
A short summary: Google provides a library that makes a inter process call to the market client on the phone. The market client will then ask the google servers if the signed in user has purchased the app and forward this answer to you. There should be a public key in you developer profile that you need to encrypt the connection to the google server to prevent spoofing of answers. You also provide a application and device unique id with the query to make it impossible to forward approved queries to another device and build something like an licensing proxy with one bought copy forwarding the IS LICENSED answers to other devices.
At the moment this service looks secure enough to protect even the more valuable apps in the market. I will give it a try and maybe come back and leave some more informations after I used it a little bit.
If your app is really popular like an EA game or something this wan't stop users from hacking it. To hack the app somebody has to buy it, then unzip the apk, and edit the bytecode of your app to think that the market send a correct answer. The new byte code can be packed into another apk and can be installed on every phone that allows side loading.
To make this harder you can always try to obfuscate your apk and make your bytecode hard to understand.
There is a single, useful connection between an application buyer and the developer through the marketplace, the forwarding email address provided by google to contact the buyer.
Utilizing the integration callback setting to send buy information to your own server, you can use PHP to send a unique identifier (registration code) to the buy via email (real time as the callback is shipped from google during a purchase. The user then uses this email to register their software using the unique identifier that is then linked to their android ID (or google account username) and the software is "activated" and guaranteed to be legitimate.
Obvious Questions
Why is this a suitable solution when it requires the user to read email? Our market are those people who are capable of buying an application using an android device. By using an android device, it is implied that the user has a google account which implies they know how to use email.
How do I use the email with the unique identifier with my application? Create a content handler in your application that handles something like "myactivator://uniqueid-or-something" which causes your application to communicate to your internal server that keeps tabs on activations. Embed this as a link in the email that the user can click on.
How should I generate the unique identifer? I'm going to use the email somehow - I'm fairly confident google has already made it unique enough to disallow any feasible method of contact information selling.
What about people who have already purchased the software? A lot of options here - none ideal or terrible.
Send emails to all previous buyers
Allow users to activate by typing in their order number (can be obtained by logging into checkout.google.com.
Why bother?
Because some of us put a lot of time into applications and saying "you should just accept pirating" is a slap in the face.
The people that are lax enough to use pirated copies of your application to access their DropBox are probably using their DropBox for piracy anyway. Forget those people. Let them go. Yes, it's a huge number of people I bet, but let's face it, those people were never going to pay you anything anyway. Focus on the parts that you can control, and forget the rest.
Focus on the Android users that use DropBox for their work, for their businesses, for their own code, for their finance, for their thesis, and/or for their private family pictures. 95% of those people, that have something of value in their DropBox, and that want it kept private, are going to want to buy your application (assuming it's good enough for them).
Let me use this analogy:
When it comes to hiring a locksmith to put a lock on your home, do you hire the guy that looks the part and takes $150 an hour, or do you hire the shady guy that is willing to sell you a stolen lock to put on your front door?
Release your own illegal copy in the best known forums and have it disable itself after a week and showing a message like
Thanks for stealing... I make my living with programming this app. The x Dollar won't hurt you and I could by my next meal and go on making great updates for you.
I think this is the only thing that you can do about it. People will always find a way to copy your app and all countermeasures will only disturb the users that paid for the app.
The people copying your app aren't your customers and they never will be. Just see their use of the program as a kind of viral marketing. At least they are talking about your app and maybe some of their friends will then buy the app.
General shareware advice here - license the software to the individual. i.e. provide a license key that is personalized to their username. They'll be much less likely to distribute a key if it's got their name on it. You can probably automate the backend fulfillment of the order, to provide custom keys. Have your "Pro" version operate in trial mode until the name/key are entered.
Don't leave your computers so that someone can steal your applications from there.
Or wait.. Did you meant you don't want others to copy your software? Then.. not publishing it in the first place is likely your best option.
A bit related link: http://news.cnet.com/8301-27076_3-20003120-248.html
You neither have any mechanism to estimate amount of illegally copied software. Enjoy your attempts from stopping the rain even though entities bigger than you have attempted and failed.
There is a new tool in the wild that seems to good to be true:
Automatic Application Licensing from Keyes Lab.
I haven't tried it yet but if this works it sound like something you want to use in your high priced android apps.
If anybody tested it leave a comment or edit my answer with personal feedback.
I have the same issue. I recently found a number of my paid apps available for free download on this site: https://dlandroid.com/
I asked them to remove my app APKs, but I'm sure there are many other similar sites. Presumably they have a rooted phone which gets one valid copy of the app from Google Play, then uploads it onto their web site to distribute to all and sundry for free.
You could spend endless amounts of time ensuring that there are no pirated copies of your apps on the web, or implementing complex piracy protection measures, which would most likely make things less convenient for your genuine paid users. But I guess in the end, you have to be prepared to make a trade-off and accept that a certain level of loss is inevitable, and hope that most people are honest and get your app through the proper channels rather than risk malware infection by going to dodgy sites like this.

Categories

Resources