Commit Graph

443 Commits

Author SHA1 Message Date
Eric Biggers
b547094366 ChooseLockPassword: convert to use PasswordMetrics#validateCredential()
Fix the check for invalid characters in new passwords by switching from
PasswordMetrics#validatePassword() to
PasswordMetrics#validateCredential().  For more information, see
frameworks/base change I5c3c55367c3a294578cd0f97ac0e315a11ed517e.

Bug: 219511761
Bug: 232900169
Bug: 243881358
Test: Verified no regressions in 'atest ChooseLockPasswordTest'.  Note,
      this test is currently @Ignored and has 2 failures.  I didn't
      attempt to address that.
Test: Set a password containing non-ASCII characters on a device running
      an older build.  Upgraded and verified unlocking still works.
      Tested that setting a new non-ASCII password is not allowed.
Change-Id: I5f1822a34688473cb103eb64dca56e4c19d4dd08
2023-06-22 20:59:22 +00:00
Rhed Jao
07f9d1ccbe Merge "[Settings] Add a verification flow for exiting repair mode" into udc-qpr-dev am: e1c9d65cda am: 721a7bacaa
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23629341

Change-Id: If01a1c5c13433e85f9b91790375dc2f297777dd7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-15 07:19:57 +00:00
Rhed Jao
b7a4a7daa4 [Settings] Add a verification flow for exiting repair mode
Handles the ACTION_CONFIRM_REPAIR_MODE_DEVICE_CREDENTIAL
intent to launch the confirm device credential activity for
users to exiting repair mode. The activity passes a special
user id USER_REPAIR_MODE to the framework and verify credentials
that the user enrolled in normal mode.

Bug: 277561275
Test: am start -a android.app.action.PREPARE_REPAIR_MODE_DEVICE_CREDENTIAL
      settings put global repair_mode_active 1
      am start -a android.app.action.CONFIRM_REPAIR_MODE_DEVICE_CREDENTIAL
      The credential is verified successfully.
Change-Id: I9ffe32f9925ee2b990c49d5674d27196a4c9edf7
2023-06-15 02:14:41 +00:00
Rhed Jao
1c7c01adb8 Merge "Passing the writing repair mode password flag to verify credential api" into udc-qpr-dev am: cc1fe61339 am: 6856e809b0
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23308384

Change-Id: I4e688e2034b1d33b141fb13a5383b7142b743901
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-13 03:00:36 +00:00
Rhed Jao
cc1fe61339 Merge "Passing the writing repair mode password flag to verify credential api" into udc-qpr-dev 2023-06-13 02:14:22 +00:00
Rhed Jao
f01b99e725 Passing the writing repair mode password flag to verify credential api
Handles the ACTION_PREPARE_REPAIR_MODE_DEVICE_CREDENTIAL intent to
prompt the user for device credentials. Passing the writing repair
mode password flag to the verify credential api when the user is
authenticating.

Bug: 277561275
Test: am start -a android.app.action.PREPARE_REPAIR_MODE_DEVICE_CREDENTIAL
Change-Id: Id018586b0ed535555c157b7516c9571b049978ad
2023-06-12 06:34:24 +00:00
Avinash Vadlamudi
c4c85c8d89 [Auto Pin Confirmation]: Add talkback capability for Auto-confirm correct PIN checkbox even if it is not in focus am: 01637b556e am: 3730239bd7
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23601571

Change-Id: I27b0bebd69fe6bdf344f434bae90b655540417ff
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-10 02:40:55 +00:00
Avinash Vadlamudi
01637b556e [Auto Pin Confirmation]: Add talkback capability for Auto-confirm correct PIN checkbox even if it is not in focus
- set accessibilityLiveRegion as Polite mode to allow talkback to announce the state of checkbox even if is not in focus

Bug: 281950677
Test: Manual test by flashing on device and checking in talkback mode
Change-Id: Ia1066e2df1f40e6c339a4cd63f92acf0858f8f3d
2023-06-10 01:25:18 +00:00
Oli Thompson
e20d5d34f8 Merge "Fix emergency button not visible on pattern work challenge screen" into udc-dev am: 01b382546e am: 03bd83270a
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23631338

