Loading api/current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -27255,6 +27255,7 @@ package android.net { method public static long getMobileTxBytes(); method public static long getMobileTxPackets(); method public static int getThreadStatsTag(); method public static int getThreadStatsUid(); method public static long getTotalRxBytes(); method public static long getTotalRxPackets(); method public static long getTotalTxBytes(); Loading @@ -27274,7 +27275,7 @@ package android.net { method public static void incrementOperationCount(int); method public static void incrementOperationCount(int, int); method public static void setThreadStatsTag(int); method public static void setThreadStatsUidSelf(); method public static void setThreadStatsUid(int); method public static void tagDatagramSocket(java.net.DatagramSocket) throws java.net.SocketException; method public static void tagFileDescriptor(java.io.FileDescriptor) throws java.io.IOException; method public static void tagSocket(java.net.Socket) throws java.net.SocketException; api/removed.txt +4 −0 Original line number Diff line number Diff line Loading @@ -261,6 +261,10 @@ package android.net { method public static deprecated org.apache.http.conn.ssl.SSLSocketFactory getHttpSocketFactory(int, android.net.SSLSessionCache); } public class TrafficStats { method public static deprecated void setThreadStatsUidSelf(); } } package android.os { Loading core/java/android/net/TrafficStats.java +24 −8 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package android.net; import android.annotation.RequiresPermission; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.TestApi; Loading Loading @@ -259,22 +258,35 @@ public class TrafficStats { /** * Set specific UID to use when accounting {@link Socket} traffic * originating from the current thread. Designed for use when performing an * operation on behalf of another application. * operation on behalf of another application, or when another application * is performing operations on your behalf. * <p> * Any app can <em>accept</em> blame for traffic performed on a socket * originally created by another app by calling this method with the * {@link android.system.Os#getuid()} value. However, only apps holding the * {@code android.Manifest.permission#UPDATE_DEVICE_STATS} permission may * <em>assign</em> blame to another UIDs. * <p> * Changes only take effect during subsequent calls to * {@link #tagSocket(Socket)}. * <p> * To take effect, caller must hold * {@link android.Manifest.permission#UPDATE_DEVICE_STATS} permission. * * @hide */ @SystemApi @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) @SuppressLint("Doclava125") public static void setThreadStatsUid(int uid) { NetworkManagementSocketTagger.setThreadSocketStatsUid(uid); } /** * Get the active UID used when accounting {@link Socket} traffic originating * from the current thread. Only one active tag per thread is supported. * {@link #tagSocket(Socket)}. * * @see #setThreadStatsUid(int) */ public static int getThreadStatsUid() { return NetworkManagementSocketTagger.getThreadSocketStatsUid(); } /** * Set specific UID to use when accounting {@link Socket} traffic * originating from the current thread as the calling UID. Designed for use Loading @@ -282,7 +294,11 @@ public class TrafficStats { * <p> * Changes only take effect during subsequent calls to * {@link #tagSocket(Socket)}. * * @removed * @deprecated use {@link #setThreadStatsUid(int)} instead. */ @Deprecated public static void setThreadStatsUidSelf() { setThreadStatsUid(android.os.Process.myUid()); } Loading core/java/com/android/server/NetworkManagementSocketTagger.java +4 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,10 @@ public final class NetworkManagementSocketTagger extends SocketTagger { return old; } public static int getThreadSocketStatsUid() { return threadSocketTags.get().statsUid; } @Override public void tag(FileDescriptor fd) throws SocketException { final SocketTags options = threadSocketTags.get(); Loading Loading
api/current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -27255,6 +27255,7 @@ package android.net { method public static long getMobileTxBytes(); method public static long getMobileTxPackets(); method public static int getThreadStatsTag(); method public static int getThreadStatsUid(); method public static long getTotalRxBytes(); method public static long getTotalRxPackets(); method public static long getTotalTxBytes(); Loading @@ -27274,7 +27275,7 @@ package android.net { method public static void incrementOperationCount(int); method public static void incrementOperationCount(int, int); method public static void setThreadStatsTag(int); method public static void setThreadStatsUidSelf(); method public static void setThreadStatsUid(int); method public static void tagDatagramSocket(java.net.DatagramSocket) throws java.net.SocketException; method public static void tagFileDescriptor(java.io.FileDescriptor) throws java.io.IOException; method public static void tagSocket(java.net.Socket) throws java.net.SocketException;
api/removed.txt +4 −0 Original line number Diff line number Diff line Loading @@ -261,6 +261,10 @@ package android.net { method public static deprecated org.apache.http.conn.ssl.SSLSocketFactory getHttpSocketFactory(int, android.net.SSLSessionCache); } public class TrafficStats { method public static deprecated void setThreadStatsUidSelf(); } } package android.os { Loading
core/java/android/net/TrafficStats.java +24 −8 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package android.net; import android.annotation.RequiresPermission; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.TestApi; Loading Loading @@ -259,22 +258,35 @@ public class TrafficStats { /** * Set specific UID to use when accounting {@link Socket} traffic * originating from the current thread. Designed for use when performing an * operation on behalf of another application. * operation on behalf of another application, or when another application * is performing operations on your behalf. * <p> * Any app can <em>accept</em> blame for traffic performed on a socket * originally created by another app by calling this method with the * {@link android.system.Os#getuid()} value. However, only apps holding the * {@code android.Manifest.permission#UPDATE_DEVICE_STATS} permission may * <em>assign</em> blame to another UIDs. * <p> * Changes only take effect during subsequent calls to * {@link #tagSocket(Socket)}. * <p> * To take effect, caller must hold * {@link android.Manifest.permission#UPDATE_DEVICE_STATS} permission. * * @hide */ @SystemApi @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) @SuppressLint("Doclava125") public static void setThreadStatsUid(int uid) { NetworkManagementSocketTagger.setThreadSocketStatsUid(uid); } /** * Get the active UID used when accounting {@link Socket} traffic originating * from the current thread. Only one active tag per thread is supported. * {@link #tagSocket(Socket)}. * * @see #setThreadStatsUid(int) */ public static int getThreadStatsUid() { return NetworkManagementSocketTagger.getThreadSocketStatsUid(); } /** * Set specific UID to use when accounting {@link Socket} traffic * originating from the current thread as the calling UID. Designed for use Loading @@ -282,7 +294,11 @@ public class TrafficStats { * <p> * Changes only take effect during subsequent calls to * {@link #tagSocket(Socket)}. * * @removed * @deprecated use {@link #setThreadStatsUid(int)} instead. */ @Deprecated public static void setThreadStatsUidSelf() { setThreadStatsUid(android.os.Process.myUid()); } Loading
core/java/com/android/server/NetworkManagementSocketTagger.java +4 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,10 @@ public final class NetworkManagementSocketTagger extends SocketTagger { return old; } public static int getThreadSocketStatsUid() { return threadSocketTags.get().statsUid; } @Override public void tag(FileDescriptor fd) throws SocketException { final SocketTags options = threadSocketTags.get(); Loading