Commit Graph

218 Commits

Author SHA1 Message Date
joshmccloskey
53ccc448c8 Using new Biometric API
Test: Verified disabling fingerprint will not allow
the user to unlock work apps with fingerprint. (But can use fingeprint
within apps.)
Test: Verified disabling face and/or iris on a fingerprint device will
continue to
allow the user to unlock work apps with fingerprint.
Test: Verified disabling face on a face authentication device
will not allow the user to unlock work apps with face authentication.
(But can use face
authentication within apps.)
Test: Verified disabling fingerprint and/or iris on a face
authentication device will continue to allow the user to unlock work
apps with face authentication.

Change-Id: I2f72a85f39ec539e6c6bc2cf710ed2f5ebeb5f9a
2019-12-18 16:18:31 -08:00
Rubin Xu
0008986ef1 Fix NPE in ChooseLockPattern
Since mChosenPattern can be null, guard against it.

Bug: 144452509
Test: manual
Change-Id: I2814e49ee2e63e19631e8415efcc50e9ae78d4fc
2019-11-14 10:53:43 +00:00
Raff Tsai
c898775914 Hide search box if it is called in initial setup wizard
- Search box is hidden if user set intent extra isSetupFlow true

Fixes: 135717823
Test: search box is hidden in the following command
adb shell am start -a android.settings.SETTINGS --ez isSetupFlow true

Change-Id: Ia3d955c9390d6b0eef9391b9b35b6a483eb63d26
2019-10-18 02:08:38 +00:00
Joshua Mccloskey
0546a9faf1 Merge "Enforce policy management." 2019-10-16 23:23:27 +00:00
Pavel Grafov
7bdfda7775 Merge "Password constraints cleanup." 2019-10-16 17:49:12 +00:00
Pavel Grafov
69cac2c986 Password constraints cleanup.
Unified password validation code between DPMS and Settings.

Bug: 138375712
Test: atest tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java
Change-Id: I55e4dae47526659594af3fcdbfc1292edceb5807
2019-10-16 15:36:21 +01:00
joshmccloskey
9be0899b3c Enforce policy management.
Test: Verified disabling fingerprint will not allow
the user to unlock work apps with fingerprint. (But can use fingeprint
within apps.)
Test: Verified disabling face and/or iris on a fingerprint device will
continue to
allow the user to unlock work apps with fingerprint.
Test: Verified disabling face on a face authentication device
will not allow the user to unlock work apps with face authentication.
(But can use face
authentication within apps.)
Test: Verified disabling fingerprint and/or iris on a face
authentication device will continue to allow the user to unlock work
apps with face authentication.
Bug: 141382589

Change-Id: I74135dd9f6afb1b789302ad0af3daf8a73a4181b
2019-10-16 00:05:10 +00:00
Rubin Xu
3bf2e70745 Fix NPE when user goes from none to swipe for lockscreen
If the user currently doesn't have a password and transitions
into another empty lockscreen (none -> swipe or swipe -> none),
there is no need to call setLockCredential.

