Commit Graph

26750 Commits

Author SHA1 Message Date
Tsung-Mao Fang
edf4416177 [DO NOT MERGE] Fix can't change notification sound for work profile.
Use correct user id context to query the type,
so we won't get empty result unexpectedly.

If we get the null result, then we won't set sound sucessfully.

Bug: 233580016
Bug: 221041256
Test: Manual test and set work profile sound works.
Change-Id: I7f8fb737a7c6f77a380f3f075a5c89a1970e39ad
Merged-In: I7f8fb737a7c6f77a380f3f075a5c89a1970e39ad
2022-06-02 10:57:50 +08:00
Arc Wang
d94b73b304 [DO NOT MERGE] Fix Settings crash when setting a null ringtone
Ringtone picker may callback a null ringtone Uri
if users select None.

This change pass null ringtone Uri to RingtoneManager
and return.

Bug: 232502532
Bug: 221041256
Test: maunal
      Settings - Sound & Vibration -> Phone ringtone
      -> My Sounds -> None
Change-Id: I044b680871472a3c272f6264c4ef272df542112e
Merged-In: I044b680871472a3c272f6264c4ef272df542112e
2022-06-02 09:52:17 +08:00
Hugh Chen
06139d3ffc RESTRICT AUTOMERGE Make bluetooth not discoverable via SliceDeepLinkTrampoline
- Don't let device be discovered when the user launch "Connected Devices
  settings" through SliceDeepLinkTrampoline.

Bug: 228450811
Test: make -j42 RunSettingsRoboTests and use test apk to manually test
to verify the device is not discoversable when open "Connected settings"
through test apk.

Change-Id: I5490b58675b1fd9fc36305766867f65caa6ccb6c
(cherry picked from commit 205752dcf2)
2022-05-12 06:20:57 +00:00
Arc Wang
640eab60f2 [DO NOT MERGE] Verify ringtone from ringtone picker is audio
To improve privacy.

Bug: 221041256
Test: atest com.android.settings.DefaultRingtonePreferenceTest
Change-Id: I0a9ca163f5ae91b67c9f957fde4c6db326b8718d
Merged-In: I0a9ca163f5ae91b67c9f957fde4c6db326b8718d
(cherry picked from commit e4c22580c9)
2022-05-10 01:43:16 +00:00
Edgar Wang
b3eecdd13d Fix LaunchAnyWhere in AppRestrictionsFragment
If the intent's package equals to the app's package, this intent
will be allowed to startActivityForResult.
But this check is unsafe, because if the component of this intent
is set, the package field will just be ignored. So if we set the
component to any activity we like and set package to the app's
package, it will pass the assertSafeToStartCustomActivity check
and now we can launch anywhere.

Bug: 223578534
Test: robotest and manual verify
Change-Id: I40496105bae313fe5cff2a36dfe329c1e2b5bbe4
(cherry picked from commit 90e095dbe3)
2022-04-13 04:47:24 +00:00
Arc Wang
c4121c15e4 Hide non-system overlay window on ActivityPicker
To improve security.

Bug: 181962311
Test: manual
      Show an AlertDialog and observe if it will hide after below command.
      adb shell am start -a android.intent.action.PICK_ACTIVITY -n com.android.settings/.ActivityPicker
Change-Id: I800f0f39a469a95eb36eeaaeb2aa60a39fd916d3
Merged-In: I800f0f39a469a95eb36eeaaeb2aa60a39fd916d3
2022-04-07 03:44:12 +00:00
Bonian Chen
d0888970a4 Merge "[Settings] Move display of VPN version into summary text" into qt-dev 2022-04-07 00:08:08 +00:00
TreeHugger Robot
74ff164972 Merge "Prevent exfiltration of system files via user image settings." into qt-dev 2022-04-01 12:42:31 +00:00
lucaslin
52e863b5a2 Hide private DNS settings UI in Guest mode
Hide private DNS settings UI in Guest mode to prevent guest
users modifying global private DNS settings.

