Commit Graph

148 Commits

Author SHA1 Message Date
Tony Mak
8f41b9b665 Fix DPM.ACTION_SET_NEW_PASSWORD
Problem:
SetNewPasswordActivity is the new entrance for
ACTION_SET_NEW_PASSWORD. And it starts ChooseLockGeneric with the
fingerprint extras. ChooseLockGeneric infers which user is starting it
and determine which user is setting password. However, it now always
think that it is current user as it is always SetNewPasswordActivity
in current user starting it.

Solution: Resolve the user id in SetNewPasswordActivity and forward it
to ChooseLockGeneric. SetNewPasswordActivity needs to know the user id
anyway in order to have the fingerprint checking in the correct user id.

Test: 1. make RunSettingsRoboTests
      2. Manual Test
      	a. Start SET_NEW_PASSWORD intent in user 0, set password.
         	User 0 password is set.
      	b. Start SET_NEW_PASSWORD intent in work profile, set password.
         	work profile password is set.
        c. SET_PROFILE_PARENT_NEW_PASSWORD is always setting parent
           password.
        d. If fingerprint is disabled, both intent should not show
           fingerprint option
        e. DO sync auth flow with google.com account, fingerprint option
           is shown.

Change-Id: I2f73d01ab11e91b337beb90c05bbcb857dfd40dc
Fix: 32959373
2016-11-23 11:36:18 +00:00
Tamas Berghammer
265d3c2a0c Update package names to work with the proto3 compiler
Bug: b/28974522
Change-Id: I5f3adf4946ee4ba1e09e4f40afe83c151405972a
2016-11-08 14:06:17 +00:00
Udam Saini
d6b1c666c5 Can launch into the lock screen with setup wizard style
The trampoline currently always uses the settings style for set action
new password. When called during setup wizard, it should launch the
setup wizard style.

Test: Added robotests for launching activity and copying setup wizard
extras. Also manually tested with an application when device is
provisioned and not provisioned.

bug:32575389
Change-Id: I5763eb87b63a46b05cd200bb73b15bdc24c8bd3b
2016-11-02 11:49:09 -07:00
Steven Ng
37fe25489f Nexus imprint setting is missing while adding corp account from SUW am: 378dec1495 am: 046a63450f am: bde2c59f00
am: dd83a65e88

Change-Id: I0e0536c168d7438057701783cb54a42ad4b9010e
2016-10-25 22:31:38 +00:00
Steven Ng
378dec1495 Nexus imprint setting is missing while adding corp account from SUW
+ This is caused by the encryption interstitial result code not handled
  in ChooseLockGeneric. Change the request code of launching encryption
  interstitial screen to CHOOSE_LOCK_BEFORE_FINGERPRINT_REQUEST if it
  is set new password flow.

Testing
Test: See below
1) Auto
   make RunSettingsRoboTests
2) Manual
   On a device (Nexus 5x) that shows encryption interstital screen and
   supports fingerprint.
   1) Nexus imprint flow (regression test)
      Fingerprint can be enrolled with the following flow.
      Settings > Security > Nexus Imprint > FingerprintEnrollIntroduction
      > ChooseLockGeneric (Unlock selection) > Encryption Interstitial
      > Password setup > Notification Interstitial
      > Find sensor and fingerprint enrollment
   2) Set new password test
      i) $ adb shell am start -a android.app.action.SET_NEW_PASSWORD
      ii) Click Nexus Imprint + Pattern.
      iii) Choose "Require pattern to start device"
      iv) Set a pattern lock.
      v) Choose any of the notification behavior.
      vi) Can enroll a fingerprint.

Bug: 32382952

Change-Id: Ie66ffca2e8c3cc46b5e8b619bd35986e4f41d5ab
2016-10-25 20:01:23 +00:00
Jeff Sharkey
8d8bb6ee1d Check for FingerprintManager before using.
Test: built
Bug: 32096112
Change-Id: I2d2ad86c7bf9a4aa16f26e90eb3fca86a6b4b2fb
2016-10-13 12:59:17 -06:00
Jeff Sharkey
ab50807d1e Offer a null FignerprintManager.
Settings likes null.

