diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 64db8cf60c..87d28d35a2 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -109,6 +109,7 @@ import android.os.ServiceManager; import android.os.SystemClock; import android.os.SystemProperties; import android.os.UserHandle; +import android.os.UserManager; import android.provider.Settings; import android.security.Credentials; import android.security.KeyStore; @@ -482,6 +483,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { private AppOpsManager mAppOpsManager; + private UserManager mUserManager; + NetworkConfig[] mNetConfigs; int mNetworksDefined; @@ -884,6 +887,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { mContext.registerReceiver(mProvisioningReceiver, filter); mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); + + mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE); } private synchronized int nextNetworkRequestId() { @@ -3607,7 +3612,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { enforceTetherAccessPermission(); int defaultVal = (SystemProperties.get("ro.tether.denied").equals("true") ? 0 : 1); boolean tetherEnabledInSettings = (Settings.Global.getInt(mContext.getContentResolver(), - Settings.Global.TETHER_SUPPORTED, defaultVal) != 0); + Settings.Global.TETHER_SUPPORTED, defaultVal) != 0) + && !mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_TETHERING); return tetherEnabledInSettings && ((mTethering.getTetherableUsbRegexs().length != 0 || mTethering.getTetherableWifiRegexs().length != 0 || mTethering.getTetherableBluetoothRegexs().length != 0) &&