Commit Graph

26706 Commits

Author SHA1 Message Date
Hugh Chen
bbe765f992 RESTRICT AUTOMERGE Fix phishing attacks over Bluetooth due to unclear warning message
Before this CL, there is a possible phishing attack allowing a malicious
BT device to acquire permissions based on insufficient information
presented to the user in the consent dialog. This could lead to local
escalation of privilege with no additional execution privileges needed.
User interaction is needed for exploitation.

This CL add more prompts presented for users to avoid phishing attacks.

Merge Conflict Notes:
There were a number of entries in strings.xml that did not exist on this
branch. However, as the CL only adds new entries rather than modifying
old ones this should not cause a problem. There were no merge conflicts
in the java files.

Bug: 167403112
Test: send intent to test right prompts message is pop up. make -j42 RunSettingsRoboTests
Change-Id: Idc6ef558b692115bb82ea58cf223f5919b618633
2020-12-30 18:33:52 -08:00
TreeHugger Robot
cfdae774cd Merge "Add bluetooth package to permission request intent" into oc-mr1-dev am: 504b96d76c am: 2117006bc6
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/13088581

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: If3605d2b4dbad8b7b4979b644c89352ee8449ba1
2020-12-09 12:17:08 +00:00
TreeHugger Robot
2117006bc6 Merge "Add bluetooth package to permission request intent" into oc-mr1-dev am: 504b96d76c
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/13088581

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I7d7dcaefd10f297c9e268d8f9d8bf666d98b08fd
2020-12-09 12:08:40 +00:00
TreeHugger Robot
504b96d76c Merge "Add bluetooth package to permission request intent" into oc-mr1-dev 2020-12-09 12:06:33 +00:00
Jakub Pawlowski
c721dc5bad Prevent overlay drawing on top of Bluetooth activity dialog am: b29c036522
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/13090436

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I956e8906633af45f12617dabbec4e060c14502f2
2020-12-09 11:32:56 +00:00
Jakub Pawlowski
b29c036522 Prevent overlay drawing on top of Bluetooth activity dialog
Bug: 168504491
Merged-In: I04ebe580db2b299af2bd5e44e0b0f20bd42f8535
Change-Id: I04ebe580db2b299af2bd5e44e0b0f20bd42f8535
2020-12-09 08:00:22 +00:00
TreeHugger Robot
721f43dcdc Merge "Prevent overlay drawing on top of Bluetooth activity dialog" into qt-dev 2020-12-08 22:56:46 +00:00
Jakub Pawlowski
4f7edf692f Prevent overlay drawing on top of Bluetooth activity dialog
Bug: 168504491
Change-Id: I04ebe580db2b299af2bd5e44e0b0f20bd42f8535
2020-11-19 13:47:53 +01:00
Chris Manton
1951d27669 Add bluetooth package to permission request intent
Limit the component that may resolve this intent to the
bluetooth package.

Bug: 158219161
Test: Security Fix
Tag: #security
Change-Id: If732f940a7aa256f5975349118e8eb6cf5584676
2020-11-19 10:20:24 +00:00
Eugene Susla
0c870fd7df RESTRICT AUTOMERGE
Prevent non-system overlays from showing over notification listener consent dialog

Bug: 170731783
Test: use a visible overlay, ensure it's gone when notification consent is open
Change-Id: I58e017982f385ffc0d0ba2174512490b1d83dd36
2020-11-16 14:47:34 -08:00
Eugene Susla
bd4d6d8138 RESTRICT AUTOMERGE
Prevent non-system overlays from showing over notification listener consent dialog

Bug: 170731783
Test: use a visible overlay, ensure it's gone when notification consent is open
Change-Id: I58e017982f385ffc0d0ba2174512490b1d83dd36
2020-11-05 14:24:50 -08:00
Eugene Susla
2e82aa5d05 RESTRICT AUTOMERGE
Prevent non-system overlays from showing over notification listener consent dialog

Bug: 170731783
Test: use a visible overlay, ensure it's gone when notification consent is open
Change-Id: I58e017982f385ffc0d0ba2174512490b1d83dd36
2020-11-05 12:51:27 -08:00
Sunny Shao
7359b3840f Enable the filterTouchesWhenObscured in Special app access
- Enable the filterTouchesWhenObscured attribute on all toggle
  switches in all pages of the special app access

