• 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.Network;
31 import android.net.NetworkAgentConfig;
32 import android.net.NetworkCapabilities;
33 import android.net.NetworkInfo;
34 import android.net.NetworkRequest;
35 import android.net.NetworkScore;
36 import android.net.NetworkState;
37 import android.net.NetworkStateSnapshot;
38 import android.net.OemNetworkPreferences;
39 import android.net.ProfileNetworkPreference;
40 import android.net.ProxyInfo;
41 import android.net.UidRange;
42 import android.net.QosSocketInfo;
43 import android.os.Bundle;
44 import android.os.IBinder;
45 import android.os.Messenger;
46 import android.os.ParcelFileDescriptor;
47 import android.os.PersistableBundle;
48 import android.os.ResultReceiver;
49 import android.os.UserHandle;
50 
51 /**
52  * Interface that answers queries about, and allows changing, the
53  * state of network connectivity.
54  */
55 /** {@hide} */
56 interface IConnectivityManager
57 {
getActiveNetwork()58     Network getActiveNetwork();
getActiveNetworkForUid(int uid, boolean ignoreBlocked)59     Network getActiveNetworkForUid(int uid, boolean ignoreBlocked);
60     @UnsupportedAppUsage
getActiveNetworkInfo()61     NetworkInfo getActiveNetworkInfo();
getActiveNetworkInfoForUid(int uid, boolean ignoreBlocked)62     NetworkInfo getActiveNetworkInfoForUid(int uid, boolean ignoreBlocked);
63     @UnsupportedAppUsage(maxTargetSdk = 28)
getNetworkInfo(int networkType)64     NetworkInfo getNetworkInfo(int networkType);
getNetworkInfoForUid(in Network network, int uid, boolean ignoreBlocked)65     NetworkInfo getNetworkInfoForUid(in Network network, int uid, boolean ignoreBlocked);
66     @UnsupportedAppUsage
getAllNetworkInfo()67     NetworkInfo[] getAllNetworkInfo();
getNetworkForType(int networkType)68     Network getNetworkForType(int networkType);
getAllNetworks()69     Network[] getAllNetworks();
getDefaultNetworkCapabilitiesForUser( int userId, String callingPackageName, String callingAttributionTag)70     NetworkCapabilities[] getDefaultNetworkCapabilitiesForUser(
71             int userId, String callingPackageName, String callingAttributionTag);
72 
isNetworkSupported(int networkType)73     boolean isNetworkSupported(int networkType);
74 
75     @UnsupportedAppUsage
getActiveLinkProperties()76     LinkProperties getActiveLinkProperties();
getLinkPropertiesForType(int networkType)77     LinkProperties getLinkPropertiesForType(int networkType);
getLinkProperties(in Network network)78     LinkProperties getLinkProperties(in Network network);
getRedactedLinkPropertiesForPackage(in LinkProperties lp, int uid, String packageName, String callingAttributionTag)79     LinkProperties getRedactedLinkPropertiesForPackage(in LinkProperties lp, int uid,
80             String packageName, String callingAttributionTag);
81 
getNetworkCapabilities(in Network network, String callingPackageName, String callingAttributionTag)82     NetworkCapabilities getNetworkCapabilities(in Network network, String callingPackageName,
83             String callingAttributionTag);
84 
getRedactedNetworkCapabilitiesForPackage(in NetworkCapabilities nc, int uid, String callingPackageName, String callingAttributionTag)85     NetworkCapabilities getRedactedNetworkCapabilitiesForPackage(in NetworkCapabilities nc, int uid,
86             String callingPackageName, String callingAttributionTag);
87 
88     @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
getAllNetworkState()89     NetworkState[] getAllNetworkState();
90 
getAllNetworkStateSnapshots()91     List<NetworkStateSnapshot> getAllNetworkStateSnapshots();
92 
isActiveNetworkMetered()93     boolean isActiveNetworkMetered();
94 
requestRouteToHostAddress(int networkType, in byte[] hostAddress, String callingPackageName, String callingAttributionTag)95     boolean requestRouteToHostAddress(int networkType, in byte[] hostAddress,
96             String callingPackageName, String callingAttributionTag);
97 
98     @UnsupportedAppUsage(maxTargetSdk = 29,
99             publicAlternatives = "Use {@code TetheringManager#getLastTetherError} as alternative")
getLastTetherError(String iface)100     int getLastTetherError(String iface);
101 
102     @UnsupportedAppUsage(maxTargetSdk = 29,
103             publicAlternatives = "Use {@code TetheringManager#getTetherableIfaces} as alternative")
getTetherableIfaces()104     String[] getTetherableIfaces();
105 
106     @UnsupportedAppUsage(maxTargetSdk = 29,
107             publicAlternatives = "Use {@code TetheringManager#getTetheredIfaces} as alternative")
getTetheredIfaces()108     String[] getTetheredIfaces();
109 
110     @UnsupportedAppUsage(maxTargetSdk = 29,
111             publicAlternatives = "Use {@code TetheringManager#getTetheringErroredIfaces} "
112             + "as Alternative")
getTetheringErroredIfaces()113     String[] getTetheringErroredIfaces();
114 
115     @UnsupportedAppUsage(maxTargetSdk = 29,
116             publicAlternatives = "Use {@code TetheringManager#getTetherableUsbRegexs} as alternative")
getTetherableUsbRegexs()117     String[] getTetherableUsbRegexs();
118 
119     @UnsupportedAppUsage(maxTargetSdk = 29,
120             publicAlternatives = "Use {@code TetheringManager#getTetherableWifiRegexs} as alternative")
getTetherableWifiRegexs()121     String[] getTetherableWifiRegexs();
122 
123     @UnsupportedAppUsage(maxTargetSdk = 28)
reportInetCondition(int networkType, int percentage)124     void reportInetCondition(int networkType, int percentage);
125 
reportNetworkConnectivity(in Network network, boolean hasConnectivity)126     void reportNetworkConnectivity(in Network network, boolean hasConnectivity);
127 
getGlobalProxy()128     ProxyInfo getGlobalProxy();
129 
setGlobalProxy(in ProxyInfo p)130     void setGlobalProxy(in ProxyInfo p);
131 
getProxyForNetwork(in Network nework)132     ProxyInfo getProxyForNetwork(in Network nework);
133 
setRequireVpnForUids(boolean requireVpn, in UidRange[] ranges)134     void setRequireVpnForUids(boolean requireVpn, in UidRange[] ranges);
setLegacyLockdownVpnEnabled(boolean enabled)135     void setLegacyLockdownVpnEnabled(boolean enabled);
136 
setProvisioningNotificationVisible(boolean visible, int networkType, in String action)137     void setProvisioningNotificationVisible(boolean visible, int networkType, in String action);
138 
setAirplaneMode(boolean enable)139     void setAirplaneMode(boolean enable);
140 
requestBandwidthUpdate(in Network network)141     boolean requestBandwidthUpdate(in Network network);
142 
registerNetworkProvider(in Messenger messenger, in String name)143     int registerNetworkProvider(in Messenger messenger, in String name);
unregisterNetworkProvider(in Messenger messenger)144     void unregisterNetworkProvider(in Messenger messenger);
145 
declareNetworkRequestUnfulfillable(in NetworkRequest request)146     void declareNetworkRequestUnfulfillable(in NetworkRequest request);
147 
registerNetworkAgent(in INetworkAgent na, in NetworkInfo ni, in LinkProperties lp, in NetworkCapabilities nc, in NetworkScore score, in NetworkAgentConfig config, in int factorySerialNumber)148     Network registerNetworkAgent(in INetworkAgent na, in NetworkInfo ni, in LinkProperties lp,
149             in NetworkCapabilities nc, in NetworkScore score, in NetworkAgentConfig config,
150             in int factorySerialNumber);
151 
requestNetwork(int uid, in NetworkCapabilities networkCapabilities, int reqType, in Messenger messenger, int timeoutSec, in IBinder binder, int legacy, int callbackFlags, String callingPackageName, String callingAttributionTag)152     NetworkRequest requestNetwork(int uid, in NetworkCapabilities networkCapabilities, int reqType,
153             in Messenger messenger, int timeoutSec, in IBinder binder, int legacy,
154             int callbackFlags, String callingPackageName, String callingAttributionTag);
155 
pendingRequestForNetwork(in NetworkCapabilities networkCapabilities, in PendingIntent operation, String callingPackageName, String callingAttributionTag)156     NetworkRequest pendingRequestForNetwork(in NetworkCapabilities networkCapabilities,
157             in PendingIntent operation, String callingPackageName, String callingAttributionTag);
158 
releasePendingNetworkRequest(in PendingIntent operation)159     void releasePendingNetworkRequest(in PendingIntent operation);
160 
listenForNetwork(in NetworkCapabilities networkCapabilities, in Messenger messenger, in IBinder binder, int callbackFlags, String callingPackageName, String callingAttributionTag)161     NetworkRequest listenForNetwork(in NetworkCapabilities networkCapabilities,
162             in Messenger messenger, in IBinder binder, int callbackFlags, String callingPackageName,
163             String callingAttributionTag);
164 
pendingListenForNetwork(in NetworkCapabilities networkCapabilities, in PendingIntent operation, String callingPackageName, String callingAttributionTag)165     void pendingListenForNetwork(in NetworkCapabilities networkCapabilities,
166             in PendingIntent operation, String callingPackageName,
167             String callingAttributionTag);
168 
releaseNetworkRequest(in NetworkRequest networkRequest)169     void releaseNetworkRequest(in NetworkRequest networkRequest);
170 
setAcceptUnvalidated(in Network network, boolean accept, boolean always)171     void setAcceptUnvalidated(in Network network, boolean accept, boolean always);
setAcceptPartialConnectivity(in Network network, boolean accept, boolean always)172     void setAcceptPartialConnectivity(in Network network, boolean accept, boolean always);
setAvoidUnvalidated(in Network network)173     void setAvoidUnvalidated(in Network network);
startCaptivePortalApp(in Network network)174     void startCaptivePortalApp(in Network network);
startCaptivePortalAppInternal(in Network network, in Bundle appExtras)175     void startCaptivePortalAppInternal(in Network network, in Bundle appExtras);
176 
shouldAvoidBadWifi()177     boolean shouldAvoidBadWifi();
getMultipathPreference(in Network Network)178     int getMultipathPreference(in Network Network);
179 
getDefaultRequest()180     NetworkRequest getDefaultRequest();
181 
getRestoreDefaultNetworkDelay(int networkType)182     int getRestoreDefaultNetworkDelay(int networkType);
183 
factoryReset()184     void factoryReset();
185 
startNattKeepalive(in Network network, int intervalSeconds, in ISocketKeepaliveCallback cb, String srcAddr, int srcPort, String dstAddr)186     void startNattKeepalive(in Network network, int intervalSeconds,
187             in ISocketKeepaliveCallback cb, String srcAddr, int srcPort, String dstAddr);
188 
startNattKeepaliveWithFd(in Network network, in ParcelFileDescriptor pfd, int resourceId, int intervalSeconds, in ISocketKeepaliveCallback cb, String srcAddr, String dstAddr, boolean automaticOnOffKeepalives, in Network underpinnedNetwork)189     void startNattKeepaliveWithFd(in Network network, in ParcelFileDescriptor pfd, int resourceId,
190             int intervalSeconds, in ISocketKeepaliveCallback cb, String srcAddr,
191             String dstAddr, boolean automaticOnOffKeepalives, in Network underpinnedNetwork);
192 
startTcpKeepalive(in Network network, in ParcelFileDescriptor pfd, int intervalSeconds, in ISocketKeepaliveCallback cb)193     void startTcpKeepalive(in Network network, in ParcelFileDescriptor pfd, int intervalSeconds,
194             in ISocketKeepaliveCallback cb);
195 
stopKeepalive(in ISocketKeepaliveCallback cb)196     void stopKeepalive(in ISocketKeepaliveCallback cb);
197 
getSupportedKeepalives()198     int[] getSupportedKeepalives();
199 
getCaptivePortalServerUrl()200     String getCaptivePortalServerUrl();
201 
getNetworkWatchlistConfigHash()202     byte[] getNetworkWatchlistConfigHash();
203 
getConnectionOwnerUid(in ConnectionInfo connectionInfo)204     int getConnectionOwnerUid(in ConnectionInfo connectionInfo);
205 
registerConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback, in NetworkRequest request, String callingPackageName)206     void registerConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback,
207             in NetworkRequest request, String callingPackageName);
unregisterConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback)208     void unregisterConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback);
209 
startOrGetTestNetworkService()210     IBinder startOrGetTestNetworkService();
211 
simulateDataStall(int detectionMethod, long timestampMillis, in Network network, in PersistableBundle extras)212     void simulateDataStall(int detectionMethod, long timestampMillis, in Network network,
213                 in PersistableBundle extras);
214 
systemReady()215     void systemReady();
216 
registerNetworkActivityListener(in INetworkActivityListener l)217     void registerNetworkActivityListener(in INetworkActivityListener l);
218 
unregisterNetworkActivityListener(in INetworkActivityListener l)219     void unregisterNetworkActivityListener(in INetworkActivityListener l);
220 
isDefaultNetworkActive()221     boolean isDefaultNetworkActive();
222 
registerQosSocketCallback(in QosSocketInfo socketInfo, in IQosCallback callback)223     void registerQosSocketCallback(in QosSocketInfo socketInfo, in IQosCallback callback);
unregisterQosCallback(in IQosCallback callback)224     void unregisterQosCallback(in IQosCallback callback);
225 
setOemNetworkPreference(in OemNetworkPreferences preference, in IOnCompleteListener listener)226     void setOemNetworkPreference(in OemNetworkPreferences preference,
227             in IOnCompleteListener listener);
228 
setProfileNetworkPreferences(in UserHandle profile, in List<ProfileNetworkPreference> preferences, in IOnCompleteListener listener)229     void setProfileNetworkPreferences(in UserHandle profile,
230             in List<ProfileNetworkPreference>  preferences,
231             in IOnCompleteListener listener);
232 
getRestrictBackgroundStatusByCaller()233     int getRestrictBackgroundStatusByCaller();
234 
offerNetwork(int providerId, in NetworkScore score, in NetworkCapabilities caps, in INetworkOfferCallback callback)235     void offerNetwork(int providerId, in NetworkScore score,
236             in NetworkCapabilities caps, in INetworkOfferCallback callback);
unofferNetwork(in INetworkOfferCallback callback)237     void unofferNetwork(in INetworkOfferCallback callback);
238 
setTestAllowBadWifiUntil(long timeMs)239     void setTestAllowBadWifiUntil(long timeMs);
240 
updateMeteredNetworkAllowList(int uid, boolean add)241     void updateMeteredNetworkAllowList(int uid, boolean add);
242 
updateMeteredNetworkDenyList(int uid, boolean add)243     void updateMeteredNetworkDenyList(int uid, boolean add);
244 
setUidFirewallRule(int chain, int uid, int rule)245     void setUidFirewallRule(int chain, int uid, int rule);
246 
getUidFirewallRule(int chain, int uid)247     int getUidFirewallRule(int chain, int uid);
248 
setFirewallChainEnabled(int chain, boolean enable)249     void setFirewallChainEnabled(int chain, boolean enable);
250 
getFirewallChainEnabled(int chain)251     boolean getFirewallChainEnabled(int chain);
252 
replaceFirewallChain(int chain, in int[] uids)253     void replaceFirewallChain(int chain, in int[] uids);
254 
getCompanionDeviceManagerProxyService()255     IBinder getCompanionDeviceManagerProxyService();
256 
setVpnNetworkPreference(String session, in UidRange[] ranges)257     void setVpnNetworkPreference(String session, in UidRange[] ranges);
258 
setTestLowTcpPollingTimerForKeepalive(long timeMs)259     void setTestLowTcpPollingTimerForKeepalive(long timeMs);
260 }
261