Merge "Update SoftAP metrics start failure codes" into udc-dev
diff --git a/stats/atoms.proto b/stats/atoms.proto
index 3524444..89dfc0c 100644
--- a/stats/atoms.proto
+++ b/stats/atoms.proto
@@ -223,7 +223,7 @@
64 [(module) = "sysui"];
AppDied app_died = 65 [(module) = "framework"];
ResourceConfigurationChanged resource_configuration_changed = 66 [(module) = "framework"];
- BluetoothEnabledStateChanged bluetooth_enabled_state_changed = 67 [(module) = "framework"];
+ BluetoothEnabledStateChanged bluetooth_enabled_state_changed = 67 [(module) = "bluetooth"];
BluetoothConnectionStateChanged bluetooth_connection_state_changed =
68 [(module) = "bluetooth"];
GpsSignalQualityChanged gps_signal_quality_changed = 69 [(module) = "framework"];
@@ -1025,12 +1025,23 @@
extensions 680; // SoftApStarted softap_started
extensions 681; // SoftApStopped softap_stopped
extensions 684; // MediaCodecRendered media_codec_rendered
+ extensions 685; // InTaskActivityStarted in_task_activity_started
+ extensions 687; // WifiLockReleased wifi_lock_released
+ extensions 688; // WifiLockDeactivated wifi_lock_deactivated
+ extensions 689; // WifiConfigSaved wifi_config_saved
+ extensions 690; // WifiAwareResourceUsingChanged wifi_aware_resource_using_changed
+ extensions 691; // WifiAwareHalApiCalled wifi_aware_hal_api_called
+ extensions 692; // WifiLocalOnlyRequestReceived wifi_local_only_request_received
+ extensions 693; // WifiLocalOnlyRequestScanTriggered wifi_local_only_request_scan_triggered
+ extensions 694; // WifiThreadTaskExecuted wifi_thread_task_executed
+ extensions 696; // BluetoothProfileConnectionAttempted bluetooth_profile_connection_attempted
+ extensions 702; // AdServicesConsentMigrated ad_services_consent_migrated
extensions 9999; // Atom9999 atom_9999
// StatsdStats tracks platform atoms with ids up to 900.
// Update StatsdStats::kMaxPushedAtomId when atom ids here approach that value.
// Pulled events will start at field 10000.
- // Next: 10190
+ // Next: 10191
oneof pulled {
WifiBytesTransfer wifi_bytes_transfer = 10000 [(module) = "framework"];
WifiBytesTransferByFgBg wifi_bytes_transfer_by_fg_bg = 10001 [(module) = "framework"];
@@ -1256,6 +1267,7 @@
extensions 10187; // SatelliteSosMessageRecommender satellite_sos_message_recommender
extensions 10188; // UwbActivityInfo uwb_activity_info
extensions 10189; // CachedAppsHighWaterMark cached_apps_high_watermark
+ extensions 10190; // WifiAwareCapabilities wifi_aware_capabilities
extensions 99999; // Atom99999 atom_99999
// DO NOT USE field numbers above 100,000 in AOSP.
@@ -1695,6 +1707,8 @@
optional bool is_carrier_wifi = 10;
// Whether the OOB pseeudonym is enabled for the current connection.
optional bool is_oob_pseudonym_enabled = 11;
+ // The client mode role for the connection, can use to determine the connection type.
+ optional android.net.wifi.ClientModeRole role = 12;
}
/**
@@ -1898,6 +1912,8 @@
// fallback to negotiation if device receives invitation response status code "information is
// currently unavailable"
optional bool fallback_to_negotiation_on_invite_status_info_unavailable = 11;
+ // The try count of connection
+ optional int32 try_count = 12;
}
/**
@@ -2141,7 +2157,7 @@
* frameworks/base/services/core/java/com/android/server/job/JobSchedulerService.java
* frameworks/base/services/core/java/com/android/server/job/JobServiceContext.java
*
- * Next tag: 40
+ * Next tag: 41
*/
message ScheduledJobStateChanged {
repeated AttributionNode attribution_node = 1;
@@ -2184,11 +2200,13 @@
RARE = 3;
NEVER = 4;
RESTRICTED = 5;
+ EXEMPTED = 6;
}
optional Bucket standby_bucket = 5 [default = UNKNOWN];
- // The job id (as assigned by the app).
- optional int32 job_id = 6;
+ // On T- builds, this is the job id (as assigned by the app).
+ // On U+ builds, this is generated by the system, factoring in the job's namespace.
+ optional int64 job_id = 6;
// One flag for each of the API constraints defined by JobScheduler. Does not include implicit
// constraints as they are always assumed to be set.
@@ -2272,6 +2290,9 @@
// Proc state of the UID of the logged event
optional android.app.ProcessStateEnum proc_state = 39 [default = PROCESS_STATE_UNKNOWN];
+
+ // Hash of the namespace set via JobScheduler.forNamespace(String).
+ optional string namespace_hash = 40;
}
/**
@@ -5415,6 +5436,10 @@
repeated int64 api_timestamp = 23;
+ optional int64 api_before_fgs_start_duration_millis = 28;
+
+ optional int64 api_after_fgs_end_duration_millis = 29;
+
// Keep it in sync with ActivityManager.ProcessCapability.
enum ProcessCapability {
PROCESS_CAPABILITY_NONE = 0;
@@ -5760,6 +5785,10 @@
// Field for tracking whether the notification is non-dismissible
optional bool is_non_dismissible = 25;
+
+ // Time elapsed between the notify() API call and the NLSes being told about the notification.
+ // Will be 0 for NotificationReported protos that do not correspond to a notify() call.
+ optional int64 post_duration_millis = 26;
}
/**
@@ -6451,6 +6480,12 @@
/** The package name of the service lunch request */
optional string requester_package_name = 11;
+
+ /** The process state of the requester */
+ optional android.app.ProcessStateEnum requester_process_state = 12;
+
+ /** The process state of the service host before this service request */
+ optional android.app.ProcessStateEnum service_process_state = 13;
}
/**
@@ -6501,6 +6536,24 @@
/** The package name of the broadcast sender */
optional string sender_package_name = 11;
+
+ /** The type of the broadcast */
+ optional int32 broadcast_type = 12;
+
+ /** Delivery group policy set for the broadcast */
+ optional android.app.BroadcastDeliveryGroupPolicy delivery_group_policy = 13;
+
+ /** Flags set in the broadcast intent */
+ optional int32 intent_flags = 14;
+
+ /** The intent filter priority of the broadcast receiver */
+ optional int32 filter_priority = 15;
+
+ /** The procstate of the broadcast sender */
+ optional android.app.ProcessStateEnum sender_proc_state = 16;
+
+ /** The procstate of the broadcast receiver before receiving this broadcast */
+ optional android.app.ProcessStateEnum receiver_process_state = 17;
}
/**
@@ -6529,6 +6582,12 @@
/** The package name of the content provider client who makes the request. */
optional string client_package_name = 6;
+
+ /** The process state of the client */
+ optional android.app.ProcessStateEnum client_process_state = 7;
+
+ /** The process state of the content provider host before being acquired */
+ optional android.app.ProcessStateEnum provider_process_state = 8;
}
/**
@@ -10890,6 +10949,7 @@
optional int32 flush_count = 74;
optional int32 set_surface_count = 75;
optional int32 resolution_change_count = 76;
+ optional int32 component_color_format = 77;
// !!! WARNING
// Keep synchronized with MediametricsCodecReported.CodecData in
// mediametrics_message.proto.
@@ -12937,7 +12997,7 @@
/**
* Logs detailed stats for querying in AppSearch
*
- * Next tag: 30
+ * Next tag: 33
*/
message AppSearchQueryStatsReported {
// The sampling interval for this specific type of stats
@@ -13040,6 +13100,18 @@
// Time used to send data across the JNI boundary from native to java side.
optional int32 native_to_java_jni_latency_millis = 29;
+
+ // The type of the join query.
+ //
+ // Needs to be sync with AppSearchSchema#JoinableValueType in
+ // packages/modules/AppSearch/framework/java/external/android/app/appsearch/AppSearchSchema.java
+ optional int32 join_type = 30;
+
+ // How many total documents were joined to the parent documents.
+ optional int32 native_num_joined_results_current_page = 31;
+
+ // Time taken to join child documents to parent documents.
+ optional int32 native_join_latency_millis = 32;
}
/**
@@ -14771,6 +14843,9 @@
UPDATE = 3;
DELETE = 4;
CALL = 5;
+
+ // Call from CP2 to a GAL provider.
+ GAL_CALL = 6;
}
// Method called for ApiType.CALL
@@ -14811,6 +14886,11 @@
optional TaskType task_type = 7;
// Set when api_type == CALL
optional MethodCall method_called = 8;
+
+ // Normally, it's the binder calling UID. (this could be CP2, for work profile or cloned
+ // profile cases.)
+ // For GAL_CALL, it's the GAL provider UID.
+ optional int32 uid = 9 [(is_uid) = true];
}
/**
@@ -20666,6 +20746,21 @@
optional int32 ranging_interval_ms = 12;
// How many ongoing session when current session is initiated?
optional int32 parallel_session_count = 13;
+ // Composed value for UWB filter configurations.
+ // This value combines the boolean value of multiple feature flags for
+ // UWB filter configuration into one integer, where the bits of its binary value
+ // are for the flags
+ // Below are the flags from LSB to MSB, 1 for enabled and 0 for disabled
+ // bit 0: filter_enabled
+ // bit 1: enable_azimuth_mirroring
+ // bit 2: enable_primer_aoa
+ // bit 3: enable_primer_est_elevation
+ // bit 4: enable_primer_fov
+ // bit 5: predict_rear_azimuths
+ // For example, when all flags are enabled this value is 63 (0b111111)
+ // Refer to packages/modules/Uwb/service/ServiceUwbResources/res/values/config.xml
+ // for more information about the flags
+ optional int32 filter_config_value = 14;
}
/*
@@ -20775,6 +20870,16 @@
optional int32 elevation_fom = 14;
// Ranging Measurement Type
optional android.uwb.RangingType ranging_type = 15;
+ // The filtered distance measurement in centimeters.
+ optional int32 filtered_distance_cm = 16;
+ // The filtered azimuth angle measurement in degrees.
+ optional int32 filtered_azimuth_degree = 17;
+ // The filtered figure of merit of azimuth angle measurement.
+ optional int32 filtered_azimuth_fom = 18;
+ // The filtered elevation angle measurement in degrees.
+ optional int32 filtered_elevation_degree = 19;
+ // The filtered figure of merit of elevation angle measurement.
+ optional int32 filtered_elevation_fom = 20;
}
/*
@@ -22112,6 +22217,9 @@
// The selection process of this dataset.
optional autofill.DatasetPickedReason selected_dataset_picked_reason = 27;
+
+ // Which detection was preferred
+ optional autofill.DetectionPreference detection_preference = 28;
}
// Tells how Autofill dataset was/will-be displayed.
@@ -23376,6 +23484,7 @@
ACCESSIBILITY_HEARING_AIDS = 1;
ACCESSIBILITY_HEARING_AID_PAIR_ANOTHER = 2;
BLUETOOTH = 3;
+ ACCESSIBILITY_HEARING_AID_SETTINGS = 4;
}
optional BondEntry bond_entry = 3;
}
diff --git a/stats/atoms/adservices/adservices_extension_atoms.proto b/stats/atoms/adservices/adservices_extension_atoms.proto
index b2744df..19d5d28 100644
--- a/stats/atoms/adservices/adservices_extension_atoms.proto
+++ b/stats/atoms/adservices/adservices_extension_atoms.proto
@@ -57,6 +57,9 @@
optional AdServicesMeasurementWipeout
ad_services_measurement_wipeout = 676
[(module) = "adservices", (truncate_timestamp) = true];
+
+ optional AdServicesConsentMigrated ad_services_consent_migrated = 702
+ [(module) = "adservices", (truncate_timestamp) = true];
}
/**
@@ -72,8 +75,6 @@
* avoids usage of field types (e.g. repeated) that aren't supported on R/S.
*/
message AdServicesBackCompatGetTopicsReported {
- // See b/266626836 for why topic_ids is not a field yet.
-
// Number of filtered duplicate topics.
optional int32 duplicate_topic_count = 1;
@@ -82,6 +83,9 @@
// Number of topic ids returned.
optional int32 count_of_topic_ids = 3;
+
+ // Topic ids returned, randomized using a random response mechanism.
+ optional AdServicesTopicIds topic_ids = 4 [(log_mode) = MODE_BYTES];
}
/**
@@ -203,4 +207,60 @@
*/
message AdServicesMeasurementWipeout {
optional android.adservices.service.measurement.WipeoutCause wipeout_cause = 1;
+}
+
+/**
+ * Logs for AdServices Consent Migration after OTA.
+ * This atom captures the event of consent migration when we OTA from S to T+.
+ */
+message AdServicesConsentMigrated {
+
+ // Logs the Migration status
+ enum MigrationStatus {
+ UNSPECIFIED_MIGRATION_STATUS = 0;
+
+ // Consent migration unsuccessful
+ FAILURE = 1;
+
+ // Consent migration successful with shared prefs updated
+ SUCCESS_WITH_SHARED_PREF_UPDATED = 2;
+
+ // Consent migration successful with shared prefs not updated
+ SUCCESS_WITH_SHARED_PREF_NOT_UPDATED = 3;
+
+ }
+
+ // Logs the type of migration
+ enum MigrationType {
+ UNSPECIFIED_MIGRATION_TYPE = 0;
+
+ // Migrating consent from PPAPI to system service
+ PPAPI_TO_SYSTEM_SERVICE = 1;
+
+ // Migrating consent from App Search to system service
+ APPSEARCH_TO_SYSTEM_SERVICE = 2;
+ }
+
+ // Logs the opt-in/ opt-out value of measurement app
+ optional bool is_measurement_consent_enabled = 1;
+
+ // Logs the opt-in/ opt-out value of topics app
+ optional bool is_topics_consent_enabled = 2;
+
+ // Logs the opt-in/ opt-out value of fledge app
+ optional bool is_fledge_consent_enabled = 3;
+
+ // Logs the opt-in/ opt-out value for all apps in beta
+ optional bool is_default_consent_enabled = 4;
+
+ // Logs the type of migration
+ optional MigrationType migration_type = 5;
+
+ // Logs the region where the OTA took place
+ optional android.adservices.AdServiceSettingRegion region = 6;
+
+ // Logs the Migration status
+ optional MigrationStatus migration_status = 7;
+
+
}
\ No newline at end of file
diff --git a/stats/atoms/autofill/autofill_extension_atoms.proto b/stats/atoms/autofill/autofill_extension_atoms.proto
index f815875..f2dd4b8 100644
--- a/stats/atoms/autofill/autofill_extension_atoms.proto
+++ b/stats/atoms/autofill/autofill_extension_atoms.proto
@@ -99,7 +99,8 @@
// How the dataset is supposed to be shown to the user
optional AutofillDisplayPresentationType display_presentation_type = 4;
// Count of datasets that should've been available for display. If the request
- // times out, this won't be populated.
+ // times out, this won't be populated. This is the count after PCC detected
+ // datasets are processed and ineligeble datasets have been filtered off.
optional int32 available_count = 5;
optional int64 save_ui_trigger_ids = 6;
// Timestamp of when Autofill provider returns a FillResponse
@@ -121,15 +122,32 @@
// final eligible datasets to be shown.
optional int64 latency_response_processing_millis = 14;
- // Count of datasets that are available due to PCC Detection. These can include datasets
- // available via provider response, and would be eligible because of pcc too.
- // If PCC detection is preferred over Autofill provider, and Autofill provider had same detection
- // as PCC did, the following invariants would hold.
+ // Count of datasets that were provided by the Autofill Provider by
+ // specifying type. These datasets may additionally contain autofill ids for
+ // which this same dataset is applicable that are available due to PCC
+ // detection. These can include datasets available via provider response,
+ // and would be eligible because of PCC too.
+ // If PCC detection is preferred over Autofill Provider, it may include
+ // datasets applicable to autofill ids. So the same datasets would've shown
+ // if Autofill Provider detection was preferred.
+ // In such a case and if the detection of both the Autofill Provider and PCC
+ // detection were the same, the following invariants holds, provided same
+ // datasets were provided.
// available_pcc_count = available_count
// available_pcc_only_count = 0
+ // If PCC detection is not preferred, the following invariant holds.
+ // available_pcc_count = available_pcc_only_count
optional int32 available_pcc_count = 15;
- // Count of datasets that are available only due to PCC Detection.
+ // Count of datasets that are available only due to PCC Detection. These
+ // datasets are the ones provided by Autofill Provider by specifying types
+ // only. These datasets don't have any autofill id associated with them.
optional int32 available_pcc_only_count = 16;
+ // Count of datasets that are returned by the Autofill Provider. This count
+ // is before any filtering based on PCC detection is performed. This contains
+ // datasets set by both type and autofill ids.
+ optional int32 total_datasets_provided = 17;
+ // Which detection was preferred
+ optional DetectionPreference detection_preference = 18;
}
/**
diff --git a/stats/atoms/bluetooth/bluetooth_extension_atoms.proto b/stats/atoms/bluetooth/bluetooth_extension_atoms.proto
index 454d645..58560db 100644
--- a/stats/atoms/bluetooth/bluetooth_extension_atoms.proto
+++ b/stats/atoms/bluetooth/bluetooth_extension_atoms.proto
@@ -41,6 +41,8 @@
(module) = "bt_restricted",
(restriction_category) = RESTRICTION_DIAGNOSTIC
];
+ optional BluetoothProfileConnectionAttempted bluetooth_profile_connection_attempted
+ = 696 [(module) = "bluetooth"];
}
/**
@@ -197,3 +199,28 @@
optional string device_name = 1
[(field_restriction_option).peripheral_device_info = true];
}
+
+/**
+ * Logs profile connection known completions.
+ *
+ * Logged from:
+ * packages/modules/Bluetooth
+ */
+message BluetoothProfileConnectionAttempted {
+ // The profile that is connected. Eg. GATT, A2DP, HEADSET.
+ // From android.bluetooth.BluetoothAdapter.java
+ // Default: 0 when not used
+ optional int32 bt_profile = 1;
+
+ // Result of Profile connection
+ optional android.bluetooth.ProfileConnectionResult result = 2;
+
+ // Previous connection state
+ optional android.bluetooth.ConnectionStateEnum previous_state = 3;
+
+ // Terminating connection state
+ optional android.bluetooth.ConnectionStateEnum current_state = 4;
+
+ // Reason for the connection result
+ optional android.bluetooth.ProfileConnectionReason reason = 5;
+}
diff --git a/stats/atoms/framework/framework_extension_atoms.proto b/stats/atoms/framework/framework_extension_atoms.proto
index ef247f4..e15025e 100644
--- a/stats/atoms/framework/framework_extension_atoms.proto
+++ b/stats/atoms/framework/framework_extension_atoms.proto
@@ -26,6 +26,7 @@
extend Atom {
optional FullScreenIntentLaunched full_screen_intent_launched = 631 [(module) = "framework"];
optional BalAllowed bal_allowed = 632 [(module) = "framework"];
+ optional InTaskActivityStarted in_task_activity_started = 685 [(module) = "framework"];
optional CachedAppsHighWaterMark cached_apps_high_watermark = 10189 [(module) = "framework"];
}
@@ -62,6 +63,37 @@
}
/**
+ * Logs when an activity is started in a task with existing visible activities.
+ *
+ * Logged from: com.android.server.wm.ActivityMetricsLogger
+ */
+message InTaskActivityStarted {
+ // The uid of the started activity.
+ optional int32 uid = 1 [(is_uid) = true];
+
+ enum TransitionType {
+ UNKNOWN = 0;
+ WARM = 1;
+ HOT = 2;
+ COLD = 3;
+ RELAUNCH = 4;
+ }
+ optional TransitionType type = 2;
+
+ // Whether the activity is opaque or translucent.
+ optional bool is_opaque = 3;
+
+ // The delay to start transition.
+ optional int32 transition_delay_millis = 4;
+
+ // How long the activity took to be drawn.
+ optional int32 windows_drawn_delay_millis = 5;
+
+ // The timestamp(SystemClock#elapsedRealtime()) when starting activity.
+ optional int64 activity_start_timestamp_millis = 6;
+}
+
+/**
* Logs the cached apps high water mark.
*/
message CachedAppsHighWaterMark {
diff --git a/stats/atoms/sysui/sysui_atoms.proto b/stats/atoms/sysui/sysui_atoms.proto
index ae21619..369ff11 100644
--- a/stats/atoms/sysui/sysui_atoms.proto
+++ b/stats/atoms/sysui/sysui_atoms.proto
@@ -711,6 +711,11 @@
// If the corresponding result_type is above or below keyboard.
// If 50% of result is visible, then is_above_keyboard = true
repeated bool is_above_keyboard = 7;
+
+ // UID of the application (can be mapped to package name) corresponding to the result_type.
+ // The default value of uid entry will be -1 to indicate package name is not
+ // found.
+ repeated int32 uid = 8 [(is_uid) = true];
}
/**
diff --git a/stats/atoms/wifi/wifi_extension_atoms.proto b/stats/atoms/wifi/wifi_extension_atoms.proto
index 6c925c5..3bc9887 100644
--- a/stats/atoms/wifi/wifi_extension_atoms.proto
+++ b/stats/atoms/wifi/wifi_extension_atoms.proto
@@ -21,16 +21,32 @@
import "frameworks/proto_logging/stats/atom_field_options.proto";
import "frameworks/proto_logging/stats/atoms.proto";
import "frameworks/proto_logging/stats/enums/wifi/enums.proto";
+import "frameworks/proto_logging/stats/attribution_node.proto";
option java_package = "com.android.os.wifi";
option java_multiple_files = true;
extend Atom {
+ // Push metrics
optional WifiAwareNdpReported wifi_aware_ndp_reported = 638 [(module) = "wifi"];
optional WifiAwareAttachReported wifi_aware_attach_reported = 639 [(module) = "wifi"];
optional WifiSelfRecoveryTriggered wifi_self_recovery_triggered = 661 [(module) = "wifi"];
optional SoftApStarted soft_ap_started = 680 [(module) = "wifi"];
optional SoftApStopped soft_ap_stopped = 681 [(module) = "wifi"];
+ optional WifiLockReleased wifi_lock_released = 687 [(module) = "wifi"];
+ optional WifiLockDeactivated wifi_lock_deactivated = 688 [(module) = "wifi"];
+ optional WifiConfigSaved wifi_config_saved = 689 [(module) = "wifi"];
+ optional WifiAwareResourceUsingChanged wifi_aware_resource_using_changed
+ = 690 [(module) = "wifi"];
+ optional WifiAwareHalApiCalled wifi_aware_hal_api_called = 691 [(module) = "wifi"];
+ optional WifiLocalOnlyRequestReceived wifi_local_only_request_received
+ = 692 [(module) = "wifi"];
+ optional WifiLocalOnlyRequestScanTriggered wifi_local_only_request_scan_triggered
+ = 693 [(module) = "wifi"];
+ optional WifiThreadTaskExecuted wifi_thread_task_executed = 694 [(module) = "wifi"];
+
+ // Pull metrics
+ optional WifiAwareCapabilities wifi_aware_capabilities = 10190 [(module) = "wifi"];
}
/**
@@ -54,6 +70,14 @@
optional int32 discovery_ndp_latency_ms= 5;
// Channel frequency in MHz, 0 if unavailable, >= 2400 otherwise.
optional int32 channel_frequency_mhz= 6;
+ // If the instant mode is enabled
+ optional bool is_instant_mode = 7;
+ // The caller type of the NDP request
+ optional android.net.wifi.WifiCallerType caller_type = 8;
+ // The Attribution tag to identify the caller
+ optional string attribution_tag = 9;
+ // The uid of the caller
+ optional int32 uid = 10;
}
/**
@@ -62,6 +86,12 @@
message WifiAwareAttachReported {
// Status of attach
optional android.net.wifi.AwareStatus status = 1;
+ // The caller type of the attach
+ optional android.net.wifi.WifiCallerType caller_type = 2;
+ // The Attribution tag to identify the caller
+ optional string attribution_tag = 3;
+ // The uid of the caller
+ optional int32 uid = 4;
}
/**
@@ -92,6 +122,8 @@
optional Reason reason = 1;
// Self recovery result
optional Result result = 2;
+ // Record time elapsed from last trigger event
+ optional int64 time_elapsed_from_last_millis = 3;
}
/**
@@ -199,3 +231,131 @@
// Max num of associated clients for the entire session
optional int32 max_clients = 11;
}
+
+/**
+ * Logged when wifi lock is released
+ */
+message WifiLockReleased {
+ // Attribution tag of the caller
+ optional string attribution_tag = 1;
+ // UID of the caller
+ optional int32 uid = 2;
+ // Permission model of the caller
+ optional android.net.wifi.WifiCallerType caller_type = 3;
+ // Lock mode
+ optional android.net.wifi.WifiModeEnum mode = 4;
+ // For how long the lock is acquired in milliseconds
+ optional int32 acquired_duration = 5;
+ // Whether power save disable is allowed during lock acquire
+ optional bool is_powersave_disable_allowed = 6;
+ // Whether the application which acquired the lock is exempted from screen ON
+ optional bool is_app_exempted_from_screen_on = 7;
+ // Whether the application which acquired the lock is exempted from being foreground
+ optional bool is_app_exempted_from_foreground = 8;
+}
+
+/**
+ * Logged when wifi lock is deactivated
+ */
+message WifiLockDeactivated {
+ // Attribution tag of the caller
+ optional string attribution_tag = 1;
+ // UID of the caller
+ optional int32 uid = 2;
+ // Permission model of the caller
+ optional android.net.wifi.WifiCallerType caller_type = 3;
+ // Lock mode
+ optional android.net.wifi.WifiModeEnum mode = 4;
+ // For how long the lock is activated in milliseconds
+ optional int32 activated_duration = 5;
+ // Whether power save disable is allowed during the lock activation
+ optional bool is_powersave_disable_allowed = 6;
+ // Whether the application which activated the lock is exempted from screen ON
+ optional bool is_exempted_from_screen_on = 7;
+ // Whether the application which activated the lock is exempted from being foreground
+ optional bool is_exempted_from_foreground = 8;
+}
+
+/**
+ * Pull metrics for the Wifi Aware capabilities supported by the device
+ */
+message WifiAwareCapabilities {
+ // If instant mode supported
+ optional bool is_instant_mode_supported = 1;
+ // If pairing supported
+ optional bool is_pairing_supported = 2;
+ // If suspension supported
+ optional bool is_suspension_supported = 3;
+ // Supported cipher suites
+ optional int32 cipher_suites = 4;
+ // Max number of the NDI
+ optional int32 ndi_number = 5;
+ // Max number of the NDP
+ optional int32 ndp_number = 6;
+ // Max number of the discovery session
+ optional int32 discovery_session_number = 7;
+}
+
+// Logged when the Wifi Aware resources is used by Apps
+message WifiAwareResourceUsingChanged {
+ optional int32 ndp_num = 1;
+ optional int32 discovery_session_num = 2;
+}
+
+/**
+ * Logged when Aware HAL API is called and send response
+ */
+message WifiAwareHalApiCalled {
+ // The API name
+ optional android.net.wifi.AwareHalApi command = 1;
+ // Status of the API call
+ optional android.net.wifi.AwareStatus status = 2;
+ // The time for this API call to execute
+ optional int32 running_time_ms = 3;
+}
+
+/**
+ * Logged when local-only request received
+ */
+message WifiLocalOnlyRequestReceived {
+ enum UserAction {
+ USER_UNSPECIFIED = 0;
+ USER_BYPASS = 1;
+ USER_ACCEPT = 2;
+ USER_REJECT = 3;
+ }
+ // The AttributionNode to identify the caller
+ repeated AttributionNode attribution_node = 1;
+ // User action on the local-only request
+ optional UserAction action = 2;
+ // The caller type of the request
+ optional android.net.wifi.WifiCallerType caller_type = 3;
+}
+
+// Logged when matched scan result received for local only request
+message WifiLocalOnlyRequestScanTriggered {
+ // The AttributionNode to identify the caller
+ repeated AttributionNode attribution_node = 1;
+ // How many channel specified in the request
+ optional int32 number_channel_specified = 2;
+ // Scan time to get a match
+ optional int32 match_delay_ms = 3;
+ // The caller type of the request
+ optional android.net.wifi.WifiCallerType caller_type = 4;
+}
+
+// Logged when a task on the Wifi thread is executed
+message WifiThreadTaskExecuted {
+ // How long does it take to execute the task
+ optional int32 running_time_ms = 1;
+ // How long does it take to start execute the task
+ optional int32 blocking_time_ms = 2;
+ // The name of the internal task running on Wifi Thread
+ optional string task_name = 3;
+}
+
+// Logged when Wifi config save to storage triggered
+message WifiConfigSaved {
+ // How long does it cost to save all config
+ optional int32 running_time_ms = 1;
+}
\ No newline at end of file
diff --git a/stats/enums/adservices/common/adservices_enums.proto b/stats/enums/adservices/common/adservices_enums.proto
index f5bc3ef..e547f3d 100644
--- a/stats/enums/adservices/common/adservices_enums.proto
+++ b/stats/enums/adservices/common/adservices_enums.proto
@@ -203,7 +203,7 @@
// source of truth.
TOPICS_INVALID_BLOCKED_TOPICS_SOURCE_OF_TRUTH = 1034;
- // RuntimeException occurred when unable to record the blocked topic.
+ // RuntimeException occurred when unable to remove the blocked topic.
TOPICS_REMOVE_BLOCKED_TOPIC_FAILURE = 1035;
// RuntimeException occurred when unable to get all blocked topics.
@@ -316,3 +316,14 @@
/** Skipped execution due to user consent is revoked. */
SKIP_FOR_USER_CONSENT_REVOKED = 9;
}
+
+// Region of the user who interacted with AdServicesSettings UI.
+enum AdServiceSettingRegion {
+ // fallback when getDeviceRegion call failed.
+ REGION_UNSPECIFIED = 0;
+ // European Union user (based on isoCountryInfo).
+ EU = 1;
+ // Non-European Union user (based on isoCountryInfo).
+ ROW = 2;
+}
+
diff --git a/stats/enums/app/enums.proto b/stats/enums/app/enums.proto
index cf8fefb..2e25db7 100644
--- a/stats/enums/app/enums.proto
+++ b/stats/enums/app/enums.proto
@@ -645,3 +645,32 @@
HOSTING_COMPONENT_TYPE_FOREGROUND_SERVICE = 0x0100;
HOSTING_COMPONENT_TYPE_BOUND_SERVICE = 0x0200;
}
+
+/**
+ * Types of broadcast.
+ */
+enum BroadcastType {
+ BROADCAST_TYPE_NONE = 0;
+ BROADCAST_TYPE_BACKGROUND = 0x0001; // 1 << 0
+ BROADCAST_TYPE_FOREGROUND = 0x0002; // 1 << 1
+ BROADCAST_TYPE_ALARM = 0x0004; // 1 << 2
+ BROADCAST_TYPE_INTERACTIVE = 0x0008; // 1 << 3
+ BROADCAST_TYPE_ORDERED = 0x0010; // 1 << 4
+ BROADCAST_TYPE_PRIORITIZED = 0x0020; // 1 << 5
+ BROADCAST_TYPE_RESULT_TO = 0x0040; // 1 << 6
+ BROADCAST_TYPE_DEFERRABLE_UNTIL_ACTIVE = 0x0080; // 1 << 7
+ BROADCAST_TYPE_PUSH_MESSAGE = 0x0100; // 1 << 8
+ BROADCAST_TYPE_PUSH_MESSAGE_OVER_QUOTA = 0x0200; // 1 << 9
+ BROADCAST_TYPE_STICKY = 0x0400; // 1 << 10
+ BROADCAST_TYPE_INITIAL_STICKY = 0x0800; // 1 << 11
+}
+
+/**
+ * Delivery group policy applied to a broadcast.
+ * Keep it in sync with BroadcastOptions#DeliveryGroupPolicy.
+ */
+enum BroadcastDeliveryGroupPolicy {
+ BROADCAST_DELIVERY_GROUP_POLICY_ALL = 0;
+ BROADCAST_DELIVERY_GROUP_POLICY_MOST_RECENT = 1;
+ BROADCAST_DELIVERY_GROUP_POLICY_MERGED = 2;
+}
diff --git a/stats/enums/app/settings_enums.proto b/stats/enums/app/settings_enums.proto
index 0fe8e2d..50a6809 100644
--- a/stats/enums/app/settings_enums.proto
+++ b/stats/enums/app/settings_enums.proto
@@ -4018,6 +4018,11 @@
// CATEGORY: SETTINGS
// OS: U
ACCOUNT_DETAIL = 2031;
+
+ // OPEN: Settings > Wireless > VPN
+ // CATEGORY: SETTINGS
+ // OS: U
+ VPN_APP_MANAGEMENT = 2033;
}
// Battery Saver schedule types.
diff --git a/stats/enums/autofill/enums.proto b/stats/enums/autofill/enums.proto
index 631fc7e..f671586 100644
--- a/stats/enums/autofill/enums.proto
+++ b/stats/enums/autofill/enums.proto
@@ -120,3 +120,11 @@
PICK_REASON_PCC_DETECTION_ONLY = 4;
PICK_REASON_PCC_DETECTION_PREFERRED_WITH_PROVIDER = 5;
}
+
+// Enum for specifying which detection provider gets the preference when choosing
+// final datasets.
+enum DetectionPreference {
+ DETECTION_PREFER_UNKONWN = 0;
+ DETECTION_PREFER_AUTOFILL_PROVIDER = 1;
+ DETECTION_PREFER_PCC = 2;
+}
\ No newline at end of file
diff --git a/stats/enums/bluetooth/enums.proto b/stats/enums/bluetooth/enums.proto
index 6c9afab..a081118 100644
--- a/stats/enums/bluetooth/enums.proto
+++ b/stats/enums/bluetooth/enums.proto
@@ -412,3 +412,15 @@
MAJOR_CLASS_TOY = 0x0800;
MAJOR_CLASS_HEALTH = 0x0900;
}
+
+enum ProfileConnectionResult {
+ RESULT_UNKNOWN = 0;
+ RESULT_SUCCESS = 1;
+ RESULT_FAILURE = 2;
+}
+
+enum ProfileConnectionReason {
+ REASON_UNKNOWN = 0;
+ REASON_SUCCESS = 1;
+ REASON_UNEXPECTED_STATE = 2;
+}
diff --git a/stats/enums/wifi/enums.proto b/stats/enums/wifi/enums.proto
index 0bfde45..9dd4a57 100644
--- a/stats/enums/wifi/enums.proto
+++ b/stats/enums/wifi/enums.proto
@@ -222,3 +222,45 @@
// Wi-Fi 802.11be
WIFI_STANDARD_11BE = 6;
}
+
+/**
+ * Role of the client mode manager
+ */
+enum ClientModeRole {
+ ROLE_UNSPECIFIED = 0;
+ ROLE_CLIENT_PRIMARY = 1;
+ ROLE_CLIENT_SECONDARY_LONG_LIVED = 2;
+ ROLE_CLIENT_SECONDARY_TRANSIENT = 3;
+ ROLE_CLIENT_SECONDARY_INTERNET = 4;
+ ROLE_CLIENT_LOCAL_ONLY = 5;
+ ROLE_CLIENT_OTHERS = 6;
+}
+
+/**
+ * Aware HAL API
+ */
+enum AwareHalApi {
+ AWARE_API_UNKNOWN = 0;
+ AWARE_CONFIG_REQUEST = 1;
+ AWARE_CREATE_DATA_INTERFACE_REQUEST = 2;
+ AWARE_DELETE_DATA_INTERFACE_REQUEST = 3;
+ AWARE_DISABLE_REQUEST = 4;
+ AWARE_ENABLE_REQUEST = 5;
+ AWARE_GET_CAPABILITIES_REQUEST = 6;
+ AWARE_INITIATE_DATA_PATH_REQUEST = 7;
+ AWARE_REGISTER_EVENT_CALLBACK = 8;
+ AWARE_RESPOND_TO_DATA_PATH_INDICATION_REQUEST = 9;
+ AWARE_START_PUBLISH_REQUEST = 10;
+ AWARE_START_SUBSCRIBE_REQUEST = 11;
+ AWARE_STOP_PUBLISH_REQUEST = 12;
+ AWARE_STOP_SUBSCRIBE_REQUEST = 13;
+ AWARE_TERMINATE_DATA_PATH_REQUEST = 14;
+ AWARE_SUSPEND_REQUEST = 15;
+ AWARE_RESUME_REQUEST = 16;
+ AWARE_TRANSMIT_FOLLOW_UP_REQUEST = 17;
+ AWARE_INITIATE_PAIRING_REQUEST = 18;
+ AWARE_RESPOND_TO_PAIRING_INDICATION_REQUEST = 19;
+ AWARE_INITIATE_BOOTSTRAPPING_REQUEST = 20;
+ AWARE_RESPOND_TO_BOOTSTRAPPING_INDICATION_REQUEST = 21;
+ AWARE_TERMINATE_PAIRING_REQUEST = 22;
+}
\ No newline at end of file
diff --git a/stats/express/catalog/biometric.cfg b/stats/express/catalog/biometric.cfg
new file mode 100644
index 0000000..952570c
--- /dev/null
+++ b/stats/express/catalog/biometric.cfg
@@ -0,0 +1,9 @@
+express_metric {
+ id: "biometric.value_scheduler_watchdog_triggered_count"
+ display_name: "Biometric scheduler operation watchdog triggered count"
+ description: "Number of times the watchdog had to clear the scheduler due to a potentially hung operation."
+ owner_email: "android-biometrics-core+apc@google.com"
+ owner_email: "diyab@google.com"
+ unit: UNIT_COUNT
+ type: COUNTER
+}
diff --git a/stats/express/catalog/job_scheduler.cfg b/stats/express/catalog/job_scheduler.cfg
index e262c88..759e55a 100644
--- a/stats/express/catalog/job_scheduler.cfg
+++ b/stats/express/catalog/job_scheduler.cfg
@@ -49,7 +49,7 @@
}
express_metric {
- id: "job_scheduler.value_cntr_w_uid_initial_setNotification_call_optional"
+ id: "job_scheduler.value_cntr_w_uid_initial_set_notification_call_optional"
display_name: "First-time optional JobService.setNotification() calls"
description: "Number of first-time calls to JobService.setNotification() when the call was optional"
owner_email: "nalini-team@google.com"
@@ -59,7 +59,7 @@
}
express_metric {
- id: "job_scheduler.value_cntr_w_uid_initial_setNotification_call_required"
+ id: "job_scheduler.value_cntr_w_uid_initial_set_notification_call_required"
display_name: "First-time required JobService.setNotification() calls"
description: "Number of first-time calls to JobService.setNotification() when the call was required"
owner_email: "nalini-team@google.com"
@@ -129,7 +129,7 @@
}
express_metric {
- id: "job_scheduler.value_cntr_w_uid_setNotification_changed_notification_ids"
+ id: "job_scheduler.value_cntr_w_uid_set_notification_changed_notification_ids"
display_name: "JobService.setNotification() changed notification IDs"
description: "Number of time JobService.setNotification() calls used a different notification ID"
owner_email: "nalini-team@google.com"
@@ -149,7 +149,7 @@
}
express_metric {
- id: "job_scheduler.value_cntr_w_uid_slow_app_response_onStartJob"
+ id: "job_scheduler.value_cntr_w_uid_slow_app_response_on_start_job"
display_name: "Slow app response to onStartJob()"
description: "Number of times apps hit the timeout when responding to onStartJob"
owner_email: "nalini-team@google.com"
@@ -159,7 +159,7 @@
}
express_metric {
- id: "job_scheduler.value_cntr_w_uid_slow_app_response_onStopJob"
+ id: "job_scheduler.value_cntr_w_uid_slow_app_response_on_stop_job"
display_name: "Slow app response to onStopJob"
description: "Number of times apps hit the timeout when responding to onStopJob"
owner_email: "nalini-team@google.com"
@@ -169,7 +169,7 @@
}
express_metric {
- id: "job_scheduler.value_cntr_w_uid_slow_app_response_setNotification"
+ id: "job_scheduler.value_cntr_w_uid_slow_app_response_set_notification"
display_name: "Slow app response for setNotification"
description: "Number of times apps hit the timeout before calling setNotification"
owner_email: "nalini-team@google.com"
@@ -179,7 +179,7 @@
}
express_metric {
- id: "job_scheduler.value_cntr_w_uid_subsequent_setNotification_call_optional"
+ id: "job_scheduler.value_cntr_w_uid_subsequent_set_notification_call_optional"
display_name: "Subsequent JobService.setNotification() calls if the first was optional"
description: "Number of subsequent calls to JobService.setNotification() if the first call was optional"
owner_email: "nalini-team@google.com"
@@ -189,7 +189,7 @@
}
express_metric {
- id: "job_scheduler.value_cntr_w_uid_subsequent_setNotification_call_required"
+ id: "job_scheduler.value_cntr_w_uid_subsequent_set_notification_call_required"
display_name: "Subsequent JobService.setNotification() calls if the first was required"
description: "Number of subsequent calls to JobService.setNotification() if the first call was required"
owner_email: "nalini-team@google.com"
diff --git a/stats/message/mediametrics_message.proto b/stats/message/mediametrics_message.proto
index b4337ce..9cf820f 100644
--- a/stats/message/mediametrics_message.proto
+++ b/stats/message/mediametrics_message.proto
@@ -131,7 +131,7 @@
* Logged from:
* frameworks/av/media/libstagefright/MediaCodec.cpp
* frameworks/av/services/mediaanalytics/statsd_codec.cpp
- * Next Tag: 72
+ * Next Tag: 73
*/
message CodecData {
optional string codec = 1;
@@ -209,6 +209,7 @@
optional int32 flush_count = 69;
optional int32 set_surface_count = 70;
optional int32 resolution_change_count = 71;
+ optional int32 component_color_format = 72;
// !!!WARNING!!!
// Keep synchronized with MediaCodecReported in atoms.proto
// Also keep AStatsEvent serialization synchronized in statsd_codec.cpp