Bug: 155288585
Test: make RunSettingsRoboTests
Merged-In: I011cfe4b7e4e624a8338332ac47a353f7f3ab661
Change-Id: I85842db3faa558ea61bc878ca76ff6d8ce1a4b03
2020-08-02 14:59:04 +08:00
Sunny Shao
9e4c753b30 Enable the filterTouchesWhenObscured in Special app access
- Enable the filterTouchesWhenObscured attribute on all toggle
  switches in all pages of the special app access

Bug: 155288585
Test: make RunSettingsRoboTests
Merged-In: I011cfe4b7e4e624a8338332ac47a353f7f3ab661
Merged-In: I0731057ec6e77c6a0867784c729c3f5812ef6170
Change-Id: I02c372423287366d0706bcdf7cdecff48db2e22a
2020-07-14 15:06:26 +00:00
Sunny Shao
5d73464b76 Enable the filterTouchesWhenObscured in Special app access
- Enable the filterTouchesWhenObscured attribute on all toggle
  switches in all pages of the special app access

Bug: 155288585
Test: make RunSettingsRoboTests
Merged-In: I011cfe4b7e4e624a8338332ac47a353f7f3ab661
Merged-In: I0731057ec6e77c6a0867784c729c3f5812ef6170
Change-Id: I0731057ec6e77c6a0867784c729c3f5812ef6170
2020-07-14 13:40:51 +08:00
Jakub Pawlowski
c49fcef907 Prevent overlay drawing on top of Bluetooth discovery request dialog am: ba7f6d7d45
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/11986974

Change-Id: Ice5a98b7d2c10e9ee62ed20da7aa9213d18a4d8b
2020-06-26 20:06:25 +00:00
Jakub Pawlowski
ba7f6d7d45 Prevent overlay drawing on top of Bluetooth discovery request dialog
Bug: 155650356
Change-Id: I9cee6e5bb8cef77aa385d664fe0738db1496ef20
Merged-In: I9cee6e5bb8cef77aa385d664fe0738db1496ef20
(cherry picked from commit ac67100423)
2020-06-24 19:02:54 +00:00
Jakub Pawlowski
138dbb86cc Prevent overlay drawing on top of Bluetooth pairing dialog am: f3afef8419
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/11953485

Change-Id: I41bd60685dc58028a328c041ca4532b42881cec7
2020-06-22 19:03:01 +00:00
Jakub Pawlowski
f3afef8419 Prevent overlay drawing on top of Bluetooth pairing dialog
Bug: 155648639
Change-Id: I99643ee9084f3a9bc1ad9a459ac27c587d832c91
Merged-In: I99643ee9084f3a9bc1ad9a459ac27c587d832c91
2020-06-22 17:35:40 +02:00
Sunny Shao
9c6ab4cbd3 Allows to launch only authenticator owned activities am: 818fef48f3
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/11802014

Change-Id: I931654780a07f5e8f52dc875854545771d99bcde
2020-06-20 04:32:24 +00:00
Sunny Shao
818fef48f3 Allows to launch only authenticator owned activities
- 3rd party developers can define himself-authenticator
  and use the accountPreferences attribute to load the
  predefined preference UI.
- If a developer defines an action intent to launch the
  other activity in xml and it would return true due
  to the true exported attribute and no permission.
- To avoid launching arbitrary activity. Here allows
  to launch only authenticator owned activities.

Bug: 150946634
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.accounts
Test: PoC app
Change-Id: I5ce1a0b3838db7b3fbe48c6ea23d5f093d625cdb
Merged-In: I5ce1a0b3838db7b3fbe48c6ea23d5f093d625cdb
(cherry picked from commit d6d8f98844)
2020-06-09 10:11:04 +00:00
Sunny Shao
c8f92acbfb Allows to launch only authenticator owned activities
- 3rd party developers can define himself-authenticator
  and use the accountPreferences attribute to load the
  predefined preference UI.
- If a developer defines an action intent to launch the
  other activity in xml and it would return true due
  to the true exported attribute and no permission.
- To avoid launching arbitrary activity. Here allows
  to launch only authenticator owned activities.

