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

Commit 87df8fc3 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add logs for mandatory biometrics" into main

parents 1329552c 78fa8b5f
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -74,4 +74,7 @@ public interface AuthenticateOptions {

    /** The attribution tag, if any. */
    @Nullable String getAttributionTag();

    /** If the authentication is requested due to mandatory biometrics being active. */
    boolean isMandatoryBiometrics();
}
+1 −1
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@ interface IBiometricAuthenticator {
    void prepareForAuthentication(boolean requireConfirmation, IBinder token, long operationId,
            int userId, IBiometricSensorReceiver sensorReceiver, String opPackageName,
            long requestId, int cookie, boolean allowBackgroundAuthentication,
            boolean isForLegacyFingerprintManager);
            boolean isForLegacyFingerprintManager, boolean isMandatoryBiometrics);

    // Starts authentication with the previously prepared client.
    void startPreparedClient(int cookie);
+51 −12
Original line number Diff line number Diff line
@@ -120,6 +120,8 @@ public class FaceAuthenticateOptions implements AuthenticateOptions, Parcelable
    }


    /** If the authentication is requested due to mandatory biometrics being active. */
    private boolean mIsMandatoryBiometrics;

    // Code below generated by codegen v1.0.23.
    //
@@ -188,7 +190,8 @@ public class FaceAuthenticateOptions implements AuthenticateOptions, Parcelable
            @AuthenticateReason int authenticateReason,
            @PowerManager.WakeReason int wakeReason,
            @NonNull String opPackageName,
            @Nullable String attributionTag) {
            @Nullable String attributionTag,
            boolean isMandatoryBiometrics) {
        this.mUserId = userId;
        this.mSensorId = sensorId;
        this.mDisplayState = displayState;
@@ -229,6 +232,7 @@ public class FaceAuthenticateOptions implements AuthenticateOptions, Parcelable
        com.android.internal.util.AnnotationValidations.validate(
                NonNull.class, null, mOpPackageName);
        this.mAttributionTag = attributionTag;
        this.mIsMandatoryBiometrics = isMandatoryBiometrics;

        // onConstructed(); // You can define this method to get a callback
    }
@@ -261,7 +265,7 @@ public class FaceAuthenticateOptions implements AuthenticateOptions, Parcelable
     * The reason for this operation when requested by the system (sysui),
     * otherwise AUTHENTICATE_REASON_UNKNOWN.
     *
     * See packages/SystemUI/src/com/android/systemui/deviceentry/shared/FaceAuthReason.kt
     * See frameworks/base/packages/SystemUI/src/com/android/keyguard/FaceAuthReason.kt
     * for more details about each reason.
     */
    @DataClass.Generated.Member
@@ -298,6 +302,14 @@ public class FaceAuthenticateOptions implements AuthenticateOptions, Parcelable
        return mAttributionTag;
    }

    /**
     * If the authentication is requested due to mandatory biometrics being active.
     */
    @DataClass.Generated.Member
    public boolean isMandatoryBiometrics() {
        return mIsMandatoryBiometrics;
    }

    /**
     * The sensor id for this operation.
     */
@@ -332,6 +344,15 @@ public class FaceAuthenticateOptions implements AuthenticateOptions, Parcelable
        return this;
    }

    /**
     * If the authentication is requested due to mandatory biometrics being active.
     */
    @DataClass.Generated.Member
    public @NonNull FaceAuthenticateOptions setIsMandatoryBiometrics( boolean value) {
        mIsMandatoryBiometrics = value;
        return this;
    }

    @Override
    @DataClass.Generated.Member
    public boolean equals(@Nullable Object o) {
@@ -351,7 +372,8 @@ public class FaceAuthenticateOptions implements AuthenticateOptions, Parcelable
                && mAuthenticateReason == that.mAuthenticateReason
                && mWakeReason == that.mWakeReason
                && java.util.Objects.equals(mOpPackageName, that.mOpPackageName)
                && java.util.Objects.equals(mAttributionTag, that.mAttributionTag);
                && java.util.Objects.equals(mAttributionTag, that.mAttributionTag)
                && mIsMandatoryBiometrics == that.mIsMandatoryBiometrics;
    }

    @Override
