Commit Graph

391 Commits

Author SHA1 Message Date
TreeHugger Robot
384cf0e9e7 Merge "Fix security issue" into sc-dev 2021-02-03 05:56:17 +00:00
Tsung-Mao Fang
159bd0e966 Fix security issue
Settings#CredentialStorage could be overlaid to
trick user into clearing all credentials.

Disallow non-system overlay on activity.

Test: Trigger the debug apk again, and no overlay
Bug: 176753731
Change-Id: I657de039d667f5aee0941336e9361ae04f056c33
2021-02-02 18:24:00 +08:00
Tsung-Mao Fang
23e77a557a Tweak the ui based on the Android S design
- Use TopIntro preference to show introduction text

Change-Id: Ic2304dab188848dfa6ef8a0429fd5b7ad40cf0af
Test: See the screenshot- https://screenshot.googleplex.com/AMS64EGe5Fcdfn8
Fix: 177997785
2021-02-01 20:46:43 +08:00
Alex Johnston
8fc55e0231 Fix CredentialManagementAppControllerTest
Bug: 175277372
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=CredentialManagementAppControllerTest
Change-Id: I5f9177d19232f38a761df9adba94d080464120e2
2021-01-20 11:29:07 +00:00
Stanley Wang
6a824b3535 Merge "Use SettingsLib's MainSwitchBar to replace SwitchBar in Settings." 2021-01-15 02:14:52 +00:00
Stanley Wang
b87ddba6cd Use SettingsLib's MainSwitchBar to replace SwitchBar in Settings.
To log Settings metrics, the MainSwitch extends MainSwitchBar and
replace the SwitchBar in SettingsActivity.

Bug: 175181773
Test: Run robotest and apply the widget in Settings and see the ui

Change-Id: I3add3702e9058ad9192b5172c7cf0e2ccfb55a70
2021-01-14 22:48:31 +08:00
Alex Johnston
c3b31dd94c Add cred mng app metrics to Settings
Log:
* package name
* number of remote apps/URIs
* request accepted
* request failed
* request cancelled
* removed

Bug: 165641221
Test: manual
Change-Id: I629b95626c9581da8d7f1ea6758120768471a60e
2021-01-12 16:49:44 +00:00
Alex Johnston
c850920cc6 Call KeyChain credential management app APIs Settings
Background
* This is part of the work to support
  a credential management app on
  unmanaged devices.
Changes
* Add calls to KeyChain credential management
  app API methods.
* Add logic to add, update and remove credential
  management app from KeyChain.

Manual Testing
* Install TestDPC
* Request to manage credentials (fire intent).
  Add policy mapping: 'com.android.chrome' ->
  'client.badssl.com:443' -> 'testAlias'
* Install badssl user certificate as credential
  management app (TestDPC). Set alias to 'testAlias'
* Check certificate is installed in Settings
* Go to chrome > client.badssl.com
* Verify no certificate selection prompt is
  displayed. User is automatically authenticated.
* Remove credential management app from Settings
  Security > Encryption and credentials >
  Certificate management app
* Verify credential management app is removed and
  'testAlias' is uninstalled.

Bug: 165641221
Test: Manual Testing
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.security.RequestManageCredentialsTest
Change-Id: I52254ccbdb0b46941b35130d487e0cf346212968
2021-01-05 16:57:50 +00:00
Alex Johnston
25cca45c09 Merge "Add credential management app preference to Settings" 2020-12-03 10:00:27 +00:00
Alex Johnston
672c2aaaec Add credential management app preference to Settings
Background
* This is part of the work to support
  a credential management app on
  unmanaged devices.
Changes
* Add a preference controller which will only
  be enabled if there is a credential management app.
* Add a fragment to display details on the credential
  management app and its policy. Add a remove button
  to remove the credential management app.
* Link CredentialManagementAppAdapter to new fragment
  and add expander.

Manual Testing
* Verify preference is disabled if there is no credential
  management app.
* Verify preference summary shows credential mangement
  app name if a credential management app exists.
* Verify fragment details page displays the
  authentication policy correctly.

Bug: 165641221
Test: Manual testing
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.security.CredentialManagementAppFragmentTest
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.security.CredentialManagementAppControllerTest
Change-Id: I06d6b88d0c89022f7a6cbf3031834defcb54bd51
2020-12-03 07:23:50 +00:00
Alex Johnston
a12b402f36 Show Floating action button to request manage credentials
Background
* This is part of the work to support
  a credential management app on
  unmanaged devices.
Changes
* Show FAB for detailed/long manage credentials
  authentication policy.
