Merge "Remove deps from framework on netd interfaces"
This commit is contained in:
@@ -704,7 +704,7 @@ java_defaults {
|
||||
"android.hardware.vibrator-V1.2-java",
|
||||
"android.hardware.wifi-V1.0-java-constants",
|
||||
"networkstack-aidl-interfaces-java",
|
||||
"netd_aidl_interface-java",
|
||||
"netd_aidl_parcelables-java",
|
||||
],
|
||||
|
||||
required: [
|
||||
|
||||
@@ -603,8 +603,6 @@ Landroid/net/IConnectivityManager;->getTetherableWifiRegexs()[Ljava/lang/String;
|
||||
Landroid/net/IConnectivityManager;->getTetheredIfaces()[Ljava/lang/String;
|
||||
Landroid/net/IConnectivityManager;->getTetheringErroredIfaces()[Ljava/lang/String;
|
||||
Landroid/net/IConnectivityManager;->startLegacyVpn(Lcom/android/internal/net/VpnProfile;)V
|
||||
Landroid/net/INetd$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetd;
|
||||
Landroid/net/INetd;->interfaceAddAddress(Ljava/lang/String;Ljava/lang/String;I)V
|
||||
Landroid/net/INetworkManagementEventObserver$Stub;-><init>()V
|
||||
Landroid/net/INetworkPolicyListener$Stub;-><init>()V
|
||||
Landroid/net/INetworkPolicyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkPolicyManager;
|
||||
|
||||
@@ -83,7 +83,6 @@ import android.net.IConnectivityManager;
|
||||
import android.net.IEthernetManager;
|
||||
import android.net.IIpMemoryStore;
|
||||
import android.net.IIpSecService;
|
||||
import android.net.INetd;
|
||||
import android.net.INetworkPolicyManager;
|
||||
import android.net.IpMemoryStore;
|
||||
import android.net.IpSecManager;
|
||||
@@ -290,11 +289,10 @@ final class SystemServiceRegistry {
|
||||
return new ConnectivityManager(context, service);
|
||||
}});
|
||||
|
||||
registerService(Context.NETD_SERVICE, INetd.class, new StaticServiceFetcher<INetd>() {
|
||||
registerService(Context.NETD_SERVICE, IBinder.class, new StaticServiceFetcher<IBinder>() {
|
||||
@Override
|
||||
public INetd createService() throws ServiceNotFoundException {
|
||||
return INetd.Stub.asInterface(
|
||||
ServiceManager.getServiceOrThrow(Context.NETD_SERVICE));
|
||||
public IBinder createService() throws ServiceNotFoundException {
|
||||
return ServiceManager.getServiceOrThrow(Context.NETD_SERVICE);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -36,8 +36,9 @@ public class InterfaceConfiguration implements Parcelable {
|
||||
private LinkAddress mAddr;
|
||||
private HashSet<String> mFlags = Sets.newHashSet();
|
||||
|
||||
private static final String FLAG_UP = INetd.IF_STATE_UP;
|
||||
private static final String FLAG_DOWN = INetd.IF_STATE_DOWN;
|
||||
// Must be kept in sync with constant in INetd.aidl
|
||||
private static final String FLAG_UP = "up";
|
||||
private static final String FLAG_DOWN = "down";
|
||||
|
||||
private static final String[] EMPTY_STRING_ARRAY = new String[0];
|
||||
|
||||
|
||||
@@ -92,16 +92,6 @@ public class NetworkPolicyManager {
|
||||
public static final int MASK_ALL_NETWORKS = 0b11110000;
|
||||
|
||||
public static final int FIREWALL_RULE_DEFAULT = 0;
|
||||
public static final int FIREWALL_RULE_ALLOW = INetd.FIREWALL_RULE_ALLOW;
|
||||
public static final int FIREWALL_RULE_DENY = INetd.FIREWALL_RULE_DENY;
|
||||
|
||||
public static final int FIREWALL_TYPE_WHITELIST = INetd.FIREWALL_WHITELIST;
|
||||
public static final int FIREWALL_TYPE_BLACKLIST = INetd.FIREWALL_BLACKLIST;
|
||||
|
||||
public static final int FIREWALL_CHAIN_NONE = INetd.FIREWALL_CHAIN_NONE;
|
||||
public static final int FIREWALL_CHAIN_DOZABLE = INetd.FIREWALL_CHAIN_DOZABLE;
|
||||
public static final int FIREWALL_CHAIN_STANDBY = INetd.FIREWALL_CHAIN_STANDBY;
|
||||
public static final int FIREWALL_CHAIN_POWERSAVE = INetd.FIREWALL_CHAIN_POWERSAVE;
|
||||
|
||||
public static final String FIREWALL_CHAIN_NAME_NONE = "none";
|
||||
public static final String FIREWALL_CHAIN_NAME_DOZABLE = "dozable";
|
||||
|
||||
@@ -46,6 +46,7 @@ import android.net.shared.ProvisioningConfiguration;
|
||||
import android.net.util.InterfaceParams;
|
||||
import android.net.util.SharedLog;
|
||||
import android.os.ConditionVariable;
|
||||
import android.os.IBinder;
|
||||
import android.os.Message;
|
||||
import android.os.RemoteException;
|
||||
import android.os.SystemClock;
|
||||
@@ -380,6 +381,13 @@ public class IpClient extends StateMachine {
|
||||
public InterfaceParams getInterfaceParams(String ifname) {
|
||||
return InterfaceParams.getByName(ifname);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a INetd connector.
|
||||
*/
|
||||
public INetd getNetd(Context context) {
|
||||
return INetd.Stub.asInterface((IBinder) context.getSystemService(Context.NETD_SERVICE));
|
||||
}
|
||||
}
|
||||
|
||||
public IpClient(Context context, String ifName, IIpClientCallbacks callback,
|
||||
@@ -413,7 +421,7 @@ public class IpClient extends StateMachine {
|
||||
|
||||
// TODO: Consider creating, constructing, and passing in some kind of
|
||||
// InterfaceController.Dependencies class.
|
||||
mNetd = mContext.getSystemService(INetd.class);
|
||||
mNetd = deps.getNetd(mContext);
|
||||
mInterfaceCtrl = new InterfaceController(mInterfaceName, mNetd, mLog);
|
||||
|
||||
mLinkObserver = new IpClientLinkObserver(
|
||||
|
||||
@@ -114,7 +114,8 @@ public class NetworkStackService extends Service {
|
||||
|
||||
NetworkStackConnector(Context context) {
|
||||
mContext = context;
|
||||
mNetd = (INetd) context.getSystemService(Context.NETD_SERVICE);
|
||||
mNetd = INetd.Stub.asInterface(
|
||||
(IBinder) context.getSystemService(Context.NETD_SERVICE));
|
||||
mObserverRegistry = new NetworkObserverRegistry();
|
||||
mCm = context.getSystemService(ConnectivityManager.class);
|
||||
|
||||
|
||||
@@ -104,8 +104,8 @@ public class IpClientTest {
|
||||
|
||||
when(mContext.getSystemService(eq(Context.ALARM_SERVICE))).thenReturn(mAlarm);
|
||||
when(mContext.getSystemService(eq(ConnectivityManager.class))).thenReturn(mCm);
|
||||
when(mContext.getSystemService(INetd.class)).thenReturn(mNetd);
|
||||
when(mContext.getResources()).thenReturn(mResources);
|
||||
when(mDependencies.getNetd(any())).thenReturn(mNetd);
|
||||
when(mResources.getInteger(R.integer.config_networkAvoidBadWifi))
|
||||
.thenReturn(DEFAULT_AVOIDBADWIFI_CONFIG_VALUE);
|
||||
|
||||
|
||||
@@ -20,18 +20,18 @@ import static android.Manifest.permission.CONNECTIVITY_INTERNAL;
|
||||
import static android.Manifest.permission.NETWORK_SETTINGS;
|
||||
import static android.Manifest.permission.NETWORK_STACK;
|
||||
import static android.Manifest.permission.SHUTDOWN;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_DOZABLE;
|
||||
import static android.net.INetd.FIREWALL_BLACKLIST;
|
||||
import static android.net.INetd.FIREWALL_CHAIN_DOZABLE;
|
||||
import static android.net.INetd.FIREWALL_CHAIN_NONE;
|
||||
import static android.net.INetd.FIREWALL_CHAIN_POWERSAVE;
|
||||
import static android.net.INetd.FIREWALL_CHAIN_STANDBY;
|
||||
import static android.net.INetd.FIREWALL_RULE_ALLOW;
|
||||
import static android.net.INetd.FIREWALL_RULE_DENY;
|
||||
import static android.net.INetd.FIREWALL_WHITELIST;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_DOZABLE;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_POWERSAVE;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_STANDBY;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NONE;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_POWERSAVE;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_STANDBY;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_RULE_ALLOW;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_RULE_DEFAULT;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_RULE_DENY;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_TYPE_BLACKLIST;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_TYPE_WHITELIST;
|
||||
import static android.net.NetworkStats.SET_DEFAULT;
|
||||
import static android.net.NetworkStats.STATS_PER_UID;
|
||||
import static android.net.NetworkStats.TAG_ALL;
|
||||
@@ -1941,7 +1941,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub
|
||||
|
||||
int numUids = 0;
|
||||
if (DBG) Slog.d(TAG, "Closing sockets after enabling chain " + chainName);
|
||||
if (getFirewallType(chain) == FIREWALL_TYPE_WHITELIST) {
|
||||
if (getFirewallType(chain) == FIREWALL_WHITELIST) {
|
||||
// Close all sockets on all non-system UIDs...
|
||||
ranges = new UidRange[] {
|
||||
// TODO: is there a better way of finding all existing users? If so, we could
|
||||
@@ -1953,7 +1953,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub
|
||||
final SparseIntArray rules = getUidFirewallRulesLR(chain);
|
||||
exemptUids = new int[rules.size()];
|
||||
for (int i = 0; i < exemptUids.length; i++) {
|
||||
if (rules.valueAt(i) == NetworkPolicyManager.FIREWALL_RULE_ALLOW) {
|
||||
if (rules.valueAt(i) == FIREWALL_RULE_ALLOW) {
|
||||
exemptUids[numUids] = rules.keyAt(i);
|
||||
numUids++;
|
||||
}
|
||||
@@ -1975,7 +1975,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub
|
||||
final SparseIntArray rules = getUidFirewallRulesLR(chain);
|
||||
ranges = new UidRange[rules.size()];
|
||||
for (int i = 0; i < ranges.length; i++) {
|
||||
if (rules.valueAt(i) == NetworkPolicyManager.FIREWALL_RULE_DENY) {
|
||||
if (rules.valueAt(i) == FIREWALL_RULE_DENY) {
|
||||
int uid = rules.keyAt(i);
|
||||
ranges[numUids] = new UidRange(uid, uid);
|
||||
numUids++;
|
||||
@@ -2047,13 +2047,13 @@ public class NetworkManagementService extends INetworkManagementService.Stub
|
||||
private int getFirewallType(int chain) {
|
||||
switch (chain) {
|
||||
case FIREWALL_CHAIN_STANDBY:
|
||||
return FIREWALL_TYPE_BLACKLIST;
|
||||
return FIREWALL_BLACKLIST;
|
||||
case FIREWALL_CHAIN_DOZABLE:
|
||||
return FIREWALL_TYPE_WHITELIST;
|
||||
return FIREWALL_WHITELIST;
|
||||
case FIREWALL_CHAIN_POWERSAVE:
|
||||
return FIREWALL_TYPE_WHITELIST;
|
||||
return FIREWALL_WHITELIST;
|
||||
default:
|
||||
return isFirewallEnabled() ? FIREWALL_TYPE_WHITELIST : FIREWALL_TYPE_BLACKLIST;
|
||||
return isFirewallEnabled() ? FIREWALL_WHITELIST : FIREWALL_BLACKLIST;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2155,14 +2155,14 @@ public class NetworkManagementService extends INetworkManagementService.Stub
|
||||
|
||||
private @NonNull String getFirewallRuleName(int chain, int rule) {
|
||||
String ruleName;
|
||||
if (getFirewallType(chain) == FIREWALL_TYPE_WHITELIST) {
|
||||
if (rule == NetworkPolicyManager.FIREWALL_RULE_ALLOW) {
|
||||
if (getFirewallType(chain) == FIREWALL_WHITELIST) {
|
||||
if (rule == FIREWALL_RULE_ALLOW) {
|
||||
ruleName = "allow";
|
||||
} else {
|
||||
ruleName = "deny";
|
||||
}
|
||||
} else { // Blacklist mode
|
||||
if (rule == NetworkPolicyManager.FIREWALL_RULE_DENY) {
|
||||
if (rule == FIREWALL_RULE_DENY) {
|
||||
ruleName = "deny";
|
||||
} else {
|
||||
ruleName = "allow";
|
||||
@@ -2188,7 +2188,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub
|
||||
|
||||
private int getFirewallRuleType(int chain, int rule) {
|
||||
if (rule == NetworkPolicyManager.FIREWALL_RULE_DEFAULT) {
|
||||
return getFirewallType(chain) == FIREWALL_TYPE_WHITELIST
|
||||
return getFirewallType(chain) == FIREWALL_WHITELIST
|
||||
? INetd.FIREWALL_RULE_DENY : INetd.FIREWALL_RULE_ALLOW;
|
||||
}
|
||||
return rule;
|
||||
|
||||
@@ -17,9 +17,6 @@
|
||||
package com.android.server.net;
|
||||
|
||||
import static android.Manifest.permission.CONNECTIVITY_INTERNAL;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NONE;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_RULE_ALLOW;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_RULE_DEFAULT;
|
||||
import static android.provider.Settings.ACTION_VPN_SETTINGS;
|
||||
|
||||
import android.app.Notification;
|
||||
@@ -30,17 +27,14 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.LinkProperties;
|
||||
import android.net.LinkAddress;
|
||||
import android.net.LinkProperties;
|
||||
import android.net.NetworkInfo;
|
||||
import android.net.NetworkInfo.DetailedState;
|
||||
import android.net.NetworkInfo.State;
|
||||
import android.net.NetworkPolicyManager;
|
||||
import android.os.INetworkManagementService;
|
||||
import android.os.RemoteException;
|
||||
import android.security.Credentials;
|
||||
import android.security.KeyStore;
|
||||
import android.system.Os;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Slog;
|
||||
|
||||
|
||||
@@ -15,15 +15,15 @@
|
||||
*/
|
||||
package com.android.server.net;
|
||||
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_DOZABLE;
|
||||
import static android.net.INetd.FIREWALL_CHAIN_DOZABLE;
|
||||
import static android.net.INetd.FIREWALL_CHAIN_POWERSAVE;
|
||||
import static android.net.INetd.FIREWALL_CHAIN_STANDBY;
|
||||
import static android.net.INetd.FIREWALL_RULE_ALLOW;
|
||||
import static android.net.INetd.FIREWALL_RULE_DENY;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_DOZABLE;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_POWERSAVE;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_STANDBY;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_POWERSAVE;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_STANDBY;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_RULE_ALLOW;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_RULE_DEFAULT;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_RULE_DENY;
|
||||
|
||||
import android.app.ActivityManager;
|
||||
import android.net.NetworkPolicyManager;
|
||||
|
||||
@@ -38,6 +38,11 @@ import static android.net.ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLE
|
||||
import static android.net.ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED;
|
||||
import static android.net.ConnectivityManager.RESTRICT_BACKGROUND_STATUS_WHITELISTED;
|
||||
import static android.net.ConnectivityManager.TYPE_MOBILE;
|
||||
import static android.net.INetd.FIREWALL_CHAIN_DOZABLE;
|
||||
import static android.net.INetd.FIREWALL_CHAIN_POWERSAVE;
|
||||
import static android.net.INetd.FIREWALL_CHAIN_STANDBY;
|
||||
import static android.net.INetd.FIREWALL_RULE_ALLOW;
|
||||
import static android.net.INetd.FIREWALL_RULE_DENY;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING;
|
||||
import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
|
||||
@@ -45,12 +50,7 @@ import static android.net.NetworkPolicy.LIMIT_DISABLED;
|
||||
import static android.net.NetworkPolicy.SNOOZE_NEVER;
|
||||
import static android.net.NetworkPolicy.WARNING_DISABLED;
|
||||
import static android.net.NetworkPolicyManager.EXTRA_NETWORK_TEMPLATE;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_DOZABLE;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_POWERSAVE;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_STANDBY;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_RULE_ALLOW;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_RULE_DEFAULT;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_RULE_DENY;
|
||||
import static android.net.NetworkPolicyManager.MASK_ALL_NETWORKS;
|
||||
import static android.net.NetworkPolicyManager.MASK_METERED_NETWORKS;
|
||||
import static android.net.NetworkPolicyManager.POLICY_ALLOW_METERED_BACKGROUND;
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
java_library_static {
|
||||
name: "services.net",
|
||||
srcs: ["java/**/*.java"],
|
||||
static_libs: [
|
||||
"netd_aidl_interface-java",
|
||||
]
|
||||
}
|
||||
|
||||
filegroup {
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
|
||||
package com.android.server;
|
||||
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_DOZABLE;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_POWERSAVE;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_STANDBY;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_RULE_ALLOW;
|
||||
import static android.net.INetd.FIREWALL_CHAIN_DOZABLE;
|
||||
import static android.net.INetd.FIREWALL_CHAIN_POWERSAVE;
|
||||
import static android.net.INetd.FIREWALL_CHAIN_STANDBY;
|
||||
import static android.net.INetd.FIREWALL_RULE_ALLOW;
|
||||
import static android.net.INetd.FIREWALL_RULE_DENY;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_RULE_DEFAULT;
|
||||
import static android.net.NetworkPolicyManager.FIREWALL_RULE_DENY;
|
||||
import static android.util.DebugUtils.valueToString;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
Reference in New Issue
Block a user