Merge "Check MAINLINE_NETWORK_STACK in ConnectivityService"

This commit is contained in:
Remi NGUYEN VAN
2019-02-07 03:33:54 +00:00
committed by Gerrit Code Review

View File

@@ -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;
} }
} }
throw new SecurityException( return false;
"Requires one of the following permissions: " + String.join(", ", permissions) + "."); }
private void enforceAnyPermissionOf(String... permissions) {
if (!checkAnyPermissionOf(permissions)) {
throw new SecurityException("Requires one of the following permissions: "
+ String.join(", ", permissions) + ".");
}
} }
private void enforceInternetPermission() { private void enforceInternetPermission() {
@@ -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() {
@@ -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() {
@@ -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() {