Loading api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -26987,6 +26987,7 @@ package android.net { method public android.net.Network[] getAllNetworks(); method public deprecated boolean getBackgroundDataSetting(); method public android.net.Network getBoundNetworkForProcess(); method public int getConnectionOwnerUid(int, java.net.InetSocketAddress, java.net.InetSocketAddress); method public android.net.ProxyInfo getDefaultProxy(); method public android.net.LinkProperties getLinkProperties(android.net.Network); method public int getMultipathPreference(android.net.Network); Loading Loading @@ -33113,6 +33114,7 @@ package android.os { method public static final void setThreadPriority(int) throws java.lang.IllegalArgumentException, java.lang.SecurityException; method public static final deprecated boolean supportsProcesses(); field public static final int FIRST_APPLICATION_UID = 10000; // 0x2710 field public static final int INVALID_UID = -1; // 0xffffffff field public static final int LAST_APPLICATION_UID = 19999; // 0x4e1f field public static final int PHONE_UID = 1001; // 0x3e9 field public static final int SIGNAL_KILL = 9; // 0x9 core/java/android/net/ConnectionInfo.aidl 0 → 100644 +20 −0 Original line number Diff line number Diff line /* ** ** Copyright (C) 2018 The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ package android.net; parcelable ConnectionInfo; core/java/android/net/ConnectionInfo.java 0 → 100644 +83 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.net; import android.os.Parcel; import android.os.Parcelable; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.UnknownHostException; /** * Describe a network connection including local and remote address/port of a connection and the * transport protocol. * * @hide */ public final class ConnectionInfo implements Parcelable { public final int protocol; public final InetSocketAddress local; public final InetSocketAddress remote; @Override public int describeContents() { return 0; } public ConnectionInfo(int protocol, InetSocketAddress local, InetSocketAddress remote) { this.protocol = protocol; this.local = local; this.remote = remote; } @Override public void writeToParcel(Parcel out, int flags) { out.writeInt(protocol); out.writeByteArray(local.getAddress().getAddress()); out.writeInt(local.getPort()); out.writeByteArray(remote.getAddress().getAddress()); out.writeInt(remote.getPort()); } public static final Creator<ConnectionInfo> CREATOR = new Creator<ConnectionInfo>() { public ConnectionInfo createFromParcel(Parcel in) { int protocol = in.readInt(); InetAddress localAddress; try { localAddress = InetAddress.getByAddress(in.createByteArray()); } catch (UnknownHostException e) { throw new IllegalArgumentException("Invalid InetAddress"); } int localPort = in.readInt(); InetAddress remoteAddress; try { remoteAddress = InetAddress.getByAddress(in.createByteArray()); } catch (UnknownHostException e) { throw new IllegalArgumentException("Invalid InetAddress"); } int remotePort = in.readInt(); InetSocketAddress local = new InetSocketAddress(localAddress, localPort); InetSocketAddress remote = new InetSocketAddress(remoteAddress, remotePort); return new ConnectionInfo(protocol, local, remote); } public ConnectionInfo[] newArray(int size) { return new ConnectionInfo[size]; } }; } core/java/android/net/ConnectivityManager.java +23 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ import libcore.net.event.NetworkEventDispatcher; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.net.InetAddress; import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.HashMap; import java.util.List; Loading Loading @@ -3930,4 +3931,26 @@ public class ConnectivityManager { throw e.rethrowFromSystemServer(); } } /** * Returns the {@code uid} of the owner of a network connection. * * @param protocol The protocol of the connection. Only {@code IPPROTO_TCP} and * {@code IPPROTO_UDP} currently supported. * @param local The local {@link InetSocketAddress} of a connection. * @param remote The remote {@link InetSocketAddress} of a connection. * * @return {@code uid} if the connection is found and the app has permission to observe it * (e.g., if it is associated with the calling VPN app's tunnel) or * {@link android.os.Process#INVALID_UID} if the connection is not found. */ public int getConnectionOwnerUid(int protocol, InetSocketAddress local, InetSocketAddress remote) { ConnectionInfo connectionInfo = new ConnectionInfo(protocol, local, remote); try { return mService.getConnectionOwnerUid(connectionInfo); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } } core/java/android/net/IConnectivityManager.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.net; import android.app.PendingIntent; import android.net.ConnectionInfo; import android.net.LinkProperties; import android.net.Network; import android.net.NetworkCapabilities; Loading Loading @@ -182,4 +183,6 @@ interface IConnectivityManager String getCaptivePortalServerUrl(); byte[] getNetworkWatchlistConfigHash(); int getConnectionOwnerUid(in ConnectionInfo connectionInfo); } Loading
api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -26987,6 +26987,7 @@ package android.net { method public android.net.Network[] getAllNetworks(); method public deprecated boolean getBackgroundDataSetting(); method public android.net.Network getBoundNetworkForProcess(); method public int getConnectionOwnerUid(int, java.net.InetSocketAddress, java.net.InetSocketAddress); method public android.net.ProxyInfo getDefaultProxy(); method public android.net.LinkProperties getLinkProperties(android.net.Network); method public int getMultipathPreference(android.net.Network); Loading Loading @@ -33113,6 +33114,7 @@ package android.os { method public static final void setThreadPriority(int) throws java.lang.IllegalArgumentException, java.lang.SecurityException; method public static final deprecated boolean supportsProcesses(); field public static final int FIRST_APPLICATION_UID = 10000; // 0x2710 field public static final int INVALID_UID = -1; // 0xffffffff field public static final int LAST_APPLICATION_UID = 19999; // 0x4e1f field public static final int PHONE_UID = 1001; // 0x3e9 field public static final int SIGNAL_KILL = 9; // 0x9
core/java/android/net/ConnectionInfo.aidl 0 → 100644 +20 −0 Original line number Diff line number Diff line /* ** ** Copyright (C) 2018 The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ package android.net; parcelable ConnectionInfo;
core/java/android/net/ConnectionInfo.java 0 → 100644 +83 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.net; import android.os.Parcel; import android.os.Parcelable; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.UnknownHostException; /** * Describe a network connection including local and remote address/port of a connection and the * transport protocol. * * @hide */ public final class ConnectionInfo implements Parcelable { public final int protocol; public final InetSocketAddress local; public final InetSocketAddress remote; @Override public int describeContents() { return 0; } public ConnectionInfo(int protocol, InetSocketAddress local, InetSocketAddress remote) { this.protocol = protocol; this.local = local; this.remote = remote; } @Override public void writeToParcel(Parcel out, int flags) { out.writeInt(protocol); out.writeByteArray(local.getAddress().getAddress()); out.writeInt(local.getPort()); out.writeByteArray(remote.getAddress().getAddress()); out.writeInt(remote.getPort()); } public static final Creator<ConnectionInfo> CREATOR = new Creator<ConnectionInfo>() { public ConnectionInfo createFromParcel(Parcel in) { int protocol = in.readInt(); InetAddress localAddress; try { localAddress = InetAddress.getByAddress(in.createByteArray()); } catch (UnknownHostException e) { throw new IllegalArgumentException("Invalid InetAddress"); } int localPort = in.readInt(); InetAddress remoteAddress; try { remoteAddress = InetAddress.getByAddress(in.createByteArray()); } catch (UnknownHostException e) { throw new IllegalArgumentException("Invalid InetAddress"); } int remotePort = in.readInt(); InetSocketAddress local = new InetSocketAddress(localAddress, localPort); InetSocketAddress remote = new InetSocketAddress(remoteAddress, remotePort); return new ConnectionInfo(protocol, local, remote); } public ConnectionInfo[] newArray(int size) { return new ConnectionInfo[size]; } }; }
core/java/android/net/ConnectivityManager.java +23 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ import libcore.net.event.NetworkEventDispatcher; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.net.InetAddress; import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.HashMap; import java.util.List; Loading Loading @@ -3930,4 +3931,26 @@ public class ConnectivityManager { throw e.rethrowFromSystemServer(); } } /** * Returns the {@code uid} of the owner of a network connection. * * @param protocol The protocol of the connection. Only {@code IPPROTO_TCP} and * {@code IPPROTO_UDP} currently supported. * @param local The local {@link InetSocketAddress} of a connection. * @param remote The remote {@link InetSocketAddress} of a connection. * * @return {@code uid} if the connection is found and the app has permission to observe it * (e.g., if it is associated with the calling VPN app's tunnel) or * {@link android.os.Process#INVALID_UID} if the connection is not found. */ public int getConnectionOwnerUid(int protocol, InetSocketAddress local, InetSocketAddress remote) { ConnectionInfo connectionInfo = new ConnectionInfo(protocol, local, remote); try { return mService.getConnectionOwnerUid(connectionInfo); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } }
core/java/android/net/IConnectivityManager.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.net; import android.app.PendingIntent; import android.net.ConnectionInfo; import android.net.LinkProperties; import android.net.Network; import android.net.NetworkCapabilities; Loading Loading @@ -182,4 +183,6 @@ interface IConnectivityManager String getCaptivePortalServerUrl(); byte[] getNetworkWatchlistConfigHash(); int getConnectionOwnerUid(in ConnectionInfo connectionInfo); }