Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bea9d7b9 authored by Jim Miller's avatar Jim Miller Committed by Android (Google) Code Review
Browse files

Merge "Reset fingerprint lockout timer when strong auth is used." into mnc-dr-dev

parents 358fcc79 e0507bbb
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -668,6 +668,25 @@ public class FingerprintManager {
        return 0;
    }

    /**
     * Reset the lockout timer when asked to do so by keyguard.
     *
     * @param token an opaque token returned by password confirmation.
     *
     * @hide
     */
    public void resetTimeout(byte[] token) {
        if (mService != null) {
            try {
                mService.resetTimeout(token);
            } catch (RemoteException e) {
                Log.v(TAG, "Remote exception in getAuthenticatorId(): ", e);
            }
        } else {
            Log.w(TAG, "getAuthenticatorId(): Service not connected!");
        }
    }

    private class MyHandler extends Handler {
        private MyHandler(Context context) {
            super(context.getMainLooper());
@@ -677,6 +696,7 @@ public class FingerprintManager {
            super(looper);
        }

        @Override
        public void handleMessage(android.os.Message msg) {
            switch(msg.what) {
                case MSG_ENROLL_RESULT:
+3 −0
Original line number Diff line number Diff line
@@ -68,4 +68,7 @@ interface IFingerprintService {

    // Gets the authenticator ID for fingerprint
    long getAuthenticatorId(String opPackageName);

    // Reset the timeout when user authenticates with strong auth (e.g. PIN, pattern or password)
    void resetTimeout(in byte [] cryptoToken);
}
+4 −0
Original line number Diff line number Diff line
@@ -2465,6 +2465,10 @@
    <permission android:name="android.permission.MANAGE_FINGERPRINT"
        android:protectionLevel="system|signature" />

    <!-- Allows an app to reset fingerprint attempt counter. Reserved for the system. @hide -->
    <permission android:name="android.permission.RESET_FINGERPRINT_LOCKOUT"
        android:protectionLevel="signature" />

    <!-- Allows an application to control keyguard.  Only allowed for system processes.
        @hide -->
    <permission android:name="android.permission.CONTROL_KEYGUARD"
+4 −0
Original line number Diff line number Diff line
@@ -578,6 +578,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
    public void reportSuccessfulStrongAuthUnlockAttempt() {
        mStrongAuthTimedOut.remove(sCurrentUser);
        scheduleStrongAuthTimeout();
        if (mFpm != null) {
            byte[] token = null; /* TODO: pass real auth token once fp HAL supports it */
            mFpm.resetTimeout(token);
        }
    }

    private void scheduleStrongAuthTimeout() {
+1 −0
Original line number Diff line number Diff line
@@ -108,6 +108,7 @@
    <uses-permission android:name="android.permission.ACCESS_KEYGUARD_SECURE_STORAGE" />
    <uses-permission android:name="android.permission.TRUST_LISTENER" />
    <uses-permission android:name="android.permission.USE_FINGERPRINT" />
    <uses-permission android:name="android.permission.RESET_FINGERPRINT_LOCKOUT" />

    <!-- Needed for WallpaperManager.clear in ImageWallpaper.updateWallpaperLocked -->
    <uses-permission android:name="android.permission.SET_WALLPAPER"/>
Loading