Loading services/core/java/com/android/server/ConnectivityService.java +26 −21 Original line number Original line Diff line number Diff line Loading @@ -1832,14 +1832,20 @@ public class ConnectivityService extends IConnectivityManager.Stub "ConnectivityService"); "ConnectivityService"); } } private void enforceAnyPermissionOf(String... permissions) { private boolean checkAnyPermissionOf(String... permissions) { for (String permission : permissions) { for (String permission : permissions) { if (mContext.checkCallingOrSelfPermission(permission) == PERMISSION_GRANTED) { if (mContext.checkCallingOrSelfPermission(permission) == PERMISSION_GRANTED) { return; return true; } } return false; } } private void enforceAnyPermissionOf(String... permissions) { if (!checkAnyPermissionOf(permissions)) { throw new SecurityException("Requires one of the following permissions: " + String.join(", ", permissions) + "."); } } throw new SecurityException( "Requires one of the following permissions: " + String.join(", ", permissions) + "."); } } private void enforceInternetPermission() { private void enforceInternetPermission() { Loading @@ -1859,19 +1865,22 @@ public class ConnectivityService extends IConnectivityManager.Stub } } private void enforceSettingsPermission() { private void enforceSettingsPermission() { mContext.enforceCallingOrSelfPermission( enforceAnyPermissionOf( android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETTINGS, "ConnectivityService"); NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK); } } private boolean checkSettingsPermission() { private boolean checkSettingsPermission() { return PERMISSION_GRANTED == mContext.checkCallingOrSelfPermission( return checkAnyPermissionOf( android.Manifest.permission.NETWORK_SETTINGS); android.Manifest.permission.NETWORK_SETTINGS, NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK); } } private boolean checkSettingsPermission(int pid, int uid) { private boolean checkSettingsPermission(int pid, int uid) { return PERMISSION_GRANTED == mContext.checkPermission( return PERMISSION_GRANTED == mContext.checkPermission( android.Manifest.permission.NETWORK_SETTINGS, pid, uid); android.Manifest.permission.NETWORK_SETTINGS, pid, uid) || PERMISSION_GRANTED == mContext.checkPermission( NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, pid, uid); } } private void enforceTetherAccessPermission() { private void enforceTetherAccessPermission() { Loading @@ -1881,9 +1890,9 @@ public class ConnectivityService extends IConnectivityManager.Stub } } private void enforceConnectivityInternalPermission() { private void enforceConnectivityInternalPermission() { mContext.enforceCallingOrSelfPermission( enforceAnyPermissionOf( android.Manifest.permission.CONNECTIVITY_INTERNAL, android.Manifest.permission.CONNECTIVITY_INTERNAL, "ConnectivityService"); NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK); } } private void enforceControlAlwaysOnVpnPermission() { private void enforceControlAlwaysOnVpnPermission() { Loading @@ -1896,18 +1905,14 @@ public class ConnectivityService extends IConnectivityManager.Stub enforceAnyPermissionOf( enforceAnyPermissionOf( android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_STACK); } private void enforceNetworkStackPermission() { mContext.enforceCallingOrSelfPermission( android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.NETWORK_STACK, "ConnectivityService"); NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK); } } private boolean checkNetworkStackPermission() { private boolean checkNetworkStackPermission() { return PERMISSION_GRANTED == mContext.checkCallingOrSelfPermission( return checkAnyPermissionOf( android.Manifest.permission.NETWORK_STACK); android.Manifest.permission.NETWORK_STACK, NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK); } } private void enforceConnectivityRestrictedNetworksPermission() { private void enforceConnectivityRestrictedNetworksPermission() { Loading Loading
services/core/java/com/android/server/ConnectivityService.java +26 −21 Original line number Original line Diff line number Diff line Loading @@ -1832,14 +1832,20 @@ public class ConnectivityService extends IConnectivityManager.Stub "ConnectivityService"); "ConnectivityService"); } } private void enforceAnyPermissionOf(String... permissions) { private boolean checkAnyPermissionOf(String... permissions) { for (String permission : permissions) { for (String permission : permissions) { if (mContext.checkCallingOrSelfPermission(permission) == PERMISSION_GRANTED) { if (mContext.checkCallingOrSelfPermission(permission) == PERMISSION_GRANTED) { return; return true; } } return false; } } private void enforceAnyPermissionOf(String... permissions) { if (!checkAnyPermissionOf(permissions)) { throw new SecurityException("Requires one of the following permissions: " + String.join(", ", permissions) + "."); } } throw new SecurityException( "Requires one of the following permissions: " + String.join(", ", permissions) + "."); } } private void enforceInternetPermission() { private void enforceInternetPermission() { Loading @@ -1859,19 +1865,22 @@ public class ConnectivityService extends IConnectivityManager.Stub } } private void enforceSettingsPermission() { private void enforceSettingsPermission() { mContext.enforceCallingOrSelfPermission( enforceAnyPermissionOf( android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETTINGS, "ConnectivityService"); NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK); } } private boolean checkSettingsPermission() { private boolean checkSettingsPermission() { return PERMISSION_GRANTED == mContext.checkCallingOrSelfPermission( return checkAnyPermissionOf( android.Manifest.permission.NETWORK_SETTINGS); android.Manifest.permission.NETWORK_SETTINGS, NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK); } } private boolean checkSettingsPermission(int pid, int uid) { private boolean checkSettingsPermission(int pid, int uid) { return PERMISSION_GRANTED == mContext.checkPermission( return PERMISSION_GRANTED == mContext.checkPermission( android.Manifest.permission.NETWORK_SETTINGS, pid, uid); android.Manifest.permission.NETWORK_SETTINGS, pid, uid) || PERMISSION_GRANTED == mContext.checkPermission( NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, pid, uid); } } private void enforceTetherAccessPermission() { private void enforceTetherAccessPermission() { Loading @@ -1881,9 +1890,9 @@ public class ConnectivityService extends IConnectivityManager.Stub } } private void enforceConnectivityInternalPermission() { private void enforceConnectivityInternalPermission() { mContext.enforceCallingOrSelfPermission( enforceAnyPermissionOf( android.Manifest.permission.CONNECTIVITY_INTERNAL, android.Manifest.permission.CONNECTIVITY_INTERNAL, "ConnectivityService"); NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK); } } private void enforceControlAlwaysOnVpnPermission() { private void enforceControlAlwaysOnVpnPermission() { Loading @@ -1896,18 +1905,14 @@ public class ConnectivityService extends IConnectivityManager.Stub enforceAnyPermissionOf( enforceAnyPermissionOf( android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_STACK); } private void enforceNetworkStackPermission() { mContext.enforceCallingOrSelfPermission( android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.NETWORK_STACK, "ConnectivityService"); NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK); } } private boolean checkNetworkStackPermission() { private boolean checkNetworkStackPermission() { return PERMISSION_GRANTED == mContext.checkCallingOrSelfPermission( return checkAnyPermissionOf( android.Manifest.permission.NETWORK_STACK); android.Manifest.permission.NETWORK_STACK, NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK); } } private void enforceConnectivityRestrictedNetworksPermission() { private void enforceConnectivityRestrictedNetworksPermission() { Loading