@@ -368,6 +390,7 @@ public class FaceAuthenticateOptions implements AuthenticateOptions, Parcelable
        _hash = 31 * _hash + mWakeReason;
        _hash = 31 * _hash + java.util.Objects.hashCode(mOpPackageName);
        _hash = 31 * _hash + java.util.Objects.hashCode(mAttributionTag);
        _hash = 31 * _hash + Boolean.hashCode(mIsMandatoryBiometrics);
        return _hash;
    }

@@ -377,9 +400,10 @@ public class FaceAuthenticateOptions implements AuthenticateOptions, Parcelable
        // You can override field parcelling by defining methods like:
        // void parcelFieldName(Parcel dest, int flags) { ... }

        byte flg = 0;
        int flg = 0;
        if (mIsMandatoryBiometrics) flg |= 0x80;
        if (mAttributionTag != null) flg |= 0x40;
        dest.writeByte(flg);
        dest.writeInt(flg);
        dest.writeInt(mUserId);
        dest.writeInt(mSensorId);
        dest.writeInt(mDisplayState);
@@ -400,7 +424,8 @@ public class FaceAuthenticateOptions implements AuthenticateOptions, Parcelable
        // You can override field unparcelling by defining methods like:
        // static FieldType unparcelFieldName(Parcel in) { ... }

        byte flg = in.readByte();
        int flg = in.readInt();
        boolean isMandatoryBiometrics = (flg & 0x80) != 0;
        int userId = in.readInt();
        int sensorId = in.readInt();
        int displayState = in.readInt();
@@ -449,6 +474,7 @@ public class FaceAuthenticateOptions implements AuthenticateOptions, Parcelable
        com.android.internal.util.AnnotationValidations.validate(
                NonNull.class, null, mOpPackageName);
        this.mAttributionTag = attributionTag;
        this.mIsMandatoryBiometrics = isMandatoryBiometrics;

        // onConstructed(); // You can define this method to get a callback
    }
@@ -481,6 +507,7 @@ public class FaceAuthenticateOptions implements AuthenticateOptions, Parcelable
        private @PowerManager.WakeReason int mWakeReason;
        private @NonNull String mOpPackageName;
        private @Nullable String mAttributionTag;
        private boolean mIsMandatoryBiometrics;

        private long mBuilderFieldsSet = 0L;

@@ -524,7 +551,7 @@ public class FaceAuthenticateOptions implements AuthenticateOptions, Parcelable
         * The reason for this operation when requested by the system (sysui),
         * otherwise AUTHENTICATE_REASON_UNKNOWN.
         *
         * See packages/SystemUI/src/com/android/systemui/deviceentry/shared/FaceAuthReason.kt
         * See frameworks/base/packages/SystemUI/src/com/android/keyguard/FaceAuthReason.kt
         * for more details about each reason.
         */
        @DataClass.Generated.Member