Change-Id: I8f3631be2dc924fe8cf61278ccc6c2b9547c1629
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-09 16:59:57 +00:00
Oli Thompson
01b382546e Merge "Fix emergency button not visible on pattern work challenge screen" into udc-dev 2023-06-09 15:31:17 +00:00
Oli Thompson
dcce8fa662 Fix emergency button not visible on pattern work challenge screen
Hide the subtext for work challenge pattern,so everything fits and
adjust some spacing

Test: btest a.d.g.WorkTelephonyTest#workChallengePatternScreen_whenAllSubscriptionsManaged_hasEmergencyButton -nm
Bug: 283137301
Bug: 286391641
Change-Id: Ia6214b624f8d7328f7445f01a08166b8ab33fdec
2023-06-09 13:06:39 +00:00
Treehugger Robot
f575b51ce1 Merge "work challenge: allow backgroud biometric auth" into udc-dev am: 62193a6f56 am: 267a9a14bf
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23211177

Change-Id: Iad60145324234afaa488ca9328dcecfc493c1c52
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-15 09:09:13 +00:00
Rubin Xu
5b42447d29 work challenge: allow backgroud biometric auth
We observed a race condition that when work challenge is launched from
notification, the biometric prompt quickly dismisses itself because
it detects the launcher is now the foreground app. This change attempts
to workaround the issue by enabling the setAllowBackgroundAuthentication
optin in BiometricPrompt so it no longer dismisses itself even if the
foreground app is different.

Bug: 279766640
Test: manual
Change-Id: I453b7d603c6eb65f329afb38d8a190e21a7e4c01
2023-05-12 16:35:15 +01:00
Bill Lin
4caa3ece94 [conflict] Merge "Refine SkipDialog title and desc by device configs" into udc-dev am: 4d5063ffdc am: f6d23468b1 am: e5dfcc0270 am: 547f6d63a2
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/22779802

Change-Id: I61fed7e932c8dc476b689ca61bbf8ee919924bed
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-10 16:29:52 +00:00
Bill Lin
4d5063ffdc Merge "Refine SkipDialog title and desc by device configs" into udc-dev 2023-05-09 23:09:38 +00:00
Nan Wu
00c3dabc48 Merge "Allow BAL for confirm device credential activity when work profile apps are protected by PIN prompt." into udc-dev am: 38b99012f4 am: 1671f75b46
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23087497

Change-Id: Ie3e738285db754e30aa447a501debaeaa72b6f57
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-09 15:09:36 +00:00
Nan Wu
38b99012f4 Merge "Allow BAL for confirm device credential activity when work profile apps are protected by PIN prompt." into udc-dev 2023-05-09 13:49:06 +00:00
lbill
67d6dff7cc Refine SkipDialog title and desc by device configs
1. Wrap isFaceSupportedInSUW() in Settings Utils
2. Wrap getCombinedScreenLockOptions in Settings Utils
3. Add EXTRA_KEY_FOR_SUW to judge if in SUW flow
4. Refactor SetupSkipDialog by hasFace, hasFingerprint,
   isSuw, isFaceSupported conditions
5. Clean up the mapping logic of SetupSkipDialog
6. Replace bools with @LockPatternUtils.CredentialType
7. Refine the logic for isFaceSupported
   ---------------------------------------
   Config |SuwSupportFace|!SuwSupportFace|
    isSuw |    true      |      false    |
   !isSuw |   hasFace    |     hasFace   |

Bug: 263070591
Bug: 279389803
Bug: 279195215
Test: adb shell am start -a android.settings.BIOMETRIC_ENROLL
Test: SUW(workprofile), post-SUW
Test: m RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.password
Test: m RunSettingsRoboTests ROBOTEST_FILTER=SetupSkipDialogTest
Change-Id: Ie7af4299695dc3983b4190929b4dd659c301c082
2023-05-09 09:55:52 +00:00
Shawn Lin
940af5b394 Merge "Set the talkback focus to the header text when Stage is NeedToConfirm" into udc-dev am: f5b4a2388d am: 4e48c03995
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23053883

Change-Id: Iee9ec23d81c9dd15ed76254d5805a51b1298c89b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-09 09:37:38 +00:00
Shawn Lin
f5b4a2388d Merge "Set the talkback focus to the header text when Stage is NeedToConfirm" into udc-dev 2023-05-09 02:11:48 +00:00
Nan Wu
a23f9a69e0 Allow BAL for confirm device credential activity when work profile
apps are protected by PIN prompt.