Bug: 150946634
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.accounts
Test: PoC app
Change-Id: I5ce1a0b3838db7b3fbe48c6ea23d5f093d625cdb
Merged-In: I5ce1a0b3838db7b3fbe48c6ea23d5f093d625cdb
(cherry picked from commit d6d8f98844)
2020-06-09 10:07:10 +00:00
Jakub Pawlowski
c48d63752a Prevent overlay drawing on top of Bluetooth discovery request dialog
Bug: 155650356
Change-Id: I9cee6e5bb8cef77aa385d664fe0738db1496ef20
2020-06-04 06:45:16 +00:00
Jakub Pawlowski
88815d1456 Prevent overlay drawing on top of Bluetooth pairing dialog
Bug: 155648639
Change-Id: I99643ee9084f3a9bc1ad9a459ac27c587d832c91
2020-05-14 09:18:52 +00:00
TreeHugger Robot
5e788604c2 Merge "RESTRICT AUTOMERGE Allow LockScreenPattern to be launched in the pinning screen" into qt-dev 2020-03-11 17:51:30 +00:00
Mill Chen
101c9be6c1 RESTRICT AUTOMERGE
Allow LockScreenPattern to be launched in the pinning screen

If work profile lock is enabled and work app is pinned, users will get a
black/white screen on the phone. That's because Settings is prevented
from other apps launch any pages of Settings in the pinning mode.

In order to launch some pages of Settings from other apps, we add a
condition to the preventive mechanism and allow the activity inherited
from SettingsBaseActivity to override the condition to have the activity
to be launched from other apps in the pinning mode.

Bug: 137015265
Bug: 135604684
Test: manual test
Change-Id: I8070de79a83350d1658efcb19e983669dad0e673
Merged-In: I8070de79a83350d1658efcb19e983669dad0e673
2020-02-26 16:04:35 +00:00
Mill Chen
8d47205577 RESTRICT AUTOMERGE
Allow LockScreenPattern to be launched in the pinning screen

If work profile lock is enabled and work app is pinned, users will get a
black/white screen on the phone. That's because Settings is prevented
from other apps launch any pages of Settings in the pinning mode.

In order to launch some pages of Settings from other apps, we add a
condition to the preventive mechanism and allow the activity inherited
from SettingsBaseActivity to override the condition to have the activity
to be launched from other apps in the pinning mode.

Bug: 137015265
Bug: 135604684
Test: manual test
Change-Id: I8070de79a83350d1658efcb19e983669dad0e673
Merged-In: I8070de79a83350d1658efcb19e983669dad0e673
2020-02-26 16:04:19 +00:00
Mill Chen
077dd9b07f RESTRICT AUTOMERGE
Allow LockScreenPattern to be launched in the pinning screen

If work profile lock is enabled and work app is pinned, users will get a
black/white screen on the phone. That's because Settings is prevented
from other apps launch any pages of Settings in the pinning mode.

In order to launch some pages of Settings from other apps, we add a
condition to the preventive mechanism and allow the activity inherited
from SettingsBaseActivity to override the condition to have the activity
to be launched from other apps in the pinning mode.

Bug: 137015265
Bug: 135604684
Test: manual test
Change-Id: I8070de79a83350d1658efcb19e983669dad0e673
2020-02-26 13:09:55 +00:00
Christopher Tate
4a89abe279 DO NOT MERGE - Track framework changes to crashApplication API
Bug: 128649910
Bug: 140108616
Test: manual
Test: atest OsHostTests#testForegroundServiceBadNotification
Change-Id: Ia613372360f8b32f6ad3b7d2092e7cb27f067fbc
Merged-In: Ia613372360f8b32f6ad3b7d2092e7cb27f067fbc
2020-02-04 17:48:06 -08:00
Mill Chen
3c6a3011fa Prevent accounts page directly opening in screen pinning mode
In Settings there is no auth mechanism to prevent accounts page being
opened in screen pinning mode. This CL makes it so that when users are
trying to navigate to any pages in Settings from other apps in screen
pinning mode, Settings app will directly close its page.

Bug: 137015265
Bug: 135604684
Test: manual
Change-Id: If26eda408a9ef6fa03ad82e5bee51bb7185950d6
Merged-In: If26eda408a9ef6fa03ad82e5bee51bb7185950d6
(cherry picked from commit f3242dab35)
2019-12-09 03:19:31 +00:00
Mill Chen
ad2502a91a Prevent accounts page directly opening in screen pinning mode
In Settings there is no auth mechanism to prevent accounts page being
opened in screen pinning mode. This CL makes it so that when users are
trying to navigate to any pages in Settings from other apps in screen
pinning mode, Settings app will directly close its page.

