Merge "Add replaceFirewallChain API"
This commit is contained in:
@@ -12,6 +12,7 @@ package android.net {
|
|||||||
method @NonNull public static android.util.Range<java.lang.Integer> getIpSecNetIdRange();
|
method @NonNull public static android.util.Range<java.lang.Integer> getIpSecNetIdRange();
|
||||||
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS}) public void registerDefaultNetworkCallbackForUid(int, @NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler);
|
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS}) public void registerDefaultNetworkCallbackForUid(int, @NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler);
|
||||||
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS}) public void registerSystemDefaultNetworkCallback(@NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler);
|
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS}) public void registerSystemDefaultNetworkCallback(@NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler);
|
||||||
|
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void replaceFirewallChain(int, @NonNull int[]);
|
||||||
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void requestBackgroundNetwork(@NonNull android.net.NetworkRequest, @NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler);
|
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void requestBackgroundNetwork(@NonNull android.net.NetworkRequest, @NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler);
|
||||||
method @Deprecated public boolean requestRouteToHostAddress(int, java.net.InetAddress);
|
method @Deprecated public boolean requestRouteToHostAddress(int, java.net.InetAddress);
|
||||||
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void setAcceptPartialConnectivity(@NonNull android.net.Network, boolean, boolean);
|
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void setAcceptPartialConnectivity(@NonNull android.net.Network, boolean, boolean);
|
||||||
|
|||||||
@@ -5696,4 +5696,28 @@ public class ConnectivityManager {
|
|||||||
throw e.rethrowFromSystemServer();
|
throw e.rethrowFromSystemServer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Replaces the contents of the specified UID-based firewall chain.
|
||||||
|
*
|
||||||
|
* @param chain target chain to replace.
|
||||||
|
* @param uids The list of UIDs to be placed into chain.
|
||||||
|
* @throws IllegalStateException if replace firewall chain failed.
|
||||||
|
* @throws IllegalArgumentException if {@code chain} is not a valid chain.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
@SystemApi(client = MODULE_LIBRARIES)
|
||||||
|
@RequiresPermission(anyOf = {
|
||||||
|
android.Manifest.permission.NETWORK_SETTINGS,
|
||||||
|
android.Manifest.permission.NETWORK_STACK,
|
||||||
|
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK
|
||||||
|
})
|
||||||
|
public void replaceFirewallChain(@FirewallChain final int chain, @NonNull final int[] uids) {
|
||||||
|
Objects.requireNonNull(uids);
|
||||||
|
try {
|
||||||
|
mService.replaceFirewallChain(chain, uids);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
throw e.rethrowFromSystemServer();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -238,4 +238,6 @@ interface IConnectivityManager
|
|||||||
void updateFirewallRule(int chain, int uid, boolean allow);
|
void updateFirewallRule(int chain, int uid, boolean allow);
|
||||||
|
|
||||||
void setFirewallChainEnabled(int chain, boolean enable);
|
void setFirewallChainEnabled(int chain, boolean enable);
|
||||||
|
|
||||||
|
void replaceFirewallChain(int chain, in int[] uids);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10638,4 +10638,30 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void replaceFirewallChain(final int chain, final int[] uids) {
|
||||||
|
enforceNetworkStackOrSettingsPermission();
|
||||||
|
|
||||||
|
try {
|
||||||
|
switch (chain) {
|
||||||
|
case ConnectivityManager.FIREWALL_CHAIN_DOZABLE:
|
||||||
|
mNetd.firewallReplaceUidChain("fw_dozable", true /* isAllowList */, uids);
|
||||||
|
break;
|
||||||
|
case ConnectivityManager.FIREWALL_CHAIN_STANDBY:
|
||||||
|
mNetd.firewallReplaceUidChain("fw_standby", false /* isAllowList */, uids);
|
||||||
|
break;
|
||||||
|
case ConnectivityManager.FIREWALL_CHAIN_POWERSAVE:
|
||||||
|
mNetd.firewallReplaceUidChain("fw_powersave", true /* isAllowList */, uids);
|
||||||
|
break;
|
||||||
|
case ConnectivityManager.FIREWALL_CHAIN_RESTRICTED:
|
||||||
|
mNetd.firewallReplaceUidChain("fw_restricted", true /* isAllowList */, uids);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException("replaceFirewallChain with invalid chain: "
|
||||||
|
+ chain);
|
||||||
|
}
|
||||||
|
} catch (RemoteException | ServiceSpecificException e) {
|
||||||
|
throw new IllegalStateException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user