Bug: 206987762
Test: 1. make RunSettingsRoboTests \
         ROBOTEST_FILTER=PrivateDnsPreferenceControllerTest
      2. Switch to Guest user and check if the private DNS UI is
         hidden or not.
Change-Id: Iebfb8684da3be32110decd9e8447dd07b1c40387
2022-03-09 02:54:12 +00:00
Oli Lan
8950a90024 Prevent exfiltration of system files via user image settings.
This is a backport of ag/17005706.

This adds mitigations to prevent system files being exfiltrated
via the settings content provider when a content URI is provided
as a chosen user image.

The mitigations are:

1) Copy the image to a new URI rather than the existing takePictureUri
prior to cropping.

2) Only allow a system handler to respond to the CROP intent.

Bug: 187702830
Test: build and check functionality
Change-Id: Ia6314b6810afb5efa0329f3eeaee9ccfff791966
Merged-In: I15e15ad88b768a5b679de32c5429d921d850a3cb
2022-03-03 13:18:16 +00:00
Jack Yu
4e543a38f6 Do not let guest user disable secure nfc
Bug: 209446496
Test: manual
Merged-In: I7253f7f08fde04e30400a30d9a0d24f1ceff04b0
Change-Id: I7253f7f08fde04e30400a30d9a0d24f1ceff04b0
(cherry picked from commit d9e3e6e4b1)
2022-02-02 17:44:55 +00:00
TreeHugger Robot
50b65a168a Merge "Add caller check to com.android.credentials.RESET" into qt-dev 2022-01-13 18:50:36 +00:00
Edgar Wang
f57d75f127 Fix bypass CALL_PRIVILEGED permission in AppRestrictionsFragment
In onReceive of AppRestrictionsFragment.java, there is a possible way to
start a phone call without permissions due to a confused deputy.
This could lead to local escalation of privilege with no additional
execution privileges needed.

We should not allow the restrictionsIntent to startActivity simply
because it resolves to multiple activities.
Instead, we should call resolveActivity and check the result's package
name is same as current package name, then it is safe to startActivity.

Bug: 200688991
Test: manual verify
Change-Id: Iaa2d3a9497c3266babe0789961befc9776a4db7a
Merged-In: Iaa2d3a9497c3266babe0789961befc9776a4db7a
(cherry picked from commit 359512cd95)
2022-01-07 04:23:50 +00:00
Alex Johnston
35e3d0c1b0 Add caller check to com.android.credentials.RESET
* Only the Settings app can reset credentials
  via com.android.credentials.RESET.
* com.android.credentials.INSTALL should still be
  callable by CertInstaller.

Manual testing steps:
* Install certificate via Settings
* Verify unable to reset certificates via test app
  provided in the bug (app-debug.apk)
* Verify able to reset certificates via Settings
* Verify com.android.credentials.INSTALL isn't changed

Bug: 200164168
Test: manual
Change-Id: I9dfde586616d004befbee529f2ae842d22795065
(cherry picked from commit 4c1272a921)
Merged-In: I9dfde586616d004befbee529f2ae842d22795065
2022-01-06 22:17:17 +00:00
Bonian Chen
8c0052d537 [Settings] Move display of VPN version into summary text
Move the display of version text within VPN into summary part of the
display, and limit the height of summary area.

Bug: 205460459
Test: install apk from b/205460459#comment3 and verify
Change-Id: I666b9db356feeebf04e3be688897c2d9110a5275
(cherry picked from commit 144f295d7a)
Merged-In: I666b9db356feeebf04e3be688897c2d9110a5275
2021-12-06 09:54:00 +00:00
Hugh Chen
d4e0ed2284 RESTRICT AUTOMERGE Fix make Bluetooth discoverable without additional permission
- Only enable device can be discoverable when the user launch
  "Connected Devices settings" through settings and systemui

Bug: 194695497
Test: make -j42 RunSettingsRoboTests and use test apk to manually test
to verify the device is not discoversable when open "Connected settings"
through test apk.