@@ -573,10 +600,21 @@ public class FaceAuthenticateOptions implements AuthenticateOptions, Parcelable
            return this;
        }

        /**
         * If the authentication is requested due to mandatory biometrics being active.
         */
        @DataClass.Generated.Member
        public @NonNull Builder setIsMandatoryBiometrics(boolean value) {
            checkNotUsed();
            mBuilderFieldsSet |= 0x80;
            mIsMandatoryBiometrics = value;
            return this;
        }

        /** Builds the instance. This builder should not be touched after calling this! */
        public @NonNull FaceAuthenticateOptions build() {
            checkNotUsed();
            mBuilderFieldsSet |= 0x80; // Mark builder used
            mBuilderFieldsSet |= 0x100; // Mark builder used

            if ((mBuilderFieldsSet & 0x1) == 0) {
                mUserId = defaultUserId();
@@ -606,12 +644,13 @@ public class FaceAuthenticateOptions implements AuthenticateOptions, Parcelable
                    mAuthenticateReason,
                    mWakeReason,
                    mOpPackageName,
                    mAttributionTag);
                    mAttributionTag,
                    mIsMandatoryBiometrics);
            return o;
        }

        private void checkNotUsed() {
            if ((mBuilderFieldsSet & 0x80) != 0) {
            if ((mBuilderFieldsSet & 0x100) != 0) {
                throw new IllegalStateException(
                        "This Builder should not be reused. Use a new Builder instance instead");
            }
@@ -619,10 +658,10 @@ public class FaceAuthenticateOptions implements AuthenticateOptions, Parcelable
    }

    @DataClass.Generated(
            time = 1677119626034L,
            time = 1723436679828L,
            codegenVersion = "1.0.23",
            sourceFile = "frameworks/base/core/java/android/hardware/face/FaceAuthenticateOptions.java",
            inputSignatures = "private final  int mUserId\nprivate  int mSensorId\nprivate final @android.hardware.biometrics.AuthenticateOptions.DisplayState int mDisplayState\npublic static final  int AUTHENTICATE_REASON_UNKNOWN\npublic static final  int AUTHENTICATE_REASON_STARTED_WAKING_UP\npublic static final  int AUTHENTICATE_REASON_PRIMARY_BOUNCER_SHOWN\npublic static final  int AUTHENTICATE_REASON_ASSISTANT_VISIBLE\npublic static final  int AUTHENTICATE_REASON_ALTERNATE_BIOMETRIC_BOUNCER_SHOWN\npublic static final  int AUTHENTICATE_REASON_NOTIFICATION_PANEL_CLICKED\npublic static final  int AUTHENTICATE_REASON_OCCLUDING_APP_REQUESTED\npublic static final  int AUTHENTICATE_REASON_PICK_UP_GESTURE_TRIGGERED\npublic static final  int AUTHENTICATE_REASON_QS_EXPANDED\npublic static final  int AUTHENTICATE_REASON_SWIPE_UP_ON_BOUNCER\npublic static final  int AUTHENTICATE_REASON_UDFPS_POINTER_DOWN\nprivate final @android.hardware.face.FaceAuthenticateOptions.AuthenticateReason int mAuthenticateReason\nprivate final @android.os.PowerManager.WakeReason int mWakeReason\nprivate @android.annotation.NonNull java.lang.String mOpPackageName\nprivate @android.annotation.Nullable java.lang.String mAttributionTag\nprivate static  int defaultUserId()\nprivate static  int defaultSensorId()\nprivate static  int defaultDisplayState()\nprivate static  int defaultAuthenticateReason()\nprivate static  int defaultWakeReason()\nprivate static  java.lang.String defaultOpPackageName()\nprivate static  java.lang.String defaultAttributionTag()\nclass FaceAuthenticateOptions extends java.lang.Object implements [android.hardware.biometrics.AuthenticateOptions, android.os.Parcelable]\n@com.android.internal.util.DataClass(genParcelable=true, genAidl=true, genBuilder=true, genSetters=true, genEqualsHashCode=true)")
            inputSignatures = "private final  int mUserId\nprivate  int mSensorId\nprivate final @android.hardware.biometrics.AuthenticateOptions.DisplayState int mDisplayState\npublic static final  int AUTHENTICATE_REASON_UNKNOWN\npublic static final  int AUTHENTICATE_REASON_STARTED_WAKING_UP\npublic static final  int AUTHENTICATE_REASON_PRIMARY_BOUNCER_SHOWN\npublic static final  int AUTHENTICATE_REASON_ASSISTANT_VISIBLE\npublic static final  int AUTHENTICATE_REASON_ALTERNATE_BIOMETRIC_BOUNCER_SHOWN\npublic static final  int AUTHENTICATE_REASON_NOTIFICATION_PANEL_CLICKED\npublic static final  int AUTHENTICATE_REASON_OCCLUDING_APP_REQUESTED\npublic static final  int AUTHENTICATE_REASON_PICK_UP_GESTURE_TRIGGERED\npublic static final  int AUTHENTICATE_REASON_QS_EXPANDED\npublic static final  int AUTHENTICATE_REASON_SWIPE_UP_ON_BOUNCER\npublic static final  int AUTHENTICATE_REASON_UDFPS_POINTER_DOWN\nprivate final @android.hardware.face.FaceAuthenticateOptions.AuthenticateReason int mAuthenticateReason\nprivate final @android.os.PowerManager.WakeReason int mWakeReason\nprivate @android.annotation.NonNull java.lang.String mOpPackageName\nprivate @android.annotation.Nullable java.lang.String mAttributionTag\nprivate  boolean mIsMandatoryBiometrics\nprivate static  int defaultUserId()\nprivate static  int defaultSensorId()\nprivate static  int defaultDisplayState()\nprivate static  int defaultAuthenticateReason()\nprivate static  int defaultWakeReason()\nprivate static  java.lang.String defaultOpPackageName()\nprivate static  java.lang.String defaultAttributionTag()\nclass FaceAuthenticateOptions extends java.lang.Object implements [android.hardware.biometrics.AuthenticateOptions, android.os.Parcelable]\n@com.android.internal.util.DataClass(genParcelable=true, genAidl=true, genBuilder=true, genSetters=true, genEqualsHashCode=true)")
    @Deprecated
    private void __metadata() {}

