• Home
  • History
  • Annotate
  • only in /frameworks/base/core/java/android/hardware/fingerprint/
History log of /frameworks/base/core/java/android/hardware/fingerprint/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d86b8fea43ebb6e5c31691b44d8ceb0d8d3c9072 03-Jun-2017 Jeff Sharkey <jsharkey@android.com> Annotate @SystemApi with required permissions.

Most @SystemApi methods should be protected with system (or higher)
permissions, so annotate common methods with @RequiresPermission to
make automatic verification easier.

Verification is really only relevant when calling into system
services (where permissions checking can happen on the other side of
a Binder call), so annotate managers with the new @SystemService
annotation, which is now automatically documented.

This is purely a docs change; no logic changes are being made.

Test: make -j32 update-api && make -j32 offline-sdk-docs
Bug: 62263906
Change-Id: I2554227202d84465676aa4ab0dd336b5c45fc651
ingerprintManager.java
5e797faaf4854e1665f09d422b1921d89a928d97 25-May-2017 Kevin Chyn <kchyn@google.com> Revert fix for FingerprintManager leak

Bug: 38509779
Bug: 32295793

Setting to null causes problem seen in b/38509779
Using weakreference will cause problems if the application
declares AuthenticationClient as a weak reference as well and would
very likely break a lot of existing apps.

Test: manual
Change-Id: Iedbdd76f3a402b766ce8a799bf76324d1164a0ec
ingerprintManager.java
ee17d352d641cdcfc955f0e37b0ca042427f2879 16-May-2017 Charles He <qiurui@google.com> Fingerprint: call onRemovalSucceeded with # of remaining templates.

The onRemoved() callback from fingerprint daemon provides a "remaining"
parameter which contains the number of fingerprint templates yet to be
removed in the current removal operation. This is especially useful when
a group is removed, as remaining == 0 indicates the end of the group
removal.

In this CL, we wire up FingerprintManager so that the "remaining"
parameter gets passed to RemovalCallback#onRemovalSucceeded(). This
would allow clients like Settings to make use of the information.

Bug: 37938345
Test: manual, both with and without work profile
Change-Id: Idf46ef42e1d178cd3dc267aaf4219f03e27be766
ingerprintManager.java
e25a2564e57d8f2cda275b5e634aaf88c37dffae 13-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add missing break statements in FingerprintManager" into oc-dev
e64399649a32bc8845610b5b0564e7eab69cc6f3 12-May-2017 Kevin Chyn <kchyn@google.com> Add missing break statements in FingerprintManager

Fixes: 38268065

Test: manual

Change-Id: I64ac92b2c5682bcaa494f43ff5defdf9915c5a65
ingerprintManager.java
df9d33e9039d8567ea82f67a76d95a7ae7ab8df8 04-May-2017 Kevin Chyn <kchyn@google.com> strong fp lockout after 20 failed attempts

Fingerprint currently locks out for 30s after every 5 failed attempts.

This change makes it so that in addition to the above,
PIN/pattern/password will be required after 20 failed attempts.

Fixes: 35954316

Test: manual
Change-Id: I3aeb0e5b5b4d5011555f60fbe6cc2c1ce702a670
ingerprintManager.java
7a6b44bcee1c71bc3b18d5a9388c78736fa446cc 10-May-2017 Kevin Chyn <kchyn@google.com> AuthenticationCallback should not be cleared onAuthenticationFailed

Fixes: 38197608

Test: 1) enroll a finger
2) enter keyguard, touch sensor with an unenrolled finger
3) touch sensor with enrolled finger
4) phone should enter keyguard
5) do this test from screen off as well

Change-Id: I1c7b060888128b4a6b492fd6a7a8ebc85d2b3353
ingerprintManager.java
d717808bd0883cea7723a8e0b794e156b140a7da 08-May-2017 Kevin Chyn <kchyn@google.com> Fix AuthenticationCallback leak in FingerprintManager

Fixes: 32295793

Test: 1) modify/build/run apk attached in BR
2) run garbage collection after FingerprintActivity is done
3) use HPROF, FingerprintActivity should have "0 total count"
4) do this test for auth success, auth fail, auth cancel