Bug: 142701762
Test: Not yet :(
Change-Id: I553c8b30c7414775185d632660d962a73607baca
2019-10-15 23:51:10 +01:00
Rubin Xu
010116a173 Introduce LockscreenCredential
Bug: 65239740
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.password
Change-Id: Icb73d639291d6d2eda8015e18e93d0906f916bb2
2019-10-13 21:20:02 +01:00
Kevin Chyn
da1438d0c4 Merge "Removed old settings device credential logic." 2019-10-05 02:37:26 +00:00
Alex Johnston
a0351e2e19 Remove all biometrics data of a user when password is cleared.
Previously, the biometrics were only cleared if the password was cleared from the Settings.
Moved the logic from the Settings app to the system server side.
Now, the biometrics will be removed no matter how the password is cleared (Settings, adb, TestDPC).

Bug: 130653263
Test: Atest LockSettingsServiceTests
      manual testing from Settings, adb and TestDPC

Change-Id: I864b93404ec5cadb0685ac5d41376bf64ebde6f7
2019-10-03 16:05:07 +01:00
joshmccloskey
3786016993 Removed old settings device credential logic.
Bug: 140128468
Test: Verified with biometricpromptdemo that confirm device credential
still works correctly.
Change-Id: I0f608ba1256c696317402f56549452bf6933066b
2019-09-18 15:57:22 -07:00
Joshua Mccloskey
f970bbf68b Merge "Fixed talkback issue on confirm lock password." 2019-09-06 20:59:28 +00:00
joshmccloskey
50aea6e66b Fixed talkback issue on confirm lock password.
Fixes: 132156012
Test: Verified with BiometricPromptDemo that talkback now
announces the correct password type for PIN/Pattern/Pass.

Change-Id: I3a04fe691140abba40396f95a601f863d87ee394
2019-09-06 11:32:25 -07:00
TreeHugger Robot
7b808faefc Merge "Set the content description of pin/password boxes" 2019-09-06 01:21:06 +00:00
Christopher Tate
9efc5ab929 Track framework changes to crashApplication API
Bug: 128649910
Test: manual
Test: atest OsHostTests#testForegroundServiceBadNotification
Change-Id: Ia613372360f8b32f6ad3b7d2092e7cb27f067fbc
2019-08-28 16:48:04 -07:00
joshmccloskey
fc397f7406 Set the content description of pin/password boxes
Fixes: 79711253
Test: Talkback announces the correct string correctly upon
using either flow.

Change-Id: I01c4e308b8ef9d501f1f5d37e716956a12bea6dc
2019-08-27 12:01:30 -07:00
Sunny Shao
1bebe19101 Use FooterPreference in xml explicitly
Removed the FooterPreferenceMixin from the ChooseLockGeneric page.

Fixes: 139269907
Test: manual test
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.password
Change-Id: I86e294015354c0a6a6311441892a770503382d1f
2019-08-13 20:08:54 +08:00
Kevin Chyn
bdebaf4396 Add ability to finish() ConfirmDeviceCredential if it loses foreground am: e27a304b97
am: 7baab69bdc

Change-Id: I46b98ccd554566433c1d11272677894960fd2d16
2019-07-26 18:26:47 -07:00
Kevin Chyn
e27a304b97 Add ability to finish() ConfirmDeviceCredential if it loses foreground
If user enters face settings but does not enter the password, then
turns off the screen, it's possible the challenge is invalidated. Instead,
we should finish() the device credential screen as well as FaceSettings.

This prevents
1) The user from being prompted for credential with lack of context
2) Credential returning a HAT that wraps an invalidated challenge

The user will be returned to the security settings screen, where they
have more context and can decide if they want to enter face settings again.

Fixes: 138273242

Test: 1) Open face settings, do not enter password
      2) Press power button
      3) Unlock keyguard
      4) User is not presented with credential screen
Test: Go through SUW, turning on/off the screen at various security
      screens. Able to enroll successfully

Change-Id: I3c3d4600138012821bb0eea7d2927df00011cdb0
2019-07-26 16:42:14 -07:00
Kevin Chyn
75517cb6a8 Merge "Do not request cancel authentication unless currently authenticating" into qt-r1-dev am: ba4fad160d
am: 6d549437af

Change-Id: If055528ab0d92318fc552c2396465cecd8e5acea
2019-07-26 12:45:44 -07:00
Kevin Chyn
0a33d62a17 Do not request cancel authentication unless currently authenticating
Currently we always send cancel() if ConfirmDeviceCredentialActivity
goes into the background. However, if the biometric state is no longer
authenticating, requesting cancel() in this state will result in an
inconsistent state between BiometricService/client and
ConfirmDeviceCredentials.

BiometricService/client will receive the ERROR_CANCELED message incorrectly,
while ConfirmDeviceCredential is showing / pending user password. When
the password is entered, its result is ignored.

The correct behavior is for ConfirmDeviceCredentialActivity to invoke
cancel() only if it's still authenticating. Otherwise BiometricService
and its client will receive ERROR_CANCELED, instead of the actual password
auth result.

Bug: 138279856

Test: BiometricPromptDemo, enable device credential fallback, get into
      lockout state, successfully enter password. API result is
      success instead of "canceled" now.

Change-Id: I6521e896d0402fe856dc85476f51149c9b3084a8
2019-07-26 11:20:10 -07:00
Curtis Belmonte
209c049dca Fix work account setup lock screen content for face auth
am: 5604585930

Change-Id: Id6044f31b68d7b36a40b165be639bc58cc0e8b33
2019-07-08 17:10:55 -07:00
Curtis Belmonte
5604585930 Fix work account setup lock screen content for face auth
For devices which provide biometric authentication options, such as
fingerprint or face, we should be showing different content on the lock
setup screen during the corp account setup wizard. Namely, the title
should read "Choose screen lock", and the "Not now" option should be
changed to "Continue without [auth method]". However, we currently only
check for whether fingerprint authentication is available, leading to
incorrect text for devices with face authentication.