+52 −10
Original line number Diff line number Diff line
@@ -97,6 +97,11 @@ public final class FingerprintAuthenticateOptions implements AuthenticateOptions
        return null;
    }

    /**
     * If the authentication is requested due to mandatory biometrics being active.
     */
    private boolean mIsMandatoryBiometrics;

    // Code below generated by codegen v1.0.23.
    //
    // DO NOT MODIFY!
@@ -118,7 +123,8 @@ public final class FingerprintAuthenticateOptions implements AuthenticateOptions
            @AuthenticateOptions.DisplayState int displayState,
            @NonNull String opPackageName,
            @Nullable String attributionTag,
            @Nullable AuthenticateReason.Vendor vendorReason) {
            @Nullable AuthenticateReason.Vendor vendorReason,
            boolean isMandatoryBiometrics) {
        this.mUserId = userId;
        this.mSensorId = sensorId;
        this.mIgnoreEnrollmentState = ignoreEnrollmentState;
@@ -130,6 +136,7 @@ public final class FingerprintAuthenticateOptions implements AuthenticateOptions
                NonNull.class, null, mOpPackageName);
        this.mAttributionTag = attributionTag;
        this.mVendorReason = vendorReason;
        this.mIsMandatoryBiometrics = isMandatoryBiometrics;

        // onConstructed(); // You can define this method to get a callback
    }
@@ -198,6 +205,14 @@ public final class FingerprintAuthenticateOptions implements AuthenticateOptions
        return mVendorReason;
    }

    /**
     * If the authentication is requested due to mandatory biometrics being active.
     */
    @DataClass.Generated.Member
    public boolean isMandatoryBiometrics() {
        return mIsMandatoryBiometrics;
    }

    /**
     * The sensor id for this operation.
     */
@@ -244,6 +259,15 @@ public final class FingerprintAuthenticateOptions implements AuthenticateOptions
        return this;
    }

    /**
     * If the authentication is requested due to mandatory biometrics being active.
     */
    @DataClass.Generated.Member
    public @NonNull FingerprintAuthenticateOptions setIsMandatoryBiometrics( boolean value) {
        mIsMandatoryBiometrics = value;
        return this;
    }

    @Override
    @DataClass.Generated.Member
    public boolean equals(@Nullable Object o) {
@@ -263,7 +287,8 @@ public final class FingerprintAuthenticateOptions implements AuthenticateOptions
                && mDisplayState == that.mDisplayState
                && java.util.Objects.equals(mOpPackageName, that.mOpPackageName)
                && java.util.Objects.equals(mAttributionTag, that.mAttributionTag)
                && java.util.Objects.equals(mVendorReason, that.mVendorReason);
                && java.util.Objects.equals(mVendorReason, that.mVendorReason)
                && mIsMandatoryBiometrics == that.mIsMandatoryBiometrics;
    }

    @Override