* Hide FAB for short manage credentials
  authentication policy.
* Unexpand FAB once the user start starts
  scrolling.
* Hide FAB once the user has scrolled to
  the bottom.

Manual Testing
* Verify FAB is shown for a detailed/long policy:
  https://screenshot.googleplex.com/BUb4LGz3GD6AozS
* Verify FAB is hidden for a short policy
* Verify FAB is hidden when user has scrolled to the
  bottom:
  https://screenshot.googleplex.com/6FQRqto3r3jzfXH
* Verify FAB is unexpanded (text hidden)
  when the users start scrolling:
  https://screenshot.googleplex.com/4FfAt5MsCfrAwQK

Bug: 165641221
Test: Manual Testing
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.security.RequestManageCredentialsTest
Change-Id: Ied2ef726ad4dcc3f92c20249f80294f0a3071a8a
2020-12-02 17:17:12 +00:00
Alex Johnston
580b7af1a4 Add request manage credentials to Settings
Background
* This is part of the work to support
  a credential management app on
  unmanaged devices.

Changes
* Add new activity to Settings to display
  a screen to the user requesting whether
  the calling app can manage their
  KeyChain credentials.
* Display the authentication policy

Manual Testing
* Verify screen is not displayed if intent
  action is not android.security.MANAGE_CREDENTIALS
* Verify screen is not displayed if authentication
  policy is not valid
* Verify button panel is visible if all items in the
  authentication policy are displayed
* Verify button panel is not visible if not all items
  in the authentication policy are displayed. Verify
  that scrolling to the bottom of the item list, the
  button panel becomes visible.

Bug: 165641221
Test: Manual testing
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.security.RequestManageCredentialsTest
Change-Id: Ie23b226f1a285b3de6ec3e91b8880d9144bb24a3
2020-11-27 20:43:38 +00:00
Edgar Wang
c5dfd3eb76 Revert^2 "Update the summary of AoD when Bedtime mode is on"
Since Bedtime mode can suppress AoD, after reviewed by UX, we decide
update the summary to "Unavailable because Bedtime mode is on" when AoD
is suppressed by Bedtime mode.

Bug: 168790245
Test: manual & robotest

Change-Id: I96b401bcba213598344c4c4f01b12c275304b809
Merged-In: Id2511cb0ad93b44f6bf701a707b7ddef9438653d
2020-11-24 05:34:49 +00:00
Yi-yo Chiang
cd4a35de8e Revert "Update the summary of AoD when Bedtime mode is on"
Revert "Update the summary of Idle lock screen when Bedtime mode..."

Revert submission 13071396-cherrypick-cherrypick-bedtime-hpxwlbiuim-0q85x8kaar

Reason for revert: Broken test b/173663404

Reverted Changes:
Id2511cb0a:Update the summary of AoD when Bedtime mode is on
I041599b9c:Update the summary of Idle lock screen when Bedtim...

Bug: 173663404
Change-Id: I9bea7499393d3ab1733b82140942499dddd9a2aa
Merged-In: I3b7053ad752f548f421dcca10cc1203500b1220b
2020-11-19 04:32:44 +00:00
Edgar Wang
bca70dd22d Update the summary of AoD when Bedtime mode is on
Since Bedtime mode can suppress AoD, after reviewed by UX, we decide
update the summary to "Unavailable because Bedtime mode is on" when AoD
is suppressed by Bedtime mode.

Bug: 168790245
Test: manual & robotest
Change-Id: Id2511cb0ad93b44f6bf701a707b7ddef9438653d
Merged-In: Id2511cb0ad93b44f6bf701a707b7ddef9438653d
2020-11-18 14:22:11 +00:00
Edgar Wang
391217977f Update the summary of AoD when Bedtime mode is on
Since Bedtime mode can suppress AoD, after reviewed by UX, we decide
update the summary to "Unavailable because Bedtime mode is on" when AoD
is suppressed by Bedtime mode.

Bug: 168790245
Test: manual & robotest
Change-Id: Id2511cb0ad93b44f6bf701a707b7ddef9438653d
2020-11-12 21:47:15 +08:00
Yanting Yang
9aa4a5463f Remove subtitles for the homepage IA
Remove the summary of the homepage IA if silky home enabled.

Fixes: 170933968
Test: robotest & visual with turning on/off silky home
Change-Id: I502b6590cece9b80e9923109fe0582cc4d9a1c56
2020-10-20 23:54:03 +08:00
Xin Li
748efff856 Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)
Bug: 166295507
Merged-In: Ie9d2c4d6d4618a167af1c5627d5d7918a404f398
Change-Id: I2ae428e37fd96226ce4e06032e2c0beaacbd0301
2020-08-28 23:35:54 -07:00
Treehugger Robot
083045a9c2 Merge "More inclusive language." am: 4be2b5c2f6 am: ef56fb20c3 am: b2a470166e am: 17c895b94c am: ce59418d0a
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/1373177