Bug: 137015265
Bug: 135604684
Test: manual
Change-Id: If26eda408a9ef6fa03ad82e5bee51bb7185950d6
Merged-In: If26eda408a9ef6fa03ad82e5bee51bb7185950d6
(cherry picked from commit f3242dab35)
2019-12-09 03:19:12 +00:00
Mill Chen
a545a85f9d Prevent accounts page directly opening in screen pinning mode
In Settings there is no auth mechanism to prevent accounts page being
opened in screen pinning mode. This CL makes it so that when users are
trying to navigate to any pages in Settings from other apps in screen
pinning mode, Settings app will directly close its page.

Bug: 137015265
Bug: 135604684
Test: manual
Change-Id: If26eda408a9ef6fa03ad82e5bee51bb7185950d6
Merged-In: If26eda408a9ef6fa03ad82e5bee51bb7185950d6
(cherry picked from commit f3242dab35)
2019-12-09 03:18:24 +00:00
Kevin Chyn
49c7d07650 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
Merged-In: I6521e896d0402fe856dc85476f51149c9b3084a8
2019-07-26 12:21:51 -07:00
Yanting Yang
49b1bc1545 Support new regulatory label for location
Fixes: 137348817
Test: visual, robotests
Change-Id: I165b1e859891c7897e837d82702582458cecbb0d
2019-07-20 02:07:54 +08:00
Andrew Sapperstein
1f942d9857 Merge "Fix erasing of eSIMs for some devices" into qt-dev 2019-07-12 03:13:39 +00:00
Antony Sargent
5f612a4b44 Fix erasing of eSIMs for some devices
Doing a factory data reset used to always erase eSIMs. Then a few months
ago we added a default-on checkbox to let users opt out of erasing the
eSIM during this process, but only had it show for some devices (ones
which support the "fastboot oem esim_erase" command) by adding a system
property named masterclear.allow_retain_esim_profiles_after_fdr.

When recently updating the strings shown in the factory data reset
screen and the confirmation dialog, we changed the code so that if that
the checkbox is hidden we'll pass false for the ERASE_ESIMS_EXTRA
parameter sent to the factory data reset confirmation dialog. This had
the unintended side effect of making devices that don't specify true for
masterclear.allow_retain_esim_profiles_after_fdr skip erasing the eSIM.

This CL fixes that by removing the "is the checkbox hidden" check, going
back to the previous behavior of just using the checkbox value, which is
on by default even if hidden.

Fixes: 135284765
Test: make RunSettingsRoboTests
Change-Id: Ia9f335920e4e3c4a90f0a6a49d1722a0c19ea83d
2019-07-11 20:23:58 +00:00
tmfang
496d3f6f9c Improve Settings launch performance
From traces analysis, we found getFreeBytes
was taking a long time to return.

getFreeBytes was used when storage controller
tried to get storage information.

In order to prevent this case, we put the action
which takes too much time in background thread.

Test: I can't reproduce it locally. From code view,
this is a reasonable root cause.
Fixes: 136268875

Change-Id: I78e42cde88553c003f198cffb5747b352055f59a
(cherry picked from commit 0c37f019f6)
2019-07-11 04:19:42 +00:00
Andrew Sapperstein
72aded338a Merge "Add UI for mainline modules licenses." into qt-dev 2019-06-28 16:56:04 +00:00
TreeHugger Robot
5a69fac694 Merge "Fixed the IllegalStateException on removing account" into qt-dev 2019-06-26 11:15:35 +00:00
TreeHugger Robot
3288037bd2 Merge "Check isWfcProvisionedOnDevice in WifiCallingSettings" into qt-dev 2019-06-26 05:35:29 +00:00
Andrew Sapperstein
56a8c33c1b Add UI for mainline modules licenses.
Added a module licenses option that lives in Legal information settings.
Clicking that option opens module licenses page, which displays every
module by name, filtered to exclude modules without license files.
Clicking a module in the list opens HTMLViewer.

Created ModuleLicensesProvider, a new ContentProvider that serves as a
redirect for the Uris sent to HTMLViewer so that they open asset files.
In order to provide the redirect, the provider will write the license file
to a file in Settings' cache directory when the license does not exist
in the cache or is outdated. The provider then opens that cached file.

