summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2023-08-31 11:53:12 -0700
committerXin Li <delphij@google.com>2023-08-31 12:31:14 -0700
commite4ac0663935c295d832a03787dd54b0da54f9cde (patch)
tree06769da94d68a26315905eef6ab9b3c17899216f
parentfae65263ccbf34a958964fdae1a97d60a71e82ad (diff)
parentb92c997a5d82f582e15c4a89863773e1f157008e (diff)
downloadStatsD-tmp_amf_298295554.tar.gz
Merge UP1A.230905.019tmp_amf_298295554
Merged-In: I3b07b10c492dcd60362ef89d2d103eb7b75cbbd1 Change-Id: I352a39b6031ffcd3cdfd1485d453054597c8272f
-rw-r--r--.prebuilt_info/prebuilt_info_current_current_zip.asciipb6
-rw-r--r--current/Android.bp45
-rwxr-xr-xcurrent/arm/lib/libstatspull.sobin0 -> 6516 bytes
-rwxr-xr-xcurrent/arm/lib/libstatssocket.sobin6712 -> 6764 bytes
-rwxr-xr-xcurrent/arm64/lib/libstatspull.sobin0 -> 137016 bytes
-rwxr-xr-xcurrent/arm64/lib/libstatssocket.sobin14360 -> 137296 bytes
-rw-r--r--current/hiddenapi/filtered-flags.csv52
-rw-r--r--current/hiddenapi/filtered-stub-flags.csv52
-rw-r--r--current/hiddenapi/signature-patterns.csv5
-rw-r--r--current/include/packages/modules/StatsD/lib/libstatspull/include/stats_pull_atom_callback.h170
-rw-r--r--current/include/packages/modules/StatsD/lib/libstatspull/include/stats_subscription.h127
-rw-r--r--current/include/packages/modules/StatsD/lib/libstatssocket/include/stats_annotations.h110
-rw-r--r--current/sdk_library/module-lib/framework-statsd-stubs.jarbin9123 -> 12461 bytes
-rw-r--r--current/sdk_library/module-lib/framework-statsd.srcjarbin5861 -> 7905 bytes
-rw-r--r--current/sdk_library/module-lib/framework-statsd_annotations.zipbin1126 -> 1338 bytes
-rw-r--r--current/sdk_library/public/framework-statsd-stubs.jarbin1138 -> 1137 bytes
-rw-r--r--current/sdk_library/public/framework-statsd.srcjarbin1753 -> 1749 bytes
-rw-r--r--current/sdk_library/system/framework-statsd-stubs.jarbin8532 -> 11869 bytes
-rw-r--r--current/sdk_library/system/framework-statsd.srcjarbin5117 -> 7166 bytes
-rw-r--r--current/sdk_library/system/framework-statsd.txt51
-rw-r--r--current/sdk_library/system/framework-statsd_annotations.zipbin1126 -> 1338 bytes
-rw-r--r--current/snapshot-creation-build-number.txt2
-rwxr-xr-xcurrent/x86/lib/libstatspull.sobin0 -> 6668 bytes
-rwxr-xr-xcurrent/x86/lib/libstatssocket.sobin6912 -> 7028 bytes
-rwxr-xr-xcurrent/x86_64/lib/libstatspull.sobin0 -> 7736 bytes
-rwxr-xr-xcurrent/x86_64/lib/libstatssocket.sobin8160 -> 8128 bytes
26 files changed, 616 insertions, 4 deletions
diff --git a/.prebuilt_info/prebuilt_info_current_current_zip.asciipb b/.prebuilt_info/prebuilt_info_current_current_zip.asciipb
index 68c4a93..4416cc4 100644
--- a/.prebuilt_info/prebuilt_info_current_current_zip.asciipb
+++ b/.prebuilt_info/prebuilt_info_current_current_zip.asciipb
@@ -1,14 +1,14 @@
drops {
android_build_drop {
- build_id: "T1005166"
+ build_id: "T1007284"
target: "train_build"
- source_file: "mainline-sdks/for-Tiramisu-build/current/com.google.android.os.statsd/sdk/statsd-module-sdk-current.zip"
+ source_file: "mainline-sdks/for-UpsideDownCake-build/current/com.google.android.os.statsd/sdk/statsd-module-sdk-current.zip"
}
dest_file: "current/current.zip"
version: ""
version_group: ""
git_project: "platform/prebuilts/module_sdk/StatsD"
- git_branch: "tm-qpr-dev"
+ git_branch: "udc-dev"
transform: TRANSFORM_UNZIP
transform_options {
}
diff --git a/current/Android.bp b/current/Android.bp
index 879b615..d82af96 100644
--- a/current/Android.bp
+++ b/current/Android.bp
@@ -1,5 +1,11 @@
// This is auto-generated. DO NOT EDIT.
+// blueprint rules added by vendor/google/build/mainline_modules_sdks.py
+// to support coexistence.
+blueprint_package_includes {
+ match_all: ["com.android.mainline"]
+}
+
package {
// A default list here prevents the license LSC from adding its own list which would
// be unnecessary as every module in the sdk already has its own licenses property.
@@ -94,6 +100,7 @@ java_import {
],
licenses: ["statsd-module-sdk_Android-Apache-2.0"],
jars: ["java_systemserver_libs/snapshot/jars/are/invalid/service-statsd.jar"],
+ min_sdk_version: "30",
}
license {
@@ -104,6 +111,44 @@ license {
}
cc_prebuilt_library_shared {
+ name: "libstatspull",
+ // Do not prefer prebuilt if the Soong config variable "module_build_from_source" in namespace "ANDROID" is true.
+ use_source_config_var: {
+ config_namespace: "ANDROID",
+ var_name: "module_build_from_source",
+ },
+ visibility: ["//visibility:public"],
+ apex_available: [
+ "com.android.os.statsd",
+ "test_com.android.os.statsd",
+ ],
+ licenses: ["statsd-module-sdk_Android-Apache-2.0"],
+ stl: "libc++_static",
+ compile_multilib: "both",
+ export_include_dirs: ["include/packages/modules/StatsD/lib/libstatspull/include"],
+ stubs: {
+ versions: [
+ "30",
+ "current",
+ ],
+ },
+ arch: {
+ arm64: {
+ srcs: ["arm64/lib/libstatspull.so"],
+ },
+ x86_64: {
+ srcs: ["x86_64/lib/libstatspull.so"],
+ },
+ arm: {
+ srcs: ["arm/lib/libstatspull.so"],
+ },
+ x86: {
+ srcs: ["x86/lib/libstatspull.so"],
+ },
+ },
+}
+
+cc_prebuilt_library_shared {
name: "libstatssocket",
// Do not prefer prebuilt if the Soong config variable "module_build_from_source" in namespace "ANDROID" is true.
use_source_config_var: {
diff --git a/current/arm/lib/libstatspull.so b/current/arm/lib/libstatspull.so
new file mode 100755
index 0000000..7ddb5ba
--- /dev/null
+++ b/current/arm/lib/libstatspull.so
Binary files differ
diff --git a/current/arm/lib/libstatssocket.so b/current/arm/lib/libstatssocket.so
index 7e6c53f..b4c2891 100755
--- a/current/arm/lib/libstatssocket.so
+++ b/current/arm/lib/libstatssocket.so
Binary files differ
diff --git a/current/arm64/lib/libstatspull.so b/current/arm64/lib/libstatspull.so
new file mode 100755
index 0000000..785ed5e
--- /dev/null
+++ b/current/arm64/lib/libstatspull.so
Binary files differ
diff --git a/current/arm64/lib/libstatssocket.so b/current/arm64/lib/libstatssocket.so
index dc60700..27b6a6e 100755
--- a/current/arm64/lib/libstatssocket.so
+++ b/current/arm64/lib/libstatssocket.so
Binary files differ
diff --git a/current/hiddenapi/filtered-flags.csv b/current/hiddenapi/filtered-flags.csv
index 6ace135..6b25e0d 100644
--- a/current/hiddenapi/filtered-flags.csv
+++ b/current/hiddenapi/filtered-flags.csv
@@ -1,3 +1,15 @@
+Landroid/app/StatsCursor;->getColumnNames()[Ljava/lang/String;,public-api,sdk,system-api,test-api
+Landroid/app/StatsCursor;->getCount()I,public-api,sdk,system-api,test-api
+Landroid/app/StatsCursor;->getDouble(I)D,public-api,sdk,system-api,test-api
+Landroid/app/StatsCursor;->getFloat(I)F,public-api,sdk,system-api,test-api
+Landroid/app/StatsCursor;->getInt(I)I,public-api,sdk,system-api,test-api
+Landroid/app/StatsCursor;->getLong(I)J,public-api,sdk,system-api,test-api
+Landroid/app/StatsCursor;->getShort(I)S,public-api,sdk,system-api,test-api
+Landroid/app/StatsCursor;->getString(I)Ljava/lang/String;,public-api,sdk,system-api,test-api
+Landroid/app/StatsCursor;->getType(I)I,public-api,sdk,system-api,test-api
+Landroid/app/StatsCursor;->isNull(I)Z,public-api,sdk,system-api,test-api
+Landroid/app/StatsCursor;->onMove(II)Z,public-api,sdk,system-api,test-api
+Landroid/app/StatsManager$$ExternalSyntheticLambda0;->run()V,core-platform-api,public-api,sdk,system-api,test-api
Landroid/app/StatsManager$PullAtomCallbackInternal$$ExternalSyntheticLambda0;->run()V,core-platform-api,public-api,sdk,system-api,test-api
Landroid/app/StatsManager$PullAtomMetadata$Builder;-><init>()V,sdk,system-api,test-api
Landroid/app/StatsManager$PullAtomMetadata$Builder;->build()Landroid/app/StatsManager$PullAtomMetadata;,sdk,system-api,test-api
@@ -8,6 +20,10 @@ Landroid/app/StatsManager$PullAtomMetadata;->getAdditiveFields()[I,sdk,system-ap
Landroid/app/StatsManager$PullAtomMetadata;->getCoolDownMillis()J,sdk,system-api,test-api
Landroid/app/StatsManager$PullAtomMetadata;->getTimeoutMillis()J,sdk,system-api,test-api
Landroid/app/StatsManager$StatsPullAtomCallback;->onPullAtom(ILjava/util/List;)I,sdk,system-api,test-api
+Landroid/app/StatsManager$StatsQueryCallbackInternal$$ExternalSyntheticLambda0;->run()V,core-platform-api,public-api,sdk,system-api,test-api
+Landroid/app/StatsManager$StatsQueryCallbackInternal$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,sdk,system-api,test-api
+Landroid/app/StatsManager$StatsQueryException;-><init>(Ljava/lang/String;)V,sdk,system-api,test-api
+Landroid/app/StatsManager$StatsQueryException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V,sdk,system-api,test-api
Landroid/app/StatsManager$StatsUnavailableException;-><init>(Ljava/lang/String;)V,sdk,system-api,test-api
Landroid/app/StatsManager$StatsUnavailableException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V,sdk,system-api,test-api
Landroid/app/StatsManager;-><init>(Landroid/content/Context;)V,lo-prio,max-target-o
@@ -18,6 +34,7 @@ Landroid/app/StatsManager;->EXTRA_STATS_BROADCAST_SUBSCRIBER_COOKIES:Ljava/lang/
Landroid/app/StatsManager;->EXTRA_STATS_CONFIG_KEY:Ljava/lang/String;,sdk,system-api,test-api
Landroid/app/StatsManager;->EXTRA_STATS_CONFIG_UID:Ljava/lang/String;,sdk,system-api,test-api
Landroid/app/StatsManager;->EXTRA_STATS_DIMENSIONS_VALUE:Ljava/lang/String;,sdk,system-api,test-api
+Landroid/app/StatsManager;->EXTRA_STATS_RESTRICTED_METRIC_IDS:Ljava/lang/String;,sdk,system-api,test-api
Landroid/app/StatsManager;->EXTRA_STATS_SUBSCRIPTION_ID:Ljava/lang/String;,sdk,system-api,test-api
Landroid/app/StatsManager;->EXTRA_STATS_SUBSCRIPTION_RULE_ID:Ljava/lang/String;,sdk,system-api,test-api
Landroid/app/StatsManager;->PULL_SKIP:I,sdk,system-api,test-api
@@ -32,6 +49,7 @@ Landroid/app/StatsManager;->getRegisteredExperimentIds()[J,sdk,system-api,test-a
Landroid/app/StatsManager;->getReports(J)[B,sdk,system-api,test-api
Landroid/app/StatsManager;->getStatsMetadata()[B,sdk,system-api,test-api
Landroid/app/StatsManager;->mContext:Landroid/content/Context;,lo-prio,max-target-o
+Landroid/app/StatsManager;->query(JLjava/lang/String;Landroid/app/StatsQuery;Ljava/util/concurrent/Executor;Landroid/os/OutcomeReceiver;)V,sdk,system-api,test-api
Landroid/app/StatsManager;->removeConfig(J)V,sdk,system-api,test-api
Landroid/app/StatsManager;->removeConfiguration(J)Z,sdk,system-api,test-api
Landroid/app/StatsManager;->setActiveConfigsChangedOperation(Landroid/app/PendingIntent;)[J,sdk,system-api,test-api
@@ -40,6 +58,18 @@ Landroid/app/StatsManager;->setBroadcastSubscriber(Landroid/app/PendingIntent;JJ
Landroid/app/StatsManager;->setDataFetchOperation(JLandroid/app/PendingIntent;)Z,sdk,system-api,test-api
Landroid/app/StatsManager;->setFetchReportsOperation(Landroid/app/PendingIntent;J)V,sdk,system-api,test-api
Landroid/app/StatsManager;->setPullAtomCallback(ILandroid/app/StatsManager$PullAtomMetadata;Ljava/util/concurrent/Executor;Landroid/app/StatsManager$StatsPullAtomCallback;)V,sdk,system-api,test-api
+Landroid/app/StatsManager;->setRestrictedMetricsChangedOperation(JLjava/lang/String;Landroid/app/PendingIntent;)[J,sdk,system-api,test-api
+Landroid/app/StatsQuery$Builder;-><init>(Ljava/lang/String;)V,sdk,system-api,test-api
+Landroid/app/StatsQuery$Builder;->build()Landroid/app/StatsQuery;,sdk,system-api,test-api
+Landroid/app/StatsQuery$Builder;->setMinSqlClientVersion(I)Landroid/app/StatsQuery$Builder;,sdk,system-api,test-api
+Landroid/app/StatsQuery$Builder;->setPolicyConfig([B)Landroid/app/StatsQuery$Builder;,sdk,system-api,test-api
+Landroid/app/StatsQuery$Builder;->setSqlDialect(I)Landroid/app/StatsQuery$Builder;,sdk,system-api,test-api
+Landroid/app/StatsQuery;->DIALECT_SQLITE:I,sdk,system-api,test-api
+Landroid/app/StatsQuery;->DIALECT_UNKNOWN:I,sdk,system-api,test-api
+Landroid/app/StatsQuery;->getMinSqlClientVersion()I,sdk,system-api,test-api
+Landroid/app/StatsQuery;->getPolicyConfig()[B,sdk,system-api,test-api
+Landroid/app/StatsQuery;->getRawSql()Ljava/lang/String;,sdk,system-api,test-api
+Landroid/app/StatsQuery;->getSqlDialect()I,sdk,system-api,test-api
Landroid/os/IPendingIntentRef$Default;->asBinder()Landroid/os/IBinder;,public-api,sdk,system-api,test-api
Landroid/os/IPendingIntentRef$Stub$Proxy;->asBinder()Landroid/os/IBinder;,public-api,sdk,system-api,test-api
Landroid/os/IPendingIntentRef$Stub;->asBinder()Landroid/os/IBinder;,public-api,sdk,system-api,test-api
@@ -87,6 +117,14 @@ Landroid/os/IStatsManagerService$Default;->asBinder()Landroid/os/IBinder;,public
Landroid/os/IStatsManagerService$Stub$Proxy;->asBinder()Landroid/os/IBinder;,public-api,sdk,system-api,test-api
Landroid/os/IStatsManagerService$Stub;->asBinder()Landroid/os/IBinder;,public-api,sdk,system-api,test-api
Landroid/os/IStatsManagerService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z,public-api,sdk,system-api,test-api
+Landroid/os/IStatsQueryCallback$Default;->asBinder()Landroid/os/IBinder;,public-api,sdk,system-api,test-api
+Landroid/os/IStatsQueryCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;,public-api,sdk,system-api,test-api
+Landroid/os/IStatsQueryCallback$Stub;->asBinder()Landroid/os/IBinder;,public-api,sdk,system-api,test-api
+Landroid/os/IStatsQueryCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z,public-api,sdk,system-api,test-api
+Landroid/os/IStatsSubscriptionCallback$Default;->asBinder()Landroid/os/IBinder;,public-api,sdk,system-api,test-api
+Landroid/os/IStatsSubscriptionCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;,public-api,sdk,system-api,test-api
+Landroid/os/IStatsSubscriptionCallback$Stub;->asBinder()Landroid/os/IBinder;,public-api,sdk,system-api,test-api
+Landroid/os/IStatsSubscriptionCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z,public-api,sdk,system-api,test-api
Landroid/os/IStatsd$Default;->asBinder()Landroid/os/IBinder;,public-api,sdk,system-api,test-api
Landroid/os/IStatsd$Stub$Proxy;->asBinder()Landroid/os/IBinder;,public-api,sdk,system-api,test-api
Landroid/os/IStatsd$Stub;->asBinder()Landroid/os/IBinder;,public-api,sdk,system-api,test-api
@@ -149,13 +187,27 @@ Landroid/util/StatsEventParcel;->writeToParcel(Landroid/os/Parcel;I)V,public-api
Landroid/util/StatsLog;-><init>()V,lo-prio,max-target-o
Landroid/util/StatsLog;->ANNOTATION_ID_DEFAULT_STATE:B,sdk,system-api,test-api
Landroid/util/StatsLog;->ANNOTATION_ID_EXCLUSIVE_STATE:B,sdk,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_ACCESSIBILITY:B,sdk,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_AMBIENT_SENSING:B,sdk,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_APP_ACTIVITY:B,sdk,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_APP_USAGE:B,sdk,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_DEMOGRAPHIC_CLASSIFICATION:B,sdk,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_HEALTH_CONNECT:B,sdk,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_PERIPHERAL_DEVICE_INFO:B,sdk,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_SYSTEM_SEARCH:B,sdk,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_USER_ENGAGEMENT:B,sdk,system-api,test-api
Landroid/util/StatsLog;->ANNOTATION_ID_IS_UID:B,sdk,system-api,test-api
Landroid/util/StatsLog;->ANNOTATION_ID_PRIMARY_FIELD:B,sdk,system-api,test-api
Landroid/util/StatsLog;->ANNOTATION_ID_PRIMARY_FIELD_FIRST_UID:B,sdk,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_RESTRICTION_CATEGORY:B,sdk,system-api,test-api
Landroid/util/StatsLog;->ANNOTATION_ID_STATE_NESTED:B,sdk,system-api,test-api
Landroid/util/StatsLog;->ANNOTATION_ID_TRIGGER_STATE_RESET:B,sdk,system-api,test-api
Landroid/util/StatsLog;->ANNOTATION_ID_TRUNCATE_TIMESTAMP:B,sdk,system-api,test-api
Landroid/util/StatsLog;->DEBUG:Z,lo-prio,max-target-o
+Landroid/util/StatsLog;->RESTRICTION_CATEGORY_AUTHENTICATION:I,sdk,system-api,test-api
+Landroid/util/StatsLog;->RESTRICTION_CATEGORY_DIAGNOSTIC:I,sdk,system-api,test-api
+Landroid/util/StatsLog;->RESTRICTION_CATEGORY_FRAUD_AND_ABUSE:I,sdk,system-api,test-api
+Landroid/util/StatsLog;->RESTRICTION_CATEGORY_SYSTEM_INTELLIGENCE:I,sdk,system-api,test-api
Landroid/util/StatsLog;->TAG:Ljava/lang/String;,lo-prio,max-target-o
Landroid/util/StatsLog;->logBinaryPushStateChanged(Ljava/lang/String;JII[J)Z,public-api,sdk,system-api,test-api
Landroid/util/StatsLog;->logEvent(I)Z,public-api,sdk,system-api,test-api
diff --git a/current/hiddenapi/filtered-stub-flags.csv b/current/hiddenapi/filtered-stub-flags.csv
index cfb963d..f05657f 100644
--- a/current/hiddenapi/filtered-stub-flags.csv
+++ b/current/hiddenapi/filtered-stub-flags.csv
@@ -1,3 +1,15 @@
+Landroid/app/StatsCursor;->getColumnNames()[Ljava/lang/String;,public-api,system-api,test-api
+Landroid/app/StatsCursor;->getCount()I,public-api,system-api,test-api
+Landroid/app/StatsCursor;->getDouble(I)D,public-api,system-api,test-api
+Landroid/app/StatsCursor;->getFloat(I)F,public-api,system-api,test-api
+Landroid/app/StatsCursor;->getInt(I)I,public-api,system-api,test-api
+Landroid/app/StatsCursor;->getLong(I)J,public-api,system-api,test-api
+Landroid/app/StatsCursor;->getShort(I)S,public-api,system-api,test-api
+Landroid/app/StatsCursor;->getString(I)Ljava/lang/String;,public-api,system-api,test-api
+Landroid/app/StatsCursor;->getType(I)I,public-api,system-api,test-api
+Landroid/app/StatsCursor;->isNull(I)Z,public-api,system-api,test-api
+Landroid/app/StatsCursor;->onMove(II)Z,public-api,system-api,test-api
+Landroid/app/StatsManager$$ExternalSyntheticLambda0;->run()V,core-platform-api,public-api,system-api,test-api
Landroid/app/StatsManager$PullAtomCallbackInternal$$ExternalSyntheticLambda0;->run()V,core-platform-api,public-api,system-api,test-api
Landroid/app/StatsManager$PullAtomMetadata$Builder;-><init>()V,system-api,test-api
Landroid/app/StatsManager$PullAtomMetadata$Builder;->build()Landroid/app/StatsManager$PullAtomMetadata;,system-api,test-api
@@ -8,6 +20,10 @@ Landroid/app/StatsManager$PullAtomMetadata;->getAdditiveFields()[I,system-api,te
Landroid/app/StatsManager$PullAtomMetadata;->getCoolDownMillis()J,system-api,test-api
Landroid/app/StatsManager$PullAtomMetadata;->getTimeoutMillis()J,system-api,test-api
Landroid/app/StatsManager$StatsPullAtomCallback;->onPullAtom(ILjava/util/List;)I,system-api,test-api
+Landroid/app/StatsManager$StatsQueryCallbackInternal$$ExternalSyntheticLambda0;->run()V,core-platform-api,public-api,system-api,test-api
+Landroid/app/StatsManager$StatsQueryCallbackInternal$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,system-api,test-api
+Landroid/app/StatsManager$StatsQueryException;-><init>(Ljava/lang/String;)V,system-api,test-api
+Landroid/app/StatsManager$StatsQueryException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V,system-api,test-api
Landroid/app/StatsManager$StatsUnavailableException;-><init>(Ljava/lang/String;)V,system-api,test-api
Landroid/app/StatsManager$StatsUnavailableException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V,system-api,test-api
Landroid/app/StatsManager;->ACTION_STATSD_STARTED:Ljava/lang/String;,system-api,test-api
@@ -16,6 +32,7 @@ Landroid/app/StatsManager;->EXTRA_STATS_BROADCAST_SUBSCRIBER_COOKIES:Ljava/lang/
Landroid/app/StatsManager;->EXTRA_STATS_CONFIG_KEY:Ljava/lang/String;,system-api,test-api
Landroid/app/StatsManager;->EXTRA_STATS_CONFIG_UID:Ljava/lang/String;,system-api,test-api
Landroid/app/StatsManager;->EXTRA_STATS_DIMENSIONS_VALUE:Ljava/lang/String;,system-api,test-api
+Landroid/app/StatsManager;->EXTRA_STATS_RESTRICTED_METRIC_IDS:Ljava/lang/String;,system-api,test-api
Landroid/app/StatsManager;->EXTRA_STATS_SUBSCRIPTION_ID:Ljava/lang/String;,system-api,test-api
Landroid/app/StatsManager;->EXTRA_STATS_SUBSCRIPTION_RULE_ID:Ljava/lang/String;,system-api,test-api
Landroid/app/StatsManager;->PULL_SKIP:I,system-api,test-api
@@ -28,6 +45,7 @@ Landroid/app/StatsManager;->getMetadata()[B,system-api,test-api
Landroid/app/StatsManager;->getRegisteredExperimentIds()[J,system-api,test-api
Landroid/app/StatsManager;->getReports(J)[B,system-api,test-api
Landroid/app/StatsManager;->getStatsMetadata()[B,system-api,test-api
+Landroid/app/StatsManager;->query(JLjava/lang/String;Landroid/app/StatsQuery;Ljava/util/concurrent/Executor;Landroid/os/OutcomeReceiver;)V,system-api,test-api
Landroid/app/StatsManager;->removeConfig(J)V,system-api,test-api
Landroid/app/StatsManager;->removeConfiguration(J)Z,system-api,test-api
Landroid/app/StatsManager;->setActiveConfigsChangedOperation(Landroid/app/PendingIntent;)[J,system-api,test-api
@@ -36,6 +54,18 @@ Landroid/app/StatsManager;->setBroadcastSubscriber(Landroid/app/PendingIntent;JJ
Landroid/app/StatsManager;->setDataFetchOperation(JLandroid/app/PendingIntent;)Z,system-api,test-api
Landroid/app/StatsManager;->setFetchReportsOperation(Landroid/app/PendingIntent;J)V,system-api,test-api
Landroid/app/StatsManager;->setPullAtomCallback(ILandroid/app/StatsManager$PullAtomMetadata;Ljava/util/concurrent/Executor;Landroid/app/StatsManager$StatsPullAtomCallback;)V,system-api,test-api
+Landroid/app/StatsManager;->setRestrictedMetricsChangedOperation(JLjava/lang/String;Landroid/app/PendingIntent;)[J,system-api,test-api
+Landroid/app/StatsQuery$Builder;-><init>(Ljava/lang/String;)V,system-api,test-api
+Landroid/app/StatsQuery$Builder;->build()Landroid/app/StatsQuery;,system-api,test-api
+Landroid/app/StatsQuery$Builder;->setMinSqlClientVersion(I)Landroid/app/StatsQuery$Builder;,system-api,test-api
+Landroid/app/StatsQuery$Builder;->setPolicyConfig([B)Landroid/app/StatsQuery$Builder;,system-api,test-api
+Landroid/app/StatsQuery$Builder;->setSqlDialect(I)Landroid/app/StatsQuery$Builder;,system-api,test-api
+Landroid/app/StatsQuery;->DIALECT_SQLITE:I,system-api,test-api
+Landroid/app/StatsQuery;->DIALECT_UNKNOWN:I,system-api,test-api
+Landroid/app/StatsQuery;->getMinSqlClientVersion()I,system-api,test-api
+Landroid/app/StatsQuery;->getPolicyConfig()[B,system-api,test-api
+Landroid/app/StatsQuery;->getRawSql()Ljava/lang/String;,system-api,test-api
+Landroid/app/StatsQuery;->getSqlDialect()I,system-api,test-api
Landroid/os/IPendingIntentRef$Default;->asBinder()Landroid/os/IBinder;,public-api,system-api,test-api
Landroid/os/IPendingIntentRef$Stub$Proxy;->asBinder()Landroid/os/IBinder;,public-api,system-api,test-api
Landroid/os/IPendingIntentRef$Stub;->asBinder()Landroid/os/IBinder;,public-api,system-api,test-api
@@ -56,6 +86,14 @@ Landroid/os/IStatsManagerService$Default;->asBinder()Landroid/os/IBinder;,public
Landroid/os/IStatsManagerService$Stub$Proxy;->asBinder()Landroid/os/IBinder;,public-api,system-api,test-api
Landroid/os/IStatsManagerService$Stub;->asBinder()Landroid/os/IBinder;,public-api,system-api,test-api
Landroid/os/IStatsManagerService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z,public-api,system-api,test-api
+Landroid/os/IStatsQueryCallback$Default;->asBinder()Landroid/os/IBinder;,public-api,system-api,test-api
+Landroid/os/IStatsQueryCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;,public-api,system-api,test-api
+Landroid/os/IStatsQueryCallback$Stub;->asBinder()Landroid/os/IBinder;,public-api,system-api,test-api
+Landroid/os/IStatsQueryCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z,public-api,system-api,test-api
+Landroid/os/IStatsSubscriptionCallback$Default;->asBinder()Landroid/os/IBinder;,public-api,system-api,test-api
+Landroid/os/IStatsSubscriptionCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;,public-api,system-api,test-api
+Landroid/os/IStatsSubscriptionCallback$Stub;->asBinder()Landroid/os/IBinder;,public-api,system-api,test-api
+Landroid/os/IStatsSubscriptionCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z,public-api,system-api,test-api
Landroid/os/IStatsd$Default;->asBinder()Landroid/os/IBinder;,public-api,system-api,test-api
Landroid/os/IStatsd$Stub$Proxy;->asBinder()Landroid/os/IBinder;,public-api,system-api,test-api
Landroid/os/IStatsd$Stub;->asBinder()Landroid/os/IBinder;,public-api,system-api,test-api
@@ -115,12 +153,26 @@ Landroid/util/StatsEventParcel;->describeContents()I,public-api,system-api,test-
Landroid/util/StatsEventParcel;->writeToParcel(Landroid/os/Parcel;I)V,public-api,system-api,test-api
Landroid/util/StatsLog;->ANNOTATION_ID_DEFAULT_STATE:B,system-api,test-api
Landroid/util/StatsLog;->ANNOTATION_ID_EXCLUSIVE_STATE:B,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_ACCESSIBILITY:B,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_AMBIENT_SENSING:B,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_APP_ACTIVITY:B,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_APP_USAGE:B,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_DEMOGRAPHIC_CLASSIFICATION:B,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_HEALTH_CONNECT:B,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_PERIPHERAL_DEVICE_INFO:B,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_SYSTEM_SEARCH:B,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_FIELD_RESTRICTION_USER_ENGAGEMENT:B,system-api,test-api
Landroid/util/StatsLog;->ANNOTATION_ID_IS_UID:B,system-api,test-api
Landroid/util/StatsLog;->ANNOTATION_ID_PRIMARY_FIELD:B,system-api,test-api
Landroid/util/StatsLog;->ANNOTATION_ID_PRIMARY_FIELD_FIRST_UID:B,system-api,test-api
+Landroid/util/StatsLog;->ANNOTATION_ID_RESTRICTION_CATEGORY:B,system-api,test-api
Landroid/util/StatsLog;->ANNOTATION_ID_STATE_NESTED:B,system-api,test-api
Landroid/util/StatsLog;->ANNOTATION_ID_TRIGGER_STATE_RESET:B,system-api,test-api
Landroid/util/StatsLog;->ANNOTATION_ID_TRUNCATE_TIMESTAMP:B,system-api,test-api
+Landroid/util/StatsLog;->RESTRICTION_CATEGORY_AUTHENTICATION:I,system-api,test-api
+Landroid/util/StatsLog;->RESTRICTION_CATEGORY_DIAGNOSTIC:I,system-api,test-api
+Landroid/util/StatsLog;->RESTRICTION_CATEGORY_FRAUD_AND_ABUSE:I,system-api,test-api
+Landroid/util/StatsLog;->RESTRICTION_CATEGORY_SYSTEM_INTELLIGENCE:I,system-api,test-api
Landroid/util/StatsLog;->logBinaryPushStateChanged(Ljava/lang/String;JII[J)Z,public-api,system-api,test-api
Landroid/util/StatsLog;->logEvent(I)Z,public-api,system-api,test-api
Landroid/util/StatsLog;->logStart(I)Z,public-api,system-api,test-api
diff --git a/current/hiddenapi/signature-patterns.csv b/current/hiddenapi/signature-patterns.csv
index f28a601..c8b6f93 100644
--- a/current/hiddenapi/signature-patterns.csv
+++ b/current/hiddenapi/signature-patterns.csv
@@ -1,13 +1,18 @@
+android/app/StatsCursor
android/app/StatsManager
+android/app/StatsQuery
android/os/IPendingIntentRef
android/os/IPullAtomCallback
android/os/IPullAtomResultReceiver
android/os/IStatsCompanionService
android/os/IStatsManagerService
+android/os/IStatsQueryCallback
+android/os/IStatsSubscriptionCallback
android/os/IStatsd
android/os/StatsDimensionsValue
android/os/StatsDimensionsValueParcel
android/os/StatsFrameworkInitializer
+android/os/StatsSubscriptionCallbackReason
android/util/PropertyParcel
android/util/StatsEvent
android/util/StatsEventParcel
diff --git a/current/include/packages/modules/StatsD/lib/libstatspull/include/stats_pull_atom_callback.h b/current/include/packages/modules/StatsD/lib/libstatspull/include/stats_pull_atom_callback.h
new file mode 100644
index 0000000..17df584
--- /dev/null
+++ b/current/include/packages/modules/StatsD/lib/libstatspull/include/stats_pull_atom_callback.h
@@ -0,0 +1,170 @@
+/*
+ * Copyright (C) 2019, 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.
+ */
+#pragma once
+
+#include <stats_event.h>
+
+#include <stdbool.h>
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Opaque struct representing the metadata for registering an AStatsManager_PullAtomCallback.
+ */
+struct AStatsManager_PullAtomMetadata;
+typedef struct AStatsManager_PullAtomMetadata AStatsManager_PullAtomMetadata;
+
+/**
+ * Allocate and initialize new PullAtomMetadata.
+ *
+ * Must call AStatsManager_PullAtomMetadata_release to free the memory.
+ */
+AStatsManager_PullAtomMetadata* AStatsManager_PullAtomMetadata_obtain();
+
+/**
+ * Frees the memory held by this PullAtomMetadata
+ *
+ * After calling this, the PullAtomMetadata must not be used or modified in any way.
+ */
+void AStatsManager_PullAtomMetadata_release(AStatsManager_PullAtomMetadata* metadata);
+
+/**
+ * Set the cool down time of the pull in milliseconds. If two successive pulls are issued
+ * within the cool down, a cached version of the first will be used for the second. The minimum
+ * allowed cool down is one second.
+ */
+void AStatsManager_PullAtomMetadata_setCoolDownMillis(AStatsManager_PullAtomMetadata* metadata,
+ int64_t cool_down_millis);
+
+/**
+ * Get the cool down time of the pull in milliseconds.
+ */
+int64_t AStatsManager_PullAtomMetadata_getCoolDownMillis(AStatsManager_PullAtomMetadata* metadata);
+
+/**
+ * Set the maximum time the pull can take in milliseconds.
+ * The maximum allowed timeout is 10 seconds.
+ */
+void AStatsManager_PullAtomMetadata_setTimeoutMillis(AStatsManager_PullAtomMetadata* metadata,
+ int64_t timeout_millis);
+
+/**
+ * Get the maximum time the pull can take in milliseconds.
+ */
+int64_t AStatsManager_PullAtomMetadata_getTimeoutMillis(AStatsManager_PullAtomMetadata* metadata);
+
+/**
+ * Set the additive fields of this pulled atom.
+ *
+ * This is only applicable for atoms which have a uid field. When tasks are run in
+ * isolated processes, the data will be attributed to the host uid. Additive fields
+ * will be combined when the non-additive fields are the same.
+ */
+void AStatsManager_PullAtomMetadata_setAdditiveFields(AStatsManager_PullAtomMetadata* metadata,
+ int32_t* additive_fields, int32_t num_fields);
+
+/**
+ * Get the number of additive fields for this pulled atom. This is intended to be called before
+ * AStatsManager_PullAtomMetadata_getAdditiveFields to determine the size of the array.
+ */
+int32_t AStatsManager_PullAtomMetadata_getNumAdditiveFields(
+ AStatsManager_PullAtomMetadata* metadata);
+
+/**
+ * Get the additive fields of this pulled atom.
+ *
+ * \param fields an output parameter containing the additive fields for this PullAtomMetadata.
+ * Fields is an array and it is assumed that it is at least as large as the number of
+ * additive fields, which can be obtained by calling
+ * AStatsManager_PullAtomMetadata_getNumAdditiveFields.
+ */
+void AStatsManager_PullAtomMetadata_getAdditiveFields(AStatsManager_PullAtomMetadata* metadata,
+ int32_t* fields);
+
+/**
+ * Return codes for the result of a pull.
+ */
+typedef int32_t AStatsManager_PullAtomCallbackReturn;
+enum {
+ // Value indicating that this pull was successful and that the result should be used.
+ AStatsManager_PULL_SUCCESS = 0,
+ // Value indicating that this pull was unsuccessful and that the result should not be used.
+ AStatsManager_PULL_SKIP = 1,
+};
+
+/**
+ * Opaque struct representing a list of AStatsEvent objects.
+ */
+struct AStatsEventList;
+typedef struct AStatsEventList AStatsEventList;
+
+/**
+ * Appends and returns an AStatsEvent to the end of the AStatsEventList.
+ *
+ * If an AStatsEvent is obtained in this manner, the memory is internally managed and
+ * AStatsEvent_release does not need to be called. The lifetime of the AStatsEvent is that of the
+ * AStatsEventList.
+ *
+ * The AStatsEvent does still need to be built by calling AStatsEvent_build.
+ */
+AStatsEvent* AStatsEventList_addStatsEvent(AStatsEventList* pull_data);
+
+/**
+ * Callback interface for pulling atoms requested by the stats service.
+ *
+ * \param atom_tag the tag of the atom to pull.
+ * \param data an output parameter in which the caller should fill the results of the pull. This
+ * param cannot be NULL and it's lifetime is as long as the execution of the callback.
+ * It must not be accessed or modified after returning from the callback.
+ * \param cookie the opaque pointer passed in AStatsManager_registerPullAtomCallback.
+ * \return AStatsManager_PULL_SUCCESS if the pull was successful, or AStatsManager_PULL_SKIP if not.
+ */
+typedef AStatsManager_PullAtomCallbackReturn (*AStatsManager_PullAtomCallback)(
+ int32_t atom_tag, AStatsEventList* data, void* cookie);
+/**
+ * Sets a callback for an atom when that atom is to be pulled. The stats service will
+ * invoke the callback when the stats service determines that this atom needs to be
+ * pulled.
+ *
+ * Requires the REGISTER_STATS_PULL_ATOM permission.
+ *
+ * \param atom_tag The tag of the atom for this pull atom callback.
+ * \param metadata Optional metadata specifying the timeout, cool down time, and
+ * additive fields for mapping isolated to host uids.
+ * This param is nullable, in which case defaults will be used.
+ * \param callback The callback to be invoked when the stats service pulls the atom.
+ * \param cookie A pointer that will be passed back to the callback.
+ * It has no meaning to statsd.
+ */
+void AStatsManager_setPullAtomCallback(int32_t atom_tag, AStatsManager_PullAtomMetadata* metadata,
+ AStatsManager_PullAtomCallback callback, void* cookie);
+
+/**
+ * Clears a callback for an atom when that atom is to be pulled. Note that any ongoing
+ * pulls will still occur.
+ *
+ * Requires the REGISTER_STATS_PULL_ATOM permission.
+ *
+ * \param atomTag The tag of the atom of which to unregister
+ */
+void AStatsManager_clearPullAtomCallback(int32_t atom_tag);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/current/include/packages/modules/StatsD/lib/libstatspull/include/stats_subscription.h b/current/include/packages/modules/StatsD/lib/libstatspull/include/stats_subscription.h
new file mode 100644
index 0000000..6509c2b
--- /dev/null
+++ b/current/include/packages/modules/StatsD/lib/libstatspull/include/stats_subscription.h
@@ -0,0 +1,127 @@
+/*
+ * Copyright (C) 2023, 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.
+ */
+#pragma once
+
+#include <stdint.h>
+#include <sys/cdefs.h>
+
+#ifndef __STATSD_SUBS_MIN_API__
+#define __STATSD_SUBS_MIN_API__ __ANDROID_API_U__
+#endif
+
+__BEGIN_DECLS
+
+/**
+ * Reason codes for why subscription callback was triggered.
+ */
+typedef enum AStatsManager_SubscriptionCallbackReason : uint32_t {
+ /**
+ * SubscriptionCallbackReason constant for subscription data transfer initiated by stats
+ * service.
+ *
+ * Introduced in API 34.
+ */
+ ASTATSMANAGER_SUBSCRIPTION_CALLBACK_REASON_STATSD_INITIATED = 1,
+
+ /**
+ * SubscriptionCallbackReason constant for subscriber requesting flush of pending data.
+ *
+ * Introduced in API 34.
+ */
+ ASTATSMANAGER_SUBSCRIPTION_CALLBACK_REASON_FLUSH_REQUESTED = 2,
+
+ /**
+ * SubscriptionCallbackReason constant for final stream of data for a subscription.
+ *
+ * Introduced in API 34.
+ */
+ ASTATSMANAGER_SUBSCRIPTION_CALLBACK_REASON_SUBSCRIPTION_ENDED = 3,
+} AStatsManager_SubscriptionCallbackReason;
+
+/**
+ * Callback interface for receiving subscription data by the stats service.
+ *
+ * This will be called on an arbitrary binder thread. There is a pool of such threads and there is a
+ * no guarantee a single thread will be used even for the same subscription. Clients must ensure it
+ * is safe to call callback from arbitrary threads.
+ *
+ * \param subscription_id the subscription id for which the callback is triggered.
+ * \param reason code for why the callback is triggered.
+ * \param payload encoded SubscriptionResults proto containing subscription data.
+ * Cannot be null.
+ * \param num_bytes size in bytes of the payload.
+ * \param cookie the opaque pointer passed in AStatsManager_addSubscription. Can be null.
+ *
+ * Introduced in API 34.
+ */
+typedef void (*AStatsManager_SubscriptionCallback)(int32_t subscription_id,
+ AStatsManager_SubscriptionCallbackReason reason,
+ uint8_t* _Nonnull payload, size_t num_bytes,
+ void* _Nullable cookie);
+
+/**
+ * Adds a new subscription.
+ *
+ * Requires caller is in the traced_probes selinux domain.
+ *
+ * \param subscription_config encoded ShellSubscription proto containing parameters for a new
+ * subscription. Cannot be null.
+ * \param num_bytes size in bytes of the subscription_config.
+ * \param callback function called to deliver subscription data back to the subscriber. Each
+ * callback can be used for more than one subscription. Cannot be null.
+ * \param cookie opaque pointer to associate with the subscription. The provided callback will be
+ * invoked with this cookie as an argument when delivering data for this subscription. Can be
+ * null.
+ * \return subscription ID for the new subscription. Subscription ID is a positive integer. A
+ * negative value indicates an error.
+ *
+ * Introduced in API 34.
+ */
+int32_t AStatsManager_addSubscription(const uint8_t* _Nonnull subscription_config, size_t num_bytes,
+ const AStatsManager_SubscriptionCallback _Nonnull callback,
+ void* _Nullable cookie)
+ __INTRODUCED_IN(__STATSD_SUBS_MIN_API__);
+
+/**
+ * Removes an existing subscription.
+ * This will trigger a flush of the remaining subscription data through
+ * AStatsManager_SubscriptionCallback with the reason as
+ * ASTATSMANAGER_SUBSCRIPTION_CALLBACK_REASON_SUBSCRIPTION_ENDED.
+ *
+ * Requires caller is in the traced_probes selinux domain.
+ *
+ * \param subscription_id subscription id of the subscription to terminate.
+ *
+ * Introduced in API 34.
+ */
+void AStatsManager_removeSubscription(int32_t subscription_id)
+ __INTRODUCED_IN(__STATSD_SUBS_MIN_API__);
+
+/**
+ * Request stats service to flush a subscription.
+ * This will trigger AStatsManager_SubscriptionCallback with the reason as
+ * ASTATSMANAGER_SUBSCRIPTION_CALLBACK_REASON_FLUSH_REQUESTED.
+ *
+ * Requires caller is in the traced_probes selinux domain.
+ *
+ * \param subscription_id ID of the subscription to be flushed.
+ *
+ * Introduced in API 34.
+ */
+void AStatsManager_flushSubscription(int32_t subscription_id)
+ __INTRODUCED_IN(__STATSD_SUBS_MIN_API__);
+
+__END_DECLS
diff --git a/current/include/packages/modules/StatsD/lib/libstatssocket/include/stats_annotations.h b/current/include/packages/modules/StatsD/lib/libstatssocket/include/stats_annotations.h
index e812af0..2963db9 100644
--- a/current/include/packages/modules/StatsD/lib/libstatssocket/include/stats_annotations.h
+++ b/current/include/packages/modules/StatsD/lib/libstatssocket/include/stats_annotations.h
@@ -80,6 +80,116 @@ enum AnnotationIds : uint8_t {
* Introduced in API 31.
*/
ASTATSLOG_ANNOTATION_ID_STATE_NESTED = 8,
+
+ /**
+ * Annotation ID constant to indicate the restriction category of an atom.
+ * This annotation must only be attached to the atom id. This is an int annotation.
+ *
+ * Introduced in API 34.
+ */
+ ASTATSLOG_ANNOTATION_ID_RESTRICTION_CATEGORY = 9,
+
+ /**
+ * Annotation ID to indicate that a field of an atom contains peripheral device info.
+ * This is a bool annotation.
+ *
+ * Introduced in API 34.
+ */
+ ASTATSLOG_ANNOTATION_ID_FIELD_RESTRICTION_PERIPHERAL_DEVICE_INFO = 10,
+
+ /**
+ * Annotation ID to indicate that a field of an atom contains app usage information.
+ * This is a bool annotation.
+ *
+ * Introduced in API 34.
+ */
+ ASTATSLOG_ANNOTATION_ID_FIELD_RESTRICTION_APP_USAGE = 11,
+
+ /**
+ * Annotation ID to indicate that a field of an atom contains app activity information.
+ * This is a bool annotation.
+ *
+ * Introduced in API 34.
+ */
+ ASTATSLOG_ANNOTATION_ID_FIELD_RESTRICTION_APP_ACTIVITY = 12,
+
+ /**
+ * Annotation ID to indicate that a field of an atom contains health connect information.
+ * This is a bool annotation.
+ *
+ * Introduced in API 34.
+ */
+ ASTATSLOG_ANNOTATION_ID_FIELD_RESTRICTION_HEALTH_CONNECT = 13,
+
+ /**
+ * Annotation ID to indicate that a field of an atom contains accessibility information.
+ * This is a bool annotation.
+ *
+ * Introduced in API 34.
+ */
+ ASTATSLOG_ANNOTATION_ID_FIELD_RESTRICTION_ACCESSIBILITY = 14,
+
+ /**
+ * Annotation ID to indicate that a field of an atom contains system search information.
+ * This is a bool annotation.
+ *
+ * Introduced in API 34.
+ */
+ ASTATSLOG_ANNOTATION_ID_FIELD_RESTRICTION_SYSTEM_SEARCH = 15,
+
+ /**
+ * Annotation ID to indicate that a field of an atom contains user engagement information.
+ * This is a bool annotation.
+ *
+ * Introduced in API 34.
+ */
+ ASTATSLOG_ANNOTATION_ID_FIELD_RESTRICTION_USER_ENGAGEMENT = 16,
+
+ /**
+ * Annotation ID to indicate that a field of an atom contains ambient sensing information.
+ * This is a bool annotation.
+ *
+ * Introduced in API 34.
+ */
+ ASTATSLOG_ANNOTATION_ID_FIELD_RESTRICTION_AMBIENT_SENSING = 17,
+
+ /**
+ * Annotation ID to indicate that a field of an atom contains demographic classification
+ * information. This is a bool annotation.
+ *
+ * Introduced in API 34.
+ */
+ ASTATSLOG_ANNOTATION_ID_FIELD_RESTRICTION_DEMOGRAPHIC_CLASSIFICATION = 18,
};
+enum AStatsLogRestrictionCategory : uint32_t {
+ /**
+ * Restriction category for atoms about diagnostics.
+ *
+ * Introduced in API 34.
+ */
+ ASTATSLOG_RESTRICTION_CATEGORY_DIAGNOSTIC = 1,
+
+ /**
+ * Restriction category for atoms about system intelligence.
+ *
+ * Introduced in API 34.
+ */
+ ASTATSLOG_RESTRICTION_CATEGORY_SYSTEM_INTELLIGENCE = 2,
+
+ /**
+ * Restriction category for atoms about authentication.
+ *
+ * Introduced in API 34.
+ */
+ ASTATSLOG_RESTRICTION_CATEGORY_AUTHENTICATION = 3,
+
+ /**
+ * Restriction category for atoms about fraud and abuse.
+ *
+ * Introduced in API 34.
+ */
+ ASTATSLOG_RESTRICTION_CATEGORY_FRAUD_AND_ABUSE = 4,
+
+};
__END_DECLS
diff --git a/current/sdk_library/module-lib/framework-statsd-stubs.jar b/current/sdk_library/module-lib/framework-statsd-stubs.jar
index 949a7bd..3f887ff 100644
--- a/current/sdk_library/module-lib/framework-statsd-stubs.jar
+++ b/current/sdk_library/module-lib/framework-statsd-stubs.jar
Binary files differ
diff --git a/current/sdk_library/module-lib/framework-statsd.srcjar b/current/sdk_library/module-lib/framework-statsd.srcjar
index b2e8810..7dff6f9 100644
--- a/current/sdk_library/module-lib/framework-statsd.srcjar
+++ b/current/sdk_library/module-lib/framework-statsd.srcjar
Binary files differ
diff --git a/current/sdk_library/module-lib/framework-statsd_annotations.zip b/current/sdk_library/module-lib/framework-statsd_annotations.zip
index bfbd02c..43471e3 100644
--- a/current/sdk_library/module-lib/framework-statsd_annotations.zip
+++ b/current/sdk_library/module-lib/framework-statsd_annotations.zip
Binary files differ
diff --git a/current/sdk_library/public/framework-statsd-stubs.jar b/current/sdk_library/public/framework-statsd-stubs.jar
index 648cb87..0a2d519 100644
--- a/current/sdk_library/public/framework-statsd-stubs.jar
+++ b/current/sdk_library/public/framework-statsd-stubs.jar
Binary files differ
diff --git a/current/sdk_library/public/framework-statsd.srcjar b/current/sdk_library/public/framework-statsd.srcjar
index c534edf..c7f77f7 100644
--- a/current/sdk_library/public/framework-statsd.srcjar
+++ b/current/sdk_library/public/framework-statsd.srcjar
Binary files differ
diff --git a/current/sdk_library/system/framework-statsd-stubs.jar b/current/sdk_library/system/framework-statsd-stubs.jar
index 169ca7e..7c9383f 100644
--- a/current/sdk_library/system/framework-statsd-stubs.jar
+++ b/current/sdk_library/system/framework-statsd-stubs.jar
Binary files differ
diff --git a/current/sdk_library/system/framework-statsd.srcjar b/current/sdk_library/system/framework-statsd.srcjar
index d33c643..688cbba 100644
--- a/current/sdk_library/system/framework-statsd.srcjar
+++ b/current/sdk_library/system/framework-statsd.srcjar
Binary files differ
diff --git a/current/sdk_library/system/framework-statsd.txt b/current/sdk_library/system/framework-statsd.txt
index c432a7f..41b5891 100644
--- a/current/sdk_library/system/framework-statsd.txt
+++ b/current/sdk_library/system/framework-statsd.txt
@@ -1,6 +1,18 @@
// Signature format: 2.0
package android.app {
+ public class StatsCursor extends android.database.AbstractCursor {
+ method @NonNull public String[] getColumnNames();
+ method public int getCount();
+ method public double getDouble(int);
+ method public float getFloat(int);
+ method public int getInt(int);
+ method public long getLong(int);
+ method public short getShort(int);
+ method @NonNull public String getString(int);
+ method public boolean isNull(int);
+ }
+
public final class StatsManager {
method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public void addConfig(long, byte[]) throws android.app.StatsManager.StatsUnavailableException;
method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean addConfiguration(long, byte[]);
@@ -10,6 +22,7 @@ package android.app {
method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public long[] getRegisteredExperimentIds() throws android.app.StatsManager.StatsUnavailableException;
method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public byte[] getReports(long) throws android.app.StatsManager.StatsUnavailableException;
method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public byte[] getStatsMetadata() throws android.app.StatsManager.StatsUnavailableException;
+ method @RequiresPermission(android.Manifest.permission.READ_RESTRICTED_STATS) public void query(long, @NonNull String, @NonNull android.app.StatsQuery, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.app.StatsCursor,android.app.StatsManager.StatsQueryException>) throws android.app.StatsManager.StatsUnavailableException;
method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public void removeConfig(long) throws android.app.StatsManager.StatsUnavailableException;
method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean removeConfiguration(long);
method @NonNull @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public long[] setActiveConfigsChangedOperation(@Nullable android.app.PendingIntent) throws android.app.StatsManager.StatsUnavailableException;
@@ -18,12 +31,14 @@ package android.app {
method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean setDataFetchOperation(long, android.app.PendingIntent);
method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public void setFetchReportsOperation(android.app.PendingIntent, long) throws android.app.StatsManager.StatsUnavailableException;
method @RequiresPermission(android.Manifest.permission.REGISTER_STATS_PULL_ATOM) public void setPullAtomCallback(int, @Nullable android.app.StatsManager.PullAtomMetadata, @NonNull java.util.concurrent.Executor, @NonNull android.app.StatsManager.StatsPullAtomCallback);
+ method @NonNull @RequiresPermission(android.Manifest.permission.READ_RESTRICTED_STATS) public long[] setRestrictedMetricsChangedOperation(long, @NonNull String, @Nullable android.app.PendingIntent) throws android.app.StatsManager.StatsUnavailableException;
field public static final String ACTION_STATSD_STARTED = "android.app.action.STATSD_STARTED";
field public static final String EXTRA_STATS_ACTIVE_CONFIG_KEYS = "android.app.extra.STATS_ACTIVE_CONFIG_KEYS";
field public static final String EXTRA_STATS_BROADCAST_SUBSCRIBER_COOKIES = "android.app.extra.STATS_BROADCAST_SUBSCRIBER_COOKIES";
field public static final String EXTRA_STATS_CONFIG_KEY = "android.app.extra.STATS_CONFIG_KEY";
field public static final String EXTRA_STATS_CONFIG_UID = "android.app.extra.STATS_CONFIG_UID";
field public static final String EXTRA_STATS_DIMENSIONS_VALUE = "android.app.extra.STATS_DIMENSIONS_VALUE";
+ field public static final String EXTRA_STATS_RESTRICTED_METRIC_IDS = "android.app.extra.STATS_RESTRICTED_METRIC_IDS";
field public static final String EXTRA_STATS_SUBSCRIPTION_ID = "android.app.extra.STATS_SUBSCRIPTION_ID";
field public static final String EXTRA_STATS_SUBSCRIPTION_RULE_ID = "android.app.extra.STATS_SUBSCRIPTION_RULE_ID";
field public static final int PULL_SKIP = 1; // 0x1
@@ -48,11 +63,33 @@ package android.app {
method public int onPullAtom(int, @NonNull java.util.List<android.util.StatsEvent>);
}
+ public static class StatsManager.StatsQueryException extends android.util.AndroidException {
+ ctor public StatsManager.StatsQueryException(@NonNull String);
+ ctor public StatsManager.StatsQueryException(@NonNull String, @NonNull Throwable);
+ }
+
public static class StatsManager.StatsUnavailableException extends android.util.AndroidException {
ctor public StatsManager.StatsUnavailableException(String);
ctor public StatsManager.StatsUnavailableException(String, Throwable);
}
+ public final class StatsQuery {
+ method @IntRange(from=0) public int getMinSqlClientVersion();
+ method @Nullable public byte[] getPolicyConfig();
+ method @NonNull public String getRawSql();
+ method public int getSqlDialect();
+ field public static final int DIALECT_SQLITE = 1; // 0x1
+ field public static final int DIALECT_UNKNOWN = 0; // 0x0
+ }
+
+ public static final class StatsQuery.Builder {
+ ctor public StatsQuery.Builder(@NonNull String);
+ method @NonNull public android.app.StatsQuery build();
+ method @NonNull public android.app.StatsQuery.Builder setMinSqlClientVersion(@IntRange(from=0) int);
+ method @NonNull public android.app.StatsQuery.Builder setPolicyConfig(@NonNull byte[]);
+ method @NonNull public android.app.StatsQuery.Builder setSqlDialect(int);
+ }
+
}
package android.os {
@@ -112,12 +149,26 @@ package android.util {
method @Deprecated public static void writeRaw(@NonNull byte[], int);
field public static final byte ANNOTATION_ID_DEFAULT_STATE = 6; // 0x6
field public static final byte ANNOTATION_ID_EXCLUSIVE_STATE = 4; // 0x4
+ field public static final byte ANNOTATION_ID_FIELD_RESTRICTION_ACCESSIBILITY = 14; // 0xe
+ field public static final byte ANNOTATION_ID_FIELD_RESTRICTION_AMBIENT_SENSING = 17; // 0x11
+ field public static final byte ANNOTATION_ID_FIELD_RESTRICTION_APP_ACTIVITY = 12; // 0xc
+ field public static final byte ANNOTATION_ID_FIELD_RESTRICTION_APP_USAGE = 11; // 0xb
+ field public static final byte ANNOTATION_ID_FIELD_RESTRICTION_DEMOGRAPHIC_CLASSIFICATION = 18; // 0x12
+ field public static final byte ANNOTATION_ID_FIELD_RESTRICTION_HEALTH_CONNECT = 13; // 0xd
+ field public static final byte ANNOTATION_ID_FIELD_RESTRICTION_PERIPHERAL_DEVICE_INFO = 10; // 0xa
+ field public static final byte ANNOTATION_ID_FIELD_RESTRICTION_SYSTEM_SEARCH = 15; // 0xf
+ field public static final byte ANNOTATION_ID_FIELD_RESTRICTION_USER_ENGAGEMENT = 16; // 0x10
field public static final byte ANNOTATION_ID_IS_UID = 1; // 0x1
field public static final byte ANNOTATION_ID_PRIMARY_FIELD = 3; // 0x3
field public static final byte ANNOTATION_ID_PRIMARY_FIELD_FIRST_UID = 5; // 0x5
+ field public static final byte ANNOTATION_ID_RESTRICTION_CATEGORY = 9; // 0x9
field public static final byte ANNOTATION_ID_STATE_NESTED = 8; // 0x8
field public static final byte ANNOTATION_ID_TRIGGER_STATE_RESET = 7; // 0x7
field public static final byte ANNOTATION_ID_TRUNCATE_TIMESTAMP = 2; // 0x2
+ field public static final int RESTRICTION_CATEGORY_AUTHENTICATION = 3; // 0x3
+ field public static final int RESTRICTION_CATEGORY_DIAGNOSTIC = 1; // 0x1
+ field public static final int RESTRICTION_CATEGORY_FRAUD_AND_ABUSE = 4; // 0x4
+ field public static final int RESTRICTION_CATEGORY_SYSTEM_INTELLIGENCE = 2; // 0x2
}
}
diff --git a/current/sdk_library/system/framework-statsd_annotations.zip b/current/sdk_library/system/framework-statsd_annotations.zip
index bfbd02c..43471e3 100644
--- a/current/sdk_library/system/framework-statsd_annotations.zip
+++ b/current/sdk_library/system/framework-statsd_annotations.zip
Binary files differ
diff --git a/current/snapshot-creation-build-number.txt b/current/snapshot-creation-build-number.txt
index 46591ff..622b3bf 100644
--- a/current/snapshot-creation-build-number.txt
+++ b/current/snapshot-creation-build-number.txt
@@ -1 +1 @@
-9037926 \ No newline at end of file
+10484568 \ No newline at end of file
diff --git a/current/x86/lib/libstatspull.so b/current/x86/lib/libstatspull.so
new file mode 100755
index 0000000..3f704f6
--- /dev/null
+++ b/current/x86/lib/libstatspull.so
Binary files differ
diff --git a/current/x86/lib/libstatssocket.so b/current/x86/lib/libstatssocket.so
index 3922f38..c207389 100755
--- a/current/x86/lib/libstatssocket.so
+++ b/current/x86/lib/libstatssocket.so
Binary files differ
diff --git a/current/x86_64/lib/libstatspull.so b/current/x86_64/lib/libstatspull.so
new file mode 100755
index 0000000..5dbcddc
--- /dev/null
+++ b/current/x86_64/lib/libstatspull.so
Binary files differ
diff --git a/current/x86_64/lib/libstatssocket.so b/current/x86_64/lib/libstatssocket.so
index 6fe4f6b..d38b424 100755
--- a/current/x86_64/lib/libstatssocket.so
+++ b/current/x86_64/lib/libstatssocket.so
Binary files differ