Change-Id: I773bf1dd2fb3c8ef40681a598505cff004914966
2020-07-28 11:37:05 +00:00
Treehugger Robot
b2a470166e Merge "More inclusive language." am: 4be2b5c2f6 am: ef56fb20c3
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/1373177

Change-Id: I4cd918e07ced74d846b75f01550f57e447229d51
2020-07-28 10:58:05 +00:00
Alan Stokes
cd2c453cbd More inclusive language.
Test: Builds
Bug: 161896447
Change-Id: Ie4d64dca9f4720eea532b534162e47ed81aea03b
2020-07-27 18:21:56 +01:00
Kevin Chyn
b13bc50542 1/n: Make ChooseLockSettingsHelper into a builder
The multitude of slightly different launchConfirmationActivity(*)
methods are a big unsustainable pyramid. It's too difficult to
read, too difficult to track which clients are interested in which
parameters, and too difficult to add new parameters, since we need to

1) Read through all of them and find one that's the closest
2) Try not to affect other callers, so potentially add yet another
3) Modify the internal paths, which all basically call each other
   until it reaches the biggest launchConfirmationActivity which
   has ALL of the parameters

This change should have no behavioral change.

Note: CredentialStorage doesn't need returnCredentials anymore as of
      ag/6073449

Test: make -j56 RunSettingsRoboTests
Test: Manually traced code paths for each invocation. A few hidden
      dependencies (such as explicitly setting challenge=0 with
      hasChallenge=true) were found. Left them the way they were in
      case they were intended
Test: Enroll face, fingerprint
Test: Enable developer options
Test: Change to PIN, Pattern, Password, then back to PIN (so each
      type requests confirmation)
Test: adb shell am start -a android.app.action.CONFIRM_DEVICE_CREDENTIAL,
      authenticate
Test: adb shell am start -a android.app.action.CONFIRM_FRP_CREDENTIAL
      (shows confirm credential screen)
Fixes: 138453993

Change-Id: Ic82ef3c3ac2e14d624281921f2d816bcdacbd82b
2020-07-24 11:13:13 -07:00
Treehugger Robot
7643891ae7 Merge "Remove "storage type" preference from Settings" am: d6ac86d602 am: 44c538ccef
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/1353609

Change-Id: I2e9fc90f247f4b088f749afeb75a0b3e67e73198
2020-07-22 09:07:27 +00:00
joffenberg
43ee102921 Remove "storage type" preference from Settings
Since storage type is mandated as hardware-backed, this preference is no longer meaningful.

Bug: 160225361
Test: atest SettingsRoboTests
Change-Id: I9b6c1d6afdd3563201b1e85673acf4d8cb81c0a1
2020-07-21 17:18:47 +02:00
Eran Messeri
f37c8cb4f7 [DO NOT MERGE] Rollup Cert-related changes from R
This change includes the following commits from internal R branch
which are related to certificate management:

0206e76f46 CredentialStorage: Install keys using KeyChain
09ceea53d9 Added functionality to select type of certificate to be installed from the Settings app
3acf3f5433 WiFi certificates installable from Wifi sub-preference
8439fd15f7 Fix strings for certificate installation in Settings

Bug: 161347472
Test: builds & manual testing
Change-Id: Ia59dc4780254fab4f34c2f61b25f3b4e56ed7b77
2020-07-15 15:12:06 +01:00
Treehugger Robot
3947998755 Merge "Settings: Fix fallback summary for power_button_instantly_locks preference" am: b1cea4f1bc am: fce601ea2a
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/1298027

Change-Id: I5fc5d8b00e9b6e0c28389754cd4cf7eeb9bdc969
2020-06-29 14:39:26 +00:00
LuK1337
ad243904db Settings: Fix fallback summary for power_button_instantly_locks preference
* Using summary_placeholder instead of summary_empty
  leaves an ugly empty space.

Change-Id: I73a90f1b3203d6cb17e1875dc8163eb67140de89
2020-06-29 12:27:06 +02:00
Stanley Wang
f1a0801c00 Fix the bug of not showing lock screen before entering Smart Lock page.
Controller can't find the target preference to handle the click event.
Store the preference keys to match the clicked item.

Fixes: 158716163
Test: run robotest and manually test the click behavior

