From a5df4779a04331294c15e6d22d749a734b59400f Mon Sep 17 00:00:00 2001 From: Nicolas Prevot Date: Tue, 2 Jun 2015 22:27:49 +0100 Subject: [PATCH] Don't allow secondary users apps to start restricted Settings fragment. On a secondary user, the fragments ApnSettings, TetherSettings and VpnSettings should not be started. But an app can still send an intent to start these fragments. Prevent this by checkin the userId in these fragments. BUG:15313261 BUG:15312781 BUG:15312494 Change-Id: I2a36bb89a8e37e4440aa28372d7a1800b33dae37 --- src/com/android/settings/ApnSettings.java | 4 +++- src/com/android/settings/TetherSettings.java | 4 +++- src/com/android/settings/vpn2/VpnSettings.java | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/ApnSettings.java b/src/com/android/settings/ApnSettings.java index 0a7e84c49df..226f8abe749 100644 --- a/src/com/android/settings/ApnSettings.java +++ b/src/com/android/settings/ApnSettings.java @@ -33,6 +33,7 @@ import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; import android.os.Message; +import android.os.UserHandle; import android.os.UserManager; import android.preference.Preference; import android.preference.PreferenceGroup; @@ -173,7 +174,8 @@ public class ApnSettings extends SettingsPreferenceFragment implements getListView().setEmptyView(empty); } - if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)) { + if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS) + || UserHandle.myUserId()!= UserHandle.USER_OWNER) { mUnavailable = true; setPreferenceScreen(new PreferenceScreen(getActivity(), null)); return; diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java index 125411a5c8c..a0cd4daa1c4 100644 --- a/src/com/android/settings/TetherSettings.java +++ b/src/com/android/settings/TetherSettings.java @@ -38,6 +38,7 @@ import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; import android.os.Bundle; import android.os.Environment; +import android.os.UserHandle; import android.os.UserManager; import android.preference.Preference; import android.preference.PreferenceScreen; @@ -123,7 +124,8 @@ public class TetherSettings extends SettingsPreferenceFragment mUm = (UserManager) getSystemService(Context.USER_SERVICE); - if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_TETHERING)) { + if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_TETHERING) + || UserHandle.myUserId() != UserHandle.USER_OWNER) { mUnavailable = true; setPreferenceScreen(new PreferenceScreen(getActivity(), null)); return; diff --git a/src/com/android/settings/vpn2/VpnSettings.java b/src/com/android/settings/vpn2/VpnSettings.java index a7d3b33f723..ba26e4a3bd7 100644 --- a/src/com/android/settings/vpn2/VpnSettings.java +++ b/src/com/android/settings/vpn2/VpnSettings.java @@ -106,7 +106,8 @@ public class VpnSettings extends SettingsPreferenceFragment implements super.onCreate(savedState); mUserManager = (UserManager) getSystemService(Context.USER_SERVICE); - if (mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_VPN)) { + if (mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_VPN) + || UserHandle.myUserId() != UserHandle.USER_OWNER) { mUnavailable = true; setPreferenceScreen(new PreferenceScreen(getActivity(), null)); return;