Test: builds
Bug: 32060380
Change-Id: I5ba19bccfd48916d4e581518928a6aee19e84a77
2016-10-11 14:30:19 -06:00
Jeff Sharkey
7be1b5923f Give CTS the handle it expects to remove PIN.
When the Direct Boot tests go to remove the PIN set in previous
tests, it needs to find the option that will remove the PIN.  Recent
changes for fingerprint caused this "none" option to be hidden, so
assign the "none" ID to the "skip" option.

Test: cts-tradefed run cts-dev --module CtsAppSecurityHostTestCases --test android.appsecurity.cts.DirectBootHostTest
Bug: 31160946
Change-Id: I0b34cbfae45d1db8ee58a5ef66738414f5e2fc27
2016-10-04 20:33:39 +00:00
Jeff Sharkey
159dff63a5 Give CTS the handle it expects to remove PIN.
When the Direct Boot tests go to remove the PIN set in previous
tests, it needs to find the option that will remove the PIN.  Recent
changes for fingerprint caused this "none" option to be hidden, so
assign the "none" ID to the "skip" option.

Test: cts-tradefed run cts-dev --module CtsAppSecurityHostTestCases --test android.appsecurity.cts.DirectBootHostTest
Bug: 31160946
Change-Id: I0b34cbfae45d1db8ee58a5ef66738414f5e2fc27
2016-10-04 13:45:38 -06:00
Steven Ng
da738b2edc DO NOT MERGE Provide fingerprint options for SET_NEW_PASSWORD intent
Cherry-pick from ag/1444396

1) Added a trampoline activity to display SET_NEW_PASSWORD intent.
2) On devices that have fingerprint sensor and have no enrolled fingerprint,
   ChooseLockGeneric handles the SET_NEW_PASSWORD intent by providing
   fingerprint + {PIN/PATTERN/PASSWORD} and skip fingerprint options.

Test: See below
1) Auto
   make RunSettingsRoboTests
2) Manual
   a) Fingerprint + pattern
      i) $ adb shell am start -a android.app.action.SET_NEW_PASSWORD
      ii) Click Pixel Imprint + Pattern.
      iii) Set a pattern lock.
      iv) Can enroll a fingerprint.
   b) Pattern
      i) $ adb shell am start -a android.app.action.SET_NEW_PASSWORD
      ii) Click Continue without Pixel Imprint
      iii) A list of unlock options, without fingerprint option, is shown.
      vi) Select and enroll a pattern lock
   c) Has an existing password
      i) $ adb shell am start -a android.app.action.SET_NEW_PASSWORD
      ii) Setting app asks for password input.
      iii) Enter password and click "Continue without Pixel imprint".
      vi) No password is asked. A list of unlock options, without fingerprint option, is shown.
      v) Select and enroll a pattern lock
   d) Work profile
      i) Create a work profile
      ii) adb shell am start --user x -a android.app.action.SET_NEW_PASSWORD. X is the work profile user id.
      iii) Click Pixel Imprint + Pattern.
      iv) Set a pattern lock.
      v) Can enroll a fingerprint.

Bug: 23017051
Change-Id: I6384bbffb72a5d3a83972da7474532746e4d06b9
2016-09-28 15:24:14 +00:00
Steven Ng
4fdcec71dc Provide fingerprint options for SET_NEW_PASSWORD intent
1) Added a trampoline activity to display SET_NEW_PASSWORD intent.
2) On devices that have fingerprint sensor and have no enrolled fingerprint,
   ChooseLockGeneric handles the SET_NEW_PASSWORD intent by providing
   fingerprint + {PIN/PATTERN/PASSWORD} and skip fingerprint options.

Test: See below
1) Auto
   make RunSettingsRoboTests
2) Manual
   a) Fingerprint + pattern
      i) $ adb shell am start -a android.app.action.SET_NEW_PASSWORD
      ii) Click Pixel Imprint + Pattern.
      iii) Set a pattern lock.
      iv) Can enroll a fingerprint.
   b) Pattern
      i) $ adb shell am start -a android.app.action.SET_NEW_PASSWORD
      ii) Click Continue without Pixel Imprint
      iii) A list of unlock options, without fingerprint option, is shown.
      vi) Select and enroll a pattern lock
   c) Has an existing password
      i) $ adb shell am start -a android.app.action.SET_NEW_PASSWORD
      ii) Setting app asks for password input.
      iii) Enter password and click "Continue without Pixel imprint".
      vi) No password is asked. A list of unlock options, without fingerprint option, is shown.
      v) Select and enroll a pattern lock
   d) Work profile
      i) Create a work profile
      ii) adb shell am start --user x -a android.app.action.SET_NEW_PASSWORD. X is the work profile user id.
      iii) Click Pixel Imprint + Pattern.
      iv) Set a pattern lock.
      v) Can enroll a fingerprint.