Change-Id: Ie243206ceffef013c56c4ea29c14fe56da510fb6
2020-06-22 16:49:02 +08:00
Stanley Wang
d1a7a5618e Add the "Smart Lock" item to dynamic index.
- The "Smart Lock" item is a trust agent which comes from
  TrustAgentManager, so add it to dynamic index.

Fixes: 148867137
Test: manual test the search result and run Settings robotest
Change-Id: I7cd3a9df89a9b9378fa49cc2cb2127c778b795f2
2020-06-09 17:48:43 +08:00
Tsung-Mao Fang
232cfc4e76 Show the app pinning description after user enables it
By design, we still need to show app pinning description
after user enables feature.

Test: Rebuilt rom, and see description.
Fix: 151332926
Change-Id: Ic9a2d7baec865358471ac0210648642ebd9fd65a
2020-05-13 14:43:23 +08:00
Tsung-Mao Fang
4cca8db28c Update description when device allows guest user
If device supports guest user mode, app pinning
recommends guest feature to user.

Test: Rebuilt rom and see correct string in app pinning.
Fix: 151332926
Change-Id: I6c03ecfe075fba2f4dedca18f65893f328e680aa
2020-05-06 12:17:23 +08:00
Tsung-Mao Fang
ae661a0782 A new ui flow for screen pinning feature
The purpose of this change is to resolve a number of security issue
around screen pinning.
See more detail go/screen-pinning-allows

There're a few change for Settings app.

- Rename the screen pinning to app pinning.
- Change the string description for app pinning.
- Pop up a warning dialog while user is enabling this feature.

Test: Rebuilt rom and see new ui flow.
Bug: 151332926
Change-Id: Ife07d7b95ab5dccb2aed7f2bc8fa32f97763bd63
2020-04-30 17:28:05 +08:00
Rubin Xu
81d8664d81 Merge "Improve work profile unification flow" into rvc-dev 2020-04-15 11:18:00 +00:00
Rubin Xu
f535e87e51 Improve work profile unification flow
When unifying work profile challenge, keep the device lock
as long as it will still meet password requirement after unification.
If not, prompt the user to set a new device lock and only unify
work challenge after a compliant device lock is set.

Bug: 148630506
Fix: 149682344
Test: make RunSettingsRoboTests
ROBOTEST_FILTER='ChooseLockGenericTest|ChooseLockPasswordTest|ChooseLockPatternTest|LockUnificationPreferenceControllerTest'

Change-Id: I99cde2650902927f6a4cc7c0cc7c6016e0dc283f
2020-04-08 14:43:48 +01:00
Jason Chiu
b12e3b96c9 Support click metrics logs in several pages
- Assign metrics category to perferences at an earlier stage in
  DashboardFragment for better usability.

Bug: 137559984
Test: robotest
Change-Id: Icd4185efa0e655be20c4b673a1380fa42140923f
2020-04-07 16:44:53 +08:00
Jason Chiu
26343b82ee Add metric logs for special cases in Display and Battery page
Bug: 137559984
Test: robotest
Change-Id: I60f6237ac2c533306879f46ee4c25d54002cf0e9
2020-03-26 11:31:39 +08:00
SongFerngWang
6c9ce4d892 Fix sim pin lock preference disappear in dual sim.
If one sim hide the preference and another one show the preference,
the preference always hide. The root cause is config value is wrong.
It should get config with subid.

Bug: 149800931
Test: make RunSettingsRoboTests ROBOTEST_FILTER=SimLockPreferenceControllerTest
Change-Id: I91b551bc363b8ecb0a4b6b40e9de79c74ccd76fd
Merged-In: I91b551bc363b8ecb0a4b6b40e9de79c74ccd76fd
2020-03-19 12:13:37 +08:00
Lee Chou
443cfd2ef4 Adds logging to confirm esim deletion feature
Bug: 138861284
Test: make SettingsGoogle  and manual testing
Change-Id: Ie5f6f6a31003733ae7abd9c04e9b3c371d5051c4
2020-03-19 12:07:01 +08:00
changbetty
e9f857621f [Mainline] Use public method in SubscriptionManager for mainline
- getActiveSubscriptionIdList
   To use getActiveSubscriptionInfoList to get subscription Id list
 - getActiveSubscriptionInfoList(Z)
   To use getActiveSubscriptionInfoList() instead

Bug: 144478274
Test:  make RunSettingsRoboTests ROBOTEST_FILTER=SimLockPreferenceControllerTest
       make RunSettingsRoboTests ROBOTEST_FILTER=MobileNetworkUtilsTest

Change-Id: I4d6113561906af5c9e4ac7737aefac17c926059a
Merged-In: I4d6113561906af5c9e4ac7737aefac17c926059a
2020-03-18 10:33:39 +00:00
SongFerngWang
3d54554521 Fix sim pin lock preference disappear in dual sim.
If one sim hide the preference and another one show the preference,
the preference always hide. The root cause is config value is wrong.
It should get config with subid.

Bug: 149800931
Test: make RunSettingsRoboTests ROBOTEST_FILTER=SimLockPreferenceControllerTest
Change-Id: I91b551bc363b8ecb0a4b6b40e9de79c74ccd76fd
2020-03-17 14:35:31 +08:00
Lee Chou
ee81a02109 Require authorization before turning off eSIM security feature
eSIM has a feature that requires an auth check before deletion, this
adds a security check before allowing the security feature to be turned
off.

TogglePreferenceController was changed to BasePreferenceController to
separate updating the state from UI press and updating from code.

Bug: 150568010
Test: mp settingsg and manual testing
Change-Id: I9e74e173720dce7b25d2d8a1e9004862cdb5e2e0
2020-03-02 05:23:49 +00:00
Victor Hsieh
cef970cda4 Revert "Support installation of the new app source certificate"
We decided to punt extra certificate to post-R.

This reverts commit c8a1960cf4.

Test: Treehugger
Bug: 112038744
Change-Id: Ic53e58944faebe7aa427975ebd77ce783bdddaf2
2020-02-18 11:03:07 -08:00
Lee Chou
5a65e2d5dd Authenticated confirmation before deletion of eSim
adds an authentication confirmation before deleting an eSim
this feature is turned on/off in the security page

Bug: 138861284
Test: mp settingsg
Change-Id: I32e0e3bff2091ec1097b3c37fa066d966e3373df
2020-02-18 11:33:22 +08:00
Edgar Wang
0934babbfc Make the fragment title can’t searchable
we shouldn't take users so deep into the settings IA because it's easy
to feel lost in settings after clicking on a result without additional
context.

Bug: 143055215
Test: robotest & manual
Change-Id: I337cb5ead31e1e4e7bf9be78132e90630f83ee43
2020-02-06 19:07:11 +08:00
zoey chen
d54004f45e [Settings] Cannot use UnsupportedAppUsage API, use #hasIccCard() to replace
Bug: 145967955
Test: make
Change-Id: I8b948d1d416e1eb79e34be073b8ad81645d5ebb1
Merged-In: I8b948d1d416e1eb79e34be073b8ad81645d5ebb1
2020-02-05 12:04:22 +08:00
Edgar Wang
e19ee9a01f Revert "Settings search - Navigate user to exact page"
This reverts commit 08f2a58459.

Reason for revert: design changed, we decide to take the user to
the entry after clicking on a search result.
It's opposite with what we did, so we revert related CL first.

Test: robotest

Change-Id: Iadb9a94a7ef7838be34a54499e2d934d6396c336
2020-01-16 14:07:38 +08:00
changbetty
db816c9dad [Mainline] Use public method in SubscriptionManager for mainline
- getActiveSubscriptionIdList
   To use getActiveSubscriptionInfoList to get subscription Id list
 - getActiveSubscriptionInfoList(Z)
   To use getActiveSubscriptionInfoList() instead

Bug: 144478274
Test:  make RunSettingsRoboTests ROBOTEST_FILTER=SimLockPreferenceControllerTest
       make RunSettingsRoboTests ROBOTEST_FILTER=MobileNetworkUtilsTest
       make RunSettingsRoboTests ROBOTEST_FILTER=TelephonyBasePreferenceControllerTest
Change-Id: I4d6113561906af5c9e4ac7737aefac17c926059a
2020-01-08 12:01:17 +08:00
Edgar Wang
08f2a58459 Settings search - Navigate user to exact page
- remove duplicate index preference
- default set searchable = false when the preference has fragment
- make some fragments indexable

Bug: 143057584
Test: robotest & manual

Change-Id: I4d64f6106d2f92f0a45e8c7e26388677f593f412
2019-12-24 21:04:11 +08:00
zoey chen
73038f556d [Settings] Cannot use UnsupportedAppUsage API, use #hasIccCard() to replace
Bug: 145967955
Test: make
Change-Id: I8b948d1d416e1eb79e34be073b8ad81645d5ebb1
2019-12-11 11:57:43 +08:00
Sunny Shao
e966714a9b Fixed the roboletric test failed
Fixes: 145730755
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.core
Change-Id: Ie60985cdf6802e8723c68e5e1f2104965f0d440b
2019-12-05 21:33:34 +08:00