Change-Id: I5fe7937a26d4673226b87c9c95a136dd9510e21f
ingerprintManager.java
da88f0e6b8bde99b1d65c73f20c9704b06cf5f5a 02-Feb-2017 Charles He <qiurui@google.com> Fingerprint: get auth id for non-current user.

Previously, getAuthenticatorId() simply returns the authenticator id
corresponding to the currently active user in FingerprintService.
However, this can cause bugs when, for example, KeyStore calls the
method before storing a fingerprint-bound key for a non-current user. In
such cases, the authenticator id of the calling user is desired, which
is not necessarily the same as the "current user" in FingerprintService.
This CL ensures the FingerprintService always returns the authenticator
id of the calling user.

Bug: 33459191
Test: manual
Change-Id: I35c5a3a7082cffb8941eeaa219c8e20948ad41a9
ingerprintManager.java
27fcd9c97a2ceb50bab026237390207e5ee9e290 21-Jan-2017 Phil Weaver <pweaver@google.com> Accessibility can capture fingerprint gestures

Bug: 27148522
Test: Unit tests for two new classes in this CL, CTS in
linked CL.
Change-Id: Icb5113e00b1f8724814263b3cc7f72fe4a6f0b41
FingerprintClientActiveCallback.aidl
FingerprintService.aidl
436ab6a91d64ef6036c67bb361d807e398fb2c4c 15-Dec-2016 Felipe Leme <felipeal@google.com> Added support to authentication.

AutoFillService can now require user authentication, both at
FillResponse and Dataset levels;
- FillResponse authentication is typically used when the user data
need to be unlocked before the first use.
- Dataset authentication is typically used to unlock sensitive data
such as credit card info.

The authentication can be handled by the service itself (for example,
when it uses the credit card CVV to unlock it) or by the Android
system (when the service asks for fingerprint authentication).

Bug: 31001899

Test: manual verification
Test: CtsAutoFillServiceTestCases passes

Change-Id: If62f42f697ab5ef0d14d991ff1077d1c38808e61
ingerprintManager.java
40e4645e6e564b962bb73c85c5325ec54ad34cc1 17-Dec-2016 Jim Miller <jaggies@google.com> Rewrite FingerprintService to use HIDL 2.1

Bug: 33199080
Test: Fingerprint enroll, remove, unlock, fingerprint arbitration.

Change-Id: I8b98236ba81f053527ee74c8a189af1adfd17d55
ingerprintManager.java
FingerprintDaemon.aidl
FingerprintDaemonCallback.aidl
FingerprintService.aidl
FingerprintServiceReceiver.aidl
57e2f4db3535fb059ac278499018951deddc4c82 24-Nov-2016 Jorim Jaggi <jjaggi@google.com> Make LockoutResetCallback oneway

Test: Get locked out, make sure wake-and-unlock is working
again after 30 seconds.

Change-Id: I2fb03775898c0567f058d6d9d0b963ed071cc786
Fixes: 32946531
ingerprintManager.java
FingerprintServiceLockoutResetCallback.aidl
dc589ac82b5fe2063f4cfd94c8ae26d43d5420a0 11-Nov-2016 Sudheer Shanka <sudheersai@google.com> Update usage of ActivityManagerNative.

- Remove references to ActivityManagerProxy.
- Add isSystemReady to ActivityManager.

Bug: 30977067
Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test android.server.cts
adb shell am instrument -e class com.android.server.am.ActivityManagerTest,com.android.server.am.TaskStackChangedListenerTest \
-w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner
Change-Id: I07390b6124fb1515821f5c0b37baf6ae74adc8fa
ingerprintManager.java
837fa7e56dc4e91feaf104bd09ef5e03065b1b86 09-Aug-2016 Jim Miller <jaggies@google.com> Bind fingerprint when we start authentication

This fixes a bug where it was possible to authenticate the wrong user.
We now bind the userId when we start authentication and confirm it when
authentication completes.

Fixes bug 30744668