Bug: 23017051
Change-Id: I6384bbffb72a5d3a83972da7474532746e4d06b9
2016-09-26 22:13:08 +01:00
Fan Zhang
ac5e593223 Add logging for a few dialogs in Settings.
Bug: 30681529
Test: Checked via adb logcat -b events |egrep'(sysui_|notification_)'

Change-Id: Ida7ce88f11fd476164f2d016ac0badcd7c549ae4
2016-09-14 13:25:28 -07:00
TreeHugger Robot
24e673b0d2 Merge "Eliminate useless 'isManagedProfile' utils method" 2016-09-12 09:08:05 +00:00
Robin Lee
788671647c Eliminate useless 'isManagedProfile' utils method
This exists in UserManager now

Change-Id: If35326a1fe0de3c7bfde842c5c170899dc5d819b
2016-09-12 16:25:28 +09:00
Jim Miller
b5f3c1d9b6 Check for missing preference before setting title. am: 06458be226 am: 68306c3409
am: 3d0b4bb6c9

Change-Id: I75dc4b7f832884fa4a6eb9f5e934d1da36d303f0
2016-09-09 20:32:31 +00:00
Jim Miller
06458be226 Check for missing preference before setting title.
Some preferences aren't available due to DPM, so check for null
before setting the title.

Fixes bug 31184335

Change-Id: I69f97274eef87755269fd8f7897edcc36087f8b2
2016-09-09 11:54:12 -07:00
Fan Zhang
6507613ebc Log visibility change for all fragments.
Bug: 30681771
Test: SettingsUnitTests

Refactor visibility logging from InstrumentedFragment into a mixin. And
apply mixin in remaining fragments.

Change-Id: Ibbb59904336254a3e4bb9e8c7d0b36e5a6bc2622
2016-08-18 14:04:13 -07:00
Evan Rosky
bb70e4f696 Option to hide swipe method
Bug: 27502832
Change-Id: Ia61b63279fa6f831fdfa9209747b0cbcbf807d50
2016-06-23 19:51:26 +00:00
Maurice Lam
d189ac52a4 Use GLIF theme for Settings > Security > Screen lock
Bug: 24405946
Change-Id: I1fed96cbc228b6bb367637f83f9cd3bac2761417
2016-06-16 12:13:11 -07:00
Ricky Wai
dae1ac5cb0 Remove work fingerprints when primary profile lock is removed
Bug: 29264034
Change-Id: Ia4043e8a4f4481ff72b8d7069fd139a381158083
2016-06-14 14:43:00 +01:00
Mahaver Chopra
bc18b40623 More informative title while choosing work lock.
When Intent ACTION_SET_NEW_PASSWORD is called from a managed profile,
ChooseLockGeneric fragment shows title "Unlock Selection", update that to
"Choose work lock".

Bug: 28451356
Change-Id: I9bcf4698557fa453337aa666f10f94f15e7624fa
2016-05-04 13:13:44 +01:00
Jim Miller
5a8e522c6c Fix bug where fingerprint for wrong userId was attempted to be removed.
- cleaned up private API to ensure userId is distinct from groupId.
- fixed bug where we were sending the wrong userId when attempting to
- fix warning about wrong fingerId when receiving final id of 0.

Fixes bug 28268635

Change-Id: Ic8abfbf6fbf173db2d57a76ac2e38b2a71ffd19e
2016-04-20 14:06:00 -07:00
Toni Barzic
e7d6e4ddb2 Teach settings about PASSWORD_QUALITY_MANAGED constant
Add hooks for adding an option for selecting a managed password as
lock credential. By default this option will not be visible.

BUG=27923581