Change-Id: Ia04ab759b737acf30b782f5c5831dd59f25fb257
(cherry picked from commit d3abbb9821)
2021-11-01 07:37:33 +00:00
Weng Su
6a2624e500 [RESTRICT AUTOMERGE] Revert "Add permission checking to WifiDialogActivity"
Revert submission 15220072-add_permission_wifidialog-qt-dev

Reason for revert: rollback CLs to avoid compatibility risks
Reverted Changes:
I1535f6f2d:Add SafetyNet logging
If7ca069c8:Add permission checking to WifiDialogActivity

Bug: 185126813
Change-Id: I3f75adf5bf0eea037dc0c5dfbeeb22b35b2856b6
2021-10-05 03:37:51 +00:00
Weng Su
d05686b431 [RESTRICT AUTOMERGE] Revert "Add SafetyNet logging"
Revert submission 15220072-add_permission_wifidialog-qt-dev

Reason for revert: rollback CLs to avoid compatibility risks
Reverted Changes:
I1535f6f2d:Add SafetyNet logging
If7ca069c8:Add permission checking to WifiDialogActivity

Bug: 185126813
Change-Id: I42b77ac420d9438c741b28ce33bcadf1c74b19eb
2021-10-05 03:23:45 +00:00
Weng Su
62041d683b Add SafetyNet logging
- Add SafetyNet log if the calling package is no the permission for
result

Test: checked eventlog in the bugreport
Bug: 185126813

Merged-In: I1535f6f2ded2445702df0d723518b773cd094164
Change-Id: I1535f6f2ded2445702df0d723518b773cd094164
(cherry picked from commit 199528d460)
2021-07-07 08:22:17 +00:00
Weng Su
8800cdf527 Add permission checking to WifiDialogActivity
- Use getCallingPackage() to get calling package.

- Check if the calling package has ACCESS_COARSE_LOCATION or
ACCESS_COARSE_LOCATION permission.

- Only set result data to permission granted callers

Bug: 185126813
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=WifiDialogActivityTest

Merged-In: If7ca069c842ed2bd1aed23f9d4041473c68a4dad
Change-Id: If7ca069c842ed2bd1aed23f9d4041473c68a4dad
(cherry picked from commit 71e728e934)
2021-07-07 08:06:29 +00:00
Hugh Chen
fa504b8e01 RESTRICT AUTOMERGE Fix phishing attacks over Bluetooth due to unclear warning message
This CL add more prompts presented for users to avoid phishing attacks.

Screenshot:
https://screenshot.googleplex.com/p5PZbphN46ddPFV.png
https://screenshot.googleplex.com/6Q2wKfPbNQmTtx8.png
https://screenshot.googleplex.com/987VpYgNUZL2K4T.png
https://screenshot.googleplex.com/9eVg6SAGScVXU8U.png

Bug: 167403112
Test: manually test
Change-Id: Iadec059b662fd91754ad573bbe688702cdd3c9af
(cherry picked from commit 10e4599219)
2021-06-18 03:34:32 +00:00
Hugh Chen
7ce80425ee RESTRICT AUTOMERGE Update string
1. Replace "An untrusted Bluetooth device" to "A Bluetooth device".
2. Replace "Deny" to "Don't allow"

https://docs.google.com/document/d/18bVSIAyX4MNpNeCvxqyZu7CXcBUcdV0pnh-gzVprjqU/edit?ts=60709637

Bug: 167403112
Test: send intent to test right prompts message is pop up.
make -j42 RunSettingsRoboTests

Change-Id: I38da15d4b1fb08671f6352458cbf3f735b4083bc
(cherry picked from commit 38fc9a91b5)
2021-06-18 03:34:00 +00:00
Jakub Pawlowski
3a2ab54f36 Merge "Prevent drawing on top of DevicePickerActivity" into qt-dev 2021-05-12 19:27:19 +00:00
TreeHugger Robot
4074cd5e48 Merge changes Ia51528f2,Id27a7809 into qt-dev
* changes:
  RESTRICT AUTOMERGE Fix unable to send file via OPP
  RESTRICT AUTOMERGE Fix bluetooth settings will broadcast to anywhere when some cases
