Commit Graph

391 Commits

Author SHA1 Message Date
Victor Hsieh
c8a1960cf4 Support installation of the new app source certificate
The new certificate can be installed from Settings ("Install a
certificate > App Source certificate").  The installation flow includes
a warning with user authorization to proceed, then a prompt for reboot
(now or later).

Installed certificate can be managed in "User credentials".  The name is
currently a hash of hex numbers.

Upon deletion, there will also be a promot for reboot (now or later).

Test: Only see the new setting entry if feature is enabled
Test: Install from Settings, see the expected file name in
      /data/misc/keysetore/user_0.  Reboot also works.
Test: Able to see the certificate in Settings after installed
Test: Able to delete the certificate, which triggers confirmation dialog
      to reboot.  Reboot works.
Test: add certificate, see dialog, "not now" / tapping elsewhere does
      nothing
Test: atest RestrictedEncryptionPreferenceControllerTest
Bug: 112038744

Change-Id: I7a4494ea0f243730df2212076588074d8774ae23
2019-11-27 07:59:22 -08:00
Lucas Dupin
01c00962a9 Do not hide lock screen settings conditionally
Users have reached out to us asking where are their settings and
cannot understand why things disappear.

Test: LockScreenPreferenceControllerTest
Change-Id: I05b182a26724fd14b0a8240e280f216ebf4d43b9
2019-11-20 09:49:23 -08:00
TreeHugger Robot
d5bb245f99 Merge "Fix the NPE in the ScreenPinningSettings" 2019-11-13 14:15:04 +00:00
TreeHugger Robot
03964f34da Merge "Ignore all failed test cases" 2019-11-13 13:41:48 +00:00
Sunny Shao
56b7acd49e Fix the NPE in the ScreenPinningSettings
- move mFooterPreference and others init before the SwitchBar

Fixes: 144407413
Test: manual test
Change-Id: I80d86942f35d16e0460c5fa48bb127932d2086a1
2019-11-13 20:35:56 +08:00
Tsung-Mao Fang
6a2d48d158 Ignore all failed test cases
Test: Run all robo test
Bug: 144405844
Bug: 144407418
Bug: 144407438
Fix: 144406422
Bug: 144405885
Bug: 144408475

Change-Id: Ia94636632106206b062d35b2ca53a028d0cbc35d
2019-11-13 20:31:01 +08:00
Raff Tsai
72a65094fc change screen pinning settings UI
Fixes: 144306573
Test: manual
Change-Id: I7c80a17f90ed84e7245fe26c985aa3fe2e71cc8d
2019-11-12 11:33:51 +08:00
Victor Hsieh
bde026ae67 Remove redundant code in certificate pref controllers
mPreferenceKey in BasePreferenceController is set via the second
argument of the constructor and has a getter. It doesn't look necessary
to override the getter to return the key. The given one also looks
inconsistent.

Test: atest com.android.settings.security
Bug: 139173976
Bug: 112038744
Change-Id: I6e20b46675308f7dbb8f82f7e372bf94f21e4bed
2019-11-01 10:06:21 -07:00
Alex Johnston
c0c75a3e96 Added a warning dialog when installing a CA certificate
This is part of the changes to improve the UX and language for installing certificates.
Previously, the different types of certificate used the same installation flow.
Due to concerns around users installing CA certificates without understanding the conseqences,
this CL introduces a new warning dialog when a CA certificate is installed from settings.

Bug: 139173976
Test: Atest com.android.settings.security
      manual testing from Settings by selecting the certificate type
	preference and ensuring the installation flow still worked as expected.

Screenshot of the screen: https://hsv.googleplex.com/5046848484016128

Change-Id: If95bffd1e68f14734fb20e8cc4b60eeb1c372358
2019-10-24 15:25:52 +01:00
Alex Johnston
7659e53a94 Added functionality to select type of certificate to be installed from the Settings app
This is part of the changes to improve the UX and language for installing certificates.
Previously, the different types of certificate used the same installation flow. This CL
introduces a new settings page, where the type of certificate to be installed can be selected.

Bug: 139173976
Test: Atest com.android.settings.security
      manual testing from Settings by selecting the certificate type
	preference and ensuring the installation flow still worked as expected.

Change-Id: Iea7c91aa3801e429f0e22d29469958f4151b3cba
2019-10-24 10:37:21 +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
Raff Tsai
966fa01423 Use SettingsLib Indexable
- Use SettingsLib Indexable
- Directly use resource id in getPreferenceScreenResId

Bug: 135053028
Test: roboletric
Change-Id: I05f493b55e8b6e2091301e9231ba5615215618e6
2019-09-25 18:24:56 +08:00
Raff Tsai
ac3e0d0988 Directly use BaseIndexableProvider
- Add function getXmlResourceId, Fragments don't need to write
xml resource id twice.
- Remove getPreferenceControllers from Indexable.java. Because it will
move to SettingsLib later for other apps which don't need this function

Bug: 135053028
Test: robolectric
Change-Id: I1e74519aecdea3dde64a5aea79f08d766dbc0003
2019-09-24 00:35:52 +08:00
Eran Messeri
5f10a9a9ea Merge "CredentialStorage: Install keys using KeyChain" 2019-09-18 12:16:58 +00:00
Eran Messeri
d83c190f29 CredentialStorage: Install keys using KeyChain
This is part of the work to unify the manual certificate
installation flow (via "Install from storage" in the Settings
app) with the programmatic one (using
DevicePolicyManager.installKeyPair).

The change to CredentialStorage is the crux of this work, where
the key is no longer installed by calling Keystore directly.

Instead, a new AsyncTask, InstallKeyInKeyChain, was created, which
calls KeyChainService.installKeyPair with the key data and associated
certificates (as well as the UID of the designated service, to allow
installation into the WiFi Keystore).

Once that task completes, if the key was installed successfully,
then it is marked as user-selectable.

Test: Manual CtsVerifier tests: KeyChain Storage Test, CA Cert Notification Test
Test: cts-tradefed run commandAndExit cts-dev -m CtsDevicePolicyManagerTestCases -t  com.android.cts.devicepolicy.MixedDeviceOwnerTest#testKeyManagement
Bug: 138375478
Change-Id: I7c4b4ea725a34307f58d27252c2958771001636f
2019-09-12 15:54:30 +01:00
Raff Tsai
1f30b1cd67 Merge similar BaseSearchIndexProvider code together
Bug: 135053028
Test: robolectric, check search_index.db contains the same items
Change-Id: If3c18a170b0e671690df1fdf26e59a421d2c48cd
2019-09-12 11:09:09 +08:00
Kevin Chyn
6a4a0e7396 Move lockscreen bypass setting to Settings > Security > Face unlock
Fixes: 134700640

Test: atest FaceSettingsLockscreenBypassPreferenceControllerTest
Test: enabling/disabling setting through Settings > Security > Face unlock
      works as expected
Test: preference controller no longer seen in Settings > Display > Lock screen display

Change-Id: I54807ad92fac62398a2b9dab93dd638775a09c8d
2019-06-12 13:27:18 -07:00
Lucas Dupin
8c29afdc3f Fix exception on non face-enabled devices
Test: open privacy settings page
Bug: 130327302
Change-Id: I31ba9f30bb7300bff6daea8a51ed6c4dc2a373f2
2019-05-30 14:58:52 -07:00
Lucas Dupin
b2aaa26f38 Add setting to bypass lock screen
Test: manual
Test: make RunSettingsRoboTests ROBOTEST_FILTER=LockscreenBypassPreferenceControllerTest
Bug: 130327302
Change-Id: I324c6e384480fa8576ba58d0bf73c1ef20484ee0
2019-05-29 15:57:32 -07:00
Jonathan Scott
cccc56b0cf Make ScreenPinningSettings behaviour consistent with LockTaskController.
Bug: 127605586
Test: Manual
Change-Id: I1d79fb529cfaf921657ef9eaca01b8a6a4e2dfef
2019-05-01 11:00:25 +01:00
Pavel Grafov
0a67bbf89f Allow user without a password to clear credentials
Currently the code assumes that the user always has a pin or
password or pattern. If there's no password confirmKeyGuard() will
return false, so the acttivity will finish without doing anything.
With this change if there's no PIN/password/pattern, the credential
clearing task will be launched straightaway as the user presses "OK"
the confirmation prompt.

Bug: 127697771
Test: manual
Change-Id: Iac4af0abfc7430ed197e04f833bf203c3f66f52e
2019-04-10 17:53:32 +01:00
Kevin Chyn
39ca021586 Add face profile settings
Fixes: 110907543

Test: Builds

Change-Id: I9761f289bb250c5d9f5b5e75cf682d164c591050
2019-04-04 13:18:04 -07:00
Issei Suzuki
1ac14708e8 Merge "Move AmbientDisplayConfiguration class out of internal package." 2019-02-27 14:28:36 +00:00
Issei Suzuki
fd85a9fae6 Move AmbientDisplayConfiguration class out of internal package.
Test: m droid (run full build)
Bug: 126327497
Change-Id: Idc07c811864edb4f88151051e25d6e05e4caf3b2
2019-02-27 13:25:15 +01: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
Fan Zhang
7db118e367 Mass clean up: don't cast class when not needed.
Bug: none
Test: rebuild
Change-Id: Ie3f58a3d5ae99ade28a33dcac80c18de90d4d5b2
2019-02-14 12:26:09 -08:00
Vishwath Mohan
8f53ad0f37 Move trust agent toggles to developer options
This CL moves two toggles for trust agent extend unlock mode from
Security > Settings to Developer Options instead. It also updates some
of the configuration strings to reflect that this toggles behavior for
trust agents in general.

No new logic is being added here, this simply moves options intended
only for internal dogfooding to a more appropriate location in
preparation for the public Beta.

Bug: 111435975
Bug: 120871688
Test: Manually verified that the settings show up in Developer Options
and work as intended.

Change-Id: I2b6705d50fa783089a5c0dfabf76677af44209f7
2019-02-04 17:22:49 -08:00
Vishwath Mohan
7d93d8bcdc Allow multiple trust agents
This CL is essentially a one-line change that sets the
ONLY_ONE_TRUST_AGENT boolean to false.

Bug: 111431046
Test: Tested manually that this works correctly

Change-Id: Ia8f06235467e3223ef1e441a62d941a64a2d7c93
2019-01-31 20:19:32 +00:00
Eran Messeri
9b6005e51e Merge "Further Credentials-related clean-up" 2019-01-25 12:27:38 +00:00
Eran Messeri
dda0c63d5b Merge "Add Enterprise owners for Enterprise settings" am: 35416e7529 am: 74bd41f305
am: a357cc9737

Change-Id: I9879602947c1060daf319253c2f5422d48d57fbe
2019-01-24 15:46:53 -08:00
Eran Messeri
1e9bd27e2b Further Credentials-related clean-up
Additional clean-up work related to removal of screenlock dependency
from the credentials installation flow:
* Move the CredentialStorage class to security/ so that Enterprise team
  owners could review changes to it.
* Remove the ConfigureKeyGuardDialog class as it is no longer used.
* Remove attempt to unlock KeyStore from VPN settings.
* Remove intents that will no longer be sent from the manifest.

Bug: 120901345
Test: m -j RunSettingsRoboTests
Test: Manual with CtsVerifier
Change-Id: Ia708ede3366892d74c148f3712a63858d5ab53b7
2019-01-24 16:26:25 +00:00
Eran Messeri
3cb95abd04 Add Enterprise owners for Enterprise settings
Add owners from the Android Enterprise team to source files that are
either owned or are mostly modified by the Android Enterprise team.

Test: gerrit uploader
Bug: 33166666
Change-Id: I8b4ec7c8895b02c45a6a14d52a3742334234904a
2019-01-24 12:29:56 +00:00
Fan Zhang
31b210017b Migrate all MetricsProto enums to SettingsEnums
Bug: 122855168
Test: rebuild
Change-Id: I962d9a71179f86b7cae9dc5e9a00e0aa1557dc76
2019-01-17 14:55:42 -08:00
Malcolm Chen
14dde50c3a Don't show hidden Cellular subscription in Settings.
Replace getActiveSubscriptionInfoList() with
getActiveSubscriptionInfoList(true) so that settings will not show
hidden subscriptions to the user in various pages.

Bug: 121396526
Test: manual
Change-Id: I717999fed7d3a5a037914239694bef52df7c6207
2019-01-16 00:21:30 -08:00
Vishwath Mohan
b6dad935ec Add settings to control Extended Access mode.
This CL adds settings (and two toggle controls) that help configure
how trust (from Trust Agents) should be interpreted by the platform,
allowing them to function in a purely extend unlock mode (where they
can extend how long an already unlocked device stays unlocked, but
cannot unlock a locked device).

These are temporary settings to help with dogfooding the new behavior,
and will eventually be removed. b/120871688 below is the tracking bug
to remove them.

Bug: 111435975
Bug: 120871688
Test: Tested with SmartLock modalities to confirm behavior in both
legacy and extend unlock modes is WAI.
Change-Id: If25098520ba98e82c98cc51fb226d8f2ce1aba80
2018-12-13 19:44:33 +00:00
tmfang
7b235e3cfe Remove "Show password" in Security page
"Show password" will be moved in Settings > Privacy.
Since each of things should only exist in one place,
we remove it in Security page.

Test: visual
Bug: 116628158
Change-Id: I9f9083b88d7a20faa9bd28ded2cf8c3b9a5622fd
2018-11-12 11:08:43 +08:00
tmfang
54a5d37190 Move LocationSettings to top level page.
- Create some location icons for different scenario.
- Remove Location in Security page.
- Move Location Setting to top level page.

Test: robotest, visual
Bug: 116628158
Change-Id: I3f57ef49a396877bfbeaefea7dc4f4051e0ccc65
2018-11-05 11:24:41 +08:00
Fan Zhang
130c477044 Remove DashboardSummary and all related classes.
- Condition is already supported in PersonalSettingsFragment
- Suggestion is already supported in PersonalSettingsFragment
- Static/dynamic tiles are supported in TopLevelSettings

Change-Id: I51882e3bd0919ad95109baefac683d98667c11e3
Fixes: 110405144
Test: robotests
2018-10-25 11:27:47 -07:00
Lucas Dupin
8e57afb2cb Wake screen gesture
Settings page for gesture that allows the display to wake up.
Can be configured via overlays using config_dozeWakeScreenSensorType

Bug: 111414690
Test: manual
Test: make RunSettingsRoboTests ROBOTEST_FILTER=WakeScreenGesturePreferenceControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=WakeScreenGestureSettingsTest
Change-Id: Ic44f0ee9e781bda3b06cf4896217b324b9e3606c
2018-09-28 16:25:47 -07:00
Philip P. Moltmann
e3f721132a RestrictedLockUtils was split into ...Internal
This means that in some cases RestrictedLockUtils has to be used and in
some RestrictedLockUtilsInternal.

This causes a lot of trivial code changes.

I also updated the ordering of the imports in all affected files.

Bug: 110953302
Test: Built
      make -j RunSettingsRoboTests
Change-Id: I9bdf8b89134f853bae4f38c81af436715c73e924
2018-08-30 08:11:39 -07:00
Fan Zhang
23f8d59d02 Sort imports
Having consistent import order will reduce chance of merge
conflict between internal and external master

Test: rebuild
Change-Id: I0b1a170967ddcce7f388603fd521f6ed1eeba30b
2018-08-28 22:13:15 +00:00
Aurimas Liutikas
b1af85d155 Migrate Settings to androidx.
Test: make Settings
Bug: 76692459
Change-Id: I941dea40562170649bf056e675cc32e5163c0e39
Merged-In: I941dea40562170649bf056e675cc32e5163c0e39
(cherry picked from commit a290b873d0)
2018-08-28 11:48:56 -07:00
Fan Zhang
9ce4a1fcde Use searchable="false" to suppress nonIndexables.
When possible, remove or simplify getNonIndexable() logic in fragments,
and use searchable="false" in xml to suppress index.

Change-Id: I5bdf5bc7d5494a64cdd9e230a51321a4b210af69
Fixes: 112608186
Test: robotest and manual search
2018-08-17 09:21:05 -07:00
Fan Zhang
f6747a2f44 Add summary text for more top level setting tiles
- Connected devices
- App & notifs
- Battery

Bug: 110405144
Test: robotests
Change-Id: Ife44f7c5165483a1bad903ce90a241108ab5da25
2018-08-09 14:38:52 -07:00
felkachang
c2b6764057 Fix the empty preference after clicking gear icon
Because there is no other options for 'None' or 'Swipe, there is no
necessary for showing the gear icon to show options.

'Lock screen message' could be found in
Settings > Display > Lock screen display.

Add testcase to verify the ChangeScreenLockPreferenceController's
behavior.

Test: make ROBOTEST_FILTER=ChangeScreenLockPreferenceControllerTest \
      RunSettingsRoboTests -j40
Change-Id: Icdcd672261749d106162053d6f5228cee420a810
Fixes: 110848852
2018-07-26 10:16:12 +08:00
Kevin Chyn
eb0de79ffc Update Security & location preference summary depending on biometrics
Fixes: 110960063

Test: manual
Test: make -j56 SettingsRoboTests ROBOTEST_FILTER=SecuritySettingsTest
Change-Id: Ia9186af37c84f4ff0391d1b72043948934ed997b
2018-07-23 21:21:53 -07:00
TreeHugger Robot
167b232242 Merge "Hide lock screen display in search if it's not in Settings" 2018-07-20 23:10:28 +00:00
Fan Zhang
44acde5ee1 Hide lock screen display in search if it's not in Settings
Change-Id: Iacf16eb947a679e08a6c55e0764416cd53cac2e7
Fixes: 111641373
Test: robotests
2018-07-20 14:50:02 -07:00
tmfang
41ab6b4bf8 Migrate all AlertDialogs to AndroidX version
This CL only changed AlertDialog imports.
So, reviewer can review it easily.

Change-Id: I097bc44394195b14287f4f920c570ac8653f356a
Fixes: 111413092
Test: This CL can't pass Robo test.
2018-07-20 11:32:13 +08:00
tmfang
27c84de325 Settings Fragment Migration (Build pass app)
This patch focused on fixing compile errors and some runtime errors.

Test: We can't test it now. But we will have an integration test later.
Bug: 110259478
Change-Id: I16c471ddcd0fa1460c665b7f74d86fcace5ee67b
2018-07-11 18:24:51 -07:00