This CL fixes the issue by changing the introducing a private method to
check for any biometric authentication (currently just mForFingerprint ||
mForFace). It then uses this method in place of the existing
mForFingerprint checks in SetupChooseLockGeneric.

Test: On a device with fingerprint auth and one with face auth:
1. Set a work profile with TestDPC and add some password quality requirement
2. adb shell settings put global device_provisioned
3. adb shell am start -a android.app.action.SET_NEW_PARENT_PROFILE_PASSWORD
4. Verify that the correct content is now shown (screenshot/xZPVtpa3j3Z)
5. Verify that setting lock with and without biometric auth still works

Fixes: 136556653

Change-Id: I46d3c964f05986aa97cc8ed77fe0ac125337ddd0
2019-07-08 19:03:56 +00:00
Alex Kershaw
0f9426a8b5 Merge "Don't display footer text when calling app is DPC." into qt-dev am: 993446a68e
am: e19ede22a2

Change-Id: Ia9a653d6ce5c6a9164d044e7860e866a76817ee9
2019-05-21 12:20:01 -07:00
Alex Kershaw
29d2bff7e1 Don't display footer text when calling app is DPC.
If the calling app has admin rights (DA/DO/PO), don't display footer
text that the calling app is 'recommending' that a password is set.

Fixes: 131888973
Test: atest com.android.settings.password.SetNewPasswordActivityTest --verbose
Test: atest com.android.settings.password.ChooseLockGenericTest --verbose
Test: manual
Change-Id: I32785d33e6425416fc1dbba24540ece8917b58f3
2019-05-20 12:19:22 +00:00
Colin Cross
807e861105 Use if instead of switch for resources
Converting to Soong will move some code from directly compiled
into the app to compiled into an Android library and then
shared between the app and the tests.  This will cause resource
IDs in the library to become non-final, which means they can
no longer be used in case statements.  Convert affect case
statements to if blocks.

Test: m RunSettingsRoboTests
Change-Id: I25742a374f06d3fa4decbfc0d223a350acc50881
2019-05-13 13:42:01 -07:00
Fan Zhang
9db66a562c Clean up before making all setting page render edge-to-edge
These classes are casting view to LinearLayout unnecessarily. Later we
might change the root view away from LinearLayout. The cast will cause
crash.

Bug: 132182711
Test: go through SUW.
Change-Id: Iea31882f8edea0c87ef8e95b4da9b6bffa8ea7d0
2019-05-10 21:27:05 +00:00
Pasty Chang
d6f9ec122d Merge "Update the fingerprint skip dialog" into qt-dev 2019-04-25 06:12:19 +00:00
Pasty Chang
393492438b Merge "Change to show generic lock screen before setup fingerprint or face" into qt-dev 2019-04-25 06:12:19 +00:00
pastychang
5145dc1529 Update the fingerprint skip dialog
Test: atest
Bug: 124028212
Change-Id: I1a1151c231862ef21b302317f0f105de1a79eac7
2019-04-25 02:16:23 +00:00
joshmccloskey
6b30136edf Fixed Infinite loop method call.
Test: Verified that setupwizard flow no longer causes infinite loop.
Fixes: 131106091
Change-Id: I0777fefa08063c62f7ef8cbbc252e219efa98f24
2019-04-25 00:42:31 +00:00
joshmccloskey
a104d290de Updated ConfirmDeviceCredential strings
Test: Verified with BiometricPromptdemo that pin/pattern/pass
show up correctly.
Fixes: 129797243
Change-Id: Ib075d6742f7e2ad03e491132ae9506dce67558fc
2019-04-16 14:19:29 -07:00
Kevin Chyn
79f49b4626 Merge "Launch correct enrollment activity from ChooseLock" into qt-dev 2019-04-14 04:03:54 +00:00
Kevin Chyn
5ab064f343 Launch correct enrollment activity from ChooseLock
Test: no noticable difference when setting up fingeprint work profile

Fixes: 130397083
Change-Id: I34be5262cc52052ce25a188f19bbcc13f938ac92
2019-04-13 08:17:38 +00:00
pastychang
fa68ec4f56 Set suw description textview to fixed id
Heavy theme supports to costomize description text style. Modify it to fixed id
that can be customized by partner resource.

Heavy theme screenshot: https://screenshot.googleplex.com/TL4M7wmTaPg
Set fixed id screenshot: https://screenshot.googleplex.com/CA6QHoNTQBZ

