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