From e2eab4e258c1fa267ff41f4b3bbd13f3070f66cd Mon Sep 17 00:00:00 2001 From: Sunny Shao Date: Mon, 11 May 2020 22:55:05 +0800 Subject: [PATCH 1/2] 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 d6d8f988449617d757a5d7439314198d10d6ee78) --- .../settings/accounts/AccountTypePreferenceLoader.java | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/com/android/settings/accounts/AccountTypePreferenceLoader.java b/src/com/android/settings/accounts/AccountTypePreferenceLoader.java index a90a3d3ddef..3914fac39b4 100644 --- a/src/com/android/settings/accounts/AccountTypePreferenceLoader.java +++ b/src/com/android/settings/accounts/AccountTypePreferenceLoader.java @@ -196,14 +196,7 @@ public class AccountTypePreferenceLoader { ActivityInfo resolvedActivityInfo = resolveInfo.activityInfo; ApplicationInfo resolvedAppInfo = resolvedActivityInfo.applicationInfo; try { - if (resolvedActivityInfo.exported) { - if (resolvedActivityInfo.permission == null) { - return true; // exported activity without permission. - } else if (pm.checkPermission(resolvedActivityInfo.permission, - authDesc.packageName) == PackageManager.PERMISSION_GRANTED) { - return true; - } - } + // Allows to launch only authenticator owned activities. ApplicationInfo authenticatorAppInf = pm.getApplicationInfo(authDesc.packageName, 0); return resolvedAppInfo.uid == authenticatorAppInf.uid; } catch (NameNotFoundException e) { From eda0a421185ad5986102595046de8d164d20f252 Mon Sep 17 00:00:00 2001 From: Blake Kragten Date: Thu, 16 Jul 2020 16:45:21 -0700 Subject: [PATCH 2/2] Remove Enhanced Connectivity Dev Option Applying to d1-dev as this change will be propagated to qpr branch. Remove Developer Option Enhanced Connectivity. Remove controller and layout variables/tests. Bug: 162231796 Test: On Device Custom Build. Testing BSM trigger. Developer Option does not appear anymore. Change-Id: I8a385eb444e84975a3bbd7c063c5ce94e507c25f --- res/values/config.xml | 3 - res/xml/development_settings.xml | 5 - .../DevelopmentSettingsDashboardFragment.java | 1 - ...ancedConnectivityPreferenceController.java | 87 ------------ ...dConnectivityPreferenceControllerTest.java | 133 ------------------ 5 files changed, 229 deletions(-) delete mode 100644 src/com/android/settings/development/EnhancedConnectivityPreferenceController.java delete mode 100644 tests/robotests/src/com/android/settings/development/EnhancedConnectivityPreferenceControllerTest.java diff --git a/res/values/config.xml b/res/values/config.xml index 746d3e7d85e..fa4bc93d456 100755 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -457,9 +457,6 @@ false - - false - false diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml index 746a51c4b9d..6f9405e7e12 100644 --- a/res/xml/development_settings.xml +++ b/res/xml/development_settings.xml @@ -297,11 +297,6 @@ android:title="@string/mobile_data_always_on" android:summary="@string/mobile_data_always_on_summary" /> - -