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