Fixes: 135183006
Test: robotests
Change-Id: I7d69da34780c8c4efb150d0c0411078c12bc80d8
2019-06-25 16:01:38 -07:00
Antony Sargent
46d819272a Check isWfcProvisionedOnDevice in WifiCallingSettings
On the SIM details page, the preference leading to a page for
configuring wifi calling will appear based on the results of the
MobileNetworkUtils#isWifiCallingEnabled helper function. That helper
uses the ImsManager to check several conditions, among them both
isWfcEnabledByPlatform and isWfcProvisionedOnDevice.

The page for configuring wifi calling has a tabbed UX, with one tab for
each active subscription that supports it. The WifiCallingSettings class
gets a list of the active subscriptions to determine which tabs to show,
and removes any that don't support wifi calling, but was only using the
isWfcEnabledByPlatform test to do so. This is a problem because the code
for showing the contents inside the tab, in WifiCallingSettingsForSub,
includes a sanity check of isWfcProvisionedOnDevice and calls finish()
if that returns false.

What this meant in practice is that if you happened to have 2
subscriptions where one returns true for both isWfcEnabledByPlatform and
isWfcProvisionedOnDevice, but the other only returned true for
isWfcEnabledByPlatform, then you'd never be able to succesfully use the
wifi calling page at all because the tab for the subscription you
*aren't* trying to configure would always call finish() early.

The right long term solution to this problem is probably to remove the
tabbed UX entirely from this page, since we probably don't need it given
the overall new multi-SIM UX. But there may still be legacy uses and
that is likely a bigger change than we want to make right now.

As a stopgap, this CL just adds a check of isWfcProvisionedOnDevice to
the code for filtering out ineligible subscriptions from the tabbed
interface, which we should have always had anyway.

Fixes: 135591718
Test: make RunSettingsRoboTests
Change-Id: I656c3d3fb30cb6fabcb86685eae38c5f0cd0c6f2
2019-06-25 14:16:53 -07:00
TreeHugger Robot
87fadeeb4a Merge "Add a listener for subscription changes to SimDialogFragment" into qt-dev 2019-06-25 17:54:54 +00:00
Mehdi Alizadeh
32d16291de Merge "Adds metrics categories for gesture navigation dialogs" into qt-dev 2019-06-25 00:09:06 +00:00
Hai Zhang
71f2614736 Revert "Add special apps access settings page for financial app."
This reverts commit 43374eabb8.

Reason for revert: No longer needed because we are using whitelist for
SMS permission

Fixes: 135213238
Test: presubmit
Change-Id: I182be4a1136521f325866e70e875439c17816ef2
2019-06-24 21:11:36 +00:00
Mehdi Alizadeh
0c7fd9e406 Adds metrics categories for gesture navigation dialogs
Bug: 135211145
Test: Builds
Change-Id: I9231778072bb222142fca09275cd84b87a263fa6
2019-06-24 20:29:41 +00:00
Antony Sargent
45f0701380 Add a listener for subscription changes to SimDialogFragment
For some kinds of telephony changes that might happen while we're
already showing one of these dialogs, we already get sent a new intent
for the dialog which we internally convert into a refresh of the dialog
contents instead of stacking a new copy on top of the old one.

But it turns out there are some other cases where the telephony stack
doesn't send a new intent for the dialog but *does* send a change event
through the SubscriptionManager, and we want to respond to those as
well. This CL adds a listener for those events.

Fixes: 135276696
Test: make RunSettingsRoboTests
Change-Id: Ifb93ae95f45fda5831e112306dd9361ccaa5119c
(cherry picked from commit 6a1d7e60ac)
2019-06-24 16:58:40 +00:00
Julia Reynolds
ab63fd3c25 Remove dead code
Test: try to search 'gentle'
Fixes: 135640138
Change-Id: If03703e59f77206da08fc80e88bb986f821c18fe
2019-06-21 13:24:05 +00:00
Ivan Podogov
242ff568d1 Fix Settings crash when trying to show work policy info
This fixes an exception in startActivity() call:

"android.util.AndroidRuntimeException: Calling startActivity() from outside of
an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really
what you want?"

Bug: 132904820
Test: manual
Change-Id: I0c687ea76068778554b072b6cc8274352de6fa28
2019-06-20 16:28:47 +01:00
TreeHugger Robot
753215fff9 Merge "Cannot switch between multiple TTS engines" into qt-dev 2019-06-20 04:42:23 +00:00