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