2021-05-11 06:03:19 +00:00
Jakub Pawlowski
68f799a4c6 Prevent drawing on top of DevicePickerActivity
Bug: 182584940
Change-Id: I8b27b397bce1708a42b96b1b647c64e23142c468
2021-05-10 19:50:49 +02:00
Hugh Chen
51755e9a33 RESTRICT AUTOMERGE Fix unable to send file via OPP
Bluetooth app will indicate BluetoothOppReceiver to receive
device picker intent. But for fix the security issue we
removed the setClassName() method in ag/14111132 to avoid attack.
It causes BluetoothOppReceiver cannot receive the intent.

This CL will compare to calling package name with launch package name.
If they are not equal, the setClassName() will not invoke.

Bug: 186490534
Bug: 179386960
Bug: 179386068

Test: make RunSettingsRoboTests -j56
Change-Id: Ia51528f2a44ab73edbc86899ca0846d3262fe1f0
(cherry picked from commit bb5be240c0)
2021-05-04 06:04:05 +00:00
Weng Su
1f24c6a968 [DO NOT MERGE] Modify Wi-Fi details settings to restricted style
- Show restricted text in guest mode

- Screenshot:
  https://screenshot.googleplex.com/6nYcmazMM46TxaB

Bug: 177573895
Test: manual test
make RunSettingsRoboTests \
       ROBOTEST_FILTER=WifiNetworkDetailsFragmentTest

Change-Id: I5f857b2079e0f550e4be601d27dd54dac56b2f57
Merged-In: I5f857b2079e0f550e4be601d27dd54dac56b2f57
2021-04-29 14:38:27 +00:00
Hugh Chen
43d093ebe8 RESTRICT AUTOMERGE Fix bluetooth settings will broadcast to anywhere when some cases
BluetoothPermissionActivity and DevicePickerFragment will send
broadcast to return the result to calling apps. As this broadcast
intent is from Settings with uid 1000, it will be sent to any
protected BroadcastReceivers in the device. It can make an attacker
send broadcast to protected BroadcastReceivers like factory reset intent
(android/com.android.server.MasterClearReceiver) via
BluetoothPermissionActivity or DevicePickerFragment.

This CL will not allow to set package name and class name to avoid
the attacker.

Bug: 179386960
Bug: 179386068
Test: make -j42 RunSettingsRoboTests and use test apk to manually test
to verify factory reset not started and no system UI notification.

Change-Id: Id27a78091ab578077853b8fbb97a4422cff0a158
(cherry picked from commit 8adedc6249)
2021-04-26 03:43:57 +00:00
Tsung-Mao Fang
52f9039d5c Prevent HTML Injection on the Device Admin request screen
The root issue is that CharSequence is an interface.
String implements that interface, however, Spanned class
too which is a rich text format that can store HTML code.

The solution is enforce to use String type which won't include
any HTML function.

Test: Rebuilt apk and see the string without HTML style.
Bug: 179042963
Change-Id: I53b460b12da918e022d2f2934f114d205dbaadb0
Merged-In: I53b460b12da918e022d2f2934f114d205dbaadb0
(cherry picked from commit 0bf3c98b2f)
2021-04-14 12:16:57 +00:00
Arc Wang
89d14a36dc Merge "Revert "Hide non-system overlay window on ActivityPicker"" into pi-dev am: bcc7f89f85
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/14103366

Change-Id: Iec105d8ee74d6d2c869072866c4caffbd40d9a19
2021-04-06 13:01:40 +00:00
Arc Wang
bcc7f89f85 Merge "Revert "Hide non-system overlay window on ActivityPicker"" into pi-dev 2021-04-06 12:37:52 +00:00
Arc Wang
eb2ac6e455 Revert "Hide non-system overlay window on ActivityPicker"
This reverts commit 855b1f428d.

Reason for revert: <b/184623294>

Change-Id: Ie1eb6f86feda56d6444971fa5dfd2c11357fab01
2021-04-06 12:29:38 +00:00
TreeHugger Robot
d0957376c0 Merge "Hide non-system overlay window on ActivityPicker" into pi-dev am: 7a09c0613f
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/13835814

