diff options
| author | Joe Bolinger <jbolinger@google.com> | 2025-06-07 03:02:15 +0000 |
|---|---|---|
| committer | aoleary <seanm187@gmail.com> | 2025-10-07 19:02:17 +0000 |
| commit | c8770ef5006956a92309a041f362258dc9afc827 (patch) | |
| tree | a33b64cd8c87291faf20a2c2bf90bf775c14cd0d /src | |
| parent | 9bcfbc15f34e7cd288e277a24fb770df1108d8c0 (diff) | |
Bug: 411418366
Flag: EXEMPT bug fix
Test: manual from any user not 0 (adb shell am start -a android.settings.FACE_SETTINGS --ei android.intent.extra.USER_ID 0)
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:486947205e05e83314bd76e4822af442ca82be9c)
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:387df9edf18fbfd42af166033c1532695f858c01)
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:945e3401a4066f8a099c7499136b7ea2ba5f4009)
Merged-In: I06193e421a140a90568251fc25baa7fc81c12d78
Change-Id: I06193e421a140a90568251fc25baa7fc81c12d78
Diffstat (limited to 'src')
| -rw-r--r-- | src/com/android/settings/biometrics/face/FaceSettings.java | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java index dc94376b91d..f8cc2172b08 100644 --- a/src/com/android/settings/biometrics/face/FaceSettings.java +++ b/src/com/android/settings/biometrics/face/FaceSettings.java @@ -70,8 +70,8 @@ public class FaceSettings extends DashboardFragment { private FaceManager mFaceManager; private DevicePolicyManager mDevicePolicyManager; private int mUserId; - private int mSensorId; - private long mChallenge; + private int mSensorId = -1; + private long mChallenge = 0; private byte[] mToken; private FaceSettingsAttentionPreferenceController mAttentionController; private FaceSettingsRemoveButtonPreferenceController mRemoveController; @@ -152,12 +152,19 @@ public class FaceSettings extends DashboardFragment { mUserManager = context.getSystemService(UserManager.class); mFaceManager = context.getSystemService(FaceManager.class); mDevicePolicyManager = context.getSystemService(DevicePolicyManager.class); - mToken = getIntent().getByteArrayExtra(KEY_TOKEN); - mSensorId = getIntent().getIntExtra(BiometricEnrollBase.EXTRA_KEY_SENSOR_ID, -1); - mChallenge = getIntent().getLongExtra(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, 0L); - mUserId = getActivity().getIntent().getIntExtra( - Intent.EXTRA_USER_ID, UserHandle.myUserId()); + final SettingsActivity activity = (SettingsActivity) requireActivity(); + final String callingPackage = activity.getInitialCallingPackage(); + if (callingPackage == null || !callingPackage.equals(activity.getPackageName())) { + mUserId = UserHandle.myUserId(); + } else { + // only allow these extras when called internally by Settings + mToken = getIntent().getByteArrayExtra(KEY_TOKEN); + mSensorId = getIntent().getIntExtra(BiometricEnrollBase.EXTRA_KEY_SENSOR_ID, -1); + mChallenge = getIntent().getLongExtra(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, 0L); + mUserId = getIntent().getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId()); + } + mFaceFeatureProvider = FeatureFactory.getFactory(getContext()).getFaceFeatureProvider(); if (mUserManager.getUserInfo(mUserId).isManagedProfile()) { |