Test: atest
Bug: 121988926
Change-Id: I8882acd49e7d57f24afa9dd6f3e9abfd06556053
2019-04-12 09:20:12 +00:00
Kevin Chyn
3c2d168026 Merge "ConfirmDeviceCredential should respond to cancel when launched through BP" into qt-dev 2019-04-10 08:34:34 +00:00
pastychang
7a083f8f2f Change to show generic lock screen before setup fingerprint or face
Bug: 121235656
Test: atest
Change-Id: Ib2a4c7382334433a56225f5338896f70b752071d
2019-04-09 02:33:17 +00:00
cnchen
caf122bcb6 Fix fingerprint screens from "Anything else" screen not applying Stencil theme
Bug: 129788677
Test: RunSettingsRoboTests, manual test intent extra data has been passed
Change-Id: Icfae54061e5d87a8ba9c95263d840c456aac5bcb
2019-04-08 03:45:59 +00:00
Kevin Chyn
eeca918ac7 ConfirmDeviceCredential should respond to cancel when launched through BP
Fixes: 128747871

Test: BiometricPrompt launched by ConfirmDeviceCredential is canceled
Test: ConfirmLock* can also now be canceled
Test: No effect on non-biometric related paths

Change-Id: I237de136e63d523fece87fad7a93f4ecd66d800b
2019-04-04 17:22:23 +00:00
Maurice Lam
e7cad18394 Add log about ChooseLockGeneric refusing to start
Test: Manual
Bug: 129445834
Change-Id: I4fd034a3c3d1c004144d4b49c0ce14e7aa89fcba
2019-03-29 10:58:54 -07:00
Maurice Lam
9c2fae83a3 Fix fingerprint icon on pattern screen
Test: atest [...]/ChooseLockPatternTest.java
Bug: 129342100
Change-Id: I4e670b6265fe4a77ecbd8ede9a703fa0762f7504
2019-03-26 18:50:21 -07:00
TreeHugger Robot
6029cf9677 Merge "Do no crash when profile is deleted" 2019-03-25 14:27:28 +00:00
Rubin Xu
654a78b56e Do no crash when profile is deleted
Catch the exception and finish the activity.

Change-Id: I45deec32fd49119ab7943a941158bca82b63c432
Fix: 122823738
Test: manual
2019-03-22 15:06:56 +00:00
Irina Dumitrescu
4b96dc3ec7 Fail the screen lock flow if the old password has already changed.
Test: atest RunSettingsRoboTests
Bug: 120039091
Change-Id: Ib0860ccbc1ba84a2ac8dafcf3cf33f6ddf160e4c
2019-03-22 11:49:00 +00:00
Rubin Xu
e0efe27f03 Force LSKF in ConfirmCredential UI when pending escrow token exists
Escrow tokens can only be activated by user confirming their LSKF,
while ConfirmCredential allows both LSKF and biometrics by default.
By requiring LSKF, it simplifies the DPC's flow of requesting the user
to activate a pending escrow token.

This change tweaks the ConfirmCredential UI to skip biometrics if pending
token exists.

Bug: 127377026
Bug: 76084679
Bug: 79547502
Test: manual
Change-Id: Iee9b2d57d7f4de98e225b3aeff7cc35cc8e3d36a
2019-03-18 17:20:26 +00:00
bernardchau
46ccd797ac Update screen lock complexity permission to password complexity
This is to match the method name "getPasswordComplexity" as requested by API review feedback

Bug: 128030136
Test: N/A
Change-Id: Ia4ce1b0ceb581608615364b41a05ca71142ef2b7
2019-03-11 16:39:08 +00:00
Kevin Chyn
37293d59d3 Update Settings with BiometricPrompt API update
Bug: 126190552
Test: Builds
Change-Id: I4b99a59982c1d23be7e49940a271f7652c51d480
2019-03-05 18:29:36 +08:00
Rich Cannings
b27c4308a2 Refactor passwords/pins/patterns to byte[]
Relating to packages/apps/Settings

Bug: 120484642
Test: manual - test setting and unlocking passwords/pins/patterns.
      automated - 20 of about 500 tests fail due to fragile synthetic
      password test code.

Change-Id: Idec8338d141c185bef67ade12035fdb2fa9d17ea
2019-02-26 14:46:12 -08:00
Lenka Trochtova
bb8e81770b Settings UI fix for missing secure lock screen feature.
Bug: 123737250
Bug: 111072170
Bug: 111071972
Test: manual both with and without the feature flag
Test: make RunSettingsRoboTests

Change-Id: Iacefa95dce85d860633315e074cbf2772691cfdd
2019-02-25 10:18:35 +00:00