Add blocked reason for internet permission
Currently, even if apps don't have INTERNET permission and can not use network, network access is considered not blocked and ConnectivityService send onBlockedStatusChanged callback with blocked=false. This CL introduced BLOCKED_REASON_NETWORK_RESTRICTED and consider network access from apps targetting W+ on V+ releases is blocked if apps don't have INTERNET permission. Permission is set when the user is added or package is installed and permission is removed when the user is removed or packages is uninstalled. So ConnectivityService does not need to monitor permission change to send onBlockedStatusChanged callback by permission change. Test: CSBlockedReasonsTest Bug: 339559837 Change-Id: I58d2a4eddc714e205f5b96219f95b637f2826c58
This commit is contained in:
parent
d20727f3cc
commit
ee96ba0e60
1 changed files with 163 additions and 13 deletions
|
|
@ -132,6 +132,8 @@ public class ConnectivityManager {
|
|||
"com.android.net.flags.metered_network_firewall_chains";
|
||||
static final String BLOCKED_REASON_OEM_DENY_CHAINS =
|
||||
"com.android.net.flags.blocked_reason_oem_deny_chains";
|
||||
static final String BLOCKED_REASON_NETWORK_RESTRICTED =
|
||||
"com.android.net.flags.blocked_reason_network_restricted";
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -927,6 +929,17 @@ public class ConnectivityManager {
|
|||
@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
|
||||
public static final int BLOCKED_REASON_OEM_DENY = 1 << 7;
|
||||
|
||||
/**
|
||||
* Flag to indicate that an app does not have permission to access the specified network,
|
||||
* for example, because it does not have the {@link android.Manifest.permission#INTERNET}
|
||||
* permission.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@FlaggedApi(Flags.BLOCKED_REASON_NETWORK_RESTRICTED)
|
||||
@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
|
||||
public static final int BLOCKED_REASON_NETWORK_RESTRICTED = 1 << 8;
|
||||
|
||||
/**
|
||||
* Flag to indicate that an app is subject to Data saver restrictions that would
|
||||
* result in its metered network access being blocked.
|
||||
|
|
@ -968,6 +981,7 @@ public class ConnectivityManager {
|
|||
BLOCKED_REASON_LOW_POWER_STANDBY,
|
||||
BLOCKED_REASON_APP_BACKGROUND,
|
||||
BLOCKED_REASON_OEM_DENY,
|
||||
BLOCKED_REASON_NETWORK_RESTRICTED,
|
||||
BLOCKED_METERED_REASON_DATA_SAVER,
|
||||
BLOCKED_METERED_REASON_USER_RESTRICTED,
|
||||
BLOCKED_METERED_REASON_ADMIN_DISABLED,
|
||||
|
|
|
|||
Loading…
Reference in a new issue