Change-Id: If51aba7cfb3495b42335d90a1600734da17d4d42
2021-04-06 09:00:52 +00:00
TreeHugger Robot
7a09c0613f Merge "Hide non-system overlay window on ActivityPicker" into pi-dev 2021-04-06 08:23:13 +00:00
Weng Su
56dc96d1f6 Merge "[DO NOT MERGE] Revert "[Security Report] Fix Settings WifiScanModeActivity Overlaid issue"" into pi-dev 2021-03-19 02:51:52 +00:00
Weng Su
f4432df069 [DO NOT MERGE] Revert "[Security Report] Fix Settings WifiScanModeActivity Overlaid issue"
This reverts commit 32d5d3a3a3.

Bug: 174047492
Reason for revert:
Look like the WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS system flag is not supported in the pi-dev branch.

Change-Id: Iec3c28e8c148f83fc171d696b2fc67f359d03eb8
2021-03-18 09:02:20 +00:00
András Klöczl
f1125282f9 Merge "Prevent using invalid result uri during multi user image change" into pi-dev 2021-03-11 09:48:07 +00:00
Arc Wang
855b1f428d Hide non-system overlay window on ActivityPicker
To improve security.

Bug: 181962311
Test: manual
      Show an AlertDialog and observe if it will hide after below command.
      adb shell am start -a android.intent.action.PICK_ACTIVITY -n com.android.settings/.ActivityPicker
Change-Id: I6e2845cc19dc012cba2933318a067bbb8db90a23
(cherry picked from commit 3b4853e109)
2021-03-11 07:47:37 +00:00
Andras Kloczl
9c0024f455 Prevent using invalid result uri during multi user image change
Test: manual
Bug: 172939189
Change-Id: I258c305f825da94474c8027828e3b9707b463699
Merged-In: I258c305f825da94474c8027828e3b9707b463699
Merged-In: I3e6f6200e82e86d6a2085652906ad2d0d44814f5
Merged-In: Id2e598878b3250e8b3590905c6def561e2437d55
Merged-In: I15e15ad88b768a5b679de32c5429d921d850a3cb
2021-03-11 00:16:03 +00:00
Andras Kloczl
e0f8214e80 Prevent using invalid result uri during multi user image change
Test: manual
Bug: 172939189
Change-Id: I3e6f6200e82e86d6a2085652906ad2d0d44814f5
Merged-In: I3e6f6200e82e86d6a2085652906ad2d0d44814f5
Merged-In: Id2e598878b3250e8b3590905c6def561e2437d55
Merged-In: I15e15ad88b768a5b679de32c5429d921d850a3cb
2021-03-11 00:15:46 +00:00
Weng Su
32d5d3a3a3 [Security Report] Fix Settings WifiScanModeActivity Overlaid issue
- Disallowed non system overlay windows

- Screenshot
  https://screenshot.googleplex.com/77fJ9QN6pV4zFYc

Bug: 174047492
Test: manual test

Merged-In: Ia7acad6d456ce5ebea2d982d4cb063d4f28cbfff
Change-Id: Ia7acad6d456ce5ebea2d982d4cb063d4f28cbfff
(cherry picked from commit d47d8e4fc5)
2021-02-01 03:45:27 +00:00
Weng Su
faa5f6b5f6 [Security Report] Fix Settings WifiScanModeActivity Overlaid issue
- Disallowed non system overlay windows

- Screenshot
  https://screenshot.googleplex.com/77fJ9QN6pV4zFYc

Bug: 174047492
Test: manual test

Merged-In: Ia7acad6d456ce5ebea2d982d4cb063d4f28cbfff
Change-Id: Ia7acad6d456ce5ebea2d982d4cb063d4f28cbfff
(cherry picked from commit d47d8e4fc5)
2021-02-01 03:42:15 +00:00
TreeHugger Robot
1a6a1b12ef Merge "RESTRICT AUTOMERGE Fix phishing attacks over Bluetooth due to unclear warning message" into pi-dev 2021-01-07 01:27:50 +00:00
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
Hugh Chen
01a50db645 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:32:58 -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