From d05686b43164e16fa1ccf7dd6d7a292c7dec0bf5 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Fri, 1 Oct 2021 08:15:03 +0000 Subject: [PATCH 01/15] [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 --- src/com/android/settings/wifi/WifiDialogActivity.java | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/com/android/settings/wifi/WifiDialogActivity.java b/src/com/android/settings/wifi/WifiDialogActivity.java index 53c941e9c21..a2121908894 100644 --- a/src/com/android/settings/wifi/WifiDialogActivity.java +++ b/src/com/android/settings/wifi/WifiDialogActivity.java @@ -28,7 +28,6 @@ import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; import android.net.wifi.WifiManager.ActionListener; import android.os.Bundle; -import android.util.EventLog; import android.util.Log; import androidx.annotation.VisibleForTesting; @@ -217,7 +216,6 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo final String callingPackage = getCallingPackage(); if (callingPackage == null) { Log.d(TAG, "Failed to get the calling package, don't return the result."); - EventLog.writeEvent(0x534e4554, "185126813", -1 /* UID */, "no calling package"); return false; } @@ -234,14 +232,6 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo } Log.d(TAG, "The calling package does not have the necessary permissions for result."); - try { - EventLog.writeEvent(0x534e4554, "185126813", - getPackageManager().getPackageUid(callingPackage, 0 /* flags */), - "no permission"); - } catch (PackageManager.NameNotFoundException e) { - EventLog.writeEvent(0x534e4554, "185126813", -1 /* UID */, "no permission"); - Log.w(TAG, "Cannot find the UID, calling package: " + callingPackage, e); - } return false; } } From 153b0f03f5e1119d396d5acefb880be786212a2a Mon Sep 17 00:00:00 2001 From: Weng Su Date: Fri, 1 Oct 2021 08:17:59 +0000 Subject: [PATCH 02/15] [RESTRICT AUTOMERGE] Revert "Add comment to AndroidManifest" This reverts commit 4fb84a37378971a0d5236b16a19adee2b29531de. Reason for revert: rollback CLs to avoid compatibility risks Bug: 185126813 Change-Id: I495cd723917db6405ef3b540a6f01eaeaf8a45fe --- AndroidManifest.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 46f5a5362de..ff3f650f895 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -2697,10 +2697,6 @@ - Date: Fri, 1 Oct 2021 08:27:32 +0000 Subject: [PATCH 03/15] [RESTRICT AUTOMERGE] Revert "[DO NOT MERGE] Add SafetyNet logging" Revert submission 15207347-add_permission_wifidialog Reason for revert: rollback CLs to avoid compatibility risks Reverted Changes: If7ca069c8:[DO NOT MERGE] Add permission checking to WifiDial... I1535f6f2d:[DO NOT MERGE] Add SafetyNet logging Bug: 185126813 Change-Id: I41721dbb34612144d00dba7885944d834bf93c7d --- src/com/android/settings/wifi/WifiDialogActivity.java | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/com/android/settings/wifi/WifiDialogActivity.java b/src/com/android/settings/wifi/WifiDialogActivity.java index 53c941e9c21..a2121908894 100644 --- a/src/com/android/settings/wifi/WifiDialogActivity.java +++ b/src/com/android/settings/wifi/WifiDialogActivity.java @@ -28,7 +28,6 @@ import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; import android.net.wifi.WifiManager.ActionListener; import android.os.Bundle; -import android.util.EventLog; import android.util.Log; import androidx.annotation.VisibleForTesting; @@ -217,7 +216,6 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo final String callingPackage = getCallingPackage(); if (callingPackage == null) { Log.d(TAG, "Failed to get the calling package, don't return the result."); - EventLog.writeEvent(0x534e4554, "185126813", -1 /* UID */, "no calling package"); return false; } @@ -234,14 +232,6 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo } Log.d(TAG, "The calling package does not have the necessary permissions for result."); - try { - EventLog.writeEvent(0x534e4554, "185126813", - getPackageManager().getPackageUid(callingPackage, 0 /* flags */), - "no permission"); - } catch (PackageManager.NameNotFoundException e) { - EventLog.writeEvent(0x534e4554, "185126813", -1 /* UID */, "no permission"); - Log.w(TAG, "Cannot find the UID, calling package: " + callingPackage, e); - } return false; } } From 1c93d29b73db9acada70d45387b8c76c6b91b10f Mon Sep 17 00:00:00 2001 From: Weng Su Date: Fri, 1 Oct 2021 08:28:44 +0000 Subject: [PATCH 04/15] [RESTRICT AUTOMERGE] Revert "Add comment to AndroidManifest" This reverts commit fa1e3870d855afd083be319008d1eb59593f3f51. Reason for revert: rollback CLs to avoid compatibility risks Bug: 185126813 Change-Id: I77a027075465b5685a857b4c8c68203ef812a172 --- AndroidManifest.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index f7ca87c608a..2f53cc1e7c8 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -2708,10 +2708,6 @@ - Date: Fri, 1 Oct 2021 08:15:03 +0000 Subject: [PATCH 05/15] [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 --- .../settings/wifi/WifiDialogActivity.java | 55 ++----- .../settings/wifi/WifiDialogActivityTest.java | 147 ------------------ 2 files changed, 9 insertions(+), 193 deletions(-) diff --git a/src/com/android/settings/wifi/WifiDialogActivity.java b/src/com/android/settings/wifi/WifiDialogActivity.java index a2121908894..77827867630 100644 --- a/src/com/android/settings/wifi/WifiDialogActivity.java +++ b/src/com/android/settings/wifi/WifiDialogActivity.java @@ -16,13 +16,9 @@ package com.android.settings.wifi; -import static android.Manifest.permission.ACCESS_COARSE_LOCATION; -import static android.Manifest.permission.ACCESS_FINE_LOCATION; - import android.app.Activity; import android.content.DialogInterface; import android.content.Intent; -import android.content.pm.PackageManager; import android.net.NetworkInfo; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; @@ -57,12 +53,10 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo public static final String KEY_WIFI_CONFIGURATION = "wifi_configuration"; - @VisibleForTesting - static final int RESULT_CONNECTED = RESULT_FIRST_USER; + private static final int RESULT_CONNECTED = RESULT_FIRST_USER; private static final int RESULT_FORGET = RESULT_FIRST_USER + 1; - @VisibleForTesting - static final int REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = 0; + private static final int REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = 0; private WifiDialog mDialog; @@ -162,22 +156,17 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo } } - Intent resultData = hasPermissionForResult() ? createResultData(config, accessPoint) : null; - setResult(RESULT_CONNECTED, resultData); - finish(); - } - - protected Intent createResultData(WifiConfiguration config, AccessPoint accessPoint) { - Intent result = new Intent(); + Intent resultData = new Intent(); if (accessPoint != null) { Bundle accessPointState = new Bundle(); accessPoint.saveWifiState(accessPointState); - result.putExtra(KEY_ACCESS_POINT_STATE, accessPointState); + resultData.putExtra(KEY_ACCESS_POINT_STATE, accessPointState); } if (config != null) { - result.putExtra(KEY_WIFI_CONFIGURATION, config); + resultData.putExtra(KEY_WIFI_CONFIGURATION, config); } - return result; + setResult(RESULT_CONNECTED, resultData); + finish(); } @Override @@ -203,35 +192,9 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo if (resultCode != RESULT_OK) { return; } - if (hasPermissionForResult()) { - setResult(RESULT_CONNECTED, data); - } else { - setResult(RESULT_CONNECTED); - } + + setResult(RESULT_CONNECTED, data); finish(); } } - - protected boolean hasPermissionForResult() { - final String callingPackage = getCallingPackage(); - if (callingPackage == null) { - Log.d(TAG, "Failed to get the calling package, don't return the result."); - return false; - } - - if (getPackageManager().checkPermission(ACCESS_COARSE_LOCATION, callingPackage) - == PackageManager.PERMISSION_GRANTED) { - Log.d(TAG, "The calling package has ACCESS_COARSE_LOCATION permission for result."); - return true; - } - - if (getPackageManager().checkPermission(ACCESS_FINE_LOCATION, callingPackage) - == PackageManager.PERMISSION_GRANTED) { - Log.d(TAG, "The calling package has ACCESS_FINE_LOCATION permission for result."); - return true; - } - - Log.d(TAG, "The calling package does not have the necessary permissions for result."); - return false; - } } diff --git a/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java b/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java index f86f6e7befc..15a07802be2 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java @@ -16,32 +16,18 @@ package com.android.settings.wifi; -import static android.Manifest.permission.ACCESS_COARSE_LOCATION; -import static android.Manifest.permission.ACCESS_FINE_LOCATION; - -import static com.android.settings.wifi.WifiDialogActivity.REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER; -import static com.android.settings.wifi.WifiDialogActivity.RESULT_CONNECTED; -import static com.android.settings.wifi.WifiDialogActivity.RESULT_OK; - import static com.google.common.truth.Truth.assertThat; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; import android.content.Intent; -import android.content.pm.PackageManager; import android.net.wifi.WifiConfiguration; -import android.net.wifi.WifiManager; import com.android.settings.R; import com.android.settings.testutils.shadow.ShadowAlertDialogCompat; import com.android.settings.testutils.shadow.ShadowConnectivityManager; import com.android.settings.testutils.shadow.ShadowWifiManager; import com.android.settings.wifi.dpp.WifiDppEnrolleeActivity; -import com.android.settingslib.wifi.AccessPoint; import com.google.android.setupcompat.util.WizardManagerHelper; @@ -64,30 +50,13 @@ import org.robolectric.util.ReflectionHelpers; }) public class WifiDialogActivityTest { - private static final String CALLING_PACKAGE = "calling_package"; private static final String AP1_SSID = "\"ap1\""; - - @Mock - PackageManager mPackageManager; - @Mock - WifiManager mWifiManager; - @Mock - WifiDialog mWifiDialog; - @Mock - WifiConfiguration mWifiConfiguration; - @Mock - AccessPoint mAccessPoint; - @Mock - Intent mResultData; @Mock private WifiConfigController mController; @Before public void setUp() { MockitoAnnotations.initMocks(this); - when(mWifiDialog.getController()).thenReturn(mController); - when(mController.getConfig()).thenReturn(mWifiConfiguration); - when(mController.getAccessPoint()).thenReturn(mAccessPoint); WifiConfiguration wifiConfig = new WifiConfiguration(); wifiConfig.SSID = AP1_SSID; @@ -107,29 +76,6 @@ public class WifiDialogActivityTest { assertThat(ShadowWifiManager.get().savedWifiConfig.SSID).isEqualTo(AP1_SSID); } - @Test - public void onSubmit_noPermissionForResult_setResultWithoutData() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.hasPermissionForResult()).thenReturn(false); - when(activity.getSystemService(WifiManager.class)).thenReturn(mWifiManager); - - activity.onSubmit(mWifiDialog); - - verify(activity).setResult(RESULT_CONNECTED, null); - } - - @Test - public void onSubmit_hasPermissionForResult_setResultWithData() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.hasPermissionForResult()).thenReturn(true); - when(activity.createResultData(any(), any())).thenReturn(mResultData); - when(activity.getSystemService(WifiManager.class)).thenReturn(mWifiManager); - - activity.onSubmit(mWifiDialog); - - verify(activity).setResult(RESULT_CONNECTED, mResultData); - } - @Test public void onSubmit_whenConnectForCallerIsFalse_shouldNotConnectToNetwork() { WifiDialogActivity activity = @@ -186,97 +132,4 @@ public class WifiDialogActivityTest { assertThat(controller.get().getThemeResId()). isEqualTo(R.style.LightTheme_SettingsBase_SetupWizard); } - - @Test - public void onActivityResult_noPermissionForResult_setResultWithoutData() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.hasPermissionForResult()).thenReturn(false); - final Intent data = new Intent(); - - activity.onActivityResult(REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER, RESULT_OK, - data); - - verify(activity).setResult(RESULT_CONNECTED); - } - - @Test - public void onActivityResult_hasPermissionForResult_setResultWithData() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.hasPermissionForResult()).thenReturn(true); - final Intent data = new Intent(); - - activity.onActivityResult(REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER, RESULT_OK, - data); - - verify(activity).setResult(RESULT_CONNECTED, data); - } - - @Test - public void hasPermissionForResult_noCallingPackage_returnFalse() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.getCallingPackage()).thenReturn(null); - - final boolean result = activity.hasPermissionForResult(); - - assertThat(result).isFalse(); - } - - @Test - public void hasPermissionForResult_noPermission_returnFalse() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.getCallingPackage()).thenReturn(null); - when(mPackageManager.checkPermission(ACCESS_COARSE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_DENIED); - when(mPackageManager.checkPermission(ACCESS_FINE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_DENIED); - - final boolean result = activity.hasPermissionForResult(); - - assertThat(result).isFalse(); - } - - @Test - public void hasPermissionForResult_hasCoarseLocationPermission_returnTrue() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.getCallingPackage()).thenReturn(CALLING_PACKAGE); - when(activity.getPackageManager()).thenReturn(mPackageManager); - when(mPackageManager.checkPermission(ACCESS_COARSE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_GRANTED); - when(mPackageManager.checkPermission(ACCESS_FINE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_DENIED); - - final boolean result = activity.hasPermissionForResult(); - - assertThat(result).isTrue(); - } - - @Test - public void hasPermissionForResult_hasFineLocationPermission_returnTrue() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.getCallingPackage()).thenReturn(CALLING_PACKAGE); - when(activity.getPackageManager()).thenReturn(mPackageManager); - when(mPackageManager.checkPermission(ACCESS_COARSE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_DENIED); - when(mPackageManager.checkPermission(ACCESS_FINE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_GRANTED); - - final boolean result = activity.hasPermissionForResult(); - - assertThat(result).isTrue(); - } - - @Test - public void hasPermissionForResult_haveBothLocationPermissions_returnTrue() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.getCallingPackage()).thenReturn(CALLING_PACKAGE); - when(activity.getPackageManager()).thenReturn(mPackageManager); - when(mPackageManager.checkPermission(ACCESS_COARSE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_GRANTED); - when(mPackageManager.checkPermission(ACCESS_FINE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_GRANTED); - - final boolean result = activity.hasPermissionForResult(); - - assertThat(result).isTrue(); - } } From 18043562c1389e79e4c45a37a859401a7820bbd1 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Fri, 1 Oct 2021 08:27:32 +0000 Subject: [PATCH 06/15] [RESTRICT AUTOMERGE] Revert "[DO NOT MERGE] Add permission checking to WifiDialogActivity" Revert submission 15207347-add_permission_wifidialog Reason for revert: rollback CLs to avoid compatibility risks Reverted Changes: If7ca069c8:[DO NOT MERGE] Add permission checking to WifiDial... I1535f6f2d:[DO NOT MERGE] Add SafetyNet logging Bug: 185126813 Change-Id: Ifc3b53dc91fc8d5aa31c1a10d4eb033bbe54c47d --- .../settings/wifi/WifiDialogActivity.java | 55 ++----- .../settings/wifi/WifiDialogActivityTest.java | 147 ------------------ 2 files changed, 9 insertions(+), 193 deletions(-) diff --git a/src/com/android/settings/wifi/WifiDialogActivity.java b/src/com/android/settings/wifi/WifiDialogActivity.java index a2121908894..77827867630 100644 --- a/src/com/android/settings/wifi/WifiDialogActivity.java +++ b/src/com/android/settings/wifi/WifiDialogActivity.java @@ -16,13 +16,9 @@ package com.android.settings.wifi; -import static android.Manifest.permission.ACCESS_COARSE_LOCATION; -import static android.Manifest.permission.ACCESS_FINE_LOCATION; - import android.app.Activity; import android.content.DialogInterface; import android.content.Intent; -import android.content.pm.PackageManager; import android.net.NetworkInfo; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; @@ -57,12 +53,10 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo public static final String KEY_WIFI_CONFIGURATION = "wifi_configuration"; - @VisibleForTesting - static final int RESULT_CONNECTED = RESULT_FIRST_USER; + private static final int RESULT_CONNECTED = RESULT_FIRST_USER; private static final int RESULT_FORGET = RESULT_FIRST_USER + 1; - @VisibleForTesting - static final int REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = 0; + private static final int REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = 0; private WifiDialog mDialog; @@ -162,22 +156,17 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo } } - Intent resultData = hasPermissionForResult() ? createResultData(config, accessPoint) : null; - setResult(RESULT_CONNECTED, resultData); - finish(); - } - - protected Intent createResultData(WifiConfiguration config, AccessPoint accessPoint) { - Intent result = new Intent(); + Intent resultData = new Intent(); if (accessPoint != null) { Bundle accessPointState = new Bundle(); accessPoint.saveWifiState(accessPointState); - result.putExtra(KEY_ACCESS_POINT_STATE, accessPointState); + resultData.putExtra(KEY_ACCESS_POINT_STATE, accessPointState); } if (config != null) { - result.putExtra(KEY_WIFI_CONFIGURATION, config); + resultData.putExtra(KEY_WIFI_CONFIGURATION, config); } - return result; + setResult(RESULT_CONNECTED, resultData); + finish(); } @Override @@ -203,35 +192,9 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo if (resultCode != RESULT_OK) { return; } - if (hasPermissionForResult()) { - setResult(RESULT_CONNECTED, data); - } else { - setResult(RESULT_CONNECTED); - } + + setResult(RESULT_CONNECTED, data); finish(); } } - - protected boolean hasPermissionForResult() { - final String callingPackage = getCallingPackage(); - if (callingPackage == null) { - Log.d(TAG, "Failed to get the calling package, don't return the result."); - return false; - } - - if (getPackageManager().checkPermission(ACCESS_COARSE_LOCATION, callingPackage) - == PackageManager.PERMISSION_GRANTED) { - Log.d(TAG, "The calling package has ACCESS_COARSE_LOCATION permission for result."); - return true; - } - - if (getPackageManager().checkPermission(ACCESS_FINE_LOCATION, callingPackage) - == PackageManager.PERMISSION_GRANTED) { - Log.d(TAG, "The calling package has ACCESS_FINE_LOCATION permission for result."); - return true; - } - - Log.d(TAG, "The calling package does not have the necessary permissions for result."); - return false; - } } diff --git a/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java b/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java index 1a6de550e5f..41d1bbe4f38 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java @@ -16,31 +16,17 @@ package com.android.settings.wifi; -import static android.Manifest.permission.ACCESS_COARSE_LOCATION; -import static android.Manifest.permission.ACCESS_FINE_LOCATION; - -import static com.android.settings.wifi.WifiDialogActivity.REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER; -import static com.android.settings.wifi.WifiDialogActivity.RESULT_CONNECTED; -import static com.android.settings.wifi.WifiDialogActivity.RESULT_OK; - import static com.google.common.truth.Truth.assertThat; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; import android.content.Intent; -import android.content.pm.PackageManager; import android.net.wifi.WifiConfiguration; -import android.net.wifi.WifiManager; import com.android.settings.R; import com.android.settings.testutils.shadow.ShadowAlertDialogCompat; import com.android.settings.testutils.shadow.ShadowConnectivityManager; import com.android.settings.testutils.shadow.ShadowWifiManager; -import com.android.settingslib.wifi.AccessPoint; import com.google.android.setupcompat.util.WizardManagerHelper; @@ -62,30 +48,13 @@ import org.robolectric.util.ReflectionHelpers; }) public class WifiDialogActivityTest { - private static final String CALLING_PACKAGE = "calling_package"; private static final String AP1_SSID = "\"ap1\""; - - @Mock - PackageManager mPackageManager; - @Mock - WifiManager mWifiManager; - @Mock - WifiDialog mWifiDialog; - @Mock - WifiConfiguration mWifiConfiguration; - @Mock - AccessPoint mAccessPoint; - @Mock - Intent mResultData; @Mock private WifiConfigController mController; @Before public void setUp() { MockitoAnnotations.initMocks(this); - when(mWifiDialog.getController()).thenReturn(mController); - when(mController.getConfig()).thenReturn(mWifiConfiguration); - when(mController.getAccessPoint()).thenReturn(mAccessPoint); WifiConfiguration wifiConfig = new WifiConfiguration(); wifiConfig.SSID = AP1_SSID; @@ -105,29 +74,6 @@ public class WifiDialogActivityTest { assertThat(ShadowWifiManager.get().savedWifiConfig.SSID).isEqualTo(AP1_SSID); } - @Test - public void onSubmit_noPermissionForResult_setResultWithoutData() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.hasPermissionForResult()).thenReturn(false); - when(activity.getSystemService(WifiManager.class)).thenReturn(mWifiManager); - - activity.onSubmit(mWifiDialog); - - verify(activity).setResult(RESULT_CONNECTED, null); - } - - @Test - public void onSubmit_hasPermissionForResult_setResultWithData() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.hasPermissionForResult()).thenReturn(true); - when(activity.createResultData(any(), any())).thenReturn(mResultData); - when(activity.getSystemService(WifiManager.class)).thenReturn(mWifiManager); - - activity.onSubmit(mWifiDialog); - - verify(activity).setResult(RESULT_CONNECTED, mResultData); - } - @Test public void onSubmit_whenConnectForCallerIsFalse_shouldNotConnectToNetwork() { WifiDialogActivity activity = @@ -165,97 +111,4 @@ public class WifiDialogActivityTest { assertThat(dialog.getContext().getThemeResId()) .isEqualTo(R.style.SuwAlertDialogThemeCompat_Light); } - - @Test - public void onActivityResult_noPermissionForResult_setResultWithoutData() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.hasPermissionForResult()).thenReturn(false); - final Intent data = new Intent(); - - activity.onActivityResult(REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER, RESULT_OK, - data); - - verify(activity).setResult(RESULT_CONNECTED); - } - - @Test - public void onActivityResult_hasPermissionForResult_setResultWithData() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.hasPermissionForResult()).thenReturn(true); - final Intent data = new Intent(); - - activity.onActivityResult(REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER, RESULT_OK, - data); - - verify(activity).setResult(RESULT_CONNECTED, data); - } - - @Test - public void hasPermissionForResult_noCallingPackage_returnFalse() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.getCallingPackage()).thenReturn(null); - - final boolean result = activity.hasPermissionForResult(); - - assertThat(result).isFalse(); - } - - @Test - public void hasPermissionForResult_noPermission_returnFalse() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.getCallingPackage()).thenReturn(null); - when(mPackageManager.checkPermission(ACCESS_COARSE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_DENIED); - when(mPackageManager.checkPermission(ACCESS_FINE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_DENIED); - - final boolean result = activity.hasPermissionForResult(); - - assertThat(result).isFalse(); - } - - @Test - public void hasPermissionForResult_hasCoarseLocationPermission_returnTrue() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.getCallingPackage()).thenReturn(CALLING_PACKAGE); - when(activity.getPackageManager()).thenReturn(mPackageManager); - when(mPackageManager.checkPermission(ACCESS_COARSE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_GRANTED); - when(mPackageManager.checkPermission(ACCESS_FINE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_DENIED); - - final boolean result = activity.hasPermissionForResult(); - - assertThat(result).isTrue(); - } - - @Test - public void hasPermissionForResult_hasFineLocationPermission_returnTrue() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.getCallingPackage()).thenReturn(CALLING_PACKAGE); - when(activity.getPackageManager()).thenReturn(mPackageManager); - when(mPackageManager.checkPermission(ACCESS_COARSE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_DENIED); - when(mPackageManager.checkPermission(ACCESS_FINE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_GRANTED); - - final boolean result = activity.hasPermissionForResult(); - - assertThat(result).isTrue(); - } - - @Test - public void hasPermissionForResult_haveBothLocationPermissions_returnTrue() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.getCallingPackage()).thenReturn(CALLING_PACKAGE); - when(activity.getPackageManager()).thenReturn(mPackageManager); - when(mPackageManager.checkPermission(ACCESS_COARSE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_GRANTED); - when(mPackageManager.checkPermission(ACCESS_FINE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_GRANTED); - - final boolean result = activity.hasPermissionForResult(); - - assertThat(result).isTrue(); - } } From e92d1d1a6b9aa253fdb930284e2b86e81abd20af Mon Sep 17 00:00:00 2001 From: Weng Su Date: Fri, 1 Oct 2021 08:40:29 +0000 Subject: [PATCH 07/15] [RESTRICT AUTOMERGE] Revert "Add comment to AndroidManifest" This reverts commit 56a88885ccc383269f02a49fff6bb503ed35c9d8. Reason for revert: rollback CLs to avoid compatibility risks Bug: 185126813 Change-Id: Ie9d17faa536186e9787ff17b9bc7f7e30adabd1c --- AndroidManifest.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 9b2cf2412a2..f02919a9af6 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -2964,10 +2964,6 @@ - Date: Fri, 1 Oct 2021 13:53:56 +0000 Subject: [PATCH 08/15] [RESTRICT AUTOMERGE] Revert "Add SafetyNet logging" This reverts commit 199528d46065ffe444e140023bd723786dbb5cdd. Reason for revert: rollback CLs to avoid compatibility risks Bug: 185126813 Change-Id: I5ed1782f1a35681ab6be4f74ea3156420b7dad5f --- src/com/android/settings/wifi/WifiDialogActivity.java | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/com/android/settings/wifi/WifiDialogActivity.java b/src/com/android/settings/wifi/WifiDialogActivity.java index 4514b0d19f0..abe1205c544 100644 --- a/src/com/android/settings/wifi/WifiDialogActivity.java +++ b/src/com/android/settings/wifi/WifiDialogActivity.java @@ -33,7 +33,6 @@ import android.os.Process; import android.os.SimpleClock; import android.os.SystemClock; import android.text.TextUtils; -import android.util.EventLog; import android.util.Log; import androidx.annotation.VisibleForTesting; @@ -357,7 +356,6 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog final String callingPackage = getCallingPackage(); if (callingPackage == null) { Log.d(TAG, "Failed to get the calling package, don't return the result."); - EventLog.writeEvent(0x534e4554, "185126813", -1 /* UID */, "no calling package"); return false; } @@ -374,14 +372,6 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog } Log.d(TAG, "The calling package does not have the necessary permissions for result."); - try { - EventLog.writeEvent(0x534e4554, "185126813", - getPackageManager().getPackageUid(callingPackage, 0 /* flags */), - "no permission"); - } catch (PackageManager.NameNotFoundException e) { - EventLog.writeEvent(0x534e4554, "185126813", -1 /* UID */, "no permission"); - Log.w(TAG, "Cannot find the UID, calling package: " + callingPackage, e); - } return false; } } From ca67955d7d013975acef22cc92aca470b5e1cd0f Mon Sep 17 00:00:00 2001 From: Weng Su Date: Fri, 1 Oct 2021 08:59:33 +0000 Subject: [PATCH 09/15] [RESTRICT AUTOMERGE] Revert "Add permission checking to WifiDialogActivity" This reverts commit 71e728e934bec9c5d121b285e5c0089f658723d2. Reason for revert: rollback CLs to avoid compatibility risks Bug: 185126813 Change-Id: I9251eb35ecba9bcc07eb3763c47c3ad7f55897f1 --- .../settings/wifi/WifiDialogActivity.java | 60 ++---- .../settings/wifi/WifiDialogActivityTest.java | 175 ------------------ 2 files changed, 13 insertions(+), 222 deletions(-) diff --git a/src/com/android/settings/wifi/WifiDialogActivity.java b/src/com/android/settings/wifi/WifiDialogActivity.java index abe1205c544..877933edafe 100644 --- a/src/com/android/settings/wifi/WifiDialogActivity.java +++ b/src/com/android/settings/wifi/WifiDialogActivity.java @@ -16,12 +16,8 @@ package com.android.settings.wifi; -import static android.Manifest.permission.ACCESS_COARSE_LOCATION; -import static android.Manifest.permission.ACCESS_FINE_LOCATION; - import android.content.DialogInterface; import android.content.Intent; -import android.content.pm.PackageManager; import android.net.NetworkInfo; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; @@ -82,12 +78,10 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog public static final String KEY_WIFI_CONFIGURATION = "wifi_configuration"; - @VisibleForTesting - static final int RESULT_CONNECTED = RESULT_FIRST_USER; + private static final int RESULT_CONNECTED = RESULT_FIRST_USER; private static final int RESULT_FORGET = RESULT_FIRST_USER + 1; - @VisibleForTesting - static final int REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = 0; + private static final int REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = 0; // Max age of tracked WifiEntries. private static final long MAX_SCAN_AGE_MILLIS = 15_000; @@ -264,7 +258,10 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog } } - Intent resultData = hasPermissionForResult() ? createResultData(config, null) : null; + final Intent resultData = new Intent(); + if (config != null) { + resultData.putExtra(KEY_WIFI_CONFIGURATION, config); + } setResult(RESULT_CONNECTED, resultData); finish(); } @@ -292,22 +289,17 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog } } - Intent resultData = hasPermissionForResult() ? createResultData(config, accessPoint) : null; - setResult(RESULT_CONNECTED, resultData); - finish(); - } - - protected Intent createResultData(WifiConfiguration config, AccessPoint accessPoint) { - Intent result = new Intent(); + Intent resultData = new Intent(); if (accessPoint != null) { Bundle accessPointState = new Bundle(); accessPoint.saveWifiState(accessPointState); - result.putExtra(KEY_ACCESS_POINT_STATE, accessPointState); + resultData.putExtra(KEY_ACCESS_POINT_STATE, accessPointState); } if (config != null) { - result.putExtra(KEY_WIFI_CONFIGURATION, config); + resultData.putExtra(KEY_WIFI_CONFIGURATION, config); } - return result; + setResult(RESULT_CONNECTED, resultData); + finish(); } @Override @@ -343,35 +335,9 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog if (resultCode != RESULT_OK) { return; } - if (hasPermissionForResult()) { - setResult(RESULT_CONNECTED, data); - } else { - setResult(RESULT_CONNECTED); - } + + setResult(RESULT_CONNECTED, data); finish(); } } - - protected boolean hasPermissionForResult() { - final String callingPackage = getCallingPackage(); - if (callingPackage == null) { - Log.d(TAG, "Failed to get the calling package, don't return the result."); - return false; - } - - if (getPackageManager().checkPermission(ACCESS_COARSE_LOCATION, callingPackage) - == PackageManager.PERMISSION_GRANTED) { - Log.d(TAG, "The calling package has ACCESS_COARSE_LOCATION permission for result."); - return true; - } - - if (getPackageManager().checkPermission(ACCESS_FINE_LOCATION, callingPackage) - == PackageManager.PERMISSION_GRANTED) { - Log.d(TAG, "The calling package has ACCESS_FINE_LOCATION permission for result."); - return true; - } - - Log.d(TAG, "The calling package does not have the necessary permissions for result."); - return false; - } } diff --git a/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java b/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java index 685819e7839..f601e36229c 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java @@ -16,25 +16,12 @@ package com.android.settings.wifi; -import static android.Manifest.permission.ACCESS_COARSE_LOCATION; -import static android.Manifest.permission.ACCESS_FINE_LOCATION; - -import static com.android.settings.wifi.WifiDialogActivity.REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER; -import static com.android.settings.wifi.WifiDialogActivity.RESULT_CONNECTED; -import static com.android.settings.wifi.WifiDialogActivity.RESULT_OK; - import static com.google.common.truth.Truth.assertThat; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; import android.content.Intent; -import android.content.pm.PackageManager; import android.net.wifi.WifiConfiguration; -import android.net.wifi.WifiManager; import androidx.lifecycle.Lifecycle.State; import androidx.test.core.app.ActivityScenario; @@ -44,7 +31,6 @@ import com.android.settings.testutils.shadow.ShadowAlertDialogCompat; import com.android.settings.testutils.shadow.ShadowConnectivityManager; import com.android.settings.testutils.shadow.ShadowNetworkDetailsTracker; import com.android.settings.testutils.shadow.ShadowWifiManager; -import com.android.settingslib.wifi.AccessPoint; import com.google.android.setupcompat.util.WizardManagerHelper; @@ -69,25 +55,7 @@ import org.robolectric.util.ReflectionHelpers; }) public class WifiDialogActivityTest { - private static final String CALLING_PACKAGE = "calling_package"; private static final String AP1_SSID = "\"ap1\""; - - @Mock - PackageManager mPackageManager; - @Mock - WifiManager mWifiManager; - @Mock - WifiDialog mWifiDialog; - @Mock - WifiConfiguration mWifiConfiguration; - @Mock - AccessPoint mAccessPoint; - @Mock - WifiDialog2 mWifiDialog2; - @Mock - WifiConfigController2 mWifiConfiguration2; - @Mock - Intent mResultData; @Mock private WifiConfigController mController; @Mock @@ -98,10 +66,6 @@ public class WifiDialogActivityTest { @Before public void setUp() { MockitoAnnotations.initMocks(this); - when(mWifiDialog.getController()).thenReturn(mController); - when(mController.getConfig()).thenReturn(mWifiConfiguration); - when(mController.getAccessPoint()).thenReturn(mAccessPoint); - when(mWifiDialog2.getController()).thenReturn(mWifiConfiguration2); WifiConfiguration wifiConfig = new WifiConfiguration(); wifiConfig.SSID = AP1_SSID; @@ -133,52 +97,6 @@ public class WifiDialogActivityTest { assertThat(ShadowWifiManager.get().savedWifiConfig.SSID).isEqualTo(AP1_SSID); } - @Test - public void onSubmit_noPermissionForResult_setResultWithoutData() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.hasPermissionForResult()).thenReturn(false); - when(activity.getSystemService(WifiManager.class)).thenReturn(mWifiManager); - - activity.onSubmit(mWifiDialog); - - verify(activity).setResult(RESULT_CONNECTED, null); - } - - @Test - public void onSubmit_hasPermissionForResult_setResultWithData() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.hasPermissionForResult()).thenReturn(true); - when(activity.createResultData(any(), any())).thenReturn(mResultData); - when(activity.getSystemService(WifiManager.class)).thenReturn(mWifiManager); - - activity.onSubmit(mWifiDialog); - - verify(activity).setResult(RESULT_CONNECTED, mResultData); - } - - @Test - public void onSubmit2_noPermissionForResult_setResultWithoutData() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.hasPermissionForResult()).thenReturn(false); - when(activity.getSystemService(WifiManager.class)).thenReturn(mWifiManager); - - activity.onSubmit(mWifiDialog2); - - verify(activity).setResult(RESULT_CONNECTED, null); - } - - @Test - public void onSubmit2_hasPermissionForResult_setResultWithData() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.hasPermissionForResult()).thenReturn(true); - when(activity.createResultData(any(), any())).thenReturn(mResultData); - when(activity.getSystemService(WifiManager.class)).thenReturn(mWifiManager); - - activity.onSubmit(mWifiDialog2); - - verify(activity).setResult(RESULT_CONNECTED, mResultData); - } - @Test @Ignore public void onSubmit2_whenConnectForCallerIsTrue_shouldConnectToNetwork() { @@ -260,97 +178,4 @@ public class WifiDialogActivityTest { assertThat(dialog.getContext().getThemeResId()) .isEqualTo(R.style.SuwAlertDialogThemeCompat_Light); } - - @Test - public void onActivityResult_noPermissionForResult_setResultWithoutData() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.hasPermissionForResult()).thenReturn(false); - final Intent data = new Intent(); - - activity.onActivityResult(REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER, RESULT_OK, - data); - - verify(activity).setResult(RESULT_CONNECTED); - } - - @Test - public void onActivityResult_hasPermissionForResult_setResultWithData() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.hasPermissionForResult()).thenReturn(true); - final Intent data = new Intent(); - - activity.onActivityResult(REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER, RESULT_OK, - data); - - verify(activity).setResult(RESULT_CONNECTED, data); - } - - @Test - public void hasPermissionForResult_noCallingPackage_returnFalse() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.getCallingPackage()).thenReturn(null); - - final boolean result = activity.hasPermissionForResult(); - - assertThat(result).isFalse(); - } - - @Test - public void hasPermissionForResult_noPermission_returnFalse() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.getCallingPackage()).thenReturn(null); - when(mPackageManager.checkPermission(ACCESS_COARSE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_DENIED); - when(mPackageManager.checkPermission(ACCESS_FINE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_DENIED); - - final boolean result = activity.hasPermissionForResult(); - - assertThat(result).isFalse(); - } - - @Test - public void hasPermissionForResult_hasCoarseLocationPermission_returnTrue() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.getCallingPackage()).thenReturn(CALLING_PACKAGE); - when(activity.getPackageManager()).thenReturn(mPackageManager); - when(mPackageManager.checkPermission(ACCESS_COARSE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_GRANTED); - when(mPackageManager.checkPermission(ACCESS_FINE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_DENIED); - - final boolean result = activity.hasPermissionForResult(); - - assertThat(result).isTrue(); - } - - @Test - public void hasPermissionForResult_hasFineLocationPermission_returnTrue() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.getCallingPackage()).thenReturn(CALLING_PACKAGE); - when(activity.getPackageManager()).thenReturn(mPackageManager); - when(mPackageManager.checkPermission(ACCESS_COARSE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_DENIED); - when(mPackageManager.checkPermission(ACCESS_FINE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_GRANTED); - - final boolean result = activity.hasPermissionForResult(); - - assertThat(result).isTrue(); - } - - @Test - public void hasPermissionForResult_haveBothLocationPermissions_returnTrue() { - WifiDialogActivity activity = spy(Robolectric.setupActivity(WifiDialogActivity.class)); - when(activity.getCallingPackage()).thenReturn(CALLING_PACKAGE); - when(activity.getPackageManager()).thenReturn(mPackageManager); - when(mPackageManager.checkPermission(ACCESS_COARSE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_GRANTED); - when(mPackageManager.checkPermission(ACCESS_FINE_LOCATION, CALLING_PACKAGE)) - .thenReturn(PackageManager.PERMISSION_GRANTED); - - final boolean result = activity.hasPermissionForResult(); - - assertThat(result).isTrue(); - } } From f8d1ee71bff7c59e1f162c4de32337448f5071b4 Mon Sep 17 00:00:00 2001 From: Chen Chen Date: Tue, 5 Oct 2021 17:46:02 -0700 Subject: [PATCH 10/15] BluetoothSecurity: Add BLUETOOTH_PRIVILEGED permission for pairing dialog Bug: 194300867 Test: Build Change-Id: I5a496df50550ea7ee6986c960e28ae3e4a056b4b --- AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index cf43731830d..4406c9c182d 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -2202,6 +2202,7 @@ Date: Tue, 5 Oct 2021 17:46:02 -0700 Subject: [PATCH 11/15] BluetoothSecurity: Add BLUETOOTH_PRIVILEGED permission for pairing dialog Bug: 194300867 Test: Build Change-Id: I5a496df50550ea7ee6986c960e28ae3e4a056b4b --- AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index dbccf6cbe65..fd0bc5409e6 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -2020,6 +2020,7 @@ android:label="@string/select_webview_provider_dialog_title" /> From 65a63e76b10c56641d9f84940a77822fd5daa99a Mon Sep 17 00:00:00 2001 From: Chen Chen Date: Tue, 5 Oct 2021 17:46:02 -0700 Subject: [PATCH 12/15] BluetoothSecurity: Add BLUETOOTH_PRIVILEGED permission for pairing dialog Bug: 194300867 Test: Build Change-Id: I5a496df50550ea7ee6986c960e28ae3e4a056b4b --- AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index ff3f650f895..8f21b13a6b7 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1980,6 +1980,7 @@ android:label="@string/select_webview_provider_dialog_title" /> Date: Tue, 5 Oct 2021 17:46:02 -0700 Subject: [PATCH 13/15] BluetoothSecurity: Add BLUETOOTH_PRIVILEGED permission for pairing dialog Bug: 194300867 Test: Build Change-Id: I5a496df50550ea7ee6986c960e28ae3e4a056b4b --- AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 2f53cc1e7c8..a9f0a3dd7a4 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -2014,6 +2014,7 @@ Date: Tue, 5 Oct 2021 17:46:02 -0700 Subject: [PATCH 14/15] BluetoothSecurity: Add BLUETOOTH_PRIVILEGED permission for pairing dialog Bug: 194300867 Test: Build Change-Id: I5a496df50550ea7ee6986c960e28ae3e4a056b4b --- AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index ab2fe05353e..cba309ad73d 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -2017,6 +2017,7 @@ Date: Thu, 7 Oct 2021 02:33:44 +0000 Subject: [PATCH 15/15] Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: Iaaafbbba20f60a2937e5947b4a90e13fb8a6d3ad --- res/values-ar/strings.xml | 2 +- res/values-as/strings.xml | 2 +- res/values-da/strings.xml | 2 +- res/values-de/strings.xml | 2 +- res/values-es/strings.xml | 10 +++++----- res/values-eu/strings.xml | 4 ++-- res/values-nb/strings.xml | 8 ++++---- res/values-or/strings.xml | 2 +- res/values-ru/strings.xml | 4 ++-- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index 97bc4518c2d..dfe4d4e1a52 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -1943,7 +1943,7 @@ "استخدام منخفض للبطارية" "‏البحث عن شبكات Wi‑Fi" "‏يمكنك السماح للتطبيقات والخدمات بالبحث عن الأجهزة المجاورة في أي وقت، حتى في حال إيقاف Wi‑Fi. ويمكن استخدام هذه البيانات مثلاً لتحسين الميزات والخدمات المستندة إلى الموقع الجغرافي." - "البحث عن بلوتوث" + "البحث عن أجهزة تتضمن بلوتوث" "يمكنك السماح للتطبيقات والخدمات بالبحث عن الأجهزة المجاورة في أي وقت، حتى في حال إيقاف البلوتوث. ويمكن استخدام هذه البيانات مثلاً لتحسين الميزات والخدمات المستندة إلى الموقع الجغرافي." "خدمات الموقع الجغرافي" "خدمات الموقع الجغرافي" diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml index fa3e7f941fa..691c9cbf578 100644 --- a/res/values-as/strings.xml +++ b/res/values-as/strings.xml @@ -4966,7 +4966,7 @@ টা কেমেৰা এপ্‌ টা কেমেৰা এপ্‌ - "কেলণ্ডাৰ এপ্" + "Calendar এপ্" "সম্পৰ্কসূচীৰ এপ্" ইমেইল ক্লাইণ্ট এপসমূহ diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index c27824a4697..a4514a8bde2 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -1429,7 +1429,7 @@ "Løft enheden for at vække den" "Aktiv låseskærm" "Hvornår skal det vises" - "Væk skærmen for notifikationer" + "Væk skærmen ved notifikationer" "Når skærmen er mørk, aktiveres den ved modtagelse af nye notifikationer" "Vis altid tidspunkt og info" "Øget batteriforbrug" diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index a6fc794c7e4..affd3e9136a 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -1406,7 +1406,7 @@ "Beim dunklen Design ist der Hintergrund einiger Bildschirme schwarz, damit dein Akku länger hält. Zeitpläne für das dunkle Design werden erst aktiviert, wenn das Display aus ist." "Display automatisch ausschalten" "Display wird ausgeschaltet." - "Nach %1$s ohne Aktivität" + "%1$s ohne Aktivität" "Hintergrund" "Hintergrund & Stil" "Startseite, Sperrbildschirm" diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 27305b90fed..4fd9fd5984a 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -1555,8 +1555,8 @@ "Desconectar la tarjeta SD para extraerla de forma segura" "Inserta USB para activar almacenamiento" "Insertar una tarjeta SD para el montaje" - "Activar almacenamiento USB" - "Activar tarjeta SD" + "Montar almacenamiento USB" + "Montar tarjeta SD" "Borrar almacenamiento USB" @@ -1579,7 +1579,7 @@ "No queda espacio de almacenamiento" "Es posible que algunas funciones del sistema, como la sincronización, no funcionen correctamente. Prueba a eliminar o a desactivar elementos para liberar espacio (por ejemplo, aplicaciones o contenido multimedia)." "Cambiar nombre" - "Activar" + "Montar" "Expulsar" "Formatear" "Formatear como portátil" @@ -1606,13 +1606,13 @@ "^1"" ^2""" "En uso de %1$s" "%1$s se ha activado" - "Error al activar %1$s" + "Error al montar %1$s" "%1$s se ha expulsado de forma segura" "No se ha podido expulsar %1$s de forma segura" "%1$s se ha formateado" "Error al formatear %1$s" "Cambiar nombre de almacenamiento" - "Este dispositivo de almacenamiento (^1) se ha extraído de forma segura, pero sigue estando disponible. \n\nPara utilizar el dispositivo (^1), debes activarlo." + "Este dispositivo de almacenamiento (^1) se ha extraído de forma segura, pero sigue estando disponible. \n\nPara utilizar el dispositivo (^1), debes montarlo." "Este dispositivo de almacenamiento (^1) está dañado. \n\nPara utilizar el dispositivo (^1), debes configurarlo." "Después de formatear la unidad, puedes utilizar tu ^1 en otros dispositivos. \n\nTe recomendamos que hagas una copia de seguridad de los datos de tu ^1, ya que se borrarán cuando se formatee. \n\n""Copia de seguridad de fotos y de otro contenido multimedia"" \nMueve tus archivos multimedia a otro espacio de almacenamiento del dispositivo o transfiérelos a un ordenador con un cable USB. \n\n""Copia de seguridad de aplicaciones"" \nSe desinstalarán todas las aplicaciones almacenadas en tu ^1 y se borrarán sus datos. Para conservarlas, muévelas a otro espacio de almacenamiento del dispositivo." "Al extraer tu ^1, las aplicaciones almacenadas en esta unidad dejarán de funcionar y los archivos multimedia guardados en ella no estarán disponibles hasta que se vuelva a insertar."" \n\nTu ^1 se ha formateado para que solo funcione en este dispositivo." diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml index 5b22e3a8a6b..eddd5f213f1 100644 --- a/res/values-eu/strings.xml +++ b/res/values-eu/strings.xml @@ -379,8 +379,8 @@ "Konfiguratu berriro aurpegi bidez desblokeatzeko eginbidea" "Hobetu segurtasuna eta errendimendua" "Konfiguratu aurpegi bidez desblokeatzeko eginbidea" - "Ezabatu une honetako aurpegi-eredua aurpegi bidez desblokeatzeko eginbidea berriro konfiguratzeko.\n\nAurpegi-eredua betiko eta modu seguruan ezabatuko da.\n\nEzabatu ondoren, PINa, eredua edo pasahitza beharko duzu telefonoa desblokeatzeko edo aplikazioetan autentifikatzeko." - "Ezabatu une honetako aurpegi-eredua aurpegi bidez desblokeatzeko eginbidea berriro konfiguratzeko.\n\nAurpegi-eredua betiko eta modu seguruan ezabatuko da.\n\nEzabatu ondoren, hatz-marka, PINa, eredua edo pasahitza beharko duzu telefonoa desblokeatzeko edo aplikazioetan autentifikatzeko." + "Aurpegi bidez desblokeatzeko eginbidea berriro konfiguratu nahi baduzu, lehendabizi ezabatu oraingo aurpegi-eredua.\n\nAurpegi-eredua betiko eta modu seguruan ezabatuko da.\n\nEzabatu ondoren, PINa, eredua edo pasahitza beharko duzu telefonoa desblokeatzeko edo aplikazioetan autentifikatzeko." + "Aurpegi bidez desblokeatzeko eginbidea berriro konfiguratu nahi baduzu, lehendabizi ezabatu oraingo aurpegi-eredua.\n\nAurpegi-eredua betiko eta modu seguruan ezabatuko da.\n\nEzabatu ondoren, hatz-marka, PINa, eredua edo pasahitza beharko duzu telefonoa desblokeatzeko edo aplikazioetan autentifikatzeko." "Erabili hauetarako:" "Aurpegi bidez desblokeatzeko eginbidea erabiltzean" "Begiek irekita egon behar dute" diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml index b447dd7d1cc..995fe412eba 100644 --- a/res/values-nb/strings.xml +++ b/res/values-nb/strings.xml @@ -2054,8 +2054,8 @@ "Avinstaller" "Avinstaller for alle brukere" "Installer" - "Slå av" - "Slå på" + "Deaktiver" + "Aktivér" "Tøm lagring" "Avinstaller oppdateringer" "Noen aktiviteter du har valgt, åpnes som standard i denne appen." @@ -3260,8 +3260,8 @@ "Et sertifikat mangler. Prøv å redigere profilen." "System" "Bruker" - "Slå av" - "Slå på" + "Deaktiver" + "Aktivér" "Avinstaller" "Angi som pålitelig" "Vil du slå på systemets CA-sertifikat?" diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml index 8074aa251f0..b44ea662b9b 100644 --- a/res/values-or/strings.xml +++ b/res/values-or/strings.xml @@ -2250,7 +2250,7 @@ "ସେଟ୍‌ ଅପ୍‌ ଇନ୍‌ପୁଟ୍‌ ପଦ୍ଧତି" "ସେଟିଂସ୍" "ସେଟିଂସ୍" - "%1$s ସେଟିଙ୍ଗ" + "%1$s ସେଟିଂସ" "ସକ୍ରିୟ ଇନ୍‌ପୁଟ୍‌ ପଦ୍ଧତି ବାଛନ୍ତୁ" "ଅନ୍‌ସ୍କ୍ରୀନ୍‌ କୀ’ବୋର୍ଡ ସେଟିଙ୍ଗ" "ଫିଜିକଲ୍ କୀ’ବୋର୍ଡ" diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 2cd2475caaa..1b3d9519d8f 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -1899,7 +1899,7 @@ "Низкий расход заряда батареи" "Поиск сетей Wi‑Fi" "Разрешить приложениям и сервисам искать сети Wi-Fi, даже когда Wi-Fi отключен. Это может улучшить работу функций и сервисов, использующих данные о местоположении." - "Поиск Bluetooth-устройств" + "Поиск устройств Bluetooth" "Разрешить приложениям и сервисам искать устройства поблизости, даже когда Bluetooth отключен. Это может улучшить работу функций и сервисов, использующих данные о местоположении." "Геолокация" "Геолокация" @@ -5016,7 +5016,7 @@ "Нажмите, чтобы проверить планшет" "Нажмите, чтобы проверить устройство" "Чтобы увидеть время, уведомления и другую информацию, коснитесь экрана" - "Экстренный вызов" + "Экстренные вызовы" "Использовать функцию \"Экстренный вызов\"" "Под управлением приложения \"%1$s\"" "Быстро нажмите кнопку питания не менее пяти раз для выполнения перечисленных ниже действий"