• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright (c) 2008, The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.net;
18 
19 import android.app.PendingIntent;
20 import android.net.ConnectionInfo;
21 import android.net.ConnectivityDiagnosticsManager;
22 import android.net.IConnectivityDiagnosticsCallback;
23 import android.net.INetworkAgent;
24 import android.net.IOnCompleteListener;
25 import android.net.INetworkActivityListener;
26 import android.net.INetworkOfferCallback;
27 import android.net.IQosCallback;
28 import android.net.ISocketKeepaliveCallback;
29 import android.net.LinkProperties;
30 import android.net.LocalNetworkConfig;
31 import android.net.Network;
32 import android.net.NetworkAgentConfig;
33 import android.net.NetworkAndAgentRegistryParcelable;
34 import android.net.NetworkCapabilities;
35 import android.net.NetworkInfo;
36 import android.net.NetworkRequest;
37 import android.net.NetworkScore;
38 import android.net.NetworkState;
39 import android.net.NetworkStateSnapshot;
40 import android.net.OemNetworkPreferences;
41 import android.net.ProfileNetworkPreference;
42 import android.net.ProxyInfo;
43 import android.net.UidRange;
44 import android.net.QosSocketInfo;
45 import android.os.Bundle;
46 import android.os.IBinder;
47 import android.os.Messenger;
48 import android.os.ParcelFileDescriptor;
49 import android.os.PersistableBundle;
50 import android.os.ResultReceiver;
51 import android.os.UserHandle;
52 
53 /**
54  * Interface that answers queries about, and allows changing, the
55  * state of network connectivity.
56  */
57 /** {@hide} */
58 interface IConnectivityManager
59 {
getActiveNetwork()60     Network getActiveNetwork();
getActiveNetworkForUid(int uid, boolean ignoreBlocked)61     Network getActiveNetworkForUid(int uid, boolean ignoreBlocked);
62     @UnsupportedAppUsage
getActiveNetworkInfo()63     NetworkInfo getActiveNetworkInfo();
getActiveNetworkInfoForUid(int uid, boolean ignoreBlocked)64     NetworkInfo getActiveNetworkInfoForUid(int uid, boolean ignoreBlocked);
65     @UnsupportedAppUsage(maxTargetSdk = 28)
getNetworkInfo(int networkType)66     NetworkInfo getNetworkInfo(int networkType);
getNetworkInfoForUid(in Network network, int uid, boolean ignoreBlocked)67     NetworkInfo getNetworkInfoForUid(in Network network, int uid, boolean ignoreBlocked);
68     @UnsupportedAppUsage
getAllNetworkInfo()69     NetworkInfo[] getAllNetworkInfo();
getNetworkForType(int networkType)70     Network getNetworkForType(int networkType);
getAllNetworks()71     Network[] getAllNetworks();
getDefaultNetworkCapabilitiesForUser( int userId, String callingPackageName, String callingAttributionTag)72     NetworkCapabilities[] getDefaultNetworkCapabilitiesForUser(
73             int userId, String callingPackageName, String callingAttributionTag);
74 
isNetworkSupported(int networkType)75     boolean isNetworkSupported(int networkType);
76 
77     @UnsupportedAppUsage
getActiveLinkProperties()78     LinkProperties getActiveLinkProperties();
getLinkPropertiesForType(int networkType)79     LinkProperties getLinkPropertiesForType(int networkType);
getLinkProperties(in Network network)80     LinkProperties getLinkProperties(in Network network);
getRedactedLinkPropertiesForPackage(in LinkProperties lp, int uid, String packageName, String callingAttributionTag)81     LinkProperties getRedactedLinkPropertiesForPackage(in LinkProperties lp, int uid,
82             String packageName, String callingAttributionTag);
83 
getNetworkCapabilities(in Network network, String callingPackageName, String callingAttributionTag)84     NetworkCapabilities getNetworkCapabilities(in Network network, String callingPackageName,
85             String callingAttributionTag);
86 
getRedactedNetworkCapabilitiesForPackage(in NetworkCapabilities nc, int uid, String callingPackageName, String callingAttributionTag)87     NetworkCapabilities getRedactedNetworkCapabilitiesForPackage(in NetworkCapabilities nc, int uid,
88             String callingPackageName, String callingAttributionTag);
89 
90     @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
getAllNetworkState()91     NetworkState[] getAllNetworkState();
92 
getAllNetworkStateSnapshots()93     List<NetworkStateSnapshot> getAllNetworkStateSnapshots();
94 
isActiveNetworkMetered()95     boolean isActiveNetworkMetered();
96 
requestRouteToHostAddress(int networkType, in byte[] hostAddress, String callingPackageName, String callingAttributionTag)97     boolean requestRouteToHostAddress(int networkType, in byte[] hostAddress,
98             String callingPackageName, String callingAttributionTag);
99 
100     @UnsupportedAppUsage(maxTargetSdk = 29,
101             publicAlternatives = "Use {@code TetheringManager#getLastTetherError} as alternative")
getLastTetherError(String iface)102     int getLastTetherError(String iface);
103 
104     @UnsupportedAppUsage(maxTargetSdk = 29,
105             publicAlternatives = "Use {@code TetheringManager#getTetherableIfaces} as alternative")
getTetherableIfaces()106     String[] getTetherableIfaces();
107 
108     @UnsupportedAppUsage(maxTargetSdk = 29,
109             publicAlternatives = "Use {@code TetheringManager#getTetheredIfaces} as alternative")
getTetheredIfaces()110     String[] getTetheredIfaces();
111 
112     @UnsupportedAppUsage(maxTargetSdk = 29,
113             publicAlternatives = "Use {@code TetheringManager#getTetheringErroredIfaces} "
114             + "as Alternative")
getTetheringErroredIfaces()115     String[] getTetheringErroredIfaces();
116 
117     @UnsupportedAppUsage(maxTargetSdk = 29,
118             publicAlternatives = "Use {@code TetheringManager#getTetherableUsbRegexs} as alternative")
getTetherableUsbRegexs()119     String[] getTetherableUsbRegexs();
120 
121     @UnsupportedAppUsage(maxTargetSdk = 29,
122             publicAlternatives = "Use {@code TetheringManager#getTetherableWifiRegexs} as alternative")
getTetherableWifiRegexs()123     String[] getTetherableWifiRegexs();
124 
125     @UnsupportedAppUsage(maxTargetSdk = 28)
reportInetCondition(int networkType, int percentage)126     void reportInetCondition(int networkType, int percentage);
127 
reportNetworkConnectivity(in Network network, boolean hasConnectivity)128     void reportNetworkConnectivity(in Network network, boolean hasConnectivity);
129 
getGlobalProxy()130     ProxyInfo getGlobalProxy();
131 
setGlobalProxy(in ProxyInfo p)132     void setGlobalProxy(in ProxyInfo p);
133 
getProxyForNetwork(in Network nework)134     ProxyInfo getProxyForNetwork(in Network nework);
135 
setRequireVpnForUids(boolean requireVpn, in UidRange[] ranges)136     void setRequireVpnForUids(boolean requireVpn, in UidRange[] ranges);
setLegacyLockdownVpnEnabled(boolean enabled)137     void setLegacyLockdownVpnEnabled(boolean enabled);
138 
setProvisioningNotificationVisible(boolean visible, int networkType, in String action)139     void setProvisioningNotificationVisible(boolean visible, int networkType, in String action);
140 
setAirplaneMode(boolean enable)141     void setAirplaneMode(boolean enable);
142 
requestBandwidthUpdate(in Network network)143     boolean requestBandwidthUpdate(in Network network);
144 
registerNetworkProvider(in Messenger messenger, in String name)145     int registerNetworkProvider(in Messenger messenger, in String name);
unregisterNetworkProvider(in Messenger messenger)146     void unregisterNetworkProvider(in Messenger messenger);
147 
declareNetworkRequestUnfulfillable(in NetworkRequest request)148     void declareNetworkRequestUnfulfillable(in NetworkRequest request);
149 
registerNetworkAgent( in INetworkAgent na, in NetworkInfo ni, in LinkProperties lp, in NetworkCapabilities nc, in NetworkScore score, in LocalNetworkConfig localNetworkConfig, in NetworkAgentConfig config, in int factorySerialNumber)150     NetworkAndAgentRegistryParcelable registerNetworkAgent(
151             in INetworkAgent na, in NetworkInfo ni, in LinkProperties lp,
152             in NetworkCapabilities nc, in NetworkScore score,
153             in LocalNetworkConfig localNetworkConfig, in NetworkAgentConfig config,
154             in int factorySerialNumber);
155 
requestNetwork(int uid, in NetworkCapabilities networkCapabilities, int reqType, in Messenger messenger, int timeoutSec, in IBinder binder, int legacy, int callbackFlags, String callingPackageName, String callingAttributionTag, int declaredMethodsFlag)156     NetworkRequest requestNetwork(int uid, in NetworkCapabilities networkCapabilities, int reqType,
157             in Messenger messenger, int timeoutSec, in IBinder binder, int legacy,
158             int callbackFlags, String callingPackageName, String callingAttributionTag,
159             int declaredMethodsFlag);
160 
pendingRequestForNetwork(in NetworkCapabilities networkCapabilities, in PendingIntent operation, String callingPackageName, String callingAttributionTag)161     NetworkRequest pendingRequestForNetwork(in NetworkCapabilities networkCapabilities,
162             in PendingIntent operation, String callingPackageName, String callingAttributionTag);
163 
releasePendingNetworkRequest(in PendingIntent operation)164     void releasePendingNetworkRequest(in PendingIntent operation);
165 
listenForNetwork(in NetworkCapabilities networkCapabilities, in Messenger messenger, in IBinder binder, int callbackFlags, String callingPackageName, String callingAttributionTag, int declaredMethodsFlag)166     NetworkRequest listenForNetwork(in NetworkCapabilities networkCapabilities,
167             in Messenger messenger, in IBinder binder, int callbackFlags, String callingPackageName,
168             String callingAttributionTag, int declaredMethodsFlag);
169 
pendingListenForNetwork(in NetworkCapabilities networkCapabilities, in PendingIntent operation, String callingPackageName, String callingAttributionTag)170     void pendingListenForNetwork(in NetworkCapabilities networkCapabilities,
171             in PendingIntent operation, String callingPackageName,
172             String callingAttributionTag);
173 
releaseNetworkRequest(in NetworkRequest networkRequest)174     void releaseNetworkRequest(in NetworkRequest networkRequest);
175 
setAcceptUnvalidated(in Network network, boolean accept, boolean always)176     void setAcceptUnvalidated(in Network network, boolean accept, boolean always);
setAcceptPartialConnectivity(in Network network, boolean accept, boolean always)177     void setAcceptPartialConnectivity(in Network network, boolean accept, boolean always);
setAvoidUnvalidated(in Network network)178     void setAvoidUnvalidated(in Network network);
startCaptivePortalApp(in Network network)179     void startCaptivePortalApp(in Network network);
startCaptivePortalAppInternal(in Network network, in Bundle appExtras)180     void startCaptivePortalAppInternal(in Network network, in Bundle appExtras);
181 
shouldAvoidBadWifi()182     boolean shouldAvoidBadWifi();
getMultipathPreference(in Network Network)183     int getMultipathPreference(in Network Network);
184 
getDefaultRequest()185     NetworkRequest getDefaultRequest();
186 
getRestoreDefaultNetworkDelay(int networkType)187     int getRestoreDefaultNetworkDelay(int networkType);
188 
factoryReset()189     void factoryReset();
190 
startNattKeepalive(in Network network, int intervalSeconds, in ISocketKeepaliveCallback cb, String srcAddr, int srcPort, String dstAddr)191     void startNattKeepalive(in Network network, int intervalSeconds,
192             in ISocketKeepaliveCallback cb, String srcAddr, int srcPort, String dstAddr);
193 
startNattKeepaliveWithFd(in Network network, in ParcelFileDescriptor pfd, int resourceId, int intervalSeconds, in ISocketKeepaliveCallback cb, String srcAddr, String dstAddr, boolean automaticOnOffKeepalives, in Network underpinnedNetwork)194     void startNattKeepaliveWithFd(in Network network, in ParcelFileDescriptor pfd, int resourceId,
195             int intervalSeconds, in ISocketKeepaliveCallback cb, String srcAddr,
196             String dstAddr, boolean automaticOnOffKeepalives, in Network underpinnedNetwork);
197 
startTcpKeepalive(in Network network, in ParcelFileDescriptor pfd, int intervalSeconds, in ISocketKeepaliveCallback cb)198     void startTcpKeepalive(in Network network, in ParcelFileDescriptor pfd, int intervalSeconds,
199             in ISocketKeepaliveCallback cb);
200 
stopKeepalive(in ISocketKeepaliveCallback cb)201     void stopKeepalive(in ISocketKeepaliveCallback cb);
202 
getSupportedKeepalives()203     int[] getSupportedKeepalives();
204 
getCaptivePortalServerUrl()205     String getCaptivePortalServerUrl();
206 
getNetworkWatchlistConfigHash()207     byte[] getNetworkWatchlistConfigHash();
208 
getConnectionOwnerUid(in ConnectionInfo connectionInfo)209     int getConnectionOwnerUid(in ConnectionInfo connectionInfo);
210 
registerConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback, in NetworkRequest request, String callingPackageName)211     void registerConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback,
212             in NetworkRequest request, String callingPackageName);
unregisterConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback)213     void unregisterConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback);
214 
startOrGetTestNetworkService()215     IBinder startOrGetTestNetworkService();
216 
simulateDataStall(int detectionMethod, long timestampMillis, in Network network, in PersistableBundle extras)217     void simulateDataStall(int detectionMethod, long timestampMillis, in Network network,
218                 in PersistableBundle extras);
219 
systemReady()220     void systemReady();
221 
registerNetworkActivityListener(in INetworkActivityListener l)222     void registerNetworkActivityListener(in INetworkActivityListener l);
223 
unregisterNetworkActivityListener(in INetworkActivityListener l)224     void unregisterNetworkActivityListener(in INetworkActivityListener l);
225 
isDefaultNetworkActive()226     boolean isDefaultNetworkActive();
227 
registerQosSocketCallback(in QosSocketInfo socketInfo, in IQosCallback callback)228     void registerQosSocketCallback(in QosSocketInfo socketInfo, in IQosCallback callback);
unregisterQosCallback(in IQosCallback callback)229     void unregisterQosCallback(in IQosCallback callback);
230 
setOemNetworkPreference(in OemNetworkPreferences preference, in IOnCompleteListener listener)231     void setOemNetworkPreference(in OemNetworkPreferences preference,
232             in IOnCompleteListener listener);
233 
setProfileNetworkPreferences(in UserHandle profile, in List<ProfileNetworkPreference> preferences, in IOnCompleteListener listener)234     void setProfileNetworkPreferences(in UserHandle profile,
235             in List<ProfileNetworkPreference>  preferences,
236             in IOnCompleteListener listener);
237 
getRestrictBackgroundStatusByCaller()238     int getRestrictBackgroundStatusByCaller();
239 
offerNetwork(int providerId, in NetworkScore score, in NetworkCapabilities caps, in INetworkOfferCallback callback)240     void offerNetwork(int providerId, in NetworkScore score,
241             in NetworkCapabilities caps, in INetworkOfferCallback callback);
unofferNetwork(in INetworkOfferCallback callback)242     void unofferNetwork(in INetworkOfferCallback callback);
243 
setTestAllowBadWifiUntil(long timeMs)244     void setTestAllowBadWifiUntil(long timeMs);
245 
setDataSaverEnabled(boolean enable)246     void setDataSaverEnabled(boolean enable);
247 
setUidFirewallRule(int chain, int uid, int rule)248     void setUidFirewallRule(int chain, int uid, int rule);
249 
getUidFirewallRule(int chain, int uid)250     int getUidFirewallRule(int chain, int uid);
251 
setFirewallChainEnabled(int chain, boolean enable)252     void setFirewallChainEnabled(int chain, boolean enable);
253 
getFirewallChainEnabled(int chain)254     boolean getFirewallChainEnabled(int chain);
255 
replaceFirewallChain(int chain, in int[] uids)256     void replaceFirewallChain(int chain, in int[] uids);
257 
getCompanionDeviceManagerProxyService()258     IBinder getCompanionDeviceManagerProxyService();
259 
setVpnNetworkPreference(String session, in UidRange[] ranges)260     void setVpnNetworkPreference(String session, in UidRange[] ranges);
261 
setTestLowTcpPollingTimerForKeepalive(long timeMs)262     void setTestLowTcpPollingTimerForKeepalive(long timeMs);
263 
getRoutingCoordinatorService()264     IBinder getRoutingCoordinatorService();
265 
getEnabledConnectivityManagerFeatures()266     long getEnabledConnectivityManagerFeatures();
267 
isConnectivityServiceFeatureEnabledForTesting(String featureFlag)268     boolean isConnectivityServiceFeatureEnabledForTesting(String featureFlag);
269 }
270