Change-Id: I346d92c301414ed81e11fa9c171584c7ae4341c2
ingerprintManager.java
FingerprintServiceReceiver.aidl
8f2aca0ee4ff0eff6226df05d1531d2f2fa2f3c1 20-Apr-2016 Jim Miller <jaggies@google.com> Fix bug where fingerprint for wrong userId was attempted to be removed.

- cleaned up private API to ensure userId is distinct from groupId.
- fixed bug where we were sending the wrong userId when attempting to
- fix warning about wrong fingerId when receiving final id of 0.

Fixes bug 28268635

Change-Id: I9507723c1a763152775f2feff76c16762f23cf2d
ingerprintManager.java
FingerprintService.aidl
cb2ce6f1f0deef80943ece093ae40bacc1f57c44 14-Apr-2016 Jim Miller <jaggies@google.com> Fix bug where fingerprint events can be delivered to the wrong client

- Make FingerprintService more closely track the expected state of fingerprintd.
- Don't switch to a new operation until fingerprintd completes previous operation.
- Refactor clients into separate classes and add tracking logic.
- Add missing enumerate()/cancelEnumeration() methods to IFingerprintDaemon
- Make late-binding decision of "foregroundness" of activity so that it's
decided in the order the events are actually handled.
- Add more logging so we can determine FingerprintService state when errors occur.
- Cache a copy of authenticator_id from the last time it was set so we don't
interrupt the driver during actual authentication.
- Don't allow clients to access authenticator_id unless they're current.

Fixes: 27902478, 26273819
Change-Id: Ic1f9e30bd89bcdbb8fe7f69e0545e68339317721
ingerprintManager.java
FingerprintDaemon.aidl
FingerprintService.aidl
f86f986728b5844a48e2e7bbd4927d2f5500c682 23-Mar-2016 Ricky Wai <rickywai@google.com> Delete all work fingerprints when unified lock changes to None/Swipe

Bug: 27551139
Change-Id: Ida398a922d9c42e65001b0a10e13552505824d2d
ingerprintManager.java
c53962d4ede82a03b62f0c8bb86bd0da090a15eb 02-Mar-2016 Jeff Sharkey <jsharkey@android.com> When system server goes down, crash apps more.

Apps making calls into the system server may end up persisting
internal state or making security decisions based on the perceived
success or failure of a call, or the default values returned.

The reality is that if the system process just died, init will be
along shortly to kill all running apps, so we should have no problem
rethrowing the RemoteException as a RuntimeException.

Bug: 27364859
Change-Id: Ife0bcb079636c88d54c44d17eb580409fd79028b
ingerprintManager.java
33fd3cf2d90ca877b139e7f47824683b774f122a 19-Feb-2016 Clara Bayarri <clarabayarri@google.com> Make FingerprintManager#hasEnrolledFingerprints per-user

Needed by Settings to determine if the work profile has fingerprints

Bug: 27263452
Change-Id: Ic54f59461b44a525284f6a1ab3d17627c652f842
ingerprintManager.java
a5c1a77fad0ea3e2cbdf1dec773800cd77d6562e 26-Jan-2016 Clara Bayarri <clarabayarri@google.com> Make Fingerprint rename and delete user-aware

Bug: 26790762
Change-Id: I8c54f2ad2cc8cab2508b1feeb6a6131b462466a7
ingerprintManager.java
d1f722d906f66ef05cd329feb9edbed178314d46 07-Jan-2016 Clara Bayarri <clarabayarri@google.com> Enable enrolling/authenticating a specific work profile.

This change adds support for a separate profile-specific
fingerprint database. This is to be used together with the work
challenge.

Change-Id: I65b3a74a1c887def210d7a6da0b907138f58a5ba
ingerprintManager.java
FingerprintService.aidl
f8d1e21e16e0126fa7677d8293e4e8c07d11fa51 09-Sep-2015 Jim Kaye <jameskaye@google.com> Eliminate false error messages when removing all fingerprints

When removing "all" fingerprints, the request is for ID 0, but
the responses are for the actual IDs being removed. When the
requested ID is 0, don't complain if the response ID doesn't match.

Change-Id: I1c8b5b567ea6164c9e0ce6d436ca3b7a6ba22825
ingerprintManager.java
1adb4a7693406e7f984d7b1512e0e6aa40aa40e2 15-Sep-2015 Jim Miller <jaggies@google.com> Add logging to track fingerprint reco but not unlocking

Bug 23940153

Change-Id: Idb01802ba68449370e8f3cbede0e2fe6d0b977ce
ingerprintManager.java
5e354223d817477efac9a6a2e3ce3d9161e046a4 04-Sep-2015 Jorim Jaggi <jjaggi@google.com> Use AlarmManager for lockout reset

So the lockout reset exactly fires after 30 seconds, independent
of whether the device was in deep sleep.

Bug: 23668918
Change-Id: Idea1a877c395897c1fd075cf98edf41c8b1f4082
ingerprintManager.java
FingerprintServiceLockoutResetCallback.aidl
3a464785088e7fd206666f640912729533948ce8 29-Aug-2015 Jorim Jaggi <jjaggi@google.com> Add a private API to get notified about lockout resets

SystemUI uses it to start authentication again after lockout reset
expired.

Bug: 22846755
Change-Id: I90a987c6aa4ac52cc7e7aff1bce262d1db3f12ee
ingerprintManager.java
FingerprintService.aidl
FingerprintServiceLockoutResetCallback.aidl
1bbc2750bb58f397a0195540d50c44400c381441 22-Aug-2015 Jim Miller <jaggies@google.com> am 74d9c2aa: Merge "Fix type-o in FingerprintManager documentation" into mnc-dev

* commit '74d9c2aad1bcd52933a8dba7752b28e9aef1902d':
Fix type-o in FingerprintManager documentation
5f69ca3be3005fd127c82f503d0692f807729688 20-Aug-2015 Jim Miller <jaggies@google.com> Fix type-o in FingerprintManager documentation

Fixes bug 23274133

Change-Id: I15607d0e64c0b11d36d0e0d47ea88c42101e4dde
ingerprintManager.java
e0507bbbf95ae6d958c900f32122baf078d47d71 13-Aug-2015 Jim Miller <jaggies@google.com> Reset fingerprint lockout timer when strong auth is used.

Fixes bug 22565462

Change-Id: I4842877839845e7fe103396d8ca8104928568c04
ingerprintManager.java
FingerprintService.aidl
740452e8756cb7f51ed185c3906a5ca61b8fcdd4 09-Jul-2015 Jorim Jaggi <jjaggi@google.com> Touch, wake and unlock

- Add onFingerprintAcquired, so Keyguard can grab a wakelock to prevent
the device from sleeping.
- If we get a successful fingerprint, wake the device up, immediately
dismiss the keyguard and tell PWM that we kicked off our frame that
will represent the correct state.
- PWM then waits for this frame to be drawn, and then turns on the
screen, which results in unlocking directly to the previsouly
opened app.

Bug: 21855614
Change-Id: I5f43df17fa5e4e9c6a6392eef4a4590b07df4f96
ingerprintManager.java
4cfdcf5b0551e5656ea379c428e78b812c2e5cbe 09-Jul-2015 Jorim Jaggi <jjaggi@google.com> Touch, wake and unlock

- Add onFingerprintAcquired, so Keyguard can grab a wakelock to prevent
the device from sleeping.
- If we get a successful fingerprint, wake the device up, immediately
dismiss the keyguard and tell PWM that we kicked off our frame that
will represent the correct state.
- PWM then waits for this frame to be drawn, and then turns on the
screen, which results in unlocking directly to the previsouly
opened app.

Bug: 21855614
Change-Id: I0c43bcc9d334b509632704fb0c123ab3351edff2
ingerprintManager.java
748bc36f2eebfdc67520c5025b48fefdfd8d7c01 09-Jul-2015 Jim Miller <jaggies@google.com> Remove "final" qualifier from AuthenticationResult

This allows mock implementations to be created for testing
purposes.

Fixes bug 22362080

Change-Id: I5ff002c077d22b1338f2f4e394ad19827bb2ae9c
ingerprintManager.java
e0943cf5665b3d7b0870debda771032f77db094c 08-Jul-2015 Sasha Levitskiy <sanek@google.com> Fingerprint: Add post enroll interface.

Bug: 22007124
Change-Id: I9b74edd8e34eaf9ab559b6dc20030a95fa3ce321
Signed-off-by: Sasha Levitskiy <sanek@google.com>
ingerprintManager.java
FingerprintDaemon.aidl
FingerprintService.aidl
dca15d22e8f37d4bc2dfb6db4522ea166149525b 17-Jun-2015 Jim Miller <jaggies@google.com> Have FingerprintService keep the device awake on relevant events.

Fixes bug 20732273

Change-Id: I61b827dd7b1bc706a0288571751032301fd5479f
FingerprintService.aidl
e4c58e46419bdc1cbe94516bdded71f017534d9c 09-Jun-2015 Jim Miller <jaggies@google.com> Add documentation for possible AndroidKeyStore exceptions to authenticate() call

Fixes bug 20864436

Change-Id: Ic3f7406a8a6f41283ccd63018787a20353510024
ingerprintManager.java
f501b58de8f467a80fef49c704555781bc61ea6f 04-Jun-2015 Jim Miller <jaggies@google.com> Update and cleanup FingerprintManager API to new spec

Fixes bug 21040383

Change-Id: Ib97d486535869814d5b449cccb31670e8f412552
ingerprintManager.java
FingerprintServiceReceiver.aidl
be67542182e41a6e31cf002db72ec42ee717bd1c 12-May-2015 Jim Miller <jaggies@google.com> Move from native FingerprintService implementation to fingerprintd

This adds a new service, fingerprintd, that manages fingerprint
hardware from a separate process. It provides a binder interface that
FingerprintManager uses to talk to the fingerprint HAL.

Change-Id: I84d8e407c1f1a7d1a396e246c382459ad38810ae
ingerprintManager.java
FingerprintDaemon.aidl
FingerprintDaemonCallback.aidl
a1fb2cf6a6b8e69b57346b598e1c0904614250d7 14-May-2015 Alex Klyubin <klyubin@google.com> Merge "Move Android Keystore impl to android.security.keystore." into mnc-dev
6a587acd1dcaa0b0d58ff9ac58e8a2ebff0aa3be 14-May-2015 Jorim Jaggi <jjaggi@google.com> Merge "Fix fingerprint for multiuser" into mnc-dev
aa4d32add72fa728f9cfe4eeb014b26eb5d091c2 14-May-2015 Jorim Jaggi <jjaggi@google.com> Fix fingerprint for multiuser

Change-Id: Iab18c4de9764da1a65490b186b33535f8e79e1e5
ingerprintManager.java
dcdaf87ed0aa99073638bcfe645949f130f0c7ad 14-May-2015 Alex Klyubin <klyubin@google.com> Move Android Keystore impl to android.security.keystore.

This moves the non-public API classes backing Android Keystore from
android.security to android.security.keystore, a package specially
created for Android Keystore.

Bug: 18088752
Change-Id: Ibf04d6a26c54d310b0501fc5e34f37b1176324ad
ingerprintManager.java
ee77cebc1a54a0bee1a1d538db0abed00aa9cb4e 13-May-2015 Jorim Jaggi <jjaggi@google.com> Persist fingerprint names

Bug: 20469328
Change-Id: I8f4a988687bfb78c36cc7cf187103a9d93ed4535
ingerprintUtils.java
24e9e966a85c416a94482fcd10dbdd10ceeb9e6c 30-Apr-2015 Alex Klyubin <klyubin@google.com> Fix thread affinity of FingerprintManager.

