diff --git a/api/current.txt b/api/current.txt index da7414c038e71..fabfc100d6e07 100755 --- a/api/current.txt +++ b/api/current.txt @@ -33804,6 +33804,7 @@ package android.os { field public static final java.lang.String DISALLOW_CONFIG_LOCALE = "no_config_locale"; field public static final java.lang.String DISALLOW_CONFIG_LOCATION = "no_config_location"; field public static final java.lang.String DISALLOW_CONFIG_MOBILE_NETWORKS = "no_config_mobile_networks"; + field public static final java.lang.String DISALLOW_CONFIG_PRIVATE_DNS = "disallow_config_private_dns"; field public static final java.lang.String DISALLOW_CONFIG_SCREEN_TIMEOUT = "no_config_screen_timeout"; field public static final java.lang.String DISALLOW_CONFIG_TETHERING = "no_config_tethering"; field public static final java.lang.String DISALLOW_CONFIG_VPN = "no_config_vpn"; diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index 7ea20082e6608..0d5d54704c4fe 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -982,6 +982,21 @@ public class UserManager { */ public static final String DISALLOW_PRINTING = "no_printing"; + /** + * Specifies whether the user is allowed to modify private DNS settings. + * + *

The default value is false. + * + *

This user restriction can only be applied by the Device Owner. + *

Key for user restrictions. + *

Type: Boolean + * @see DevicePolicyManager#addUserRestriction(ComponentName, String) + * @see DevicePolicyManager#clearUserRestriction(ComponentName, String) + * @see #getUserRestrictions() + */ + public static final String DISALLOW_CONFIG_PRIVATE_DNS = + "disallow_config_private_dns"; + /** * Application restriction key that is used to indicate the pending arrival * of real restrictions for the app. diff --git a/services/core/java/com/android/server/pm/UserRestrictionsUtils.java b/services/core/java/com/android/server/pm/UserRestrictionsUtils.java index 13155027a3875..dd04652a29b30 100644 --- a/services/core/java/com/android/server/pm/UserRestrictionsUtils.java +++ b/services/core/java/com/android/server/pm/UserRestrictionsUtils.java @@ -127,7 +127,8 @@ public class UserRestrictionsUtils { UserManager.DISALLOW_SHARE_INTO_MANAGED_PROFILE, UserManager.DISALLOW_AMBIENT_DISPLAY, UserManager.DISALLOW_CONFIG_SCREEN_TIMEOUT, - UserManager.DISALLOW_PRINTING + UserManager.DISALLOW_PRINTING, + UserManager.DISALLOW_CONFIG_PRIVATE_DNS }); /** @@ -163,7 +164,8 @@ public class UserRestrictionsUtils { * User restrictions that cannot be set by profile owners. Applied to all users. */ private static final Set DEVICE_OWNER_ONLY_RESTRICTIONS = Sets.newArraySet( - UserManager.DISALLOW_USER_SWITCH + UserManager.DISALLOW_USER_SWITCH, + UserManager.DISALLOW_CONFIG_PRIVATE_DNS ); /** @@ -741,6 +743,10 @@ public class UserRestrictionsUtils { restriction = UserManager.DISALLOW_CONFIG_SCREEN_TIMEOUT; break; + case android.provider.Settings.Global.PRIVATE_DNS_MODE: + case android.provider.Settings.Global.PRIVATE_DNS_SPECIFIER: + restriction = UserManager.DISALLOW_CONFIG_PRIVATE_DNS; + break; default: if (setting.startsWith(Settings.Global.DATA_ROAMING)) { if ("0".equals(value)) {