Change-Id: Id17bd8074bf23cbcffb96d8576cc760df6f2298a
2016-04-07 10:44:35 -07:00
Ricky Wai
751de37275 Delete all work fingerprints when unified lock changes to None/Swipe
Bug: 27551139
Change-Id: I64105621057e04be0e4d8073626ac3ed0f1e72d2
2016-04-07 15:41:18 +00:00
Ricky Wai
4bbf0653c0 Keymaster init for work profile
Changes:
(1) When unified work challenge is enabled and screen lock is secure
  - Store work profile secure key in primary profile
  - When primary user keystore unlocked, unlock work profile keystore
  - When primary user change lock to none, remove work secure key
(2) When unified work challenge is enabled but screen lock is not secure
  - When screen lock changes to secure, store work secure key in primary
(3) When user changes work challenge from unified to separated
  - Remove work secure key in primary
(4) When user changes work challenge from separate to unified
  - Do (1) and (2)

Bug: 27460698

Change-Id: Id7464c178e6ea7b561643477e7cd84f963048c87
2016-04-07 14:23:55 +00:00
Jeff Sharkey
a77652fea9 Mark UI components for tests to find.
Bug: 26498834
Change-Id: Id8ade0b9230a946c7facf8ebaf9700c196b31ee3
2016-04-01 23:18:11 -06:00
Udam Saini
5a1dbf8152 Wait for fingerprints to be removed (Partial fix).
This is a partial fix for b/27903189.
When we remove the lock screen and remove all fingerprints, wait for
them to all be removed before finishing the activity. This will let
the security screen accurately show how many fingerprints are available.

bug:27903189
Change-Id: I30908dbefb7a858f6d99e532841ed4ff894bfe62
2016-03-29 15:12:44 -07:00
Udam Saini
92779ce701 Prevents drawer menu from showing depending on intent.
When ChooseLockScreenGeneric is started via the set password
intents, it should not allow the drawer menu to show.

bug:26288300
Change-Id: I10d512e20fedab2be8c725c7d524db0c55666590
2016-03-28 16:43:57 -07:00
Tony Mak
25c3c54c03 Should read specific user's password restriction
Bug: 27330307
Bug: 27543548

Change-Id: I385d190bdd8138f7189c657498f6a55bf84668ea
2016-03-18 14:49:52 +00:00
Paul Lawrence
23c2acfd4c Don't show secure startup options and strings when file encrypted
File encryption is secure by default, so we don't need to warn.

Bug: 27433949
Bug: 27435082

Change-Id: I3e856256188e6a7dcd58cabbde043395c314999e
2016-03-11 13:28:39 -08:00
Clara Bayarri
eb8962d273 Fixes for Work Challenge Fingerprint
When enrolling fingerprints on both personal and work and then setting
the lock to none or swipe, the fingerprints for that user were not being
correctly removed due to wrong userIds being passed in.

Also fix the wipe dialog message as it was always querying whether the
main user has fingerprints instead of the user the dialog applies to.

Bug: 27263452, 27199237
Change-Id: I8d170e36f31b5595bc0bb41168a87db9f57eda2f
2016-03-01 10:22:05 -08:00
Adrian Roos
77181e9478 Fix crash when changing encrypt with credential
Bug: 27173979
Change-Id: If8ef7a9342bcb1b0602791df1dc7634b3e980ee7
2016-02-25 15:43:50 -08:00
Udam Saini
8ef4c62003 Reworks lock screen flows.
This also adds frp warning dialogs in case the user skips lock
screen setup initially.

bug:26880444
Change-Id: I732b6a806e139fb6c1c1b334b8d1608c229f217c
2016-02-09 11:58:12 -08:00
Udam Saini
6de85e80a9 Adds the headers for choose lock generic inside onCreate
This will make sure the headers are set before the underlying
RecyclerView has made its first layout, and prevents an animation
from playing when rotating to landscape.

bug:26990364
Change-Id: I2838a07a145b4d6136e88125ab955006d84d135c
2016-02-09 10:32:56 -08:00
Clara Bayarri
7f2a013619 Make ChooseLockGeneric read the userId extra from the activitie's extras if there's no arguments
Some invocations of ChooseLockGeneric are done with arguments, but
when invoking it from FingerprintEnrollIntroduction we add the extra
to the activity intent so we need to support both.