@@ -280,6 +305,7 @@ public final class FingerprintAuthenticateOptions implements AuthenticateOptions
        _hash = 31 * _hash + java.util.Objects.hashCode(mOpPackageName);
        _hash = 31 * _hash + java.util.Objects.hashCode(mAttributionTag);
        _hash = 31 * _hash + java.util.Objects.hashCode(mVendorReason);
        _hash = 31 * _hash + Boolean.hashCode(mIsMandatoryBiometrics);
        return _hash;
    }

@@ -289,11 +315,12 @@ public final class FingerprintAuthenticateOptions implements AuthenticateOptions
        // You can override field parcelling by defining methods like:
        // void parcelFieldName(Parcel dest, int flags) { ... }

        byte flg = 0;
        int flg = 0;
        if (mIgnoreEnrollmentState) flg |= 0x4;
        if (mIsMandatoryBiometrics) flg |= 0x80;
        if (mAttributionTag != null) flg |= 0x20;
        if (mVendorReason != null) flg |= 0x40;
        dest.writeByte(flg);
        dest.writeInt(flg);
        dest.writeInt(mUserId);
        dest.writeInt(mSensorId);
        dest.writeInt(mDisplayState);
@@ -313,8 +340,9 @@ public final class FingerprintAuthenticateOptions implements AuthenticateOptions
        // You can override field unparcelling by defining methods like:
        // static FieldType unparcelFieldName(Parcel in) { ... }

        byte flg = in.readByte();
        int flg = in.readInt();
        boolean ignoreEnrollmentState = (flg & 0x4) != 0;
        boolean isMandatoryBiometrics = (flg & 0x80) != 0;
        int userId = in.readInt();
        int sensorId = in.readInt();
        int displayState = in.readInt();
@@ -333,6 +361,7 @@ public final class FingerprintAuthenticateOptions implements AuthenticateOptions
                NonNull.class, null, mOpPackageName);
        this.mAttributionTag = attributionTag;
        this.mVendorReason = vendorReason;
        this.mIsMandatoryBiometrics = isMandatoryBiometrics;

        // onConstructed(); // You can define this method to get a callback
    }
@@ -365,6 +394,7 @@ public final class FingerprintAuthenticateOptions implements AuthenticateOptions
        private @NonNull String mOpPackageName;
        private @Nullable String mAttributionTag;
        private @Nullable AuthenticateReason.Vendor mVendorReason;
        private boolean mIsMandatoryBiometrics;

        private long mBuilderFieldsSet = 0L;

