[MS54.3] Move NetworkStats to updatable sources

This CL builds NetworkStats related codes with the
connectivity module instead of platform.

Ignore-AOSP-First: Avoiding conflicts; cherry-pick will follow
Test: TH
Bug: 197717846
Change-Id: I4eeb7ea9cfc3139991caf0fc22474e0052a0391c
This commit is contained in:
Junyu Lai
2022-01-17 11:52:57 +00:00
committed by Remi NGUYEN VAN
parent bdaa351e8a
commit 2ef865e0fd
17 changed files with 852 additions and 13 deletions

View File

@@ -50,6 +50,7 @@ java_defaults {
],
libs: [
"framework-connectivity",
"framework-connectivity-tiramisu.stubs.module_lib",
"framework-statsd.stubs.module_lib",
"framework-tethering.impl",
"framework-wifi",

View File

@@ -130,7 +130,10 @@ bootclasspath_fragment {
"hiddenapi/hiddenapi-max-target-o-low-priority.txt",
"hiddenapi/hiddenapi-max-target-o-low-priority-tiramisu.txt",
],
unsupported: ["hiddenapi/hiddenapi-unsupported.txt"],
unsupported: [
"hiddenapi/hiddenapi-unsupported.txt",
"hiddenapi/hiddenapi-unsupported-tiramisu.txt",
],
},
}

View File

