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)189 void startNattKeepaliveWithFd(in Network network, in ParcelFileDescriptor pfd, int resourceId, 190 int intervalSeconds, in ISocketKeepaliveCallback cb, String srcAddr, 191 String dstAddr); 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 Network network, int slot)196 void stopKeepalive(in Network network, int slot); 197 getCaptivePortalServerUrl()198 String getCaptivePortalServerUrl(); 199 getNetworkWatchlistConfigHash()200 byte[] getNetworkWatchlistConfigHash(); 201 getConnectionOwnerUid(in ConnectionInfo connectionInfo)202 int getConnectionOwnerUid(in ConnectionInfo connectionInfo); 203 registerConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback, in NetworkRequest request, String callingPackageName)204 void registerConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback, 205 in NetworkRequest request, String callingPackageName); unregisterConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback)206 void unregisterConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback); 207 startOrGetTestNetworkService()208 IBinder startOrGetTestNetworkService(); 209 simulateDataStall(int detectionMethod, long timestampMillis, in Network network, in PersistableBundle extras)210 void simulateDataStall(int detectionMethod, long timestampMillis, in Network network, 211 in PersistableBundle extras); 212 systemReady()213 void systemReady(); 214 registerNetworkActivityListener(in INetworkActivityListener l)215 void registerNetworkActivityListener(in INetworkActivityListener l); 216 unregisterNetworkActivityListener(in INetworkActivityListener l)217 void unregisterNetworkActivityListener(in INetworkActivityListener l); 218 isDefaultNetworkActive()219 boolean isDefaultNetworkActive(); 220 registerQosSocketCallback(in QosSocketInfo socketInfo, in IQosCallback callback)221 void registerQosSocketCallback(in QosSocketInfo socketInfo, in IQosCallback callback); unregisterQosCallback(in IQosCallback callback)222 void unregisterQosCallback(in IQosCallback callback); 223 setOemNetworkPreference(in OemNetworkPreferences preference, in IOnCompleteListener listener)224 void setOemNetworkPreference(in OemNetworkPreferences preference, 225 in IOnCompleteListener listener); 226 setProfileNetworkPreferences(in UserHandle profile, in List<ProfileNetworkPreference> preferences, in IOnCompleteListener listener)227 void setProfileNetworkPreferences(in UserHandle profile, 228 in List<ProfileNetworkPreference> preferences, 229 in IOnCompleteListener listener); 230 getRestrictBackgroundStatusByCaller()231 int getRestrictBackgroundStatusByCaller(); 232 offerNetwork(int providerId, in NetworkScore score, in NetworkCapabilities caps, in INetworkOfferCallback callback)233 void offerNetwork(int providerId, in NetworkScore score, 234 in NetworkCapabilities caps, in INetworkOfferCallback callback); unofferNetwork(in INetworkOfferCallback callback)235 void unofferNetwork(in INetworkOfferCallback callback); 236 setTestAllowBadWifiUntil(long timeMs)237 void setTestAllowBadWifiUntil(long timeMs); 238 updateMeteredNetworkAllowList(int uid, boolean add)239 void updateMeteredNetworkAllowList(int uid, boolean add); 240 updateMeteredNetworkDenyList(int uid, boolean add)241 void updateMeteredNetworkDenyList(int uid, boolean add); 242 setUidFirewallRule(int chain, int uid, int rule)243 void setUidFirewallRule(int chain, int uid, int rule); 244 setFirewallChainEnabled(int chain, boolean enable)245 void setFirewallChainEnabled(int chain, boolean enable); 246 replaceFirewallChain(int chain, in int[] uids)247 void replaceFirewallChain(int chain, in int[] uids); 248 } 249