-
Notifications
You must be signed in to change notification settings - Fork 395
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fail to detect new fingerprint enrolled #16
Comments
Comment by thagikura Hi, Let me confirm, the expected behavior of enrolling a new fingerprint for the app is asking you the password with a checkbox saying use fingerprint in future. So when you do like following:
When I tried the app in my end, it worked correctly. |
Comment by jiazhao2048 Thanks for reply. You can reproduce the bug I found in this way
I read the source code and found the reason. The creatKey( ) function is called in MainActivity->onCreate() method. Thus when the app relaunch the key is regenerated and the app can't detect the change of the fingerprint. I creat a variate to keep the status the app's first launch and use it to decise call createKey() or not. It works as expected. |
Comment by jiazhao2048 By the way I also found that the app won't require me to input the password when I delete an exsitent fingerprint.
I'm curious about how the app works. As I known the creatKey( ) is called at first time the app launch . How the key store in the app? Do I ask a bad question? |
Comment by coobing17 "I creat a variate to keep the status the app's first launch and use it to decise call createKey() or not. It works as expected." can you tell me your variate code... @jiazhao2048 |
Comment by IsracardTeam @bill-yudhistira @jiazhao2048 did you find a solution for this ? |
Comment by fkie4ibm I can get all finger id in integers. private void getFingerprintInfo(Context context)
} there is a public method getFingerId( ), but it is not available for us to call because it has "@UnsupportedAppUsage". so you need to use reflection to call the method. after you get a list of fingerprint id, you can encrypt them and store in sharedPreference. Finger id is the id of the fingerprints stored in setting After you get all finger ids, you can determine if user has added/deleted a fingerprint. No need to count on the KeyPermanentlyInvalidatedException. It is not thrown in Android 8.0 Google didn't do such a good job.... |
Comment by ddeath @thagikura I tried it with your flow and it did not ask for a password. I was using phone with android 7. |
When a new fingerprint is enrolled, with running initCipher, I expect to get KeyPermanentlyInvalidatedException but it returns true. what am I missing and how to fix this to get to know when a new fingerprint is added? |
Issue by jiazhao2048
Monday Sep 05, 2016 at 10:12 GMT
Originally opened as googlearchive/android-FingerprintDialog#35
Hi, I test this app on Nexus5x and Samsung s6. It both fail to detect that a new fingerprint is enrolled.
What I was do:
It works out of expect and the new fingerprint also "purchase" successfully.
If the app is designed to work like this.So, how can I detect the change of fingerprint catalog? I need the user to re-input the password when the fingerprint cataglog is changed because of the security requirement.
Glad to see your reply soon. Thanks!
The text was updated successfully, but these errors were encountered: