History log of /frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
a5c1a77fad0ea3e2cbdf1dec773800cd77d6562e 26-Jan-2016 Clara Bayarri <clarabayarri@google.com> Make Fingerprint rename and delete user-aware

Bug: 26790762
Change-Id: I8c54f2ad2cc8cab2508b1feeb6a6131b462466a7
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
1adb4a7693406e7f984d7b1512e0e6aa40aa40e2 15-Sep-2015 Jim Miller <jaggies@google.com> Add logging to track fingerprint reco but not unlocking

Bug 23940153

Change-Id: Idb01802ba68449370e8f3cbede0e2fe6d0b977ce
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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>
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
e4c58e46419bdc1cbe94516bdded71f017534d9c 09-Jun-2015 Jim Miller <jaggies@google.com> Add documentation for possible AndroidKeyStore exceptions to authenticate() call

Fixes bug 20864436

Change-Id: Ic3f7406a8a6f41283ccd63018787a20353510024
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
f501b58de8f467a80fef49c704555781bc61ea6f 04-Jun-2015 Jim Miller <jaggies@google.com> Update and cleanup FingerprintManager API to new spec

Fixes bug 21040383

Change-Id: Ib97d486535869814d5b449cccb31670e8f412552
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
a1fb2cf6a6b8e69b57346b598e1c0904614250d7 14-May-2015 Alex Klyubin <klyubin@google.com> Merge "Move Android Keystore impl to android.security.keystore." into mnc-dev
aa4d32add72fa728f9cfe4eeb014b26eb5d091c2 14-May-2015 Jorim Jaggi <jjaggi@google.com> Fix fingerprint for multiuser

Change-Id: Iab18c4de9764da1a65490b186b33535f8e79e1e5
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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)
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
4af76a51d5082c740609563e07cf35f30bc2224e 30-Apr-2015 Svetoslav <svetoslavganov@google.com> Add use fingerprint app op - framework

Change-Id: Ibbd1c70e1fc771b804a8b0099d29d4fbd8360966
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
4d41a203a08c55b3f3190519535ccee6557ea4fe 16-Apr-2015 Andres Morales <anmorales@google.com> Expose getAuthenticatorId API

Change-Id: I112c45d596c66e3f6ebd94fecffcb6bb7c3a335a
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
9e682ee383c0b9b46e4f84cb453c472f0082914c 16-Apr-2015 Jorim Jaggi <jjaggi@google.com> Make CryptoObject constructor public

Change-Id: I9bfedd5113af7b4717194d99c7c9898753ea2ebd
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
ccdfa93f609d3f306a35902df323939e266a7ab3 14-Apr-2015 Jorim Jaggi <jjaggi@google.com> Fix fingerprint API for 3rd party apps

Change-Id: Id68d04b4deef9940a683d2b40f1db231845b00e3
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
ce7eb6daf06a88129da365eb2112537ce0bb1b75 04-Apr-2015 Jim Miller <jaggies@google.com> Clean up FingerprintManager API and make it public.

Change-Id: I6a99dccd485c053cb47dbd0ec08b41a2dc5b17c8
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java
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
/frameworks/base/core/java/android/hardware/fingerprint/FingerprintManager.java