@@ -456,10 +486,21 @@ public final class FingerprintAuthenticateOptions implements AuthenticateOptions
            return this;
        }

        /**
         * If the authentication is requested due to mandatory biometrics being active.
         */
        @DataClass.Generated.Member
        public @NonNull Builder setIsMandatoryBiometrics(boolean value) {
            checkNotUsed();
            mBuilderFieldsSet |= 0x80;
            mIsMandatoryBiometrics = value;
            return this;
        }

        /** Builds the instance. This builder should not be touched after calling this! */
        public @NonNull FingerprintAuthenticateOptions build() {
            checkNotUsed();
            mBuilderFieldsSet |= 0x80; // Mark builder used
            mBuilderFieldsSet |= 0x100; // Mark builder used

            if ((mBuilderFieldsSet & 0x1) == 0) {
                mUserId = defaultUserId();
@@ -489,12 +530,13 @@ public final class FingerprintAuthenticateOptions implements AuthenticateOptions
                    mDisplayState,
                    mOpPackageName,
                    mAttributionTag,
                    mVendorReason);
                    mVendorReason,
                    mIsMandatoryBiometrics);
            return o;
        }

        private void checkNotUsed() {
            if ((mBuilderFieldsSet & 0x80) != 0) {
            if ((mBuilderFieldsSet & 0x100) != 0) {
                throw new IllegalStateException(
                        "This Builder should not be reused. Use a new Builder instance instead");
            }
@@ -502,10 +544,10 @@ public final class FingerprintAuthenticateOptions implements AuthenticateOptions
    }

    @DataClass.Generated(
            time = 1689703591032L,
            time = 1723436831455L,
            codegenVersion = "1.0.23",
            sourceFile = "frameworks/base/core/java/android/hardware/fingerprint/FingerprintAuthenticateOptions.java",
            inputSignatures = "private final  int mUserId\nprivate  int mSensorId\nprivate final  boolean mIgnoreEnrollmentState\nprivate final @android.hardware.biometrics.AuthenticateOptions.DisplayState int mDisplayState\nprivate @android.annotation.NonNull java.lang.String mOpPackageName\nprivate @android.annotation.Nullable java.lang.String mAttributionTag\nprivate @android.annotation.Nullable android.hardware.biometrics.common.AuthenticateReason.Vendor mVendorReason\nprivate static  int defaultUserId()\nprivate static  int defaultSensorId()\nprivate static  boolean defaultIgnoreEnrollmentState()\nprivate static  int defaultDisplayState()\nprivate static  java.lang.String defaultOpPackageName()\nprivate static  java.lang.String defaultAttributionTag()\nprivate static  android.hardware.biometrics.common.AuthenticateReason.Vendor defaultVendorReason()\nclass FingerprintAuthenticateOptions extends java.lang.Object implements [android.hardware.biometrics.AuthenticateOptions, android.os.Parcelable]\n@com.android.internal.util.DataClass(genParcelable=true, genAidl=true, genBuilder=true, genSetters=true, genEqualsHashCode=true)")
            inputSignatures = "private final  int mUserId\nprivate  int mSensorId\nprivate final  boolean mIgnoreEnrollmentState\nprivate final @android.hardware.biometrics.AuthenticateOptions.DisplayState int mDisplayState\nprivate @android.annotation.NonNull java.lang.String mOpPackageName\nprivate @android.annotation.Nullable java.lang.String mAttributionTag\nprivate @android.annotation.Nullable android.hardware.biometrics.common.AuthenticateReason.Vendor mVendorReason\nprivate  boolean mIsMandatoryBiometrics\nprivate static  int defaultUserId()\nprivate static  int defaultSensorId()\nprivate static  boolean defaultIgnoreEnrollmentState()\nprivate static  int defaultDisplayState()\nprivate static  java.lang.String defaultOpPackageName()\nprivate static  java.lang.String defaultAttributionTag()\nprivate static  android.hardware.biometrics.common.AuthenticateReason.Vendor defaultVendorReason()\nclass FingerprintAuthenticateOptions extends java.lang.Object implements [android.hardware.biometrics.AuthenticateOptions, android.os.Parcelable]\n@com.android.internal.util.DataClass(genParcelable=true, genAidl=true, genBuilder=true, genSetters=true, genEqualsHashCode=true)")
    @Deprecated
    private void __metadata() {}

+4 −2
Original line number Diff line number Diff line
@@ -221,7 +221,8 @@ public final class AuthSession implements IBinder.DeathRecipient {
        mFingerprintSensorProperties = fingerprintSensorProperties;
        mCancelled = false;
        mBiometricFrameworkStatsLogger = logger;
        mOperationContext = new OperationContextExt(true /* isBP */);
        mOperationContext = new OperationContextExt(true /* isBP */,
                preAuthInfo.getIsMandatoryBiometricsAuthentication() /* isMandatoryBiometrics */);
        mBiometricManager = mContext.getSystemService(BiometricManager.class);

        mSfpsSensorIds = mFingerprintSensorProperties.stream().filter(
@@ -285,7 +286,8 @@ public final class AuthSession implements IBinder.DeathRecipient {
            sensor.goToStateWaitingForCookie(requireConfirmation, mToken, mOperationId,
                    mUserId, mSensorReceiver, mOpPackageName, mRequestId, cookie,
                    mPromptInfo.isAllowBackgroundAuthentication(),
                    mPromptInfo.isForLegacyFingerprintManager());
                    mPromptInfo.isForLegacyFingerprintManager(),
                    mOperationContext.getIsMandatoryBiometrics());
        }
    }

Loading