am looking to write an App which will store the fingerprint of the people using it & later use it to authenticate them. Now, this App will be placed in a public place, and so there will be thousands of users. So, I need to store that many fingerprints. I tried a simple App with the Samsung PASS SDK, and a Samsung tablet with fingerprint recognition built in. It worked, but looks like it is restricting to three fingerprints only. So, a maximum of three fingerprints can be saved & authenticated with, is what I see. Is this true? Is it possible to save thousands of fingerprints & use them in the App? Or is there any other company (other than Samsung) which offers this capability?
AFAIK, this problem is a (totally intentional) limitation from the manufacturer (such as Samsung, Apple...). They have done their job: prevent that biometric data doesn't leave the phone. SImple as that. I don't know if there is any "illegal" method to retrieve that data to work freely with it.
Maybe you can try another approach: A small device with Linux (such a Raspberry Pi if you don't mind the desktop speed) with a USB fingerprint reader attached
Related
maybe someone know , samsung have a powerfull core with name KNOX SDK.We have application which based on this sdk. And we are looking a way to do same application without knox sdk. But we stuck with simple function like kiosk mode. This mode not working if device owner is not setted for application (for me it's hard to understand) All what i found - it's this way :
This way is correct if im testing application myself. But when time is come and we will need to install this application on our 100-200 devices , then this way looks bad . Every device to do factory reset, and adb commands etc.
So question :
I'm sure there are should be a way to do this offically. But i can't find any info about this. Maybe some one know how to do this ? Please help. I'm sure i'm missed something somewhere. :)
You can get information about the ways to provision device here. They include:
QR code
Managed Google Play Accounts
Google Account
NFC
I've wrote an article where I've described provisioning with QR-code here. We've selected this way for our Kiosk application as the most optimal one, because:
zero touch enrolment works only on a small subset of devices;
NFC provisioning requires another device with special app;
Google Account requires having and managing this account.
On the other hand QR-code works almost on all Android 7.0+ devices ("almost" because some vendors disable this in their custom ROMs) and is easy to setup for end user.
But when you need to install it on multiple devices (and it's some internal app, so you do it yourself, rather than end user) Google Account can be more appropriate.
In production, you'll want to provision your dedicated devices from the factory reset state (on the initial blue screen) using NFC, a QR code, or if supported, zero touch enrollment. NFC can be used from another Android device using an app such as the NFC provisioning app. A dedicated NFC card can also be programmed using an app such as NFC Tools. Google provides provisioning instruction on their TestDPC github repo. EMMs will also provide instructions for their DPC app. Using Android Management is usually a better alternative to TestDPC for production deployments under a 1000 devices. Additonal provisioning options and increased API usage limits are available if you're part of the EMM Community.
I want to know if I can develop an application that users touch the screen and their fingerprint get scanned and registered. If it is possible, is there any library or sdk to store and retrieve and detect finger prints.
No, scanning fingerprints by touching the screen would be an hardware feature and is not available on any of the common phones which people use.
You can use home button fingerprint scanners but I would not suggest going that route as number of people in possession of an android device with such feature is scarce.
So, to clearly answer your question - No, not possible. Not yet.
Edit:
As not many devices come with Fingerprint scanning hardware modules, it might not be a good idea to implement app lock and unlock using fingerprint. However, if you want to do it just for devices which come with Fingerprint scanning ability (mostly Samsung, in case of android), you can check Samsung Pass SDK
Pass SDK allows you to use fingerprint recognition features in your application. With Pass SDK, you can provide reinforced security, since you can identify whether the current user actually is the authentic owner of the device.
I'd like to stress once again that scanning fingers using screen (as you have asked in your original question) is not possible and implementing home button fingerprint scanning is also not a very practical way to go if you are not using it for financial transaction authentications.
I'm making an Android app that is used as POS in some business. In order to gain attraction the app is given with the phone, an Internet line and the app. I want to restrict phone calls, whatsapp, SMS and so other. I want the phone to boot directly in my app.
I was looking into Cyanogenmod but couldn't find any information on how to do this.
I mean, isn't it my hardware?
EDIT
I'm open to use other OS.
My device is a Samsung Trend initially.
I've read that you can replace an .apk and start your own app instead of the android menu (I know the user can then change the .apk, so still, it seems the better solution, anyway I couldn't find any information on how to do this)
I'm not 100% clear what you're asking for (you're giving away an entire phone with your app!?) and you didn't mention the phone model or Android version you are using, but there are apps out there which allow you to restrict a phone's ability to run or access certain features. (To find more, just search the Google Play Store for "kiosk".)
Android 4.2 on tablets introduced multiple user accounts, which were expanded in Android 5 Lollipop to phones with "profile accounts", which can be used to restrict access to apps and services. Screen pinning is another feature you can use to lock a particular app to the screen so that it can't be removed without entering a password.
It is your hardware, and as such you can also take more extreme measures by modifying the Android frameworks directly to restrict functionality, by say, removing the dialer. But if you're actually giving away phones with your app, there's always a possibility the new owner will restore the functionality and/or replace the ROM completely.
I want to control installation of my app on each device by sending its ANDROID_ID to a server and control it there. But according to this link in android developers blog this isn't a suitable approach to do that.It says:
the requirement is to identify a particular installation, not a physical device. Fortunately, doing so is straightforward.
I want to know how this way is possible for my needs?
Edits:
let me explain this more clear. I want to get user a registration code and let the user to install my app on 3 different devices by using this code and control this by a server.
First of all, on rooted devices there is not much you can do. When one tempers with the ROM he can make two different devices identical: every API call aiming at finding a difference can be altered to return the same value. So if you want a solution that is absolutely safe, you're screwed.
With normal users seeing the problems in the Android API, I would suggest a hash of every device identifier you can find: IMEI, IMSI, ANDROID_ID, MAC address, Device type, manufacturer... This way you will surely grant 3 installations to normal users.
It's always better to have some free-riders than to have angry customers who cannot install the app on 3 devices because of some Android API bug that gave them the same device ID for their devices.
I want to test my android app on a phone. I do not have an android phone so I was going to purchase one. Question, I can get a phone on eBay etc without a contract will this work to test my app? Or must it be an unlocked or rooted phone? Can I install and test my apps on a phone that has not been unlocked and does not nave a contract?
Ordinarily you can develop applications (but not hack on android itself) on any android device intended for the average consumer.
HOWEVER there may be some difficulty in setting up a user account to be able to do anything at all on the device without putting a (compatible?) sim in it.
A little web searching is showing two potential solutions - one which appears to require root is to manually change the settings database and thus skip account setup.
Another is to use the adb command line to get around the no sim message and launch the settings activity to enable wifi and do account setup that way. It doesn't seem like this should require root.
You might want to make managing to set up a user account a pre-condition for completing the sale, or buy a phone locked to a provider who markets prepaid sims to international visitors.
My guess is if you get an early htc phone like g1 or mytouch or (or google versions adp1, ion, etc) you will be able to get it to work - if it comes to it they aren't hard to root, and they'd be the cheapest anyway as they are out of date. Later devices and other manufacturers, no idea. Of course if you want to target android 2.2 you need a later device.
You do not need a rooted/unlocked phone to test applications on.
http://developer.android.com/guide/developing/device.html
edit: beaten to the punch