summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoe Bolinger <jbolinger@google.com>2025-06-07 03:02:15 +0000
committeraoleary <seanm187@gmail.com>2025-10-07 19:02:17 +0000
commitc8770ef5006956a92309a041f362258dc9afc827 (patch)
treea33b64cd8c87291faf20a2c2bf90bf775c14cd0d /src
parent9bcfbc15f34e7cd288e277a24fb770df1108d8c0 (diff)
Ignore face settings extras when called by an external package.HEADt13.0
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.java21
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()) {