Test: manual test
Bug: 279889563
Change-Id: Ife319469cee908f54618986107b40bcc82886b06
2023-05-08 18:00:14 +00:00
Shawn Lin
4fef3fac2c Set the talkback focus to the header text when Stage is NeedToConfirm
Should set the talkback focus to the header text when the "Draw your
pattern again" page is shown.

Bug: 275728120
Test: 1. enable talk back
      2. Setup pattern lock
      3. In "Draw your pattern again" page, make sure the talkback focus
	 is set to the header view
Change-Id: If99a950488039840e8486ebb634f0070a9403916
2023-05-08 19:01:33 +08:00
Xiaozhen Lin
f8770a9d56 Merge "Password clearing in Settings App" into udc-dev am: be911918d0 am: 6326345a03
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/22914954

Change-Id: Ib3d54d7075f217d01d407c20e0ba02c5dc4e627e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-04 18:14:14 +00:00
Xiaozhen Lin
bb54d71a33 Password clearing in Settings App
Pixel Imprint will call onDestroy() whenever its menu is invisible.
(https://cs.android.com/android/platform/superproject/+/master:packages/apps/Settings/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java;l=639?q=packages%2Fapps%2FSettings%2Fsrc%2Fcom%2Fandroid%2Fsettings%2Fbiometrics%2Ffingerprint%2FFingerprintSettings.java&ss=android)
However, Screen lock should have the same behavior as Pixel Imprint but
it doesn't.
onDestroy() for Screen lock should be called whenever we exit the menu
or the menu becomes invisible. Otherwise, the password may be leaked to
RAM unexpectedly in some situations.

Bug: 233373529
Bug: 278488549
Bug: 278530059
Test: manual
Change-Id: Ib11af7073aa1c49096a66c9f5a462e7caf18df5e
2023-05-03 02:04:59 +00:00
Eric Biggers
6c3de30086 ChooseLockPattern: remove redundant setting of visible pattern default
Remove the code that set LOCK_PATTERN_VISIBLE to true the first time a
pattern was set, since LOCK_PATTERN_VISIBLE now defaults to true when
unset (ag/22912136).  The explicit defaulting to true was only needed
before because the low-level default value was wrong.

Bug: 270013005
Test: Set a pattern.  Verified that Keyguard uses visible pattern.
      Disabled the "Make pattern visible" option in Settings.  Verified
      that Keyguard doesn't use visible pattern.
Change-Id: I63f29c68f9a508fee0ee2f03f2cca33317fb8a32
2023-05-02 20:19:26 +00:00
Diya Bera
6fbfec99c8 Merge "Adding owners" am: b1aabec0db am: 49ea4e5d22 am: 8a31106496
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/2546170

Change-Id: Ie1505f0272340b867648341bfe01f26e948f14b6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-19 17:54:50 +00:00
Diya Bera
8a31106496 Merge "Adding owners" am: b1aabec0db am: 49ea4e5d22
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/2546170

Change-Id: Ibfc5a6684f98c842f95f5cb125310d89a0035644
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-19 17:39:42 +00:00
Diya Bera
33fab7e415 Adding owners
Test: N/A
Bug: 278741020
Change-Id: Ife62f56fd0e3c83427347365a1eebfad3ec3ed6d
2023-04-18 22:56:31 +00:00
Treehugger Robot
6112e583d7 Merge "Revert "Destroy activity in onStop()"" into udc-dev 2023-04-18 19:07:33 +00:00
Daniel Chapin
b215d94d51 Revert "Destroy activity in onStop()"
This reverts commit 7a89f15fed.

Reason for revert: Droidfood blocking bug b/278178618

Change-Id: Ie26b73e1e9584f632625375d36168a42e95e5f02
2023-04-18 00:16:21 +00:00
Treehugger Robot
7d3b07f6cb Merge "Customize ChooseLockGeneric SUW options" into udc-dev 2023-04-17 06:59:18 +00:00
lbill
53c0c2f4ee Customize ChooseLockGeneric SUW options
Legacy choose lock options was hard coded description.

1. In T-QPR when device do not support Face enroll in SUW flow,
We should remove "Face" from the description.
2. Use BidiFormatter to handle RTL string combination.
3. Define a new string for "Fingerprint"
4. Add workaround crash in ChooseLockGenericTest/SetupChooseLockGenericTest

Test: Manual login corp, and observe the UI in Choose screen lock
Test: adb shell settings put system system_locales ar check RTL
Test: m RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.password
Bug: 269786629
Bug: 277361320
Change-Id: I2b26b7cc229f66300bb23ca190bb21f86f1caa01
2023-04-14 09:34:54 +00:00
Xiaozhen Lin
7a89f15fed Destroy activity in onStop()
Pixel Imprint will call onDestroy() whenever its menu is invisible.
(https://source.corp.google.com/tm-dev/packages/apps/Settings/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java;l=547?sq=package:tm-dev)
However, Screen lock should have the same behavior as Pixel Imprint but
it doesn't.
onDestroy() for Screen lock should be called whenever we exit the menu
or the menu becomes invisible. Otherwise, the password may be leaked to
RAM unexpectedly in some situations.

Bug: 233373529
Test: manual
Change-Id: Idc0c115fc2061d863f9cab2aed99c04340b827f8
2023-04-13 17:29:48 +00:00
Brian Lee
2eb8ed2488 Add RemoteLockscreenValidationFragment to help retain remote lockscreen
validation state.

Currently, if ConfirmDeviceCredentialBaseFragment is ever re-created due
to orientation change, screen getting turned off, etc., relevant state
gets lost. This led to the old ConfirmDeviceCredentialBaseFragment
handling results which led to issues such as lockscreen not getting set.
By addiing a retained RemoteLockscreenValidationFragment,
we're able to update the new ConfirmDeviceCredentialBaseFragment
that will handle results. We can also retain other important state like
the device credential guess to be set after successful validation.

Some smaller changes include:
* If the activity is finished for any reason other than "Back" getting
  pressed, RESULT_FIRST_USER is returned instead of RESULT_CANCELED.
* CheckBox, "Forgot [LSKF]?" button, and EditText/LockPatternView
  gets disabled during validation.
* The above also stay disabled if ConfirmDeviceCredentialBaseFragment
  gets re-created and remote lockscreen validation is still in progress.

Test: m RunSettingsRoboTests -j
ROBOTEST_FILTER=com.android.settings.password
Test: Manual
Bug: 274983372
Bug: 274991889
Bug: 274792310
Bug: 270395807

Change-Id: Ib6d47430e233a43e6985ab83abae45713c49771f
2023-04-05 16:35:25 +00:00
Dmitry Dementyev
cd7123e071 Merge "Return GK_PW_HANDLE after remote LSKF verification." into udc-dev 2023-04-04 18:37:36 +00:00
Avinash Vadlamudi
a4cf551d25 [Auto Pin Confirm]: Trigger PIN verification when auto confirm setting is being turned on or off
- Fix the logic to set the pin_auto_confirm setting before triggering the password save workflow in ChooseLockPassword

Bug: 275385372
Test: atest AutoPinConfirmPreferenceControllerTest
Test: Manual Test
Change-Id: Id6774bc9afcd6d3161e023dc52911ae3e1f556c9
2023-03-28 15:33:40 +00:00
Wu Ahan
2034c0c395 Merge "Use GlifLayout#setDescriptionText in SetupChooseLockGenericFragment" into tm-qpr-dev am: 3a2ef6db2f am: 0067e9581b
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/22099962

Change-Id: I19a4ecd726bf1e6b059909fcb274f2d2cc080fb7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-22 14:02:36 +00:00
Wu Ahan
0067e9581b Merge "Use GlifLayout#setDescriptionText in SetupChooseLockGenericFragment" into tm-qpr-dev am: 3a2ef6db2f
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/22099962

Change-Id: Ibe03950c9d6e02ebd641e93df2cb5cb646dbfb35
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-22 13:44:52 +00:00
Wu Ahan
3a2ef6db2f Merge "Use GlifLayout#setDescriptionText in SetupChooseLockGenericFragment" into tm-qpr-dev 2023-03-22 03:46:30 +00:00
Ahan Wu
ae84ac3530 Use GlifLayout#setDescriptionText in SetupChooseLockGenericFragment
1. Use GlifLayout#setDescriptionText to align UX.
2. Remove redundant layout resources.
3. Add two new robotests.

Bug: 236948821
Test: make RunSettingsRoboTests ROBOTEST_FILTER=SetupChooseLockGenericTest
Test: Check UI manually
Change-Id: I85cc984527fcc746e835d8fa508e78c96dfdcb94
2023-03-21 06:27:51 +00:00
Dmitry Dementyev
e9e48a5b95 Return GK_PW_HANDLE after remote LSKF verification.
Handle is returned when LSKF is set after successful verification.
It is used by SUW to add biometrics without asking for LSKF.

Bug: 272807192
Test: manual
Change-Id: I3fe6ed7fd6401421090ccd684509dfede9106076
2023-03-20 18:01:52 -07:00
Diya Bera
ed1bb20ff1 Merge "Remove subtitle from biometric prompt in Settings (Passwords & Accounts)" into tm-qpr-dev am: f7359a5001
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/22084586

Change-Id: I190752b9c2a65024c140b7dab92524097c183ee4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-15 22:52:07 +00:00
Diya Bera
4ffddaa19f Remove subtitle from biometric prompt in Settings (Passwords & Accounts)
Bug: 250064171
Test: Manual - repro according to bug
Change-Id: I5896c3cec13d65093fa928db042952045269b93f
2023-03-15 04:17:50 +00:00
Pavel Grafov
e5d082b0dc Show work lock confirmation in a task overlay
WorkLockActivity is added on top of each task that has any work
activity when the profile is locked. This activity is a task
overlay meaning it stays on top of other activities. It then starts
ConfirmDeviceCredentialActivity, also as an overlay because
otherwise it will sink under WorkLockActivity. But when CDCA
launches CofirmLockPattern, it is not set as an overlay and as a
result is not visible. These CLs add a boolean extra to instruct
CDCA to launch CLP (or other activities) as an overlay.

Bug: 271840143
Bug: 234002331
Test: manual, with TestDPC setting password reset token.
Test: m RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.password
Change-Id: Ie9b593696a24ad0c435b36eef80e3fe760c588ba
2023-03-13 14:49:57 +00:00
Dmitry Dementyev
1ab3fe5a9e Use updated lockscreen validation API in Settings.
Test: manual
Test: m RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.password
Bug: 269256333
Change-Id: I660dea98eace96ed241b0a90f12ddeb742381dc0
2023-03-08 22:09:25 +00:00
Avinash Vadlamudi
7da92e9295 [Auto Pin Confirmation]: Save the autoPinConfirmOptionSetManually field state
- Save and restore the autoPinConfirmOptionSetManually field during activity restart (because of orientation change)
- This helps to retain the state of the auto confirm unlock checkbox  during an orientation change during set PIN stage.

Bug: 268592440
Test: Manual Test
Test: atest ChooseLockPasswordTest
Change-Id: I48ce9080b6007fb4e3a5ca5013d6c21ed4ba664f
2023-02-28 11:54:16 +00:00
Avinash Vadlamudi
e644d26b95 [Auto Pin Confirm]: Fix the usage of LockPatternUtils#isAutoPinConfirmFeatureAvailable method
- The method isAutoPinConfirmFeatureAvailable is changed to static, so refactoring the code to use it properly.

Bug: 270315296
Test: Manual Test
Test: atest AutoPinConfirmPreferenceControllerTest
Test: atest ChooseLockPasswordTest
Change-Id: Idecaeca296b9ae9acdd0c094dcbb736db31b74b3
2023-02-23 05:56:58 +00:00
Brian Lee
d4f8e5802e Support remote device credentials validation in UI.
Test: m RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.password
Test: Manual
Bug: 258505917

Change-Id: Ifb9f15728eb8396b34c844d28f71a8e6e1aad837
2023-02-15 23:23:17 -08:00
Chengfei Tao
af1a9183fa Merge "Better biometric subtitle with createConfirmDeviceCredentialIntent() API" 2023-02-08 09:11:04 +00:00
Diya Bera
62a25bfb58 Merge "Remove background tint during SUW" into tm-qpr-dev am: 135041eab5 am: 8f2a74479a
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/21265617

Change-Id: I59aef62d50993776a25a9dcfab15d63f880b3298
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-02-06 18:58:18 +00:00