@@ -1,3 +1,82 @@
Landroid/app/usage/NetworkStats$Bucket;->convertDefaultNetworkStatus(I)I
Landroid/app/usage/NetworkStats$Bucket;->convertMetered(I)I
Landroid/app/usage/NetworkStats$Bucket;->convertRoaming(I)I
Landroid/app/usage/NetworkStats$Bucket;->convertSet(I)I
Landroid/app/usage/NetworkStats$Bucket;->convertState(I)I
Landroid/app/usage/NetworkStats$Bucket;->convertTag(I)I
Landroid/app/usage/NetworkStats$Bucket;->convertUid(I)I
Landroid/app/usage/NetworkStats$Bucket;->mBeginTimeStamp:J
Landroid/app/usage/NetworkStats$Bucket;->mDefaultNetworkStatus:I
Landroid/app/usage/NetworkStats$Bucket;->mEndTimeStamp:J
Landroid/app/usage/NetworkStats$Bucket;->mMetered:I
Landroid/app/usage/NetworkStats$Bucket;->mRoaming:I
Landroid/app/usage/NetworkStats$Bucket;->mRxBytes:J
Landroid/app/usage/NetworkStats$Bucket;->mRxPackets:J
Landroid/app/usage/NetworkStats$Bucket;->mState:I
Landroid/app/usage/NetworkStats$Bucket;->mTag:I
Landroid/app/usage/NetworkStats$Bucket;->mTxBytes:J
Landroid/app/usage/NetworkStats$Bucket;->mTxPackets:J
Landroid/app/usage/NetworkStats$Bucket;->mUid:I
Landroid/app/usage/NetworkStats;-><init>(Landroid/content/Context;Landroid/net/NetworkTemplate;IJJLandroid/net/INetworkStatsService;)V
Landroid/app/usage/NetworkStats;->fillBucketFromSummaryEntry(Landroid/app/usage/NetworkStats$Bucket;)V
Landroid/app/usage/NetworkStats;->getDeviceSummaryForNetwork()Landroid/app/usage/NetworkStats$Bucket;
Landroid/app/usage/NetworkStats;->getNextHistoryBucket(Landroid/app/usage/NetworkStats$Bucket;)Z
Landroid/app/usage/NetworkStats;->getNextSummaryBucket(Landroid/app/usage/NetworkStats$Bucket;)Z
Landroid/app/usage/NetworkStats;->getSummaryAggregate()Landroid/app/usage/NetworkStats$Bucket;
Landroid/app/usage/NetworkStats;->getUid()I
Landroid/app/usage/NetworkStats;->hasNextUid()Z
Landroid/app/usage/NetworkStats;->isUidEnumeration()Z
Landroid/app/usage/NetworkStats;->mCloseGuard:Ldalvik/system/CloseGuard;
Landroid/app/usage/NetworkStats;->mEndTimeStamp:J
Landroid/app/usage/NetworkStats;->mEnumerationIndex:I
Landroid/app/usage/NetworkStats;->mHistory:Landroid/net/NetworkStatsHistory;
Landroid/app/usage/NetworkStats;->mRecycledHistoryEntry:Landroid/net/NetworkStatsHistory$Entry;
Landroid/app/usage/NetworkStats;->mRecycledSummaryEntry:Landroid/net/NetworkStats$Entry;
Landroid/app/usage/NetworkStats;->mSession:Landroid/net/INetworkStatsSession;
Landroid/app/usage/NetworkStats;->mStartTimeStamp:J
Landroid/app/usage/NetworkStats;->mState:I
Landroid/app/usage/NetworkStats;->mSummary:Landroid/net/NetworkStats;
Landroid/app/usage/NetworkStats;->mTag:I
Landroid/app/usage/NetworkStats;->mTemplate:Landroid/net/NetworkTemplate;
Landroid/app/usage/NetworkStats;->mUidOrUidIndex:I
Landroid/app/usage/NetworkStats;->mUids:[I
Landroid/app/usage/NetworkStats;->setSingleUidTagState(III)V
Landroid/app/usage/NetworkStats;->startHistoryEnumeration(III)V
Landroid/app/usage/NetworkStats;->startSummaryEnumeration()V
Landroid/app/usage/NetworkStats;->startUserUidEnumeration()V
Landroid/app/usage/NetworkStats;->stepHistory()V
Landroid/app/usage/NetworkStats;->stepUid()V
Landroid/app/usage/NetworkStats;->TAG:Ljava/lang/String;
Landroid/app/usage/NetworkStatsManager$CallbackHandler;-><init>(Landroid/os/Looper;ILjava/lang/String;Landroid/app/usage/NetworkStatsManager$UsageCallback;)V
Landroid/app/usage/NetworkStatsManager$CallbackHandler;->getObject(Landroid/os/Message;Ljava/lang/String;)Ljava/lang/Object;
Landroid/app/usage/NetworkStatsManager$CallbackHandler;->mCallback:Landroid/app/usage/NetworkStatsManager$UsageCallback;
Landroid/app/usage/NetworkStatsManager$CallbackHandler;->mNetworkType:I
Landroid/app/usage/NetworkStatsManager$CallbackHandler;->mSubscriberId:Ljava/lang/String;
Landroid/app/usage/NetworkStatsManager$UsageCallback;->request:Landroid/net/DataUsageRequest;
Landroid/app/usage/NetworkStatsManager;-><init>(Landroid/content/Context;Landroid/net/INetworkStatsService;)V
Landroid/app/usage/NetworkStatsManager;->CALLBACK_LIMIT_REACHED:I
Landroid/app/usage/NetworkStatsManager;->CALLBACK_RELEASED:I
Landroid/app/usage/NetworkStatsManager;->createTemplate(ILjava/lang/String;)Landroid/net/NetworkTemplate;
Landroid/app/usage/NetworkStatsManager;->DBG:Z
Landroid/app/usage/NetworkStatsManager;->FLAG_AUGMENT_WITH_SUBSCRIPTION_PLAN:I
Landroid/app/usage/NetworkStatsManager;->FLAG_POLL_FORCE:I
Landroid/app/usage/NetworkStatsManager;->FLAG_POLL_ON_OPEN:I
Landroid/app/usage/NetworkStatsManager;->mContext:Landroid/content/Context;
Landroid/app/usage/NetworkStatsManager;->mFlags:I
Landroid/app/usage/NetworkStatsManager;->MIN_THRESHOLD_BYTES:J
Landroid/app/usage/NetworkStatsManager;->mService:Landroid/net/INetworkStatsService;
Landroid/app/usage/NetworkStatsManager;->querySummaryForDevice(Landroid/net/NetworkTemplate;JJ)Landroid/app/usage/NetworkStats$Bucket;
Landroid/app/usage/NetworkStatsManager;->registerUsageCallback(Landroid/net/NetworkTemplate;IJLandroid/app/usage/NetworkStatsManager$UsageCallback;Landroid/os/Handler;)V
Landroid/app/usage/NetworkStatsManager;->setAugmentWithSubscriptionPlan(Z)V
Landroid/app/usage/NetworkStatsManager;->setPollOnOpen(Z)V
Landroid/app/usage/NetworkStatsManager;->TAG:Ljava/lang/String;
Landroid/net/DataUsageRequest;-><init>(ILandroid/net/NetworkTemplate;J)V
Landroid/net/DataUsageRequest;->CREATOR:Landroid/os/Parcelable$Creator;
Landroid/net/DataUsageRequest;->PARCELABLE_KEY:Ljava/lang/String;
Landroid/net/DataUsageRequest;->requestId:I
Landroid/net/DataUsageRequest;->REQUEST_ID_UNSET:I
Landroid/net/DataUsageRequest;->template:Landroid/net/NetworkTemplate;
Landroid/net/DataUsageRequest;->thresholdInBytes:J
Landroid/net/IIpSecService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/net/IIpSecService$Stub$Proxy;->addAddressToTunnelInterface(ILandroid/net/LinkAddress;Ljava/lang/String;)V
Landroid/net/IIpSecService$Stub$Proxy;->allocateSecurityParameterIndex(Ljava/lang/String;ILandroid/os/IBinder;)Landroid/net/IpSecSpiResponse;
@@ -43,6 +122,68 @@ Landroid/net/IIpSecService;->openUdpEncapsulationSocket(ILandroid/os/IBinder;)La
Landroid/net/IIpSecService;->releaseSecurityParameterIndex(I)V
Landroid/net/IIpSecService;->removeAddressFromTunnelInterface(ILandroid/net/LinkAddress;Ljava/lang/String;)V
Landroid/net/IIpSecService;->removeTransportModeTransforms(Landroid/os/ParcelFileDescriptor;)V
Landroid/net/INetworkStatsService$Stub$Proxy;->forceUpdate()V
Landroid/net/INetworkStatsService$Stub$Proxy;->forceUpdateIfaces([Landroid/net/Network;)V
Landroid/net/INetworkStatsService$Stub$Proxy;->getDataLayerSnapshotForUid(I)Landroid/net/NetworkStats;
Landroid/net/INetworkStatsService$Stub$Proxy;->getDetailedUidStats([Ljava/lang/String;)Landroid/net/NetworkStats;
Landroid/net/INetworkStatsService$Stub$Proxy;->getIfaceStats(Ljava/lang/String;I)J
Landroid/net/INetworkStatsService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
Landroid/net/INetworkStatsService$Stub$Proxy;->getTotalStats(I)J
Landroid/net/INetworkStatsService$Stub$Proxy;->getUidStats(II)J
Landroid/net/INetworkStatsService$Stub$Proxy;->incrementOperationCount(III)V
Landroid/net/INetworkStatsService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
Landroid/net/INetworkStatsService$Stub$Proxy;->openSession()Landroid/net/INetworkStatsSession;
Landroid/net/INetworkStatsService$Stub$Proxy;->openSessionForUsageStats(ILjava/lang/String;)Landroid/net/INetworkStatsSession;
Landroid/net/INetworkStatsService$Stub$Proxy;->registerUsageCallback(Ljava/lang/String;Landroid/net/DataUsageRequest;Landroid/os/Messenger;Landroid/os/IBinder;)Landroid/net/DataUsageRequest;
Landroid/net/INetworkStatsService$Stub$Proxy;->unregisterUsageRequest(Landroid/net/DataUsageRequest;)V
Landroid/net/INetworkStatsService$Stub;-><init>()V
Landroid/net/INetworkStatsService$Stub;->DESCRIPTOR:Ljava/lang/String;
Landroid/net/INetworkStatsService$Stub;->TRANSACTION_forceUpdate:I
Landroid/net/INetworkStatsService$Stub;->TRANSACTION_forceUpdateIfaces:I
Landroid/net/INetworkStatsService$Stub;->TRANSACTION_getDataLayerSnapshotForUid:I
Landroid/net/INetworkStatsService$Stub;->TRANSACTION_getDetailedUidStats:I
Landroid/net/INetworkStatsService$Stub;->TRANSACTION_getIfaceStats:I
Landroid/net/INetworkStatsService$Stub;->TRANSACTION_getMobileIfaces:I
Landroid/net/INetworkStatsService$Stub;->TRANSACTION_getTotalStats:I
Landroid/net/INetworkStatsService$Stub;->TRANSACTION_getUidStats:I
Landroid/net/INetworkStatsService$Stub;->TRANSACTION_incrementOperationCount:I
Landroid/net/INetworkStatsService$Stub;->TRANSACTION_openSession:I
Landroid/net/INetworkStatsService$Stub;->TRANSACTION_openSessionForUsageStats:I
Landroid/net/INetworkStatsService$Stub;->TRANSACTION_registerUsageCallback:I
Landroid/net/INetworkStatsService$Stub;->TRANSACTION_unregisterUsageRequest:I
Landroid/net/INetworkStatsService;->forceUpdateIfaces([Landroid/net/Network;)V
Landroid/net/INetworkStatsService;->getDetailedUidStats([Ljava/lang/String;)Landroid/net/NetworkStats;
Landroid/net/INetworkStatsService;->getIfaceStats(Ljava/lang/String;I)J
Landroid/net/INetworkStatsService;->getTotalStats(I)J
Landroid/net/INetworkStatsService;->getUidStats(II)J
Landroid/net/INetworkStatsService;->incrementOperationCount(III)V
Landroid/net/INetworkStatsService;->registerUsageCallback(Ljava/lang/String;Landroid/net/DataUsageRequest;Landroid/os/Messenger;Landroid/os/IBinder;)Landroid/net/DataUsageRequest;
Landroid/net/INetworkStatsService;->unregisterUsageRequest(Landroid/net/DataUsageRequest;)V
Landroid/net/INetworkStatsSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/net/INetworkStatsSession$Stub$Proxy;->close()V
Landroid/net/INetworkStatsSession$Stub$Proxy;->getDeviceSummaryForNetwork(Landroid/net/NetworkTemplate;JJ)Landroid/net/NetworkStats;
Landroid/net/INetworkStatsSession$Stub$Proxy;->getHistoryForNetwork(Landroid/net/NetworkTemplate;I)Landroid/net/NetworkStatsHistory;
Landroid/net/INetworkStatsSession$Stub$Proxy;->getHistoryForUid(Landroid/net/NetworkTemplate;IIII)Landroid/net/NetworkStatsHistory;
Landroid/net/INetworkStatsSession$Stub$Proxy;->getHistoryIntervalForUid(Landroid/net/NetworkTemplate;IIIIJJ)Landroid/net/NetworkStatsHistory;
Landroid/net/INetworkStatsSession$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
Landroid/net/INetworkStatsSession$Stub$Proxy;->getRelevantUids()[I
Landroid/net/INetworkStatsSession$Stub$Proxy;->getSummaryForAllUid(Landroid/net/NetworkTemplate;JJZ)Landroid/net/NetworkStats;
Landroid/net/INetworkStatsSession$Stub$Proxy;->getSummaryForNetwork(Landroid/net/NetworkTemplate;JJ)Landroid/net/NetworkStats;
Landroid/net/INetworkStatsSession$Stub$Proxy;->mRemote:Landroid/os/IBinder;
Landroid/net/INetworkStatsSession$Stub;-><init>()V
Landroid/net/INetworkStatsSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkStatsSession;
Landroid/net/INetworkStatsSession$Stub;->DESCRIPTOR:Ljava/lang/String;
Landroid/net/INetworkStatsSession$Stub;->TRANSACTION_close:I
Landroid/net/INetworkStatsSession$Stub;->TRANSACTION_getDeviceSummaryForNetwork:I
Landroid/net/INetworkStatsSession$Stub;->TRANSACTION_getHistoryForNetwork:I
Landroid/net/INetworkStatsSession$Stub;->TRANSACTION_getHistoryForUid:I
Landroid/net/INetworkStatsSession$Stub;->TRANSACTION_getHistoryIntervalForUid:I
Landroid/net/INetworkStatsSession$Stub;->TRANSACTION_getRelevantUids:I
Landroid/net/INetworkStatsSession$Stub;->TRANSACTION_getSummaryForAllUid:I
Landroid/net/INetworkStatsSession$Stub;->TRANSACTION_getSummaryForNetwork:I
Landroid/net/INetworkStatsSession;->getDeviceSummaryForNetwork(Landroid/net/NetworkTemplate;JJ)Landroid/net/NetworkStats;
Landroid/net/INetworkStatsSession;->getHistoryIntervalForUid(Landroid/net/NetworkTemplate;IIIIJJ)Landroid/net/NetworkStatsHistory;
Landroid/net/INetworkStatsSession;->getRelevantUids()[I
Landroid/net/IpSecAlgorithm;->checkValidOrThrow(Ljava/lang/String;II)V
Landroid/net/IpSecAlgorithm;->CRYPT_NULL:Ljava/lang/String;
Landroid/net/IpSecAlgorithm;->equals(Landroid/net/IpSecAlgorithm;Landroid/net/IpSecAlgorithm;)Z
@@ -298,3 +439,38 @@ Landroid/net/nsd/NsdServiceInfo;->mServiceType:Ljava/lang/String;
Landroid/net/nsd/NsdServiceInfo;->mTxtRecord:Landroid/util/ArrayMap;
Landroid/net/nsd/NsdServiceInfo;->setTxtRecords(Ljava/lang/String;)V
Landroid/net/nsd/NsdServiceInfo;->TAG:Ljava/lang/String;
Landroid/net/TrafficStats;->addIfSupported(J)J
Landroid/net/TrafficStats;->closeQuietly(Landroid/net/INetworkStatsSession;)V
Landroid/net/TrafficStats;->GB_IN_BYTES:J
Landroid/net/TrafficStats;->getDataLayerSnapshotForUid(Landroid/content/Context;)Landroid/net/NetworkStats;
Landroid/net/TrafficStats;->getRxPackets(Ljava/lang/String;)J
Landroid/net/TrafficStats;->getTxPackets(Ljava/lang/String;)J
Landroid/net/TrafficStats;->KB_IN_BYTES:J
Landroid/net/TrafficStats;->LOOPBACK_IFACE:Ljava/lang/String;
Landroid/net/TrafficStats;->MB_IN_BYTES:J
Landroid/net/TrafficStats;->PB_IN_BYTES:J
Landroid/net/TrafficStats;->sActiveProfilingStart:Landroid/net/NetworkStats;
Landroid/net/TrafficStats;->sProfilingLock:Ljava/lang/Object;
Landroid/net/TrafficStats;->sStatsService:Landroid/net/INetworkStatsService;
Landroid/net/TrafficStats;->startDataProfiling(Landroid/content/Context;)V
Landroid/net/TrafficStats;->stopDataProfiling(Landroid/content/Context;)Landroid/net/NetworkStats;
Landroid/net/TrafficStats;->TAG_SYSTEM_APP:I
Landroid/net/TrafficStats;->TAG_SYSTEM_BACKUP:I
Landroid/net/TrafficStats;->TAG_SYSTEM_DHCP:I
Landroid/net/TrafficStats;->TAG_SYSTEM_DOWNLOAD:I
Landroid/net/TrafficStats;->TAG_SYSTEM_GPS:I
Landroid/net/TrafficStats;->TAG_SYSTEM_MEDIA:I
Landroid/net/TrafficStats;->TAG_SYSTEM_NEIGHBOR:I
Landroid/net/TrafficStats;->TAG_SYSTEM_NTP:I
Landroid/net/TrafficStats;->TAG_SYSTEM_PAC:I
Landroid/net/TrafficStats;->TAG_SYSTEM_PROBE:I
Landroid/net/TrafficStats;->TAG_SYSTEM_RESTORE:I
Landroid/net/TrafficStats;->TB_IN_BYTES:J
Landroid/net/TrafficStats;->TYPE_RX_BYTES:I
Landroid/net/TrafficStats;->TYPE_RX_PACKETS:I
Landroid/net/TrafficStats;->TYPE_TCP_RX_PACKETS:I
Landroid/net/TrafficStats;->TYPE_TCP_TX_PACKETS:I
Landroid/net/TrafficStats;->TYPE_TX_BYTES:I
Landroid/net/TrafficStats;->TYPE_TX_PACKETS:I
Landroid/net/TrafficStats;->UID_REMOVED:I
Landroid/net/TrafficStats;->UID_TETHERING:I

View File

@@ -0,0 +1,3 @@
Landroid/net/INetworkStatsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/net/INetworkStatsService$Stub$Proxy;->getMobileIfaces()[Ljava/lang/String;
Landroid/net/INetworkStatsService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkStatsService;

View File

@@ -34,6 +34,7 @@ java_library {
libs: [
"framework-minus-apex",
"framework-connectivity.impl",
"framework-connectivity-tiramisu.impl",
"framework-tethering.impl",
],
visibility: [
@@ -67,6 +68,7 @@ java_defaults {
"framework-minus-apex",
"framework-res",
"framework-connectivity.impl",
"framework-connectivity-tiramisu.impl",
"framework-tethering.impl",
"framework-wifi.stubs.module_lib",
],

View File

@@ -54,6 +54,7 @@ java_defaults {
// The build system will use framework-bluetooth module_current stubs, because
// of sdk_version: "module_current" above.
"framework-bluetooth",
"framework-wifi",
// Compile against the entire implementation of framework-connectivity,
// including hidden methods. This is safe because if framework-connectivity-t is
// on the bootclasspath (i.e., T), then framework-connectivity is also on the
@@ -82,6 +83,7 @@ java_library {
defaults: ["framework-connectivity-tiramisu-defaults"],
libs: [
"framework-bluetooth",
"framework-wifi",
"framework-connectivity-pre-jarjar",
],
visibility: ["//packages/modules/Connectivity:__subpackages__"],
@@ -100,6 +102,7 @@ java_sdk_library {
// framework-connectivity-pre-jarjar match at runtime.
jarjar_rules: ":connectivity-jarjar-rules",
permitted_packages: [
"android.app.usage",
"android.net",
"android.net.nsd",
"android.nearby",

View File

@@ -1,4 +1,64 @@
// Signature format: 2.0
package android.app.usage {
public final class NetworkStats implements java.lang.AutoCloseable {
method public void close();
method public boolean getNextBucket(android.app.usage.NetworkStats.Bucket);
method public boolean hasNextBucket();
}
public static class NetworkStats.Bucket {
ctor public NetworkStats.Bucket();
method public int getDefaultNetworkStatus();
method public long getEndTimeStamp();
method public int getMetered();
method public int getRoaming();
method public long getRxBytes();
method public long getRxPackets();
method public long getStartTimeStamp();
method public int getState();
method public int getTag();
method public long getTxBytes();
method public long getTxPackets();
method public int getUid();
field public static final int DEFAULT_NETWORK_ALL = -1; // 0xffffffff
field public static final int DEFAULT_NETWORK_NO = 1; // 0x1
field public static final int DEFAULT_NETWORK_YES = 2; // 0x2
field public static final int METERED_ALL = -1; // 0xffffffff
field public static final int METERED_NO = 1; // 0x1
field public static final int METERED_YES = 2; // 0x2
field public static final int ROAMING_ALL = -1; // 0xffffffff
field public static final int ROAMING_NO = 1; // 0x1
field public static final int ROAMING_YES = 2; // 0x2
field public static final int STATE_ALL = -1; // 0xffffffff
field public static final int STATE_DEFAULT = 1; // 0x1
field public static final int STATE_FOREGROUND = 2; // 0x2
field public static final int TAG_NONE = 0; // 0x0
field public static final int UID_ALL = -1; // 0xffffffff
field public static final int UID_REMOVED = -4; // 0xfffffffc
field public static final int UID_TETHERING = -5; // 0xfffffffb
}
public class NetworkStatsManager {
method @WorkerThread public android.app.usage.NetworkStats queryDetails(int, String, long, long) throws android.os.RemoteException, java.lang.SecurityException;
method @WorkerThread public android.app.usage.NetworkStats queryDetailsForUid(int, String, long, long, int) throws java.lang.SecurityException;
method @WorkerThread public android.app.usage.NetworkStats queryDetailsForUidTag(int, String, long, long, int, int) throws java.lang.SecurityException;
method @WorkerThread public android.app.usage.NetworkStats queryDetailsForUidTagState(int, String, long, long, int, int, int) throws java.lang.SecurityException;
method @WorkerThread public android.app.usage.NetworkStats querySummary(int, String, long, long) throws android.os.RemoteException, java.lang.SecurityException;
method @WorkerThread public android.app.usage.NetworkStats.Bucket querySummaryForDevice(int, String, long, long) throws android.os.RemoteException, java.lang.SecurityException;
method @WorkerThread public android.app.usage.NetworkStats.Bucket querySummaryForUser(int, String, long, long) throws android.os.RemoteException, java.lang.SecurityException;
method public void registerUsageCallback(int, String, long, android.app.usage.NetworkStatsManager.UsageCallback);
method public void registerUsageCallback(int, String, long, android.app.usage.NetworkStatsManager.UsageCallback, @Nullable android.os.Handler);
method public void unregisterUsageCallback(android.app.usage.NetworkStatsManager.UsageCallback);
}
public abstract static class NetworkStatsManager.UsageCallback {
ctor public NetworkStatsManager.UsageCallback();
method public abstract void onThresholdReached(int, String);
}
}
package android.net {
public final class IpSecAlgorithm implements android.os.Parcelable {
@@ -70,6 +130,50 @@ package android.net {
method @NonNull public android.net.IpSecTransform.Builder setIpv4Encapsulation(@NonNull android.net.IpSecManager.UdpEncapsulationSocket, int);
}
public class TrafficStats {
ctor public TrafficStats();
method public static void clearThreadStatsTag();
method public static void clearThreadStatsUid();
method public static int getAndSetThreadStatsTag(int);
method public static long getMobileRxBytes();
method public static long getMobileRxPackets();
method public static long getMobileTxBytes();
method public static long getMobileTxPackets();
method public static long getRxBytes(@NonNull String);
method public static long getRxPackets(@NonNull String);
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();
method public static long getTotalTxPackets();
method public static long getTxBytes(@NonNull String);
method public static long getTxPackets(@NonNull String);
method public static long getUidRxBytes(int);
method public static long getUidRxPackets(int);
method @Deprecated public static long getUidTcpRxBytes(int);
method @Deprecated public static long getUidTcpRxSegments(int);
method @Deprecated public static long getUidTcpTxBytes(int);
method @Deprecated public static long getUidTcpTxSegments(int);
method public static long getUidTxBytes(int);
method public static long getUidTxPackets(int);
method @Deprecated public static long getUidUdpRxBytes(int);
method @Deprecated public static long getUidUdpRxPackets(int);
method @Deprecated public static long getUidUdpTxBytes(int);
method @Deprecated public static long getUidUdpTxPackets(int);
method public static void incrementOperationCount(int);
method public static void incrementOperationCount(int, int);
method public static void setThreadStatsTag(int);
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;
method public static void untagDatagramSocket(java.net.DatagramSocket) throws java.net.SocketException;
method public static void untagFileDescriptor(java.io.FileDescriptor) throws java.io.IOException;
method public static void untagSocket(java.net.Socket) throws java.net.SocketException;
field public static final int UNSUPPORTED = -1; // 0xffffffff
}
}
package android.net.nsd {

View File

@@ -1,7 +1,157 @@
// Baseline format: 1.0
BannedThrow: android.app.usage.NetworkStatsManager#queryDetails(int, String, long, long):
Methods must not mention RuntimeException subclasses in throws clauses (was `java.lang.SecurityException`)
BannedThrow: android.app.usage.NetworkStatsManager#queryDetailsForUid(int, String, long, long, int):
Methods must not mention RuntimeException subclasses in throws clauses (was `java.lang.SecurityException`)
BannedThrow: android.app.usage.NetworkStatsManager#queryDetailsForUidTag(int, String, long, long, int, int):
Methods must not mention RuntimeException subclasses in throws clauses (was `java.lang.SecurityException`)
BannedThrow: android.app.usage.NetworkStatsManager#queryDetailsForUidTagState(int, String, long, long, int, int, int):
Methods must not mention RuntimeException subclasses in throws clauses (was `java.lang.SecurityException`)
BannedThrow: android.app.usage.NetworkStatsManager#querySummary(int, String, long, long):
Methods must not mention RuntimeException subclasses in throws clauses (was `java.lang.SecurityException`)
BannedThrow: android.app.usage.NetworkStatsManager#querySummaryForDevice(int, String, long, long):
Methods must not mention RuntimeException subclasses in throws clauses (was `java.lang.SecurityException`)
BannedThrow: android.app.usage.NetworkStatsManager#querySummaryForUser(int, String, long, long):
Methods must not mention RuntimeException subclasses in throws clauses (was `java.lang.SecurityException`)
BuilderSetStyle: android.net.IpSecTransform.Builder#buildTransportModeTransform(java.net.InetAddress, android.net.IpSecManager.SecurityParameterIndex):
Builder methods names should use setFoo() / addFoo() / clearFoo() style: method android.net.IpSecTransform.Builder.buildTransportModeTransform(java.net.InetAddress,android.net.IpSecManager.SecurityParameterIndex)
EqualsAndHashCode: android.net.IpSecTransform#equals(Object):
Must override both equals and hashCode; missing one in android.net.IpSecTransform
ExecutorRegistration: android.app.usage.NetworkStatsManager#registerUsageCallback(int, String, long, android.app.usage.NetworkStatsManager.UsageCallback, android.os.Handler):
Registration methods should have overload that accepts delivery Executor: `registerUsageCallback`
GenericException: android.app.usage.NetworkStats#finalize():
Methods must not throw generic exceptions (`java.lang.Throwable`)
GenericException: android.net.IpSecManager.SecurityParameterIndex#finalize():
Methods must not throw generic exceptions (`java.lang.Throwable`)
GenericException: android.net.IpSecManager.UdpEncapsulationSocket#finalize():
Methods must not throw generic exceptions (`java.lang.Throwable`)
GenericException: android.net.IpSecTransform#finalize():
Methods must not throw generic exceptions (`java.lang.Throwable`)
MissingBuildMethod: android.net.IpSecTransform.Builder:
android.net.IpSecTransform.Builder does not declare a `build()` method, but builder classes are expected to
MissingNullability: android.app.usage.NetworkStats#getNextBucket(android.app.usage.NetworkStats.Bucket) parameter #0:
Missing nullability on parameter `bucketOut` in method `getNextBucket`
MissingNullability: android.app.usage.NetworkStatsManager#queryDetails(int, String, long, long):
Missing nullability on method `queryDetails` return
MissingNullability: android.app.usage.NetworkStatsManager#queryDetails(int, String, long, long) parameter #1:
Missing nullability on parameter `subscriberId` in method `queryDetails`
MissingNullability: android.app.usage.NetworkStatsManager#queryDetailsForUid(int, String, long, long, int):
Missing nullability on method `queryDetailsForUid` return
MissingNullability: android.app.usage.NetworkStatsManager#queryDetailsForUid(int, String, long, long, int) parameter #1:
Missing nullability on parameter `subscriberId` in method `queryDetailsForUid`
MissingNullability: android.app.usage.NetworkStatsManager#queryDetailsForUidTag(int, String, long, long, int, int):
Missing nullability on method `queryDetailsForUidTag` return
MissingNullability: android.app.usage.NetworkStatsManager#queryDetailsForUidTag(int, String, long, long, int, int) parameter #1:
Missing nullability on parameter `subscriberId` in method `queryDetailsForUidTag`
MissingNullability: android.app.usage.NetworkStatsManager#queryDetailsForUidTagState(int, String, long, long, int, int, int):
Missing nullability on method `queryDetailsForUidTagState` return
MissingNullability: android.app.usage.NetworkStatsManager#queryDetailsForUidTagState(int, String, long, long, int, int, int) parameter #1:
Missing nullability on parameter `subscriberId` in method `queryDetailsForUidTagState`
MissingNullability: android.app.usage.NetworkStatsManager#querySummary(int, String, long, long):
Missing nullability on method `querySummary` return
MissingNullability: android.app.usage.NetworkStatsManager#querySummary(int, String, long, long) parameter #1:
Missing nullability on parameter `subscriberId` in method `querySummary`
MissingNullability: android.app.usage.NetworkStatsManager#querySummaryForDevice(int, String, long, long):
Missing nullability on method `querySummaryForDevice` return
MissingNullability: android.app.usage.NetworkStatsManager#querySummaryForDevice(int, String, long, long) parameter #1:
Missing nullability on parameter `subscriberId` in method `querySummaryForDevice`
MissingNullability: android.app.usage.NetworkStatsManager#querySummaryForUser(int, String, long, long):
Missing nullability on method `querySummaryForUser` return
MissingNullability: android.app.usage.NetworkStatsManager#querySummaryForUser(int, String, long, long) parameter #1:
Missing nullability on parameter `subscriberId` in method `querySummaryForUser`
MissingNullability: android.app.usage.NetworkStatsManager#registerUsageCallback(int, String, long, android.app.usage.NetworkStatsManager.UsageCallback) parameter #1:
Missing nullability on parameter `subscriberId` in method `registerUsageCallback`
MissingNullability: android.app.usage.NetworkStatsManager#registerUsageCallback(int, String, long, android.app.usage.NetworkStatsManager.UsageCallback) parameter #3:
Missing nullability on parameter `callback` in method `registerUsageCallback`
MissingNullability: android.app.usage.NetworkStatsManager#registerUsageCallback(int, String, long, android.app.usage.NetworkStatsManager.UsageCallback, android.os.Handler) parameter #1:
Missing nullability on parameter `subscriberId` in method `registerUsageCallback`
MissingNullability: android.app.usage.NetworkStatsManager#registerUsageCallback(int, String, long, android.app.usage.NetworkStatsManager.UsageCallback, android.os.Handler) parameter #3:
Missing nullability on parameter `callback` in method `registerUsageCallback`
MissingNullability: android.app.usage.NetworkStatsManager#unregisterUsageCallback(android.app.usage.NetworkStatsManager.UsageCallback) parameter #0:
Missing nullability on parameter `callback` in method `unregisterUsageCallback`
MissingNullability: android.app.usage.NetworkStatsManager.UsageCallback#onThresholdReached(int, String) parameter #1:
Missing nullability on parameter `subscriberId` in method `onThresholdReached`
MissingNullability: android.net.IpSecAlgorithm#writeToParcel(android.os.Parcel, int) parameter #0:
Missing nullability on parameter `out` in method `writeToParcel`
MissingNullability: android.net.IpSecManager.UdpEncapsulationSocket#getFileDescriptor():
Missing nullability on method `getFileDescriptor` return
MissingNullability: android.net.TrafficStats#tagDatagramSocket(java.net.DatagramSocket) parameter #0:
Missing nullability on parameter `socket` in method `tagDatagramSocket`
MissingNullability: android.net.TrafficStats#tagFileDescriptor(java.io.FileDescriptor) parameter #0:
Missing nullability on parameter `fd` in method `tagFileDescriptor`
MissingNullability: android.net.TrafficStats#tagSocket(java.net.Socket) parameter #0:
Missing nullability on parameter `socket` in method `tagSocket`
MissingNullability: android.net.TrafficStats#untagDatagramSocket(java.net.DatagramSocket) parameter #0:
Missing nullability on parameter `socket` in method `untagDatagramSocket`
MissingNullability: android.net.TrafficStats#untagFileDescriptor(java.io.FileDescriptor) parameter #0:
Missing nullability on parameter `fd` in method `untagFileDescriptor`
MissingNullability: android.net.TrafficStats#untagSocket(java.net.Socket) parameter #0:
Missing nullability on parameter `socket` in method `untagSocket`
MissingNullability: com.android.internal.util.FileRotator#FileRotator(java.io.File, String, long, long) parameter #0:
Missing nullability on parameter `basePath` in method `FileRotator`
MissingNullability: com.android.internal.util.FileRotator#FileRotator(java.io.File, String, long, long) parameter #1:
Missing nullability on parameter `prefix` in method `FileRotator`
MissingNullability: com.android.internal.util.FileRotator#dumpAll(java.io.OutputStream) parameter #0:
Missing nullability on parameter `os` in method `dumpAll`
MissingNullability: com.android.internal.util.FileRotator#readMatching(com.android.internal.util.FileRotator.Reader, long, long) parameter #0:
Missing nullability on parameter `reader` in method `readMatching`
MissingNullability: com.android.internal.util.FileRotator#rewriteActive(com.android.internal.util.FileRotator.Rewriter, long) parameter #0:
Missing nullability on parameter `rewriter` in method `rewriteActive`
MissingNullability: com.android.internal.util.FileRotator#rewriteAll(com.android.internal.util.FileRotator.Rewriter) parameter #0:
Missing nullability on parameter `rewriter` in method `rewriteAll`
MissingNullability: com.android.internal.util.FileRotator.Reader#read(java.io.InputStream) parameter #0:
Missing nullability on parameter `in` in method `read`
MissingNullability: com.android.internal.util.FileRotator.Writer#write(java.io.OutputStream) parameter #0:
Missing nullability on parameter `out` in method `write`
MissingNullability: com.android.server.NetworkManagementSocketTagger#kernelToTag(String) parameter #0:
Missing nullability on parameter `string` in method `kernelToTag`
MissingNullability: com.android.server.NetworkManagementSocketTagger#tag(java.io.FileDescriptor) parameter #0:
Missing nullability on parameter `fd` in method `tag`
MissingNullability: com.android.server.NetworkManagementSocketTagger#untag(java.io.FileDescriptor) parameter #0:
Missing nullability on parameter `fd` in method `untag`
RethrowRemoteException: android.app.usage.NetworkStatsManager#queryDetails(int, String, long, long):
Methods calling system APIs should rethrow `RemoteException` as `RuntimeException` (but do not list it in the throws clause)
RethrowRemoteException: android.app.usage.NetworkStatsManager#querySummary(int, String, long, long):
Methods calling system APIs should rethrow `RemoteException` as `RuntimeException` (but do not list it in the throws clause)
RethrowRemoteException: android.app.usage.NetworkStatsManager#querySummaryForDevice(int, String, long, long):
Methods calling system APIs should rethrow `RemoteException` as `RuntimeException` (but do not list it in the throws clause)
RethrowRemoteException: android.app.usage.NetworkStatsManager#querySummaryForUser(int, String, long, long):
Methods calling system APIs should rethrow `RemoteException` as `RuntimeException` (but do not list it in the throws clause)
StaticFinalBuilder: android.net.IpSecTransform.Builder:
Builder must be final: android.net.IpSecTransform.Builder
StaticUtils: android.net.TrafficStats:
Fully-static utility classes must not have constructor
UseParcelFileDescriptor: android.net.IpSecManager#applyTransportModeTransform(java.io.FileDescriptor, int, android.net.IpSecTransform) parameter #0:
Must use ParcelFileDescriptor instead of FileDescriptor in parameter socket in android.net.IpSecManager.applyTransportModeTransform(java.io.FileDescriptor socket, int direction, android.net.IpSecTransform transform)
UseParcelFileDescriptor: android.net.IpSecManager#removeTransportModeTransforms(java.io.FileDescriptor) parameter #0:
Must use ParcelFileDescriptor instead of FileDescriptor in parameter socket in android.net.IpSecManager.removeTransportModeTransforms(java.io.FileDescriptor socket)
UseParcelFileDescriptor: android.net.IpSecManager.UdpEncapsulationSocket#getFileDescriptor():
Must use ParcelFileDescriptor instead of FileDescriptor in method android.net.IpSecManager.UdpEncapsulationSocket.getFileDescriptor()
UseParcelFileDescriptor: android.net.TrafficStats#tagFileDescriptor(java.io.FileDescriptor) parameter #0:
Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in android.net.TrafficStats.tagFileDescriptor(java.io.FileDescriptor fd)
UseParcelFileDescriptor: android.net.TrafficStats#untagFileDescriptor(java.io.FileDescriptor) parameter #0:
Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in android.net.TrafficStats.untagFileDescriptor(java.io.FileDescriptor fd)
UseParcelFileDescriptor: com.android.server.NetworkManagementSocketTagger#tag(java.io.FileDescriptor) parameter #0:
Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in com.android.server.NetworkManagementSocketTagger.tag(java.io.FileDescriptor fd)
UseParcelFileDescriptor: com.android.server.NetworkManagementSocketTagger#untag(java.io.FileDescriptor) parameter #0:
Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in com.android.server.NetworkManagementSocketTagger.untag(java.io.FileDescriptor fd)

View File

@@ -1,4 +1,29 @@
// Signature format: 2.0
package android.app.usage {
public class NetworkStatsManager {
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void forceUpdate();
method public static int getCollapsedRatType(int);
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void notifyNetworkStatus(@NonNull java.util.List<android.net.Network>, @NonNull java.util.List<android.net.NetworkStateSnapshot>, @Nullable String, @NonNull java.util.List<android.net.UnderlyingNetworkInfo>);
method @NonNull @WorkerThread public android.app.usage.NetworkStats queryDetailsForDevice(@NonNull android.net.NetworkTemplate, long, long);
method @NonNull @WorkerThread public android.app.usage.NetworkStats queryDetailsForUidTagState(@NonNull android.net.NetworkTemplate, long, long, int, int, int) throws java.lang.SecurityException;
method @NonNull @WorkerThread public android.app.usage.NetworkStats querySummary(@NonNull android.net.NetworkTemplate, long, long) throws java.lang.SecurityException;
method @NonNull @WorkerThread public android.app.usage.NetworkStats.Bucket querySummaryForDevice(@NonNull android.net.NetworkTemplate, long, long);
method @NonNull @WorkerThread public android.app.usage.NetworkStats queryTaggedSummary(@NonNull android.net.NetworkTemplate, long, long) throws java.lang.SecurityException;
method public void registerUsageCallback(@NonNull android.net.NetworkTemplate, long, @NonNull java.util.concurrent.Executor, @NonNull android.app.usage.NetworkStatsManager.UsageCallback);
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void setDefaultGlobalAlert(long);
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void setPollOnOpen(boolean);
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void setStatsProviderWarningAndLimitAsync(@NonNull String, long, long);
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void setUidForeground(int, boolean);
field public static final int NETWORK_TYPE_5G_NSA = -2; // 0xfffffffe
}
public abstract static class NetworkStatsManager.UsageCallback {
method public void onThresholdReached(@NonNull android.net.NetworkTemplate);
}
}
package android.net {
public final class ConnectivityFrameworkInitializerTiramisu {
@@ -13,5 +38,134 @@ package android.net {
method public int getResourceId();
}
public class NetworkIdentity {
method public int getOemManaged();
method public int getRatType();
method @Nullable public String getSubscriberId();
method public int getType();
method @Nullable public String getWifiNetworkKey();
method public boolean isDefaultNetwork();
method public boolean isMetered();
method public boolean isRoaming();
}
public static final class NetworkIdentity.Builder {
ctor public NetworkIdentity.Builder();
method @NonNull public android.net.NetworkIdentity build();
method @NonNull public android.net.NetworkIdentity.Builder clearRatType();
method @NonNull public android.net.NetworkIdentity.Builder setDefaultNetwork(boolean);
method @NonNull public android.net.NetworkIdentity.Builder setMetered(boolean);
method @NonNull public android.net.NetworkIdentity.Builder setNetworkStateSnapshot(@NonNull android.net.NetworkStateSnapshot);
method @NonNull public android.net.NetworkIdentity.Builder setOemManaged(int);
method @NonNull public android.net.NetworkIdentity.Builder setRatType(int);
method @NonNull public android.net.NetworkIdentity.Builder setRoaming(boolean);
method @NonNull public android.net.NetworkIdentity.Builder setSubscriberId(@Nullable String);
method @NonNull public android.net.NetworkIdentity.Builder setType(int);
method @NonNull public android.net.NetworkIdentity.Builder setWifiNetworkKey(@Nullable String);
}
public final class NetworkStateSnapshot implements android.os.Parcelable {
ctor public NetworkStateSnapshot(@NonNull android.net.Network, @NonNull android.net.NetworkCapabilities, @NonNull android.net.LinkProperties, @Nullable String, int);
method public int describeContents();
method public int getLegacyType();
method @NonNull public android.net.LinkProperties getLinkProperties();
method @NonNull public android.net.Network getNetwork();
method @NonNull public android.net.NetworkCapabilities getNetworkCapabilities();
method @Nullable public String getSubscriberId();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkStateSnapshot> CREATOR;
}
public class NetworkStatsCollection {
method @NonNull public java.util.Map<android.net.NetworkStatsCollection.Key,android.net.NetworkStatsHistory> getEntries();
}
public static final class NetworkStatsCollection.Builder {
ctor public NetworkStatsCollection.Builder(long);
method @NonNull public android.net.NetworkStatsCollection.Builder addEntry(@NonNull android.net.NetworkStatsCollection.Key, @NonNull android.net.NetworkStatsHistory);
method @NonNull public android.net.NetworkStatsCollection build();
}
public static class NetworkStatsCollection.Key {
ctor public NetworkStatsCollection.Key(@NonNull java.util.Set<android.net.NetworkIdentity>, int, int, int);
}
public final class NetworkStatsHistory implements android.os.Parcelable {
method public int describeContents();
method @NonNull public java.util.List<android.net.NetworkStatsHistory.Entry> getEntries();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkStatsHistory> CREATOR;
}
public static final class NetworkStatsHistory.Builder {
ctor public NetworkStatsHistory.Builder(long, int);
method @NonNull public android.net.NetworkStatsHistory.Builder addEntry(@NonNull android.net.NetworkStatsHistory.Entry);
method @NonNull public android.net.NetworkStatsHistory build();
}
public static final class NetworkStatsHistory.Entry {
ctor public NetworkStatsHistory.Entry(long, long, long, long, long, long, long);
method public long getActiveTime();
method public long getBucketStart();
method public long getOperations();
method public long getRxBytes();
method public long getRxPackets();
method public long getTxBytes();
method public long getTxPackets();
}
public final class NetworkTemplate implements android.os.Parcelable {
method public int describeContents();
method public int getDefaultNetworkStatus();
method public int getMatchRule();
method public int getMeteredness();
method public int getOemManaged();
method public int getRatType();
method public int getRoaming();
method @NonNull public java.util.Set<java.lang.String> getSubscriberIds();
method @NonNull public java.util.Set<java.lang.String> getWifiNetworkKeys();
method public boolean matches(@NonNull android.net.NetworkIdentity);
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkTemplate> CREATOR;
field public static final int MATCH_BLUETOOTH = 8; // 0x8
field public static final int MATCH_CARRIER = 10; // 0xa
field public static final int MATCH_ETHERNET = 5; // 0x5
field public static final int MATCH_MOBILE = 1; // 0x1
field public static final int MATCH_WIFI = 4; // 0x4
field public static final int NETWORK_TYPE_ALL = -1; // 0xffffffff
field public static final int OEM_MANAGED_ALL = -1; // 0xffffffff
field public static final int OEM_MANAGED_NO = 0; // 0x0
field public static final int OEM_MANAGED_PAID = 1; // 0x1
field public static final int OEM_MANAGED_PRIVATE = 2; // 0x2
field public static final int OEM_MANAGED_YES = -2; // 0xfffffffe
}
public static final class NetworkTemplate.Builder {
ctor public NetworkTemplate.Builder(int);
method @NonNull public android.net.NetworkTemplate build();
method @NonNull public android.net.NetworkTemplate.Builder setDefaultNetworkStatus(int);
method @NonNull public android.net.NetworkTemplate.Builder setMeteredness(int);
method @NonNull public android.net.NetworkTemplate.Builder setOemManaged(int);
method @NonNull public android.net.NetworkTemplate.Builder setRatType(int);
method @NonNull public android.net.NetworkTemplate.Builder setRoaming(int);
method @NonNull public android.net.NetworkTemplate.Builder setSubscriberIds(@NonNull java.util.Set<java.lang.String>);
method @NonNull public android.net.NetworkTemplate.Builder setWifiNetworkKeys(@NonNull java.util.Set<java.lang.String>);
}
public class TrafficStats {
method public static void attachSocketTagger();
method public static void init(@NonNull android.content.Context);
}
public final class UnderlyingNetworkInfo implements android.os.Parcelable {
ctor public UnderlyingNetworkInfo(int, @NonNull String, @NonNull java.util.List<java.lang.String>);
method public int describeContents();
method @NonNull public String getInterface();
method public int getOwnerUid();
method @NonNull public java.util.List<java.lang.String> getUnderlyingInterfaces();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.net.UnderlyingNetworkInfo> CREATOR;
}
}

View File

@@ -0,0 +1,7 @@
// Baseline format: 1.0
BannedThrow: android.app.usage.NetworkStatsManager#queryDetailsForUidTagState(android.net.NetworkTemplate, long, long, int, int, int):
Methods must not mention RuntimeException subclasses in throws clauses (was `java.lang.SecurityException`)
BannedThrow: android.app.usage.NetworkStatsManager#querySummary(android.net.NetworkTemplate, long, long):
Methods must not mention RuntimeException subclasses in throws clauses (was `java.lang.SecurityException`)
BannedThrow: android.app.usage.NetworkStatsManager#queryTaggedSummary(android.net.NetworkTemplate, long, long):
Methods must not mention RuntimeException subclasses in throws clauses (was `java.lang.SecurityException`)

View File

@@ -1 +1,9 @@
// Signature format: 2.0
package android.net {
public class TrafficStats {
method @Deprecated public static void setThreadStatsUidSelf();
}
}

View File

@@ -1,4 +1,15 @@
// Signature format: 2.0
package android.app.usage {
public class NetworkStatsManager {
method @NonNull @RequiresPermission(android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) public android.net.NetworkStats getMobileUidStats();
method @NonNull @RequiresPermission(android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) public android.net.NetworkStats getWifiUidStats();
method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_STATS_PROVIDER, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void registerNetworkStatsProvider(@NonNull String, @NonNull android.net.netstats.provider.NetworkStatsProvider);
method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_STATS_PROVIDER, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void unregisterNetworkStatsProvider(@NonNull android.net.netstats.provider.NetworkStatsProvider);
}
}
package android.nearby {
public class FastPairAccountKeyDeviceMetadata {
@@ -332,5 +343,77 @@ package android.net {
method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public android.net.IpSecTransform buildTunnelModeTransform(@NonNull java.net.InetAddress, @NonNull android.net.IpSecManager.SecurityParameterIndex) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException, android.net.IpSecManager.SpiUnavailableException;
}
public final class NetworkStats implements java.lang.Iterable<android.net.NetworkStats.Entry> android.os.Parcelable {
ctor public NetworkStats(long, int);
method @NonNull public android.net.NetworkStats add(@NonNull android.net.NetworkStats);
method @NonNull public android.net.NetworkStats addEntry(@NonNull android.net.NetworkStats.Entry);
method public int describeContents();
method @NonNull public java.util.Iterator<android.net.NetworkStats.Entry> iterator();
method @NonNull public android.net.NetworkStats subtract(@NonNull android.net.NetworkStats);
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkStats> CREATOR;
field public static final int DEFAULT_NETWORK_ALL = -1; // 0xffffffff
field public static final int DEFAULT_NETWORK_NO = 0; // 0x0
field public static final int DEFAULT_NETWORK_YES = 1; // 0x1
field public static final String IFACE_VT = "vt_data0";
field public static final int METERED_ALL = -1; // 0xffffffff
field public static final int METERED_NO = 0; // 0x0
field public static final int METERED_YES = 1; // 0x1
field public static final int ROAMING_ALL = -1; // 0xffffffff
field public static final int ROAMING_NO = 0; // 0x0
field public static final int ROAMING_YES = 1; // 0x1
field public static final int SET_ALL = -1; // 0xffffffff
field public static final int SET_DEFAULT = 0; // 0x0
field public static final int SET_FOREGROUND = 1; // 0x1
field public static final int TAG_NONE = 0; // 0x0
field public static final int UID_ALL = -1; // 0xffffffff
field public static final int UID_TETHERING = -5; // 0xfffffffb
}
public static class NetworkStats.Entry {
ctor public NetworkStats.Entry(@Nullable String, int, int, int, int, int, int, long, long, long, long, long);
method public int getDefaultNetwork();
method public int getMetered();
method public long getOperations();
method public int getRoaming();
method public long getRxBytes();
method public long getRxPackets();
method public int getSet();
method public int getTag();
method public long getTxBytes();
method public long getTxPackets();
method public int getUid();
}
public class TrafficStats {
method public static void setThreadStatsTagApp();
method public static void setThreadStatsTagBackup();
method public static void setThreadStatsTagDownload();
method public static void setThreadStatsTagRestore();
field public static final int TAG_NETWORK_STACK_IMPERSONATION_RANGE_END = -113; // 0xffffff8f
field public static final int TAG_NETWORK_STACK_IMPERSONATION_RANGE_START = -128; // 0xffffff80
field public static final int TAG_NETWORK_STACK_RANGE_END = -257; // 0xfffffeff
field public static final int TAG_NETWORK_STACK_RANGE_START = -768; // 0xfffffd00
field public static final int TAG_SYSTEM_IMPERSONATION_RANGE_END = -241; // 0xffffff0f
field public static final int TAG_SYSTEM_IMPERSONATION_RANGE_START = -256; // 0xffffff00
}
}
package android.net.netstats.provider {
public abstract class NetworkStatsProvider {
ctor public NetworkStatsProvider();
method public void notifyAlertReached();
method public void notifyLimitReached();
method public void notifyStatsUpdated(int, @NonNull android.net.NetworkStats, @NonNull android.net.NetworkStats);
method public void notifyWarningReached();
method public abstract void onRequestStatsUpdate(int);
method public abstract void onSetAlert(long);
method public abstract void onSetLimit(@NonNull String, long);
method public void onSetWarningAndLimit(@NonNull String, long, long);
field public static final int QUOTA_UNLIMITED = -1; // 0xffffffff
}
}

View File

@@ -63,6 +63,7 @@ java_defaults {
srcs: [
":framework-connectivity-sources",
":net-utils-framework-common-srcs",
":framework-connectivity-api-shared-srcs",
],
aidl: {
generate_get_transaction_name: true,
@@ -84,6 +85,7 @@ java_defaults {
"net-utils-device-common",
],
static_libs: [
"framework-connectivity-protos",
"modules-utils-build",
"modules-utils-preconditions",
],
@@ -177,3 +179,23 @@ cc_library_shared {
"com.android.tethering",
],
}
// TODO: reduce size of this library; consider using
// proto nano for example
java_library {
name: "framework-connectivity-protos",
sdk_version: "module_current",
min_sdk_version: "30",
proto: {
type: "lite",
},
srcs: [
"proto/**/*.*",
],
static_libs: ["libprotobuf-java-lite"],
apex_available: [
"com.android.tethering",
],
lint: { strict_updatability_linting: true },
visibility: ["//visibility:private"],
}

View File

@@ -0,0 +1,121 @@
/*
* Copyright (C) 2017 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.
*/
syntax = "proto2";
package android.service;
option java_multiple_files = true;
option java_outer_classname = "NetworkStatsServiceProto";
// Represents dumpsys from NetworkStatsService (netstats).
message NetworkStatsServiceDumpProto {
repeated NetworkInterfaceProto active_interfaces = 1;
repeated NetworkInterfaceProto active_uid_interfaces = 2;
// Device level network stats, which may include non-IP layer traffic.
optional NetworkStatsRecorderProto dev_stats = 3;
// IP-layer traffic stats.
optional NetworkStatsRecorderProto xt_stats = 4;
// Per-UID network stats.
optional NetworkStatsRecorderProto uid_stats = 5;
// Per-UID, per-tag network stats, excluding the default tag (i.e. tag=0).
optional NetworkStatsRecorderProto uid_tag_stats = 6;
}
// Corresponds to NetworkStatsService.mActiveIfaces/mActiveUidIfaces.
message NetworkInterfaceProto {
// Name of the network interface (eg: wlan).
optional string interface = 1;
optional NetworkIdentitySetProto identities = 2;
}
// Corresponds to NetworkIdentitySet.
message NetworkIdentitySetProto {
repeated NetworkIdentityProto identities = 1;
}
// Corresponds to NetworkIdentity.
message NetworkIdentityProto {
// Constants from ConnectivityManager.TYPE_*.
optional int32 type = 1;
optional bool roaming = 4;
optional bool metered = 5;
optional bool default_network = 6;
optional int32 oem_managed_network = 7;
}
// Corresponds to NetworkStatsRecorder.
message NetworkStatsRecorderProto {
optional int64 pending_total_bytes = 1;
optional NetworkStatsCollectionProto complete_history = 2;
}
// Corresponds to NetworkStatsCollection.
message NetworkStatsCollectionProto {
repeated NetworkStatsCollectionStatsProto stats = 1;
}
// Corresponds to NetworkStatsCollection.mStats.
message NetworkStatsCollectionStatsProto {
optional NetworkStatsCollectionKeyProto key = 1;
optional NetworkStatsHistoryProto history = 2;
}
// Corresponds to NetworkStatsCollection.Key.
message NetworkStatsCollectionKeyProto {
optional NetworkIdentitySetProto identity = 1;
optional int32 uid = 2;
optional int32 set = 3;
optional int32 tag = 4;
}
// Corresponds to NetworkStatsHistory.
message NetworkStatsHistoryProto {
// Duration for this bucket in milliseconds.
optional int64 bucket_duration_ms = 1;
repeated NetworkStatsHistoryBucketProto buckets = 2;
}
// Corresponds to each bucket in NetworkStatsHistory.
message NetworkStatsHistoryBucketProto {
// Bucket start time in milliseconds since epoch.
optional int64 bucket_start_ms = 1;
optional int64 rx_bytes = 2;
optional int64 rx_packets = 3;
optional int64 tx_bytes = 4;
optional int64 tx_packets = 5;
optional int64 operations = 6;
}

View File

@@ -30,8 +30,6 @@ java_library {
min_sdk_version: "30",
srcs: [
"src/**/*.java",
// TODO: This is necessary just for LocalLog, remove after removing NativeDaemonConnector.
":framework-connectivity-shared-srcs",
":services.connectivity-tiramisu-updatable-sources",
],
libs: [

View File

@@ -95,6 +95,7 @@ java_library {
libs: [
"framework-annotations-lib",
"framework-connectivity-pre-jarjar",
"framework-connectivity-tiramisu.stubs.module_lib",
"framework-tethering.stubs.module_lib",
"framework-wifi.stubs.module_lib",
"unsupportedappusage",

View File

@@ -9,19 +9,22 @@ rule android.net.NetworkFactory* android.net.connectivity.@0
# From modules-utils-preconditions
rule com.android.internal.util.Preconditions* android.net.connectivity.@0
# From framework-connectivity-shared-srcs
rule android.util.LocalLog* android.net.connectivity.@0
rule android.util.IndentingPrintWriter* android.net.connectivity.@0
rule com.android.internal.util.IndentingPrintWriter* android.net.connectivity.@0
rule com.android.internal.util.MessageUtils* android.net.connectivity.@0
rule com.android.internal.util.WakeupMessage* android.net.connectivity.@0
rule com.android.internal.util.FileRotator* android.net.connectivity.@0
rule com.android.internal.util.ProcFileReader* android.net.connectivity.@0
# From framework-connectivity-protos
rule com.google.protobuf.** android.net.connectivity.@0
rule android.service.** android.net.connectivity.@0
rule android.sysprop.** com.android.connectivity.@0
# internal util classes from framework-connectivity-shared-srcs
rule android.util.LocalLog* com.android.connectivity.@0
# android.util.IndentingPrintWriter* should use a different package name from
# the one in com.android.internal.util
rule android.util.IndentingPrintWriter* com.android.connectivity.@0
rule com.android.internal.util.IndentingPrintWriter* com.android.connectivity.@0
rule com.android.internal.util.MessageUtils* com.android.connectivity.@0
rule com.android.internal.util.WakeupMessage* com.android.connectivity.@0
rule com.android.internal.messages.** com.android.connectivity.@0
rule com.google.protobuf.** com.android.connectivity.@0
# From dnsresolver_aidl_interface (newer AIDLs should go to android.net.resolv.aidl)
rule android.net.resolv.aidl.** com.android.connectivity.@0