FingerprintManager internally creates a Handler which needs to be
bound to a Looper thread. Prior to this CL the Handler was bound to
the Looper of the current thread. This caused issues:
* Different instances of FingerprintManager could be bound to
different Looper threads.
* Callbacks from FingerprintManager were invoked on arbitrary
threads (or not at all if the Looper was there but wasn't running).
* FingerprintManager couldn't be obtained by apps on most non-main
threads leading to java.lang.RuntimeException: Can't create handler
inside thread that has not called Looper.prepare().

This CL fixes the issue by binding the FingerprintManager's Handler to
the Looper running on the main thread.

Bug: 20725228
Change-Id: I4a0382d6e11df9f23b8db9f0deec77369af31b5e
ingerprintManager.java
3327f3d6886a96ad70f4e96e4b7c26b9555429b6 30-Apr-2015 Svetoslav <svetoslavganov@google.com> Merge "Add use fingerprint app op - framework" into mnc-dev
b62dc82b0c7208f106077b46fc7118da6baa6e13 29-Apr-2015 Jim Miller <jaggies@google.com> Add javax.crypto.Mac as a supported CryptoObject to Fingerprint

Fixes bug 20660180

Change-Id: I421c246ef776847835ede4be1d72721c35cf951c
(cherry picked from commit 0ecd5c20d93c24251975f3ff7cb0494039e5ea20)
ingerprintManager.java
4af76a51d5082c740609563e07cf35f30bc2224e 30-Apr-2015 Svetoslav <svetoslavganov@google.com> Add use fingerprint app op - framework

Change-Id: Ibbd1c70e1fc771b804a8b0099d29d4fbd8360966
ingerprintManager.java
FingerprintService.aidl
4d41a203a08c55b3f3190519535ccee6557ea4fe 16-Apr-2015 Andres Morales <anmorales@google.com> Expose getAuthenticatorId API

Change-Id: I112c45d596c66e3f6ebd94fecffcb6bb7c3a335a
ingerprintManager.java
FingerprintService.aidl
af281ca0d3fad6aaafde0d1979123368390779dc 21-Apr-2015 Jim Miller <jaggies@google.com> Make fingerprint enroll/authenticate haptic feedback part of framework.

Change-Id: Icc2e9ec4b30a6f3a21e3bbe8476efc56361d6944
ingerprintUtils.java
9e682ee383c0b9b46e4f84cb453c472f0082914c 16-Apr-2015 Jorim Jaggi <jjaggi@google.com> Make CryptoObject constructor public

Change-Id: I9bfedd5113af7b4717194d99c7c9898753ea2ebd
ingerprintManager.java
2aad7ee245857a46aae305fefc4e3c1bcdd4a586 15-Apr-2015 Jorim Jaggi <jjaggi@google.com> More fingerprint API's for 3rd party apps

- Make isHardwareAvailable public
- Add hasEnrolledFingerprints so apps can check whether to show
fingerprint UI or not.

Change-Id: Iaefd5e9e68bf3bee8305574dc1477ea9bc72b30a
ingerprintManager.java
FingerprintService.aidl
fe6439f02db3a541d77a7afb27e3bca1ae7493ed 12-Apr-2015 Jim Miller <jaggies@google.com> Several fixes to Fingerprint code after large merge
- route fingerprint enrollment auth token
- replace "processed" event with "authenticated"
- fix type-o in strings.xml

Change-Id: If06b4438c94fd7fca07a8b7b1b5fa16dd94b3831
ingerprintManager.java
FingerprintService.aidl
FingerprintServiceReceiver.aidl
ccdfa93f609d3f306a35902df323939e266a7ab3 14-Apr-2015 Jorim Jaggi <jjaggi@google.com> Fix fingerprint API for 3rd party apps

Change-Id: Id68d04b4deef9940a683d2b40f1db231845b00e3
ingerprintManager.java
ce7eb6daf06a88129da365eb2112537ce0bb1b75 04-Apr-2015 Jim Miller <jaggies@google.com> Clean up FingerprintManager API and make it public.

Change-Id: I6a99dccd485c053cb47dbd0ec08b41a2dc5b17c8
ingerprintManager.java
FingerprintService.aidl
ebbf205bc6e8292f74d8fc4652c70274a445f907 01-Apr-2015 Jim Miller <jaggies@google.com> Prepare to make Fingerprint API public.

- move fingerprint support files into hardware area
- move jni into services/core

Change-Id: I48a8e43d6d328fb66d79919c255e4c44e984b4d1
ingerprint.aidl
ingerprint.java
ingerprintManager.java
ingerprintUtils.java
FingerprintService.aidl
FingerprintServiceReceiver.aidl