Bug: 26901625
Change-Id: Iaabad18bf17160578f6b6d807dc6acfead1ba419
2016-02-08 14:16:24 +00:00
Clara Bayarri
719668508a Do not unify locks when Work lock is set to None
Bug: 26845805, 26892601
Change-Id: Ie78ef417a59b29246d4d3dde5dfe434ad49b195c
2016-02-08 13:49:45 +00:00
Sudheer Shanka
91e0ba7d40 Merge "Use the correct userId when checking if disabled by admin." 2016-02-04 19:14:16 +00:00
Sudheer Shanka
f755baf1c3 Use the correct userId when checking if disabled by admin.
And when adding accounts if only one account type is possible and
it is disabled by admin, show the admin support dialog.

Bug: 26897250
Bug: 26767564
Change-Id: I5cca64491a100efc34307c45aa35c14412f043cd
2016-02-02 20:31:48 +00:00
Paul Lawrence
fb4c583dba Don't show 'unlock at boot' for file encryption
Change-Id: I8906023942a2fa0c5c303aeabb48737ec43fc737
2016-01-29 13:25:36 -08:00
Adrian Roos
62775bf756 Move lock screen setting behind gear
Bug: 19003093
Change-Id: I15baa5b1d19324521070d641ae6a227d782a4e9e
2016-01-28 15:40:50 -08:00
Udam Saini
62a7280cb8 Dynamically checks if screen lock suggestion is needed
Fixes a bug where if you upgrade a device with screen lock,
screen lock suggestion would show (upgrade such as N->N developer
builds) or from a user test case like M->N

bug:26844580
Change-Id: Ic779ff28f5895e407c2c96771dbbc622e6026a7f
2016-01-28 13:03:54 -08:00
Udam Saini
aa693f6734 Merge "Adds screen lock as a suggested activity" 2016-01-27 18:08:48 +00:00
Chris Wren
9d1bfd1e8d port settings over to new metrics enum
Change-Id: I0b3efd2f4db773ccbc52bfe59ee8eb0dab9584fb
2016-01-27 10:58:58 -05:00
Clara Bayarri
4f5f7b4f9a Fix Profile Fingerprint Settings to use correct user id
Bug: 26790762
Change-Id: Id813c03041e6e727f535ec63f63ee8b187b06164
2016-01-27 12:46:17 +00:00
Udam Saini
7ad4a17c5c Adds screen lock as a suggested activity
Also, fixes a bug where the suggested activity stayed on screen
after the component was disabled causing a crash.

bug:25246207
bug:26770556
Change-Id: I28d784cdc57e464e49887483690ab514ca3bc46a
2016-01-26 17:09:02 -08:00
Udam Saini
bf1483c383 Improves flow for fingerprint
This reduces the # of screens, and makes the backup lock choice
for fingerprint more obvious that it is a backup.

bug:26377096
Change-Id: I4e75e1f3302c286587de106bcdf43537bda03390
2016-01-25 09:19:02 -08:00
Clara Bayarri
34ec5f97fe Fix Confirm/Choose Credentials strings related to profile
The messages in ConfirmDeviceCredentials have been updated to
inform the user that the pattern/pin/password to be entered is
the profile one.

The strings in the confirmation dialog when the user removes
the lock have also been updated.

Ideally we would have a parametrized approach to strings here,
but capitalization makes it a hard problem.

Bug: 26706338, 26709116
Change-Id: I9f5508d6f449f9e572d65e5b2dcb15cca23832b3
2016-01-25 13:20:55 +00:00
Benjamin Franz
454ce75a41 Merge "Add background image for work challenge" 2016-01-22 12:27:00 +00:00
Jason Monk
e07c947ea3 Fix build.
Change-Id: I43201fc9bb989d3f490ba26cb93956878745e366
2016-01-21 14:15:46 -05:00
Clara Bayarri
7402b25143 Fix bugs around unification when no password is set
- When in a unified state, selecting the work lock to be "none" caused
a security exception
- When the work lock was set to "none", unifying didn't work
- When in a unified state, the work lock type selection screen showed
"none" as the current type instead of the device lock type

Bug: 26577247
Change-Id: I853d77186e23b6a458eaa6c1047942a7eefddc9c
2016-01-21 15:27:38 +00:00