1/* 2 * Copyright (C) 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17syntax = "proto2"; 18 19package android.os.statsd; 20 21option optimize_for = CODE_SIZE; 22option java_package = "com.android.os"; 23option java_outer_classname = "AtomsProto"; 24 25import "frameworks/proto_logging/stats/attribution_node.proto"; 26import "frameworks/proto_logging/stats/atoms/adpf/adpf_atoms.proto"; 27import "frameworks/proto_logging/stats/atoms/agif/agif_atoms.proto"; 28import "frameworks/proto_logging/stats/atoms/corenetworking/connectivity/connectivity_atoms.proto"; 29import "frameworks/proto_logging/stats/atoms/display/display_atoms.proto"; 30import "frameworks/proto_logging/stats/atoms/dnd/dnd_atoms.proto"; 31import "frameworks/proto_logging/stats/atoms/gps/gps_atoms.proto"; 32import "frameworks/proto_logging/stats/atoms/hardware/biometrics/biometrics_atoms.proto"; 33import "frameworks/proto_logging/stats/atoms/hotword/hotword_atoms.proto"; 34import "frameworks/proto_logging/stats/atoms/input/input_atoms.proto"; 35import "frameworks/proto_logging/stats/atoms/kernel/kernel_atoms.proto"; 36import "frameworks/proto_logging/stats/atoms/locale/locale_atoms.proto"; 37import "frameworks/proto_logging/stats/atoms/location/location_atoms.proto"; 38import "frameworks/proto_logging/stats/atoms/media/media_drm_atoms.proto"; 39import "frameworks/proto_logging/stats/atoms/wearsysui/wearsysui_atoms.proto"; 40import "frameworks/proto_logging/stats/atoms/providers/mediaprovider/media_provider_atoms.proto"; 41import "frameworks/proto_logging/stats/atoms/sysui/sysui_atoms.proto"; 42import "frameworks/proto_logging/stats/atoms/usb/usb_atoms.proto"; 43import "frameworks/proto_logging/stats/atoms/view/inputmethod/inputmethod_atoms.proto"; 44import "frameworks/proto_logging/stats/atom_field_options.proto"; 45import "frameworks/proto_logging/stats/enums/anr/enums.proto"; 46import "frameworks/proto_logging/stats/enums/app_shared/app_enums.proto"; 47import "frameworks/proto_logging/stats/enums/app_shared/app_op_enums.proto"; 48import "frameworks/proto_logging/stats/enums/app/job/job_enums.proto"; 49import "frameworks/proto_logging/stats/enums/app/remoteprovisioner_enums.proto"; 50import "frameworks/proto_logging/stats/enums/app/settings/settings_enums.proto"; 51import "frameworks/proto_logging/stats/enums/app/wearservices/wearservices_enums.proto"; 52import "frameworks/proto_logging/stats/enums/app/tvsettings_enums.proto"; 53import "frameworks/proto_logging/stats/enums/app/wearsettings/wearsettings_enums.proto"; 54import "frameworks/proto_logging/stats/enums/autofill/enums.proto"; 55import "frameworks/proto_logging/stats/enums/bluetooth/a2dp/enums.proto"; 56import "frameworks/proto_logging/stats/enums/bluetooth/enums.proto"; 57import "frameworks/proto_logging/stats/enums/bluetooth/hci/enums.proto"; 58import "frameworks/proto_logging/stats/enums/bluetooth/hfp/enums.proto"; 59import "frameworks/proto_logging/stats/enums/bluetooth/leaudio/enums.proto"; 60import "frameworks/proto_logging/stats/enums/bluetooth/smp/enums.proto"; 61import "frameworks/proto_logging/stats/enums/contexthub/enums.proto"; 62import "frameworks/proto_logging/stats/enums/debug/enums.proto"; 63import "frameworks/proto_logging/stats/enums/display/display_enums.proto"; 64import "frameworks/proto_logging/stats/enums/hardware/biometrics/enums.proto"; 65import "frameworks/proto_logging/stats/enums/jank/enums.proto"; 66import "frameworks/proto_logging/stats/enums/media/audio/enums.proto"; 67import "frameworks/proto_logging/stats/enums/media/midi/enums.proto"; 68import "frameworks/proto_logging/stats/enums/media/outputswitcher/enums.proto"; 69import "frameworks/proto_logging/stats/enums/media/enums.proto"; 70import "frameworks/proto_logging/stats/enums/mms/enums.proto"; 71import "frameworks/proto_logging/stats/enums/nearby/enums.proto"; 72import "frameworks/proto_logging/stats/enums/net/enums.proto"; 73import "frameworks/proto_logging/stats/enums/neuralnetworks/enums.proto"; 74import "frameworks/proto_logging/stats/enums/nfc/enums.proto"; 75import "frameworks/proto_logging/stats/enums/notification/enums.proto"; 76import "frameworks/proto_logging/stats/enums/os/enums.proto"; 77import "frameworks/proto_logging/stats/enums/server/connectivity/data_stall_event.proto"; 78import "frameworks/proto_logging/stats/enums/server/display/enums.proto"; 79import "frameworks/proto_logging/stats/enums/server/enums.proto"; 80import "frameworks/proto_logging/stats/enums/server/job/enums.proto"; 81import "frameworks/proto_logging/stats/enums/server/location/enums.proto"; 82import "frameworks/proto_logging/stats/enums/service/enums.proto"; 83import "frameworks/proto_logging/stats/enums/service/procstats_enum.proto"; 84import "frameworks/proto_logging/stats/enums/stats/connectivity/connectivity_service.proto"; 85import "frameworks/proto_logging/stats/enums/stats/connectivity/network_stack.proto"; 86import "frameworks/proto_logging/stats/enums/stats/connectivity/tethering.proto"; 87import "frameworks/proto_logging/stats/enums/stats/dnsresolver/dns_resolver.proto"; 88import "frameworks/proto_logging/stats/enums/stats/devicepolicy/device_policy.proto"; 89import "frameworks/proto_logging/stats/enums/stats/devicepolicy/device_policy_enums.proto"; 90import "frameworks/proto_logging/stats/enums/stats/docsui/docsui_enums.proto"; 91import "frameworks/proto_logging/stats/enums/stats/accessibility/accessibility_enums.proto"; 92import "frameworks/proto_logging/stats/enums/stats/enums.proto"; 93import "frameworks/proto_logging/stats/enums/stats/hdmi/enums.proto"; 94import "frameworks/proto_logging/stats/enums/stats/intelligence/enums.proto"; 95import "frameworks/proto_logging/stats/enums/stats/location/location_enums.proto"; 96import "frameworks/proto_logging/stats/enums/stats/mediametrics/mediametrics.proto"; 97import "frameworks/proto_logging/stats/enums/stats/mediaprovider/mediaprovider_enums.proto"; 98import "frameworks/proto_logging/stats/enums/stats/privacysignals/enums.proto"; 99import "frameworks/proto_logging/stats/enums/stats/safetycenter/enums.proto"; 100import "frameworks/proto_logging/stats/enums/stats/storage/storage_enums.proto"; 101import "frameworks/proto_logging/stats/enums/stats/style/style_enums.proto"; 102import "frameworks/proto_logging/stats/enums/stats/sysui/notification_enums.proto"; 103import "frameworks/proto_logging/stats/enums/stats/tls/enums.proto"; 104import "frameworks/proto_logging/stats/enums/stats/tv/tif_enums.proto"; 105import "frameworks/proto_logging/stats/enums/stats/wm/enums.proto"; 106import "frameworks/proto_logging/stats/enums/system/security/keystore2/enums.proto"; 107import "frameworks/proto_logging/stats/enums/telecomm/enums.proto"; 108import "frameworks/proto_logging/stats/enums/telephony/enums.proto"; 109import "frameworks/proto_logging/stats/enums/transparency/enums.proto"; 110import "frameworks/proto_logging/stats/enums/uwb/enums.proto"; 111import "frameworks/proto_logging/stats/enums/view/enums.proto"; 112import "frameworks/proto_logging/stats/enums/wifi/enums.proto"; 113import "frameworks/proto_logging/stats/enums/stats/textclassifier/textclassifier_enums.proto"; 114import "frameworks/proto_logging/stats/enums/stats/otaupdate/updateengine_enums.proto"; 115import "frameworks/proto_logging/stats/message/mediametrics_message.proto"; 116import "frameworks/proto_logging/stats/atoms/devicelogs/device_logs_atoms.proto"; 117import "frameworks/proto_logging/stats/atoms/wearservices/wearservices_atoms.proto"; 118import "frameworks/proto_logging/stats/atoms/wear/media/wear_media_atoms.proto"; 119 120/** 121 * The primary atom class. This message defines all of the available 122 * raw stats log events from the Android system, also known as "atoms." 123 * 124 * This field contains a single oneof with all of the available messages. 125 * The stats-log-api-gen tool runs as part of the Android build and 126 * generates the android.util.StatsLog class, which contains the constants 127 * and methods that Android uses to log. 128 * 129 * This Atom class is not actually built into the Android system. 130 * Instead, statsd on Android constructs these messages synthetically, 131 * in the format defined here and in stats_log.proto. 132 */ 133message Atom { 134 // Pushed atoms start at 2. 135 oneof pushed { 136 // For StatsLog reasons, 1 is illegal and will not work. Must start at 2. 137 BleScanStateChanged ble_scan_state_changed = 2 138 [(module) = "bluetooth", (module) = "statsdtest"]; 139 ProcessStateChanged process_state_changed = 3 [(module) = "framework", deprecated = true]; 140 BleScanResultReceived ble_scan_result_received = 4 141 [(module) = "bluetooth", (module) = "statsdtest"]; 142 SensorStateChanged sensor_state_changed = 143 5 [(module) = "framework", (module) = "statsdtest"]; 144 gps.GpsScanStateChanged gps_scan_state_changed = 6 [(module) = "framework"]; 145 SyncStateChanged sync_state_changed = 7 [(module) = "framework", (module) = "statsdtest"]; 146 ScheduledJobStateChanged scheduled_job_state_changed = 147 8 [(module) = "framework", (module) = "statsdtest"]; 148 ScreenBrightnessChanged screen_brightness_changed = 149 9 [(module) = "framework", (module) = "statsdtest"]; 150 WakelockStateChanged wakelock_state_changed = 151 10 [(module) = "framework", (module) = "statsdtest"]; 152 LongPartialWakelockStateChanged long_partial_wakelock_state_changed = 153 11 [(module) = "framework"]; 154 MobileRadioPowerStateChanged mobile_radio_power_state_changed = 155 12 [(module) = "framework", (truncate_timestamp) = true]; 156 WifiRadioPowerStateChanged wifi_radio_power_state_changed = 13 [(module) = "framework"]; 157 ActivityManagerSleepStateChanged activity_manager_sleep_state_changed = 158 14 [(module) = "framework"]; 159 MemoryFactorStateChanged memory_factor_state_changed = 15 [(module) = "framework"]; 160 ExcessiveCpuUsageReported excessive_cpu_usage_reported = 16 [(module) = "framework"]; 161 CachedKillReported cached_kill_reported = 17 [(module) = "framework", deprecated = true]; 162 ProcessMemoryStatReported process_memory_stat_reported = 163 18 [(module) = "framework", deprecated = true]; 164 sysui.LauncherUIChanged launcher_event = 19 [(module) = "sysui"]; 165 BatterySaverModeStateChanged battery_saver_mode_state_changed = 166 20 [(module) = "framework", (module) = "statsdtest"]; 167 DeviceIdleModeStateChanged device_idle_mode_state_changed = 21 [(module) = "framework"]; 168 DeviceIdlingModeStateChanged device_idling_mode_state_changed = 22 [(module) = "framework"]; 169 AudioStateChanged audio_state_changed = 170 23 [(module) = "framework", (truncate_timestamp) = true]; 171 MediaCodecStateChanged media_codec_state_changed = 24 [(module) = "framework"]; 172 CameraStateChanged camera_state_changed = 25 [(module) = "framework"]; 173 FlashlightStateChanged flashlight_state_changed = 26 [(module) = "framework"]; 174 UidProcessStateChanged uid_process_state_changed = 175 27 [(module) = "framework", (module) = "statsdtest"]; 176 ProcessLifeCycleStateChanged process_life_cycle_state_changed = 177 28 [(module) = "framework", (module) = "statsdtest"]; 178 ScreenStateChanged screen_state_changed = 179 29 [(module) = "framework", (module) = "statsdtest"]; 180 BatteryLevelChanged battery_level_changed = 181 30 [(module) = "framework", (module) = "statsdtest"]; 182 ChargingStateChanged charging_state_changed = 31 [(module) = "framework"]; 183 PluggedStateChanged plugged_state_changed = 32 184 [(module) = "framework", (module) = "statsdtest"]; 185 InteractiveStateChanged interactive_state_changed = 33 [(module) = "framework"]; 186 input.TouchEventReported touch_event_reported = 34; 187 WakeupAlarmOccurred wakeup_alarm_occurred = 35 [(module) = "framework"]; 188 KernelWakeupReported kernel_wakeup_reported = 36 [(module) = "framework"]; 189 WifiLockStateChanged wifi_lock_state_changed = 37 [(module) = "wifi"]; 190 WifiSignalStrengthChanged wifi_signal_strength_changed = 38 [(module) = "wifi"]; 191 WifiScanStateChanged wifi_scan_state_changed = 39 [(module) = "wifi"]; 192 PhoneSignalStrengthChanged phone_signal_strength_changed = 193 40 [(module) = "framework", (module) = "statsdtest", (truncate_timestamp) = true]; 194 SettingChanged setting_changed = 41 [(module) = "framework"]; 195 ActivityForegroundStateChanged activity_foreground_state_changed = 196 42 [(module) = "framework", (module) = "statsdtest"]; 197 IsolatedUidChanged isolated_uid_changed = 198 43 [(module) = "framework", (module) = "statsd", (module) = "statsdtest"]; 199 PacketWakeupOccurred packet_wakeup_occurred = 44 [(module) = "framework"]; 200 WallClockTimeShifted wall_clock_time_shifted = 45 [(module) = "framework"]; 201 AnomalyDetected anomaly_detected = 46 [(module) = "statsd"]; 202 AppBreadcrumbReported app_breadcrumb_reported = 47 203 [(module) = "statsd", (module) = "statsdtest"]; 204 AppStartOccurred app_start_occurred = 48 [(module) = "framework", (module) = "statsdtest"]; 205 AppStartCanceled app_start_canceled = 49 [(module) = "framework"]; 206 AppStartFullyDrawn app_start_fully_drawn = 50 [(module) = "framework"]; 207 LmkKillOccurred lmk_kill_occurred = 51 [(module) = "framework"]; 208 PictureInPictureStateChanged picture_in_picture_state_changed = 52 [(module) = "framework"]; 209 WifiMulticastLockStateChanged wifi_multicast_lock_state_changed = 53 [(module) = "wifi"]; 210 AppStartMemoryStateCaptured app_start_memory_state_captured = 55 [(module) = "framework"]; 211 ShutdownSequenceReported shutdown_sequence_reported = 56 [(module) = "framework"]; 212 BootSequenceReported boot_sequence_reported = 57; 213 OverlayStateChanged overlay_state_changed = 214 59 [(module) = "framework", (module) = "statsdtest"]; 215 ForegroundServiceStateChanged foreground_service_state_changed 216 = 60 [(module) = "framework"]; 217 CallStateChanged call_state_changed = 218 61 [(module) = "telecom", (truncate_timestamp) = true]; 219 sysui.KeyguardStateChanged keyguard_state_changed = 62 [(module) = "sysui"]; 220 sysui.KeyguardBouncerStateChanged keyguard_bouncer_state_changed = 63 [(module) = "sysui"]; 221 sysui.KeyguardBouncerPasswordEntered keyguard_bouncer_password_entered = 222 64 [(module) = "sysui"]; 223 AppDied app_died = 65 [(module) = "framework"]; 224 ResourceConfigurationChanged resource_configuration_changed = 66 [(module) = "framework"]; 225 BluetoothEnabledStateChanged bluetooth_enabled_state_changed = 67 [(module) = "bluetooth"]; 226 BluetoothConnectionStateChanged bluetooth_connection_state_changed = 227 68 [(module) = "bluetooth"]; 228 GpsSignalQualityChanged gps_signal_quality_changed = 69 [(module) = "framework"]; 229 UsbConnectorStateChanged usb_connector_state_changed = 70 [(module) = "framework"]; 230 SpeakerImpedanceReported speaker_impedance_reported = 71 [(module) = "statshidl"]; 231 HardwareFailed hardware_failed = 72 [(module) = "statshidl"]; 232 PhysicalDropDetected physical_drop_detected = 73 [(module) = "statshidl"]; 233 ChargeCyclesReported charge_cycles_reported = 74 [(module) = "statshidl"]; 234 MobileConnectionStateChanged mobile_connection_state_changed = 75 [(module) = "telephony"]; 235 MobileRadioTechnologyChanged mobile_radio_technology_changed = 76 [(module) = "telephony"]; 236 UsbDeviceAttached usb_device_attached = 77 [(module) = "framework"]; 237 AppCrashOccurred app_crash_occurred = 78 [(module) = "framework", (module) = "statsdtest"]; 238 ANROccurred anr_occurred = 79 [(module) = "framework"]; 239 WTFOccurred wtf_occurred = 80 [(module) = "framework"]; 240 LowMemReported low_mem_reported = 81 [(module) = "framework"]; 241 GenericAtom generic_atom = 82; 242 VibratorStateChanged vibrator_state_changed = 84 [(module) = "framework"]; 243 DeferredJobStatsReported deferred_job_stats_reported = 85 [(module) = "framework"]; 244 ThermalThrottlingStateChanged thermal_throttling = 86 [deprecated=true]; 245 BiometricAcquired biometric_acquired = 87 [(module) = "framework"]; 246 BiometricAuthenticated biometric_authenticated = 88 [(module) = "framework"]; 247 BiometricErrorOccurred biometric_error_occurred = 89 [(module) = "framework"]; 248 UiEventReported ui_event_reported = 90 [ 249 (module) = "framework", 250 (module) = "sysui", 251 (module) = "mediaprovider" 252 ]; 253 BatteryHealthSnapshot battery_health_snapshot = 91 [(module) = "statshidl"]; 254 SlowIo slow_io = 92 [(module) = "statshidl"]; 255 BatteryCausedShutdown battery_caused_shutdown = 93 [(module) = "statshidl"]; 256 PhoneServiceStateChanged phone_service_state_changed = 94 [(module) = "framework"]; 257 PhoneStateChanged phone_state_changed = 95 [(module) = "framework"]; 258 UserRestrictionChanged user_restriction_changed = 96; 259 SettingsUIChanged settings_ui_changed = 97 [(module) = "settings"]; 260 ConnectivityStateChanged connectivity_state_changed = 98 [(module) = "framework"]; 261 // TODO: service state change is very noisy shortly after boot, as well 262 // as at other transitions - coming out of doze, device plugged in, etc. 263 // Consider removing this if it becomes a problem 264 ServiceStateChanged service_state_changed = 99 [(module) = "framework"]; 265 ServiceLaunchReported service_launch_reported = 100 [(module) = "framework"]; 266 FlagFlipUpdateOccurred flag_flip_update_occurred = 101 [(module) = "framework"]; 267 BinaryPushStateChanged binary_push_state_changed = 102 [(module) = "statsd"]; 268 DevicePolicyEvent device_policy_event = 103 [(module) = "framework"]; 269 DocsUIFileOperationCanceledReported docs_ui_file_op_canceled = 104 [(module) = "docsui"]; 270 DocsUIFileOperationCopyMoveModeReported docs_ui_file_op_copy_move_mode_reported = 271 105 [(module) = "docsui"]; 272 DocsUIFileOperationFailureReported docs_ui_file_op_failure = 106 [(module) = "docsui"]; 273 DocsUIFileOperationReported docs_ui_provider_file_op = 107 [(module) = "docsui"]; 274 DocsUIInvalidScopedAccessRequestReported docs_ui_invalid_scoped_access_request = 275 108 [(module) = "docsui"]; 276 DocsUILaunchReported docs_ui_launch_reported = 109 [(module) = "docsui"]; 277 DocsUIRootVisitedReported docs_ui_root_visited = 110 [(module) = "docsui"]; 278 DocsUIStartupMsReported docs_ui_startup_ms = 111 [(module) = "docsui"]; 279 DocsUIUserActionReported docs_ui_user_action_reported = 112 [(module) = "docsui"]; 280 WifiEnabledStateChanged wifi_enabled_state_changed = 113 [(module) = "framework"]; 281 WifiRunningStateChanged wifi_running_state_changed = 114 282 [(module) = "framework", deprecated = true]; 283 AppCompacted app_compacted = 115 [(module) = "framework", deprecated = true]; 284 NetworkDnsEventReported network_dns_event_reported = 116 [(module) = "resolv"]; 285 DocsUIPickerLaunchedFromReported docs_ui_picker_launched_from_reported = 286 117 [(module) = "docsui"]; 287 DocsUIPickResultReported docs_ui_pick_result_reported = 118 [(module) = "docsui"]; 288 DocsUISearchModeReported docs_ui_search_mode_reported = 119 [(module) = "docsui"]; 289 DocsUISearchTypeReported docs_ui_search_type_reported = 120 [(module) = "docsui"]; 290 DataStallEvent data_stall_event = 121 [(module) = "network_stack"]; 291 RescuePartyResetReported rescue_party_reset_reported = 122 [(module) = "crashrecovery", (module) = "framework"]; 292 SignedConfigReported signed_config_reported = 123 [(module) = "framework"]; 293 GnssNiEventReported gnss_ni_event_reported = 124 [(module) = "framework"]; 294 BluetoothLinkLayerConnectionEvent bluetooth_link_layer_connection_event = 295 125 [(module) = "bluetooth"]; 296 BluetoothAclConnectionStateChanged bluetooth_acl_connection_state_changed = 297 126 [(module) = "bluetooth"]; 298 BluetoothScoConnectionStateChanged bluetooth_sco_connection_state_changed = 299 127 [(module) = "bluetooth"]; 300 AppDowngraded app_downgraded = 128 [(module) = "framework"]; 301 AppOptimizedAfterDowngraded app_optimized_after_downgraded = 129; 302 LowStorageStateChanged low_storage_state_changed = 130 [(module) = "framework"]; 303 GnssNfwNotificationReported gnss_nfw_notification_reported = 131 [(module) = "framework"]; 304 GnssConfigurationReported gnss_configuration_reported = 132 [(module) = "framework"]; 305 UsbPortOverheatEvent usb_port_overheat_event_reported = 133 [(module) = "statshidl"]; 306 NfcErrorOccurred nfc_error_occurred = 134 [(module) = "nfc"]; 307 NfcStateChanged nfc_state_changed = 135 [(module) = "nfc"]; 308 NfcBeamOccurred nfc_beam_occurred = 136 [(module) = "nfc"]; 309 NfcCardemulationOccurred nfc_cardemulation_occurred = 137 [(module) = "nfc"]; 310 NfcTagOccurred nfc_tag_occurred = 138 [(module) = "nfc"]; 311 NfcHceTransactionOccurred nfc_hce_transaction_occurred = 139 [(module) = "nfc"]; 312 SeStateChanged se_state_changed = 140 [(module) = "secure_element"]; 313 SeOmapiReported se_omapi_reported = 141 [(module) = "secure_element"]; 314 BroadcastDispatchLatencyReported broadcast_dispatch_latency_reported = 315 142 [(module) = "framework"]; 316 AttentionManagerServiceResultReported attention_manager_service_result_reported = 317 143 [(module) = "framework"]; 318 AdbConnectionChanged adb_connection_changed = 144 [(module) = "framework"]; 319 SpeechDspStatReported speech_dsp_stat_reported = 145 [(module) = "statshidl"]; 320 UsbContaminantReported usb_contaminant_reported = 146 [(module) = "framework"]; 321 WatchdogRollbackOccurred watchdog_rollback_occurred = 322 147 [(module) = "framework", (module) = "crashrecovery", (module) = "statsd"]; 323 BiometricSystemHealthIssueDetected biometric_system_health_issue_detected = 324 148 [(module) = "framework"]; 325 BubbleUIChanged bubble_ui_changed = 149 [(module) = "framework"]; 326 ScheduledJobConstraintChanged scheduled_job_constraint_changed = 327 150 [(module) = "framework"]; 328 BluetoothActiveDeviceChanged bluetooth_active_device_changed = 329 151 [(module) = "bluetooth"]; 330 BluetoothA2dpPlaybackStateChanged bluetooth_a2dp_playback_state_changed = 331 152 [(module) = "bluetooth"]; 332 BluetoothA2dpCodecConfigChanged bluetooth_a2dp_codec_config_changed = 333 153 [(module) = "bluetooth"]; 334 BluetoothA2dpCodecCapabilityChanged bluetooth_a2dp_codec_capability_changed = 335 154 [(module) = "bluetooth"]; 336 BluetoothA2dpAudioUnderrunReported bluetooth_a2dp_audio_underrun_reported = 337 155 [(module) = "bluetooth"]; 338 BluetoothA2dpAudioOverrunReported bluetooth_a2dp_audio_overrun_reported = 339 156 [(module) = "bluetooth"]; 340 BluetoothDeviceRssiReported bluetooth_device_rssi_reported = 341 157 [(module) = "bluetooth"]; 342 BluetoothDeviceFailedContactCounterReported 343 bluetooth_device_failed_contact_counter_reported = 158 [(module) = "bluetooth"]; 344 BluetoothDeviceTxPowerLevelReported bluetooth_device_tx_power_level_reported = 345 159 [(module) = "bluetooth"]; 346 BluetoothHciTimeoutReported bluetooth_hci_timeout_reported = 347 160 [(module) = "bluetooth"]; 348 BluetoothQualityReportReported bluetooth_quality_report_reported = 349 161 [(module) = "bluetooth"]; 350 BluetoothDeviceInfoReported bluetooth_device_info_reported = 351 162 [(module) = "bluetooth"]; 352 BluetoothRemoteVersionInfoReported bluetooth_remote_version_info_reported = 353 163 [(module) = "bluetooth"]; 354 BluetoothSdpAttributeReported bluetooth_sdp_attribute_reported = 355 164 [(module) = "bluetooth"]; 356 BluetoothBondStateChanged bluetooth_bond_state_changed = 357 165 [(module) = "bluetooth"]; 358 BluetoothClassicPairingEventReported bluetooth_classic_pairing_event_reported = 359 166 [(module) = "bluetooth"]; 360 BluetoothSmpPairingEventReported bluetooth_smp_pairing_event_reported = 361 167 [(module) = "bluetooth"]; 362 ScreenTimeoutExtensionReported screen_timeout_extension_reported = 363 168 [(module) = "framework"]; 364 ProcessStartTime process_start_time = 169 [(module) = "framework"]; 365 PermissionGrantRequestResultReported permission_grant_request_result_reported = 366 170 [(module) = "permissioncontroller"]; 367 BluetoothSocketConnectionStateChanged bluetooth_socket_connection_state_changed = 368 171 [(module) = "bluetooth"]; 369 DeviceIdentifierAccessDenied device_identifier_access_denied = 370 172 [(module) = "telephony_common"]; 371 BubbleDeveloperErrorReported bubble_developer_error_reported = 173 [(module) = "framework"]; 372 sysui.AssistGestureStageReported assist_gesture_stage_reported = 174 [(module) = "sysui"]; 373 sysui.AssistGestureFeedbackReported assist_gesture_feedback_reported = 374 175 [(module) = "sysui"]; 375 sysui.AssistGestureProgressReported assist_gesture_progress_reported = 376 176 [(module) = "sysui"]; 377 input.TouchGestureClassified touch_gesture_classified = 177 [(module) = "framework"]; 378 HiddenApiUsed hidden_api_used = 178 [(module) = "framework"]; 379 StyleUIChanged style_ui_changed = 179 [(module) = "sysui", (module) = "wallpaper"]; 380 PrivacyIndicatorsInteracted privacy_indicators_interacted = 381 180 [(module) = "permissioncontroller"]; 382 AppInstallOnExternalStorageReported app_install_on_external_storage_reported = 383 181 [(module) = "framework"]; 384 NetworkStackReported network_stack_reported = 182 [(module) = "network_stack"]; 385 AppMovedStorageReported app_moved_storage_reported = 183 [(module) = "framework"]; 386 BiometricEnrolled biometric_enrolled = 184 [(module) = "framework"]; 387 SystemServerWatchdogOccurred system_server_watchdog_occurred = 185 [(module) = "framework"]; 388 TombStoneOccurred tomb_stone_occurred = 186 [(module) = "framework"]; 389 BluetoothClassOfDeviceReported bluetooth_class_of_device_reported = 390 187 [(module) = "bluetooth"]; 391 IntelligenceEventReported intelligence_event_reported = 392 188 [(module) = "intelligence"]; 393 ThermalThrottlingSeverityStateChanged thermal_throttling_severity_state_changed = 394 189 [(module) = "framework"]; 395 RoleRequestResultReported role_request_result_reported = 396 190 [(module) = "permissioncontroller"]; 397 MediametricsAudiopolicyReported mediametrics_audiopolicy_reported = 398 191 [(module) = "media_metrics"]; 399 MediametricsAudiorecordReported mediametrics_audiorecord_reported = 400 192[(module) = "media_metrics"]; 401 MediametricsAudiothreadReported mediametrics_audiothread_reported = 402 193 [(module) = "media_metrics"]; 403 MediametricsAudiotrackReported mediametrics_audiotrack_reported = 404 194 [(module) = "media_metrics"]; 405 MediametricsCodecReported mediametrics_codec_reported = 406 195 [(module) = "media_metrics"]; 407 MediametricsDrmWidevineReported mediametrics_drm_widevine_reported = 408 196 [(module) = "media_metrics"]; 409 MediametricsExtractorReported mediametrics_extractor_reported = 410 197 [(module) = "media_metrics"]; 411 MediametricsMediadrmReported mediametrics_mediadrm_reported = 412 198 [(module) = "media_metrics"]; 413 MediametricsNuPlayerReported mediametrics_nuplayer_reported = 414 199 [(module) = "media_metrics"]; 415 MediametricsRecorderReported mediametrics_recorder_reported = 416 200 [(module) = "media_metrics"]; 417 MediametricsDrmManagerReported mediametrics_drmmanager_reported = 418 201 [(module) = "media_metrics"]; 419 CarPowerStateChanged car_power_state_changed = 203 [(module) = "car"]; 420 GarageModeInfo garage_mode_info = 204 [(module) = "car"]; 421 TestAtomReported test_atom_reported = 205 422 [(module) = "cts", (module) = "statsdtest"]; 423 ContentCaptureCallerMismatchReported content_capture_caller_mismatch_reported = 424 206 [(module) = "framework"]; 425 ContentCaptureServiceEvents content_capture_service_events = 207 [(module) = "framework"]; 426 ContentCaptureSessionEvents content_capture_session_events = 208 [(module) = "framework"]; 427 ContentCaptureFlushed content_capture_flushed = 209 [(module) = "framework"]; 428 LocationManagerApiUsageReported location_manager_api_usage_reported = 429 210 [(module) = "framework"]; 430 ReviewPermissionsFragmentResultReported review_permissions_fragment_result_reported = 431 211 [(module) = "permissioncontroller"]; 432 RuntimePermissionsUpgradeResult runtime_permissions_upgrade_result = 433 212 [(module) = "permissioncontroller"]; 434 GrantPermissionsActivityButtonActions grant_permissions_activity_button_actions = 435 213 [(module) = "permissioncontroller"]; 436 LocationAccessCheckNotificationAction location_access_check_notification_action = 437 214 [(module) = "permissioncontroller"]; 438 AppPermissionFragmentActionReported app_permission_fragment_action_reported = 439 215 [(module) = "permissioncontroller"]; 440 AppPermissionFragmentViewed app_permission_fragment_viewed = 441 216 [(module) = "permissioncontroller"]; 442 AppPermissionsFragmentViewed app_permissions_fragment_viewed = 443 217 [(module) = "permissioncontroller"]; 444 PermissionAppsFragmentViewed permission_apps_fragment_viewed = 445 218 [(module) = "permissioncontroller"]; 446 TextSelectionEvent text_selection_event = 219 [(module) = "textclassifier"]; 447 TextLinkifyEvent text_linkify_event = 220 [(module) = "textclassifier"]; 448 ConversationActionsEvent conversation_actions_event = 221 [(module) = "textclassifier"]; 449 LanguageDetectionEvent language_detection_event = 222 [(module) = "textclassifier"]; 450 ExclusionRectStateChanged exclusion_rect_state_changed = 223 [(module) = "framework"]; 451 sysui.BackGesture back_gesture_reported_reported = 224 [(module) = "sysui"]; 452 UpdateEngineUpdateAttemptReported update_engine_update_attempt_reported = 453 225 [(module) = "update_engine"]; 454 UpdateEngineSuccessfulUpdateReported update_engine_successful_update_reported = 455 226 [(module) = "update_engine"]; 456 CameraActionEvent camera_action_event = 227 [(module) = "framework"]; 457 AppCompatibilityChangeReported app_compatibility_change_reported = 458 228 [(module) = "framework"]; 459 PerfettoUploaded perfetto_uploaded = 229 [(module) = "perfetto"]; 460 VmsClientConnectionStateChanged vms_client_connection_state_changed = 461 230 [(module) = "car"]; 462 MediaProviderScanOccurred media_provider_scan_occurred = 233 [(module) = "mediaprovider"]; 463 MediaContentDeleted media_content_deleted = 234 [(module) = "mediaprovider"]; 464 MediaProviderPermissionRequested media_provider_permission_requested = 465 235 [(module) = "mediaprovider"]; 466 MediaProviderSchemaChanged media_provider_schema_changed = 236 [(module) = "mediaprovider"]; 467 MediaProviderIdleMaintenanceFinished media_provider_idle_maintenance_finished = 468 237 [(module) = "mediaprovider"]; 469 RebootEscrowRecoveryReported reboot_escrow_recovery_reported = 238 [(module) = "framework"]; 470 BootTimeEventDuration boot_time_event_duration_reported = 239 [(module) = "framework"]; 471 BootTimeEventElapsedTime boot_time_event_elapsed_time_reported = 472 240 [(module) = "framework"]; 473 BootTimeEventUtcTime boot_time_event_utc_time_reported = 241; 474 BootTimeEventErrorCode boot_time_event_error_code_reported = 242 [(module) = "framework"]; 475 UserspaceRebootReported userspace_reboot_reported = 243 [(module) = "framework"]; 476 NotificationReported notification_reported = 244 [(module) = "framework"]; 477 sysui.NotificationPanelReported notification_panel_reported = 245 [(module) = "sysui"]; 478 NotificationChannelModified notification_channel_modified = 246 [(module) = "framework"]; 479 IntegrityCheckResultReported integrity_check_result_reported = 247 [(module) = "framework"]; 480 IntegrityRulesPushed integrity_rules_pushed = 248 [(module) = "framework"]; 481 CellBroadcastMessageReported cb_message_reported = 482 249 [(module) = "cellbroadcast"]; 483 CellBroadcastMessageError cb_message_error = 484 250 [(module) = "cellbroadcast"]; 485 WifiHealthStatReported wifi_health_stat_reported = 251 [(module) = "wifi"]; 486 WifiFailureStatReported wifi_failure_stat_reported = 252 [(module) = "wifi"]; 487 WifiConnectionResultReported wifi_connection_result_reported = 253 [(module) = "wifi"]; 488 AppFreezeChanged app_freeze_changed = 254 [(module) = "framework"]; 489 SnapshotMergeReported snapshot_merge_reported = 490 255 [(module) = "update_engine"]; 491 ForegroundServiceAppOpSessionEnded foreground_service_app_op_session_ended = 492 256 [(module) = "framework"]; 493 // DisplayJankReported was deprecated in Android 12+ 494 DisplayJankReported display_jank_reported = 257 [deprecated = true]; 495 AppStandbyBucketChanged app_standby_bucket_changed = 258 [(module) = "framework"]; 496 SharesheetStarted sharesheet_started = 259 [(module) = "framework"]; 497 RankingSelected ranking_selected = 260 [ 498 (module) = "framework", 499 (module) = "sysui", 500 (module) = "mediaprovider" 501 ]; 502 TvSettingsUIInteracted tvsettings_ui_interacted = 261 [(module) = "tv_settings"]; 503 sysui.LauncherStaticLayout launcher_snapshot = 262 [(module) = "sysui"]; 504 PackageInstallerV2Reported package_installer_v2_reported = 263 [(module) = "framework"]; 505 UserLifecycleJourneyReported user_lifecycle_journey_reported = 264 [(module) = "framework"]; 506 UserLifecycleEventOccurred user_lifecycle_event_occurred = 265 [(module) = "framework"]; 507 AccessibilityShortcutReported accessibility_shortcut_reported = 508 266 [(module) = "framework"]; 509 AccessibilityServiceReported accessibility_service_reported = 267 [(module) = "settings"]; 510 DocsUIDragAndDropReported docs_ui_drag_and_drop_reported = 268 [(module) = "docsui"]; 511 AppUsageEventOccurred app_usage_event_occurred = 269 [(module) = "framework"]; 512 AutoRevokeNotificationClicked auto_revoke_notification_clicked = 513 270 [(module) = "permissioncontroller"]; 514 AutoRevokeFragmentAppViewed auto_revoke_fragment_app_viewed = 515 271 [(module) = "permissioncontroller"]; 516 AutoRevokedAppInteraction auto_revoked_app_interaction = 517 272 [(module) = "permissioncontroller", (module) = "settings"]; 518 AppPermissionGroupsFragmentAutoRevokeAction 519 app_permission_groups_fragment_auto_revoke_action = 520 273 [(module) = "permissioncontroller"]; 521 EvsUsageStatsReported evs_usage_stats_reported = 274 [(module) = "evs"]; 522 AudioPowerUsageDataReported audio_power_usage_data_reported = 523 275 [(module) = "media_metrics"]; 524 TvTunerStateChanged tv_tuner_state_changed = 276 [(module) = "framework"]; 525 sysui.MediaOutputOpSwitchReported mediaoutput_op_switch_reported = 526 277 [(module) = "sysui"]; 527 CellBroadcastMessageFiltered cb_message_filtered = 528 278 [(module) = "cellbroadcast"]; 529 TvTunerDvrStatus tv_tuner_dvr_status = 279 [(module) = "framework"]; 530 TvCasSessionOpenStatus tv_cas_session_open_status = 531 280 [(module) = "framework"]; 532 AssistantInvocationReported assistant_invocation_reported = 281 [(module) = "framework"]; 533 DisplayWakeReported display_wake_reported = 282 [(module) = "framework"]; 534 CarUserHalModifyUserRequestReported car_user_hal_modify_user_request_reported = 535 283 [(module) = "car"]; 536 CarUserHalModifyUserResponseReported car_user_hal_modify_user_response_reported = 537 284 [(module) = "car"]; 538 CarUserHalPostSwitchResponseReported car_user_hal_post_switch_response_reported = 539 285 [(module) = "car"]; 540 CarUserHalInitialUserInfoRequestReported car_user_hal_initial_user_info_request_reported = 541 286 [(module) = "car"]; 542 CarUserHalInitialUserInfoResponseReported car_user_hal_initial_user_info_response_reported = 543 287 [(module) = "car"]; 544 CarUserHalUserAssociationRequestReported car_user_hal_user_association_request_reported = 545 288 [(module) = "car"]; 546 CarUserHalSetUserAssociationResponseReported car_user_hal_set_user_association_response_reported = 547 289 [(module) = "car"]; 548 NetworkIpProvisioningReported network_ip_provisioning_reported = 549 290 [(module) = "network_stack"]; 550 NetworkDhcpRenewReported network_dhcp_renew_reported = 291 [(module) = "network_stack"]; 551 NetworkValidationReported network_validation_reported = 292 [(module) = "network_stack"]; 552 NetworkStackQuirkReported network_stack_quirk_reported = 293 [(module) = "network_stack"]; 553 MediametricsAudioRecordDeviceUsageReported mediametrics_audiorecorddeviceusage_reported = 554 294 [(module) = "media_metrics"]; 555 MediametricsAudioThreadDeviceUsageReported mediametrics_audiothreaddeviceusage_reported = 556 295 [(module) = "media_metrics"]; 557 MediametricsAudioTrackDeviceUsageReported mediametrics_audiotrackdeviceusage_reported = 558 296 [(module) = "media_metrics"]; 559 MediametricsAudioDeviceConnectionReported mediametrics_audiodeviceconnection_reported = 560 297 [(module) = "media_metrics"]; 561 BlobCommitted blob_committed = 298 [(module) = "framework"]; 562 BlobLeased blob_leased = 299 [(module) = "framework"]; 563 BlobOpened blob_opened = 300 [(module) = "framework"]; 564 ContactsProviderStatusReported contacts_provider_status_reported = 301; 565 KeystoreKeyEventReported keystore_key_event_reported = 302; 566 NetworkTetheringReported network_tethering_reported = 567 303 [(module) = "network_tethering"]; 568 sysui.ImeTouchReported ime_touch_reported = 304 [(module) = "sysui"]; 569 UIInteractionFrameInfoReported ui_interaction_frame_info_reported = 570 305 [(module) = "framework"]; 571 UIActionLatencyReported ui_action_latency_reported = 306 [(module) = "framework"]; 572 WifiDisconnectReported wifi_disconnect_reported = 307 [(module) = "wifi"]; 573 WifiConnectionStateChanged wifi_connection_state_changed = 308 [(module) = "wifi"]; 574 HdmiCecActiveSourceChanged hdmi_cec_active_source_changed = 309 [(module) = "framework"]; 575 HdmiCecMessageReported hdmi_cec_message_reported = 310 [(module) = "framework"]; 576 AirplaneMode airplane_mode = 311 [(module) = "telephony"]; 577 ModemRestart modem_restart = 312 [(module) = "telephony"]; 578 CarrierIdMismatchReported carrier_id_mismatch_reported = 313 [(module) = "telephony"]; 579 CarrierIdTableUpdated carrier_id_table_updated = 314 [(module) = "telephony"]; 580 DataStallRecoveryReported data_stall_recovery_reported = 315 [(module) = "telephony"]; 581 MediametricsMediaParserReported mediametrics_mediaparser_reported = 582 316 [(module) = "media_metrics"]; 583 TlsHandshakeReported tls_handshake_reported = 317 [(module) = "conscrypt"]; 584 TextClassifierApiUsageReported text_classifier_api_usage_reported = 318 [(module) = "textclassifier"]; 585 CarWatchdogKillStatsReported car_watchdog_kill_stats_reported = 319 [(module) = "car", (module) = "framework"]; 586 MediametricsPlaybackReported mediametrics_playback_reported = 320 [(module) = "media_metrics"]; 587 MediaNetworkInfoChanged media_network_info_changed = 321 [(module) = "media_metrics"]; 588 MediaPlaybackStateChanged media_playback_state_changed = 322 [(module) = "media_metrics"]; 589 MediaPlaybackErrorReported media_playback_error_reported = 323 [(module) = "media_metrics"]; 590 MediaPlaybackTrackChanged media_playback_track_changed = 324 [(module) = "media_metrics"]; 591 WifiScanReported wifi_scan_reported = 325 [(module) = "wifi"]; 592 WifiPnoScanReported wifi_pno_scan_reported = 326 [(module) = "wifi"]; 593 TifTuneStateChanged tif_tune_changed = 327 [(module) = "framework"]; 594 AutoRotateReported auto_rotate_reported = 328 [(module) = "framework"]; 595 PerfettoTrigger perfetto_trigger = 329 [(module) = "perfetto"]; 596 TranscodingData transcoding_data = 330 [(module) = "mediaprovider"]; 597 ImsServiceEntitlementUpdated ims_service_entitlement_updated = 331 [(module) = "imsentitlement"]; 598 DeviceRotated device_rotated = 333 [(module) = "framework"]; 599 SimSpecificSettingsRestored sim_specific_settings_restored = 334 600 [(module) = "telephony"]; 601 TextClassifierDownloadReported text_classifier_download_reported = 335 [(module) = "textclassifier"]; 602 PinStorageEvent pin_storage_event = 336 [(module) = "telephony"]; 603 FaceDownReported face_down_reported = 337 [(module) = "framework"]; 604 BluetoothHALCrashReasonReported bluetooth_hal_crash_reason_reported = 605 338 [(module) = "bluetooth"]; 606 RebootEscrowPreparationReported reboot_escrow_preparation_reported = 607 339 [(module) = "framework"]; 608 RebootEscrowLskfCaptureReported reboot_escrow_lskf_capture_reported = 609 340 [(module) = "framework"]; 610 RebootEscrowRebootReported reboot_escrow_reboot_reported = 341 [(module) = "framework"]; 611 BinderLatencyReported binder_latency_reported = 342 [(module) = "framework"]; 612 MediametricsAAudioStreamReported mediametrics_aaudiostream_reported = 613 343 [(module) = "media_metrics"]; 614 MediaTranscodingSessionEnded media_transcoding_session_ended = 344 615 [(module) = "media"]; 616 MagnificationUsageReported magnification_usage_reported = 617 345 [(module) = "framework"]; 618 MagnificationModeWithImeOnReported magnification_mode_with_ime_on_reported = 619 346 [(module) = "framework"]; 620 AppSearchCallStatsReported app_search_call_stats_reported = 347 [(module) = "appsearch"]; 621 AppSearchPutDocumentStatsReported app_search_put_document_stats_reported = 348 [(module) = "appsearch"]; 622 sysui.DeviceControlChanged device_control_changed = 349 [(module) = "sysui"]; 623 DeviceStateChanged device_state_changed = 350 [(module) = "framework"]; 624 input.InputDeviceRegistered inputdevice_registered = 351 [(module) = "framework"]; 625 sysui.SmartSpaceCardReported smartspace_card_reported = 352 [(module) = "sysui"]; 626 AuthPromptAuthenticateInvoked auth_prompt_authenticate_invoked = 353 [(module) = "framework"]; 627 AuthManagerCanAuthenticateInvoked auth_manager_can_authenticate_invoked = 354 [(module) = "framework"]; 628 AuthEnrollActionInvoked auth_enroll_action_invoked = 355 [(module) = "framework"]; 629 AuthDeprecatedAPIUsed auth_deprecated_api_used = 356 [(module) = "framework"]; 630 UnattendedRebootOccurred unattended_reboot_occurred = 357 [(module) = "scheduling"]; 631 LongRebootBlockingReported long_reboot_blocking_reported = 358 [(module) = "scheduling"]; 632 LocationTimeZoneProviderStateChanged location_time_zone_provider_state_changed = 633 359 [(module) = "framework"]; 634 // 360-363 are reserved. 635 FdtrackEventOccurred fdtrack_event_occurred = 364 [(module) = "framework"]; 636 TimeoutAutoExtendedReported timeout_auto_extended_reported = 365 637 [(module) = "framework"]; 638 AlarmBatchDelivered alarm_batch_delivered = 367 [(module) = "framework"]; 639 AlarmScheduled alarm_scheduled = 368 [(module) = "framework"]; 640 CarWatchdogIoOveruseStatsReported car_watchdog_io_overuse_stats_reported = 369 [(module) = "car"]; 641 UserLevelHibernationStateChanged user_level_hibernation_state_changed = 370 [(module) = "framework"]; 642 AppSearchInitializeStatsReported app_search_initialize_stats_reported = 371 [(module) = "appsearch"]; 643 AppSearchQueryStatsReported app_search_query_stats_reported = 372 [(module) = "appsearch"]; 644 AppProcessDied app_process_died = 373 [(module) = "framework"]; 645 NetworkIpReachabilityMonitorReported network_ip_reachability_monitor_reported = 646 374 [(module) = "network_stack"]; 647 input.SlowInputEventReported slow_input_event_reported = 375 [(module) = "input"]; 648 ANROccurredProcessingStarted anr_occurred_processing_started = 376 [(module) = "framework"]; 649 AppSearchRemoveStatsReported app_search_remove_stats_reported = 377 [(module) = "appsearch"]; 650 MediaCodecReported media_codec_reported = 651 378 [(module) = "framework", (module) = "media_metrics"]; 652 PermissionUsageFragmentInteraction permission_usage_fragment_interaction = 379 [(module) = "permissioncontroller"]; 653 PermissionDetailsInteraction permission_details_interaction = 380 [(module) = "permissioncontroller"]; 654 PrivacySensorToggleInteraction privacy_sensor_toggle_interaction = 381 [(module) = "framework"]; 655 PrivacyToggleDialogInteraction privacy_toggle_dialog_interaction = 382 [(module) = "framework"]; 656 AppSearchOptimizeStatsReported app_search_optimize_stats_reported = 383 [(module) = "appsearch"]; 657 NonA11yToolServiceWarningReported non_a11y_tool_service_warning_report = 384 [(module) = "framework"]; 658 AppCompatStateChanged app_compat_state_changed = 386 [(module) = "framework"]; 659 SizeCompatRestartButtonEventReported size_compat_restart_button_event_reported = 387 [(module) = "framework"]; 660 SplitscreenUIChanged splitscreen_ui_changed = 388 [(module) = "framework"]; 661 NetworkDnsHandshakeReported network_dns_handshake_reported = 389 [(module) = "resolv"]; 662 BluetoothCodePathCounter bluetooth_code_path_counter = 663 390 [(module) = "bluetooth"]; 664 BluetoothLeBatchScanReportDelay bluetooth_le_batch_scan_report_delay = 665 392 [(module) = "bluetooth"]; 666 sysui.AccessibilityFloatingMenuUIChanged accessibility_floating_menu_ui_changed = 667 393 [(module) = "sysui"]; 668 NeuralNetworksCompilationCompleted neuralnetworks_compilation_completed = 394 669 [(module) = "neuralnetworks"]; 670 NeuralNetworksExecutionCompleted neuralnetworks_execution_completed = 395 671 [(module) = "neuralnetworks"]; 672 NeuralNetworksCompilationFailed neuralnetworks_compilation_failed = 396 673 [(module) = "neuralnetworks"]; 674 NeuralNetworksExecutionFailed neuralnetworks_execution_failed = 397 675 [(module) = "neuralnetworks"]; 676 ContextHubBooted context_hub_booted = 398 [(module) = "contexthub"]; 677 ContextHubRestarted context_hub_restarted = 399 [(module) = "contexthub"]; 678 ContextHubLoadedNanoappSnapshotReported context_hub_loaded_nanoapp_snapshot_reported = 400 679 [(module) = "contexthub"]; 680 ChreCodeDownloadTransacted chre_code_download_transacted = 401 [(module) = "contexthub"]; 681 UwbSessionInitiated uwb_session_inited = 402 [(module) = "uwb"]; 682 UwbSessionClosed uwb_session_closed = 403 [(module) = "uwb"]; 683 UwbFirstRangingReceived uwb_first_ranging_received = 404 [(module) = "uwb"]; 684 UwbRangingMeasurementReceived uwb_ranging_measurement_received = 405 [(module) = "uwb"]; 685 TextClassifierDownloadWorkScheduled text_classifier_download_work_scheduled = 406 [(module) = "textclassifier"]; 686 TextClassifierDownloadWorkCompleted text_classifier_download_work_completed = 407 [(module) = "textclassifier"]; 687 ClipboardCleared clipboard_cleared = 408 [(module) = "framework"]; 688 VmCreationRequested vm_creation_requested = 409 [(module) = "virtualizationservice"]; 689 NearbyDeviceScanStateChanged nearby_device_scan_state_changed = 410 [(module) = "nearby"]; 690 // reserved 411 for a deprecated CameraCompatControlEventReported. 691 ApplicationLocalesChanged application_locales_changed = 412 [(module) = "framework"]; 692 MediametricsAudioTrackStatusReported mediametrics_audiotrackstatus_reported = 693 413 [(module) = "media_metrics"]; 694 FoldStateDurationReported fold_state_duration_reported = 414 [(module) = "framework"]; 695 LocationTimeZoneProviderControllerStateChanged location_time_zone_provider_controller_state_changed = 696 415 [(module) = "framework"]; 697 DisplayHbmStateChanged display_hbm_state_changed = 416 [(module) = "framework"]; 698 DisplayHbmBrightnessChanged display_hbm_brightness_changed = 417 [(module) = "framework"]; 699 PersistentUriPermissionsFlushed persistent_uri_permissions_flushed = 700 418 [(module) = "framework"]; 701 EarlyBootCompOsArtifactsCheckReported early_boot_comp_os_artifacts_check_reported = 419 [(module) = "art"]; 702 VBMetaDigestReported vbmeta_digest_reported = 420 [(module) = "framework"]; 703 ApexInfoGathered apex_info_gathered = 421 [(module) = "framework"]; 704 PvmInfoGathered pvm_info_gathered = 422 [(module) = "framework"]; 705 WearSettingsUIInteracted wear_settings_ui_interacted = 423 [(module) = "wear_settings"]; 706 TracingServiceReportEvent tracing_service_report_event = 424 [(module) = "framework"]; 707 MediametricsAudioRecordStatusReported mediametrics_audiorecordstatus_reported = 708 425 [(module) = "media_metrics"]; 709 sysui.LauncherLatency launcher_latency = 426 [(module) = "sysui"]; 710 DropboxEntryDropped dropbox_entry_dropped = 427 [(module) = "framework"]; 711 WifiP2pConnectionReported wifi_p2p_connection_reported = 428 [(module) = "wifi"]; 712 GameStateChanged game_state_changed = 429 [(module) = "framework"]; 713 hotword.HotwordDetectorCreateRequested hotword_detector_create_requested = 430 714 [(module) = "framework"]; 715 hotword.HotwordDetectionServiceInitResultReported hotword_detection_service_init_result_reported = 431 716 [(module) = "framework"]; 717 hotword.HotwordDetectionServiceRestarted hotword_detection_service_restarted = 432 718 [(module) = "framework"]; 719 hotword.HotwordDetectorKeyphraseTriggered hotword_detector_keyphrase_triggered = 433 720 [(module) = "framework"]; 721 hotword.HotwordDetectorEvents hotword_detector_events = 434 722 [(module) = "framework"]; 723 BootCompletedBroadcastCompletionLatencyReported boot_completed_broadcast_completion_latency_reported = 724 437 [(module) = "framework"]; 725 ContactsIndexerUpdateStatsReported contacts_indexer_update_stats_reported = 440 726 [(module) = "appsearch"]; 727 AppBackgroundRestrictionsInfo app_background_restrictions_info = 728 441 [(module) = "framework"]; 729 MmsSmsProviderGetThreadIdFailed mms_sms_provider_get_thread_id_failed = 442 [(module) = "telephony"]; 730 MmsSmsDatabaseHelperOnUpgradeFailed mms_sms_database_helper_on_upgrade_failed = 443 [(module) = "telephony"]; 731 PermissionReminderNotificationInteracted permission_reminder_notification_interacted = 732 444 [(module) = "permissioncontroller"]; 733 RecentPermissionDecisionsInteracted recent_permission_decisions_interacted = 734 445 [(module) = "permissioncontroller"]; 735 GnssPsdsDownloadReported gnss_psds_download_reported = 446 [(module) = "framework"]; 736 LeAudioConnectionSessionReported le_audio_connection_session_reported = 447 [(module) = "bluetooth"]; 737 LeAudioBroadcastSessionReported le_audio_broadcast_session_reported = 448 [(module) = "bluetooth"]; 738 DreamUiEventReported dream_ui_event_reported = 449 [(module) = "framework"]; 739 sysui.TaskManagerEventReported task_manager_event_reported = 450 [(module) = "sysui"]; 740 CdmAssociationAction cdm_association_action = 451 [(module) = "framework"]; 741 MagnificationTripleTapAndHoldActivatedSessionReported magnification_triple_tap_and_hold_activated_session_reported = 742 452 [(module) = "framework"]; 743 MagnificationFollowTypingFocusActivatedSessionReported magnification_follow_typing_focus_activated_session_reported = 744 453 [(module) = "framework"]; 745 AccessibilityTextReadingOptionsChanged accessibility_text_reading_options_changed = 454 [(module) = "settings"]; 746 WifiSetupFailureCrashReported wifi_setup_failure_crash_reported = 455 [(module) = "wifi"]; 747 UwbDeviceErrorReported uwb_device_error_reported = 456 [(module) = "uwb"]; 748 IsolatedCompilationScheduled isolated_compilation_scheduled = 457 [(module) = "art"]; 749 IsolatedCompilationEnded isolated_compilation_ended = 458 [(module) = "art"]; 750 OnsOpportunisticEsimProvisioningComplete ons_opportunistic_esim_provisioning_complete = 459 [(module) = "ons"]; 751 SystemServerPreWatchdogOccurred system_server_pre_watchdog_occurred = 460 [(module) = "framework"]; 752 TelephonyAnomalyDetected telephony_anomaly_detected = 461 [(module) = "telephony"]; 753 LetterboxPositionChanged letterbox_position_changed = 462 [(module) = "framework"]; 754 RemoteKeyProvisioningAttempt remote_key_provisioning_attempt = 463 [(module) = "rkpd"]; 755 RemoteKeyProvisioningNetworkInfo remote_key_provisioning_network_info = 464 [(module) = "rkpd"]; 756 RemoteKeyProvisioningTiming remote_key_provisioning_timing = 465 [(module) = "rkpd"]; 757 sysui.MediaOutputOpInteractionReported mediaoutput_op_interaction_report = 758 466 [(module) = "sysui"]; 759 SyncExemptionOccurred sync_exemption_occurred = 468 [(module) = "framework"]; 760 AutofillPresentationEventReported autofill_presentation_event_reported = 469 [(module) = "framework"]; 761 DockStateChanged dock_state_changed = 470 [(module) = "framework"]; 762 SafetySourceStateCollected safety_source_state_collected = 471 [(module) = "permissioncontroller"]; 763 SafetyCenterSystemEventReported safety_center_system_event_reported = 472 [(module) = "permissioncontroller"]; 764 SafetyCenterInteractionReported safety_center_interaction_reported = 473 [(module) = "permissioncontroller"]; 765 SettingsProviderSettingChanged settings_provider_setting_changed = 474 [(module) = "framework"]; 766 BroadcastDeliveryEventReported broadcast_delivery_event_reported = 767 475 [(module) = "framework"]; 768 ServiceRequestEventReported service_request_event_reported = 476 [(module) = "framework"]; 769 ProviderAcquisitionEventReported provider_acquisition_event_reported = 770 477 [(module) = "framework"]; 771 BluetoothDeviceNameReported bluetooth_device_name_reported = 478 [(module) = "bluetooth"]; 772 CellBroadcastConfigUpdated cb_config_updated = 479 [(module) = "cellbroadcast"]; 773 CellBroadcastModuleErrorReported cb_module_error_reported = 480 [(module) = "cellbroadcast"]; 774 CellBroadcastServiceFeatureChanged cb_service_feature_changed = 481 [(module) = "cellbroadcast"]; 775 CellBroadcastReceiverFeatureChanged cb_receiver_feature_changed = 482 [(module) = "cellbroadcast"]; 776 PrivacySignalNotificationInteraction privacy_signal_notification_interaction = 484 [(module) = "permissioncontroller"]; 777 PrivacySignalIssueCardInteraction privacy_signal_issue_card_interaction = 485 [(module) = "permissioncontroller"]; 778 PrivacySignalsJobFailure privacy_signals_job_failure = 486 [(module) = "permissioncontroller"]; 779 VibrationReported vibration_reported = 487 [(module) = "framework"]; 780 UwbStartRanging uwb_ranging_start = 489 [(module) = "uwb"]; 781 AppCompactedV2 app_compacted_v2 = 491 [(module) = "framework"]; 782 // reserved 492 783 DisplayBrightnessChanged display_brightness_changed = 494 [(module) = "framework"]; 784 ActivityActionBlocked activity_action_blocked = 495 [(module) = "framework"]; 785 NetworkDnsServerSupportReported network_dns_server_support_reported = 504 [(module) = "resolv"]; 786 VmBooted vm_booted = 505 [(module) = "virtualizationservice"]; 787 VmExited vm_exited = 506 [(module) = "virtualizationservice"]; 788 AmbientBrightnessStatsReported ambient_brightness_stats_reported = 507 [(module) = "framework"]; 789 MediametricsSpatializerCapabilitiesReported mediametrics_spatializercapabilities_reported = 790 508 [(module) = "media_metrics"]; 791 MediametricsSpatializerDeviceEnabledReported mediametrics_spatializerdeviceenabled_reported = 792 509 [(module) = "media_metrics"]; 793 MediametricsHeadTrackerDeviceEnabledReported mediametrics_headtrackerdeviceenabled_reported = 794 510 [(module) = "media_metrics"]; 795 MediametricsHeadTrackerDeviceSupportedReported mediametrics_headtrackerdevicesupported_reported = 796 511 [(module) = "media_metrics"]; 797 HearingAidInfoReported hearing_aid_info_reported = 513 [(module) = "framework"]; 798 DeviceWideJobConstraintChanged device_wide_job_constraint_changed = 799 514 [(module) = "framework"]; 800 AmbientModeChanged ambient_mode_changed = 515 [(module) = "framework"]; 801 ANRLatencyReported anr_latency_reported = 516 [(module) = "framework"]; 802 ResourceValueApiStatisticsReported resource_api_info = 517 [(module) = "framework"]; 803 SystemDefaultNetworkChanged system_default_network_changed = 804 518 [(module) = "network_stack"]; 805 IwlanSetupDataCallResultReported iwlan_setup_data_call_result_reported = 519 [(module) = "iwlan"]; 806 IwlanPdnDisconnectedReasonReported iwlan_pdn_disconnected_reason_reported = 520 [(module) = "iwlan"]; 807 AirplaneModeSessionReported airplane_mode_session_reported = 521 [(module) = "wifi", (module) = "bluetooth"]; 808 VmCpuStatusReported vm_cpu_status_reported = 522 [(module) = "virtualizationservice", deprecated = true]; 809 VmMemStatusReported vm_mem_status_reported = 523 [(module) = "virtualizationservice", deprecated = true]; 810 PackageInstallationSessionReported package_installation_session_reported = 524 [(module) = "framework"]; 811 DefaultNetworkRematchInfo default_network_rematch_info = 525 [(module) = "connectivity"]; 812 NetworkSelectionPerformance network_selection_performance = 526 [(module) = "connectivity"]; 813 NetworkNsdReported network_nsd_reported = 527 [(module) = "connectivity"]; 814 BluetoothDisconnectionReasonReported bluetooth_disconnection_reason_reported = 529 [(module) = "bluetooth"]; 815 BluetoothLocalVersionsReported bluetooth_local_versions_reported = 530 [(module) = "bluetooth"]; 816 BluetoothRemoteSupportedFeaturesReported bluetooth_remote_supported_features_reported = 531 [(module) = "bluetooth"]; 817 BluetoothLocalSupportedFeaturesReported bluetooth_local_supported_features_reported = 532 [(module) = "bluetooth"]; 818 BluetoothGattAppInfo bluetooth_gatt_app_info = 533 [(module) = "bluetooth"]; 819 BrightnessConfigurationUpdated brightness_configuration_updated = 534 [(module) = "framework"]; 820 WearMediaOutputSwitcherLaunched wear_media_output_switcher_launched = 821 538 [(module) = "MediaOutputSwitcher"]; 822 WearMediaOutputSwitcherFinished wear_media_output_switcher_finished = 823 539 [(module) = "MediaOutputSwitcher"]; 824 WearMediaOutputSwitcherConnectionReported 825 wear_media_output_switcher_connection_reported = 826 540 [(module) = "MediaOutputSwitcher"]; 827 WearMediaOutputSwitcherDeviceScanTriggered 828 wear_media_output_switcher_device_scan_triggered = 829 541 [(module) = "MediaOutputSwitcher"]; 830 WearMediaOutputSwitcherFirstDeviceScanLatency 831 wear_media_output_switcher_first_device_scan_latency = 832 542 [(module) = "MediaOutputSwitcher"]; 833 WearMediaOutputSwitcherConnectDeviceLatency 834 wear_media_output_switcher_connect_device_latency = 835 543 [(module) = "MediaOutputSwitcher"]; 836 PackageManagerSnapshotReported 837 package_manager_snapshot_reported = 544 [(module) = "framework"]; 838 PackageManagerAppsFilterCacheBuildReported 839 package_manager_apps_filter_cache_build_reported = 545 [(module) = "framework"]; 840 PackageManagerAppsFilterCacheUpdateReported 841 package_manager_apps_filter_cache_update_reported = 546 [(module) = "framework"]; 842 sysui.LauncherImpressionEvent launcher_impression_event = 547 [(module) = "sysui"]; 843 WearMediaOutputSwitcherAllDevicesScanLatency 844 wear_media_output_switcher_all_devices_scan_latency = 845 549 [(module) = "MediaOutputSwitcher"]; 846 WsWatchFaceEdited ws_watch_face_edited = 551 [(module) = "wearservices"]; 847 WsWatchFaceFavouriteActionReported ws_watch_face_favorite_action_reported = 552 [(module) = "wearservices"]; 848 WsWatchFaceSetActionReported ws_watch_face_set_action_reported = 553 [(module) = "wearservices"]; 849 PackageUninstallationReported package_uninstallation_reported = 554 [(module) = "framework"]; 850 agif.GameModeChanged game_mode_changed = 555 [(module) = "framework"]; 851 agif.GameModeConfigurationChanged game_mode_configuration_changed = 556 [(module) = "framework"]; 852 BedtimeModeStateChanged bedtime_mode_state_changed = 557 [(module) = "framework"]; 853 NetworkSliceSessionEnded network_slice_session_ended = 558 [(module) = "connectivity"]; 854 NetworkSliceDailyDataUsageReported network_slice_daily_data_usage_reported = 559 [(module) = "connectivity"]; 855 NfcTagTypeOccurred nfc_tag_type_occurred = 560 [(module) = "nfc"]; 856 NfcAIDConflictOccurred nfc_aid_conflict_occurred = 561 [(module) = "nfc"]; 857 NfcReaderConflictOccurred nfc_reader_conflict_occurred = 562 [(module) = "nfc"]; 858 WsTileListChanged ws_tile_list_changed = 563 [(module) = "wearservices"]; 859 GetTypeAccessedWithoutPermission get_type_accessed_without_permission = 564[(module) = "framework"]; 860 MobileBundledAppInfoGathered mobile_bundled_app_info_gathered = 566 [(module) = "framework"]; 861 WsWatchFaceComplicationSetChanged ws_watch_face_complication_set_changed = 567 [(module) = "wearservices"]; 862 media.MediaDrmCreated media_drm_created = 568 [(module) = "media_metrics"]; 863 media.MediaDrmErrored media_drm_errored = 569 [(module) = "media_metrics"]; 864 media.MediaDrmSessionOpened media_drm_session_opened = 570 865 [(module) = "media_metrics"]; 866 media.MediaDrmSessionClosed media_drm_session_closed = 571 867 [(module) = "media_metrics"]; 868 UserSelectedResolution user_selected_resolution = 572 [(module) = "settings"]; 869 UnsafeIntentEventReported unsafe_intent_event_reported = 573 [(module) = "framework"]; 870 adpf.PerformanceHintSessionReported performance_hint_session_reported = 574 [(module) = "framework"]; 871 MediametricsMidiDeviceCloseReported mediametrics_midi_device_close_reported = 872 576 [(module) = "media_metrics"]; 873 hardware.biometrics.BiometricTouchReported biometric_touch_reported = 577 [(module) = "sysui"]; 874 hotword.HotwordAudioEgressEventReported hotword_audio_egress_event_reported = 578 875 [(module) = "framework"]; 876 location.LocationEnabledStateChanged location_enabled_state_changed = 580 [(module) = "framework"]; 877 view.inputmethod.ImeRequestFinished ime_request_finished = 581 [(module) = "framework"]; 878 usb.UsbComplianceWarningsReported usb_compliance_warnings_reported = 582 [(module) = "framework"]; 879 locale.AppSupportedLocalesChanged app_supported_locales_changed = 583 [(module) = "framework"]; 880 providers.mediaprovider.MediaProviderVolumeRecoveryReported 881 media_provider_volume_recovery_reported = 586 [(module) = "mediaprovider"]; 882 hardware.biometrics.BiometricPropertiesCollected 883 biometric_properties_collected = 587 [(module) = "framework"]; 884 kernel.KernelWakeupAttributed kernel_wakeup_attributed = 588 [(module) = "framework"]; 885 display.ScreenStateChangedV2 screen_state_changed_v2 = 589 [(module) = "framework"]; 886 wearservices.WsBackupActionReported ws_backup_action_reported = 590 887 [(module) = "wearservices"]; 888 wearservices.WsRestoreActionReported ws_restore_action_reported = 591 889 [(module) = "wearservices"]; 890 devicelogs.DeviceLogAccessEventReported device_log_access_event_reported = 592 [(module) = "sysui"]; 891 wear.media.MediaSessionUpdated media_session_updated = 594 [(module) = "wearmedia"]; 892 wearsysui.WearOobeStateChanged wear_oobe_state_changed = 595 [(module) = "framework"]; 893 wearservices.WsNotificationUpdated ws_notification_updated = 596 894 [(module) = "wearservices"]; 895 // reserved 597 896 corenetworking.connectivity.NetworkValidationFailureStatsDailyReported 897 network_validation_failure_stats_daily_reported = 601 [(module) = "connectivity"]; 898 wearservices.WsComplicationTapped ws_complication_tapped = 602 [(module) = "wearservices"]; 899 wearservices.WsNotificationBlocking ws_notification_blocking = 780 [(module) = "wearservices"]; 900 wearservices.WsNotificationBridgemodeUpdated ws_notification_bridgemode_updated = 822 [(module) = "wearservices"]; 901 wearservices.WsNotificationDismissalActioned ws_notification_dismissal_actioned = 823 [(module) = "wearservices"]; 902 wearservices.WsNotificationActioned ws_notification_actioned = 824 [(module) = "wearservices"]; 903 wearservices.WsNotificationLatency ws_notification_latency = 880 [(module) = "wearservices"]; 904 } 905 906 // Pushed atom extensions. 907 // The atom definitions are under atoms/<feature>/<feature>_extension_atoms.proto 908 extensions 332; // ArtDatumReported art_datum_reported 909 extensions 366; // OdrefreshReported odrefresh_reported 910 extensions 385; // AppSearchSetSchemaStatsReported app_search_set_schema_stats_reported 911 extensions 435; // AdServicesApiCalled ad_services_api_called 912 extensions 436; // AdServicesMeasurementReportsUploaded ad_services_mesurement_reports_uploaded 913 extensions 467; // BackgroundDexoptJobEnded background_dexopt_job_ended 914 extensions 483; // JSScriptEngineLatencyReported jsscriptengine_latency_reported 915 extensions 488; // SandboxApiCalled sandbox_api_called 916 extensions 490; // MobileDataDownloadFileGroupDownloadStatusReported mobile_data_download_file_group_status_reported 917 extensions 493; // AdServicesSettingsUsageReported ad_services_settings_usage_reported 918 extensions 496; // BackgroundFetchProcessReported background_fetch_process_reported 919 extensions 497; // UpdateCustomAudienceProcessReported update_custom_audience_process_reported 920 extensions 498; // RunAdBiddingProcessReported run_ad_bidding_process_reported 921 extensions 499; // RunAdScoringProcessReported run_ad_scoring_process_reported 922 extensions 500; //RunAdSelectionProcessReported run_ad_selection_process_reported 923 extensions 501; // RunAdBiddingPerCAProcessReported run_ad_bidding_per_ca_process_reported 924 extensions 502; // MobileDataDownloadDownloadResultReported mobile_data_download_download_result_reported 925 extensions 503; // MobileDataDownloadFileGroupStorageStatsReported mobile_data_download_file_group_storage_stats_reported 926 extensions 512; // AdServicesMeasurementRegistrations ad_services_measurement_registrations 927 extensions 528; // ExpressEventReported express_event_reported 928 extensions 535; // AdServicesGetTopicsReported ad_services_get_topics_reported 929 extensions 536; // AdServicesEpochComputationGetTopTopicsReported ad_services_epoch_computation_get_top_topics_reported 930 extensions 537; // ServicesEpochComputationClassifierReported ad_services_epoch_computation_classifier_reported 931 extensions 548; // OdsignReported odsign_reported 932 extensions 550; // ArtDeviceDatumReported art_device_datum_reported 933 extensions 565; // ArtDatumDeltaReported art_datum_delta_reported 934 extensions 579; // AppSearchSchemaMigrationStatsReported app_search_schema_migration_stats_reported 935 extensions 584; // ApplicationGrammaticalInflectionChanged application_grammatical_inflection_changed 936 extensions 585; // CredentialManagerApiCalled credential_manager_api_called 937 extensions 593; // ExpressHistogramSampleReported express_histogram_sample_reported 938 extensions 598; // AdServicesBackCompatGetTopicsReported ad_services_back_compat_get_topics_reported 939 extensions 599; // AdServicesBackCompatEpochComputationClassifierReported ad_services_back_compat_epoch_computation_classifier_reported 940 extensions 600; // MediaCodecReclaimRequestCompleted media_codec_reclaim_request_completed 941 extensions 603; // AutofillUiEventReported autofill_ui_event_reported 942 extensions 604; // AutofillFillRequestReported autofill_fill_request_reported 943 extensions 605; // AutofillFillResponseReported autofill_fill_response_reported 944 extensions 606; // AutofillSaveEventReported autofill_save_event_reported 945 extensions 607; // AutofillSessionCommitted autofill_session_committed 946 extensions 608; // MediaActionReported media_action_reported 947 extensions 609; // MediaControlsLaunched media_controls_launched 948 extensions 610; // WsWearTimeSession ws_wear_time_session 949 extensions 611; // LockscreenShortcutSelected lockscreen_shortcut_selected 950 extensions 612; // LockscreenShortcutTriggered lockscreen_shortcut_triggered 951 extensions 613; // BluetoothHashedDeviceNameReported bluetooth_hashed_device_name_reported 952 extensions 614; // BluetoothL2capCocClientConnection bluetooth_l2cap_coc_client_connection 953 extensions 615; // BluetoothL2capCocServerConnection bluetooth_l2cap_coc_server_connection 954 extensions 616; // HealthConnectApiCalled health_connect_api_called 955 extensions 617; // HealthConnectUsageStats health_usage_stats 956 extensions 618; // HealthConnectStorageStats health_connect_storage_stats 957 extensions 619; // WearAdaptiveSuspendStatsReported wear_adaptive_suspend_stats_reported 958 extensions 620; // WearPowerAnomalyServiceOperationalStatsReported wear_power_anomaly_service_operational_stats_reported 959 extensions 621; // WearPowerAnomalyServiceEventStatsReported wear_power_anomaly_service_event_stats_reported 960 extensions 622; // SettingsSpaReported settings_spa_reported 961 extensions 623; // HealthConnectUiImpression health_connect_ui_impression 962 extensions 624; // HealthConnectUiInteraction health_connect_ui_interaction 963 extensions 625; // HealthConnectAppOpenedReported health_connect_app_opened_reported 964 extensions 626; // WsIncomingCallActionReported ws_incoming_call_action_reported 965 extensions 627; // WsCallDisconnectionReported ws_call_disconnection_reported 966 extensions 628; // WsCallDurationReported ws_call_duration_reported 967 extensions 629; // WsCallUserExperienceLatencyReported ws_call_user_experience_latency_reported 968 extensions 630; // WsCallInteractionReported ws_call_interaction_reported 969 extensions 631; // FullScreenIntentLaunched full_screen_intent_launched 970 extensions 632; // BalAllowed bal_allowed 971 extensions 633; // EmergencyStateChanged emergency_state_changed 972 extensions 634; // QualifiedRatListChanged qualified_rat_list_changed 973 extensions 635; // QnsImsCallDropStats qns_ims_call_drop_stats 974 extensions 636; // QnsFallbackRestrictionChanged qns_fallback_restriction_changed 975 extensions 637; // EmergencyNumberDialed emergency_number_dialed 976 extensions 638; // WifiAwareNdpReported wifi_aware_ndp_reported 977 extensions 639; // WifiAwareAttachReported wifi_aware_attach_reported 978 extensions 640; // AdServicesMeasurementDebugKeys ad_services_measurement_debug_keys 979 extensions 641; // MediaCodecStarted media_codec_started 980 extensions 642; // MediaCodecStopped media_codec_stopped 981 extensions 643; // HealthConnectApiInvoked health_connect_api_invoked 982 extensions 644; // ExpressUidEventReported express_uid_event_reported 983 extensions 645; // PermissionRationaleDialogViewed permission_rationale_dialog_viewed 984 extensions 646; // PermissionRationaleDialogActionReported permission_rationale_dialog_action_reported 985 extensions 647; // AppDataSharingUpdatesNotificationInteraction app_data_sharing_updates_notification_interaction 986 extensions 648; // AppDataSharingUpdatesFragmentViewed app_data_sharing_updates_fragment_viewed 987 extensions 649; // AppDataSharingUpdatesFragmentActionReported app_data_sharing_updates_fragment_action_reported 988 extensions 650; // DailykeepaliveInfoReported daily_keepalive_info_reported 989 extensions 651; // CredentialManagerInitialPhaseReported credential_manager_init_phase_reported 990 extensions 652; // CredentialManagerCandidatePhaseReported credential_manager_candidate_phase_reported 991 extensions 653; // CredentialManagerFinalPhaseReported credential_manager_final_phase_reported 992 extensions 654; // ExerciseRouteApiCalled exercise_route_api_called 993 extensions 655; // PluginInitialized plugin_initialized 994 extensions 656; // BluetoothLeSessionConnected bluetooth_le_session_connected 995 extensions 657; // DNDStateChanged dnd_state_changed 996 extensions 658; // ExpressUidHistogramSampleReported express_uid_histogram_sample_reported 997 extensions 659; // AutofillFieldClassificationEventReported autofill_field_classification_event_reported 998 extensions 660; // TestExtensionAtomReported test_extension_atom_reported 999 extensions 661; // WifiSelfRecoveryTriggered wifi_self_recovery_triggered 1000 extensions 662; // AdServicesErrorReported ad_services_error_reported 1001 extensions 663; // AdServicesBackgroundJobsExecutionReported ad_services_background_jobs_execution_reported 1002 extensions 664; // RkpdPoolStats rkpd_pool_stats 1003 extensions 665; // RkpdClientOperation rkpd_client_operation 1004 extensions 666; // RestrictedBluetoothDeviceNameReported restricted_bluetooth_device_name_reported 1005 extensions 667; // CredentialManagerTotalCandidateReported credential_manager_total_reported 1006 extensions 668; // CredentialManagerFinalNoUidReported credential_manager_finalnouid_reported 1007 extensions 669; // CredentialManagerGetProviderReported credential_manager_get_reported 1008 extensions 670; // CredentialManagerBrowsedAuthenticationClicked credential_manager_auth_click_reported 1009 extensions 671; // CredentialManagerApiV2Called credential_manager_apiv2_called 1010 extensions 672; // TestRestrictedAtomReported test_restricted_atom_reported 1011 extensions 673; // AdServicesMeasurementDelayedSourceRegistration ad_services_measurement_delayed_source_registration 1012 extensions 674; // AdServicesMeasurementAttribution ad_services_measurement_attribution 1013 extensions 675; // AdServicesMeasurementJobs ad_services_measurement_jobs 1014 extensions 676; // AdServicesMeasurementWipeout ad_services_measurement_wipeout 1015 extensions 677; // MediaSessionStateChanged media_session_state_changed 1016 extensions 678; // IkeSessionTerminated ike_session_terminated 1017 extensions 679; // TvLowPowerStandbyPolicy tv_low_power_standby_policy 1018 extensions 680; // SoftApStarted softap_started 1019 extensions 681; // SoftApStopped softap_stopped 1020 extensions 682; // KeyboardConfigured keyboard_configured 1021 extensions 683; // KeyboardSystemsEventReported keyboard_systems_event_reported 1022 extensions 684; // MediaCodecRendered media_codec_rendered 1023 extensions 685; // InTaskActivityStarted in_task_activity_started 1024 extensions 686; // InputDeviceUsageReported inputdevice_usage_reported 1025 extensions 687; // WifiLockReleased wifi_lock_released 1026 extensions 688; // WifiLockDeactivated wifi_lock_deactivated 1027 extensions 689; // WifiConfigSaved wifi_config_saved 1028 extensions 690; // WifiAwareResourceUsingChanged wifi_aware_resource_using_changed 1029 extensions 691; // WifiAwareHalApiCalled wifi_aware_hal_api_called 1030 extensions 692; // WifiLocalOnlyRequestReceived wifi_local_only_request_received 1031 extensions 693; // WifiLocalOnlyRequestScanTriggered wifi_local_only_request_scan_triggered 1032 extensions 694; // WifiThreadTaskExecuted wifi_thread_task_executed 1033 extensions 695; // AdServicesMeasurementAdIdMatchForDebugKeys ad_services_ad_id_match_for_debug_keys 1034 extensions 696; // BluetoothProfileConnectionAttempted bluetooth_profile_connection_attempted 1035 extensions 697; // AdServicesEnrollmentDataStored ad_services_enrollment_data_stored 1036 extensions 698; // AdServicesEnrollmentFileDownloaded ad_services_enrollment_file_downloaded 1037 extensions 699; // AdServicesEnrollmentMatched ad_services_enrollment_matched 1038 extensions 700; // WifiStateChanged wifi_state_changed 1039 extensions 701; // HdmiEarcStatusReported hdmi_earc_status_reported 1040 extensions 702; // AdServicesConsentMigrated ad_services_consent_migrated 1041 extensions 703; // CronetEngineCreated cronet_engine_created 1042 extensions 704; // CronetTrafficReported cronet_traffic_reported 1043 extensions 705; // DreamSettingChanged dream_setting_changed 1044 extensions 706; // AiWallpapersButtonPressed ai_wallpapers_button_pressed 1045 extensions 707; // AiWallpapersTemplateSelected ai_wallpapers_template_selected 1046 extensions 708; // AiWallpapersTermSelected ai_wallpapers_term_selected 1047 extensions 709; // AiWallpapersWallpaperSet ai_wallpapers_wallpaper_set 1048 extensions 710; // AiWallpapersSessionSummary ai_wallpapers_session_summary 1049 extensions 711; // OnDevicePersonalizationApiCalled ondevicepersonalization_api_called 1050 extensions 712; // FederatedComputeApiCalled federated_compute_api_called 1051 extensions 713; // CellularRadioPowerStateChanged cellular_radio_power_state_changed 1052 extensions 714; // AdServicesEnrollmentFailed ad_services_enrollment_failed 1053 extensions 715; // WearModeStateChanged wear_mode_state_changed 1054 extensions 716; // LauncherImpressionEventV2 launcher_impression_event_v2 1055 extensions 717; // ExternalTvInputEvent external_tv_input_event 1056 extensions 718; // StylusPredictionMetricsReported stylus_prediction_metrics_reported 1057 extensions 719; // PnoScanStarted pno_scan_started 1058 extensions 720; // PnoScanStopped pno_scan_stopped 1059 extensions 721; // MediatorUpdated mediator_updated 1060 extensions 722; // WifiIsUnusableReported wifi_is_unusable_reported 1061 extensions 723; // WifiApCapabilitiesReported wifi_ap_capabilities_reported 1062 extensions 724; // HdmiSoundbarModeStatusReported hdmi_soundbar_mode_status_reported 1063 extensions 725; // UserRiskEventReported user_risk_event_reported 1064 extensions 726; // DeviceLockCheckInRequestReported device_lock_check_in_request_reported 1065 extensions 727; // DeviceLockProvisioningCompleteReported device_lock_provisioning_complete_reported 1066 extensions 728; // DeviceLockKioskAppRequestReported device_lock_kiosk_app_request_reported 1067 extensions 729; // MediaProjectionStateChanged media_projection_state_changed 1068 extensions 730; // MediaProjectionTargetChanged media_projection_target_changed 1069 extensions 731; // WearPowerMenuOpened wear_power_menu_opened 1070 extensions 732; // ApexInstallationRequested apex_installation_requested 1071 extensions 733; // ApexInstallationStaged apex_installation_staged 1072 extensions 734; // ApexInstallationEnded apex_installation_ended 1073 extensions 735; // SandboxActivityEventOccurred sandbox_activity_event_occurred 1074 extensions 736; // RendererInitialized renderer_initialized 1075 extensions 737; // SchemaVersionReceived schema_version_received 1076 extensions 738; // ThreadnetworkTelemetryDataReported threadnetwork_telemetry_data_reported 1077 extensions 739; // ThreadnetworkTopoEntryRepeated threadnetwork_topo_entry_repeated 1078 extensions 740; // ThreadnetworkDeviceInfoReported threadnetwork_device_info_reported 1079 extensions 741; // LayoutInspected layout_inspected 1080 extensions 742; // LayoutExpressionsInspected layout_expression_inspected 1081 extensions 743; // LayoutAnimationsInspected layout_animations_inspected 1082 extensions 744; // MaterialComponentsInspected material_components_inspected 1083 extensions 745; // TileRequested tile_requested 1084 extensions 746; // StateResponseReceived state_response_received 1085 extensions 747; // TileResponseReceived tile_response_received 1086 extensions 748; // InflationFinished inflation_finished 1087 extensions 749; // InflationFailed inflation_failed 1088 extensions 750; // IgnoredInflationFailuresReported ignored_inflation_failures_reported 1089 extensions 751; // DrawableRendered drawable_rendered 1090 extensions 752; // StatsSocketLossReported stats_socket_loss_reported 1091 extensions 753; // DisplaySwitchLatencyTracked display_switch_latency_tracked 1092 extensions 754; // KernelOomKillOccurred kernel_oom_kill_occurred 1093 extensions 755; // WearAssistantOpened wear_assistant_opened 1094 extensions 756; // AdServicesMeasurementClickVerification ad_services_measurement_click_verification 1095 extensions 757; // WearMediaOutputSwitcherDeviceScanApiLatency wear_media_output_switcher_device_scan_api_latency 1096 extensions 758; // WearMediaOutputSwitcherSassDeviceUnavailable wear_media_output_switcher_sass_device_unavailable 1097 extensions 759; // WearMediaOutputSwitcherFastPairApiTimeout wear_media_output_switcher_fastpair_api_timeout 1098 extensions 760; // IkeLivenessCheckSessionValidated ike_liveness_check_session_validated 1099 extensions 761; // HotwordEventEgressSize hotword_egress_size_atom_reported 1100 extensions 762; // CronetEngineBuilderInitialized cronet_engine_builder_initialized 1101 extensions 763; // CronetHttpFlagsInitialized cronet_http_flags_initialized 1102 extensions 764; // CronetInitialized cronet_initialized 1103 extensions 765; // AdServicesEncryptionKeyFetched ad_services_encryption_key_fetched 1104 extensions 766; // AdServicesEncryptionKeyDbTransactionEnded ad_services_encryption_key_db_transaction_ended 1105 extensions 767; // DestinationRegisteredBeacons destination_registered_beacons 1106 extensions 768; // ReportInteractionApiCalled report_interaction_api_called 1107 extensions 769; // InteractionReportingTableCleared interaction_reporting_table_cleared 1108 extensions 770; // CarRecentsEventReported car_recents_event_reported 1109 extensions 771; // FederatedComputeTrainingEventReported federated_compute_training_event_reported 1110 extensions 772; // ThermalStatusCalled thermal_status_called 1111 extensions 773; // ThermalHeadroomCalled thermal_headroom_called 1112 extensions 774; // ThermalHeadroomThresholdsCalled thermal_headroom_thresholds_called 1113 extensions 775; // BootIntegrityInfoReported boot_integrity_info_reported 1114 extensions 776; // ScreenOffReported screen_off_reported 1115 extensions 777; // ApfSessionInfoReported apf_session_info_reported 1116 extensions 778; // IpClientRaInfoReported ip_client_ra_info_reported 1117 extensions 779; // NetworkRequestStateChanged network_request_state_changed 1118 extensions 781; // BluetoothContentProfileErrorReported bluetooth_content_profile_error_reported 1119 extensions 782; // BluetoothRfcommConnectionAttempted bluetooth_rfcomm_connection_attempted 1120 extensions 783; // NetworkStatsRecorderFileOperated network_stats_recorder_file_operated 1121 extensions 784; // MediaProviderDatabaseRollbackReported media_provider_database_rollback_reported 1122 extensions 785; // BackupSetupStatusReported backup_setup_status_reported 1123 extensions 786; // SysproxyConnectionUpdated sysproxy_connection_updated 1124 extensions 787; // WsOnBodyStateChanged ws_on_body_state_changed 1125 extensions 788; // AppManifestConfigHelperCalled app_manifest_config_helper_called 1126 extensions 789; // CheckInRetryReported device_lock_check_in_retry_reported 1127 extensions 790; // ProvisionFailureReported device_lock_provision_failure_reported 1128 extensions 791; // LockUnlockDeviceFailureReported device_lock_unlock_device_failure_reported 1129 extensions 792; // DisplayModeDirectorVoteChanged display_mode_director_vote_changed 1130 extensions 793; // AdFilteringProcessJoinCAReported ad_filtering_process_join_ca_reported 1131 extensions 794; // AdFilteringProcessAdSelectionReported ad_filtering_process_ad_selection_reported 1132 extensions 795; // AdCounterHistogramUpdaterReported ad_counter_histogram_updater_reported 1133 extensions 796; // SdkSandboxRestrictedAccessInSession sdk_sandbox_restricted_access_in_session 1134 extensions 797; // CarCalmModeEventReported car_calm_mode_event_reported 1135 extensions 798; // MediaEditingEndedReported media_editing_ended_reported 1136 extensions 799; // SELinux selinux_audit_log 1137 extensions 800; // CellularIdentifierDisclosed cellular_identifier_disclosed 1138 // reserved 801 1139 extensions 802; // WsWatchFaceRestrictedComplicationsImpacted ws_watch_face_restricted_complications_impacted 1140 extensions 803; // WsWatchFaceDefaultRestrictedComplicationsRemoved ws_watch_face_default_restricted_complications_removed 1141 extensions 804; // WsComplicationsImpactedNotificationEventReported ws_complications_impacted_notification_event_reported 1142 extensions 805; // SoftApStateChanged soft_ap_state_changed 1143 extensions 806; // ExternalDisplayStateChanged external_display_state_changed 1144 extensions 807; // SignatureVerification signature_verification 1145 extensions 808; // KAnonImmediateSignJoinStatusReported k_anon_immediate_sign_join_status_reported 1146 extensions 809; // KAnonBackgroundJobStatusReported k_anon_background_job_status_reported 1147 extensions 810; // KAnonInitializeStatusReported k_anon_initialize_status_reported 1148 extensions 811; // KAnonSignStatusReported k_anon_sign_status_reported 1149 extensions 812; // KAnonJoinStatusReported k_anon_join_status_reported 1150 extensions 813; // KAnonKeyAttestationStatusReported k_anon_key_attestation_status_reported 1151 extensions 814; // GetAdSelectionDataApiCalled get_ad_selection_data_api_called 1152 extensions 815; // GetAdSelectionDataBuyerInputGenerated get_ad_selection_data_buyer_input_generated 1153 extensions 816; // SystemGrammaticalInflectionChanged system_grammatical_inflection_changed 1154 extensions 817; // BiometricFRRNotification biometric_frr_notification 1155 extensions 818; // DesktopModeUIChanged desktop_mode_ui_changed 1156 extensions 819; // DesktopModeSessionTaskUpdate desktop_mode_session_task_update 1157 extensions 820; // AdaptiveAuthUnlockAfterLockReported adaptive_auth_unlock_after_lock_reported 1158 extensions 821; // NegotiatedSecurityAssociation negotiated_security_association 1159 extensions 825; // AppSearchUsageSearchIntentStatsReported app_search_usage_search_intent_stats_reported 1160 extensions 826; // AppSearchUsageSearchIntentRawQueryStatsReported app_search_usage_search_intent_raw_query_stats_reported 1161 extensions 827; // EnhancedConfirmationDialogResultReported 1162 extensions 828; // EnhancedConfirmationRestrictionCleared 1163 extensions 829; // NotificationListenerService 1164 extensions 830; // SensitiveContentMediaProjectionSession 1165 extensions 831; // SensitiveNotificationAppProtectionSession 1166 extensions 832; // SensitiveNotificationAppProtectionApplied 1167 extensions 833; // SensitiveNotificationRedaction 1168 extensions 834; // BackgroundJobSchedulingReported background_job_scheduling_reported 1169 extensions 835; // SensitiveContentAppProtection 1170 extensions 836; // ScreenTimeoutOverrideReported screen_timeout_override_reported 1171 extensions 837; // ScreenInteractiveSessionReported screen_interactive_session_reported 1172 extensions 838; // ExampleIteratorNextLatencyReported example_iterator_next_latency_reported 1173 extensions 839; // AdpfHintSessionTidCleanup adpf_hint_session_tid_cleanup 1174 extensions 840; // TopicsEncryptionEpochComputationReported topics_encryption_epoch_computation_reported 1175 extensions 841; // TopicsEncryptionGetTopicsReported topics_encryption_get_topics_reported 1176 extensions 842; // AdServicesShellCommandCalled adservices_shell_command_called 1177 extensions 843; // UpdateSignalsApiCalled update_signals_api_called 1178 extensions 844; // EncodingJobRun encoding_job_run 1179 extensions 845; // EncodingJsFetch encoding_js_fetch 1180 extensions 846; // EncodingJsExecution encoding_js_execution 1181 extensions 847; // PersistAdSelectionResultCalled persist_ad_selection_result_called 1182 extensions 848; // ServerAuctionKeyFetchCalled server_auction_key_fetch_called 1183 extensions 849; // ServerAuctionBackgroundKeyFetchScheduled server_auction_background_key_fetch_enabled 1184 extensions 850; // VpnConnectionStateChanged vpn_connection_state_changed 1185 extensions 851; // VpnConnectionReported vpn_connection_reported 1186 extensions 852; // CarWakeupFromSuspendReported car_wakeup_from_suspend_reported 1187 extensions 853; // ExcessiveBinderProxyCountReported excessive_binder_proxy_count_reported 1188 extensions 854; // DataRatStateChanged data_rat_state_changed 1189 extensions 855; // NfcObserveModeStateChanged nfc_observe_mode_state_changed 1190 extensions 856; // NfcFieldChanged nfc_field_changed 1191 extensions 857; // NfcPollingLoopNotificationReported nfc_polling_loop_notification_reported 1192 extensions 858; // NfcProprietaryCapabilitiesReported nfc_proprietary_capabilities_reported 1193 extensions 859; // PdfLoadReported pdf_load_reported 1194 extensions 860; // PdfApiUsageReported pdf_api_usage_reported 1195 extensions 861; // PdfSearchReported pdf_search_reported 1196 extensions 862; // RemoteDeviceInformationWithMetricId remote_device_information_with_metric_id 1197 extensions 863; // ComponentStateChangedReported component_state_changed_reported 1198 extensions 864; // AdServicesMeasurementProcessOdpRegistration ad_services_measurement_process_odp_registration 1199 extensions 865; // AdServicesMeasurementNotifyRegistrationToOdp ad_services_measurement_notify_registration_to_odp 1200 extensions 866; // AppRestrictionStateChanged app_restriction_state_changed 1201 extensions 867; // ScreenDimReported screen_dim_reported 1202 extensions 868; // ChreSignificantMotionStateChanged chre_significant_motion_state_changed 1203 extensions 869; // NavHandleTouchPoints nav_handle_touch_points 1204 extensions 870; // LeAppScanStateChanged le_app_scan_state_changed 1205 extensions 871; // LeRadioScanStopped le_radio_scan_stopped 1206 extensions 872; // LeScanResultReceived le_scan_result_received 1207 extensions 873; // LeScanAbused le_scan_abused 1208 extensions 874; // LeAdvStateChanged le_adv_state_changed 1209 extensions 875; // LeAdvErrorReported le_adv_error_reported 1210 extensions 876; // SelectAdsFromOutcomesApiCalled select_ads_from_outcomes_api_called 1211 extensions 877; // ReportImpressionApiCalled report_impression_api_called 1212 extensions 878; // Reserved for b/333882013 1213 extensions 879; // Reserved for b/333882013 1214 extensions 881; // Reserved for b/339008431 1215 extensions 882; // ConnectedChannelChanged connected_channel_changed 1216 extensions 883; // PreRebootDexoptJobEnded pre_reboot_dexopt_job_ended 1217 extensions 884; // ScorerPredictionResultReported scorer_prediction_result_reported 1218 extensions 885; // AdServicesEnrollmentTransactionStats ad_services_enrollment_transaction_stats 1219 extensions 886; // PhotopickerSessionInfoReported photopicker_session_info_reported 1220 extensions 887; // PhotopickerApiInfoReported photopicker_api_info_reported 1221 extensions 888; // PhotopickerUIEventLogged photopicker_ui_event_logged 1222 extensions 889; // PhotopickerMediaItemStatusRepoprted photopicker_media_item_status_reported 1223 extensions 890; // PhotopickerPreviewInfoLogged photopicker_preview_info_logged 1224 extensions 891; // PhotopickerMenuInteractionLogged photopicker_menu_interaction_logged 1225 extensions 892; // PhotopickerBannerInteractionLogged photopicker_banner_interaction_logged 1226 extensions 893; // PhotopickerMediaLibraryInfoLogged photopicker_media_library_info_logged 1227 extensions 894; // PhotopickerPageInfoLogged photopicker_page_info_logged 1228 extensions 895; // PhotopickerMediaGridSyncInfoReported photopicker_media_grid_sync_info_reported 1229 extensions 896; // PhotopickerAlbumSyncInfoReported photopicker_album_sync_info_reported 1230 extensions 897; // PhotopickerSearchInfoReported photopicker_search_info_reported 1231 extensions 898; // SearchDataExtractionDetailsReported search_data_extraction_details_reported 1232 extensions 899; // EmbeddedPhotopickerInfoReported embedded_photopicker_info_reported 1233 extensions 900; // CameraFeatureCombinationQueryEvent camera_feature_combination_query_event 1234 extensions 901; // MicroXRDeviceBootCompleteReported microxr_device_boot_complete_reported 1235 extensions 902; // AdServicesCobaltLoggerEventReported ad_services_cobalt_logger_event_reported 1236 extensions 903; // AdServicesCobaltPeriodicJobEventReported ad_services_cobalt_periodic_job_event_reported 1237 extensions 904; // A2dpSessionReported a2dp_session_reported 1238 extensions 905; // UpdateSignalsProcessReported update_signals_process_reported 1239 extensions 906; // DeviceOrientationChanged device_orientation_changed 1240 extensions 907; // HealthConnectExportInvoked 1241 extensions 908; // CommunalHubWidgetEventReported communal_hub_widget_event_reported 1242 extensions 909; // AppSearchAppsIndexerStatsReported app_search_apps_indexer_stats_reported 1243 extensions 910; // AccessibilityCheckResultReported accessibility_check_result_reported 1244 extensions 911; // WearTimeSyncRequested wear_time_sync_requested 1245 extensions 912; // WearTimeUpdateStarted wear_time_update_started 1246 extensions 913; // WearTimeSyncAttemptCompleted wear_time_sync_attempt_completed 1247 extensions 914; // WearTimeChanged wear_time_changed 1248 extensions 915; // TestUprobeStatsAtomReported 1249 extensions 916; // BluetoothCrossLayerEventReported bluetooth_cross_layer_event_reported 1250 extensions 917; // FirstOverlayStateChanged first_overlay_state_changed 1251 extensions 918; // HealthConnectImportInvoked 1252 extensions 919; // HealthConnectExportImportStatsReported 1253 extensions 920; // WsRemoteEventUsageReported ws_remote_event_usage_reported 1254 extensions 921; // WearCompanionConnectionState 1255 extensions 922; // BroadcastSent broadcast_sent 1256 extensions 923; // IwlanUnderlyingNetworkValidationResultReported iwlan_underlying_network_validation_result_reported 1257 extensions 924; // PostGcMemorySnapshot postgc_memory_snapshot 1258 extensions 925; // TetheringActiveSessionsReported 1259 extensions 926; // PowerSaveTempAllowlistChanged power_save_temp_allowlist_changed 1260 extensions 927; // BroadcastAudioSessionReported broadcast_audio_session_reported 1261 extensions 928; // BroadcastAudioSyncReported broadcast_audio_sync_reported 1262 extensions 929; // ArtDex2OatReported art_dex2oat_reported 1263 extensions 930; // TopicsScheduleEpochJobSettingReported topics_schedule_epoch_job_setting_reported 1264 extensions 931; // AppOpAccessTracked app_op_access_tracked 1265 extensions 932; // InputEventLatencyReported input_event_latency_reported 1266 extensions 933; // ContentOrFileUriEventReported content_or_file_uri_event_reported 1267 extensions 934; // CertificateTransparencyLogListStateChanged certificate_transparency_log_list_state_changed 1268 extensions 935; // DesktopModeTaskSizeUpdated desktop_mode_task_size_updated 1269 extensions 940; // DeviceIdleTempAllowlistUpdated device_idle_temp_allowlist_updated 1270 extensions 941; // WsNotificationManagedDismissalSync ws_notification_managed_dismissal_sync 1271 extensions 942; // PeripheralTutorialLaunched peripheral_tutorial_launched 1272 extensions 943; // AppOpNoteOpOrCheckOpBinderApiCalled app_op_note_op_or_check_op_binder_api_called 1273 extensions 944; // BiometricUnenrolled biometric_unenrolled 1274 extensions 945; // BiometricEnumerated biometric_enumerated 1275 extensions 946; // HardwareRendererEvent hardware_renderer_event 1276 extensions 947; // TextureViewEvent texture_view_event 1277 extensions 948; // SurfaceControlEvent surface_control_event 1278 extensions 949; // SysproxyServiceStateUpdated sysproxy_service_state_updated 1279 extensions 950; // JankFrameCountByWidgetReported jank_frame_count_by_widget_reported 1280 extensions 951; // AccountManagerEvent account_manager_event 1281 extensions 952; // OnDevicePersonalizationTraceEvent ondevicepersonalization_trace_event 1282 extensions 953; // WearSetupWizardDeviceStatusReported wear_setup_wizard_device_status_reported 1283 extensions 954; // WearSetupWizardPairingCompleted wear_setup_wizard_pairing_completed 1284 extensions 955; // WearSetupWizardConnectionEstablished wear_setup_wizard_connection_established 1285 extensions 956; // WearSetupWizardCheckinCompleted wear_setup_wizard_checkin_completed 1286 extensions 957; // WearSetupWizardCompanionTimeReported wear_setup_wizard_companion_time_reported 1287 extensions 958; // WearSetupWizardStatusReported wear_setup_wizard_status_reported 1288 extensions 959; // WearSetupWizardHeartbeatReported wear_setup_wizard_hearbeat_reported 1289 extensions 960; // WearSetupWizardFrpTriggered wear_setup_wizard_frp_triggered 1290 extensions 961; // WearSetupWizardSystemUpdateTriggered wear_setup_wizard_system_update_triggered 1291 extensions 962; // WearSetupWizardPhoneSwitchTriggered wear_setup_wizard_phone_switch_triggered 1292 extensions 963; // HealthConnectPermissionStats health_connect_permission_stats 1293 extensions 964; // WsBugreportEventReported ws_bugreport_event_reported 1294 extensions 965; // ConscryptServiceUsed conscrypt_service_used 1295 extensions 966; // MediaControlApiUsageReported media_control_api_usage_reported 1296 extensions 967; // ScheduledCustomAudienceUpdateScheduleAttempted scheduled_custom_audience_update_schedule_attempted 1297 extensions 968; // ScheduledCustomAudienceUpdatePerformed scheduled_custom_audience_update_performed 1298 extensions 969; // ScheduledCustomAudienceUpdatePerformedAttemptedFailureReported scheduled_custom_audience_update_performed_attempted_failure_reported 1299 extensions 970; // ScheduledCustomAudienceUpdateBackgroundJobRan scheduled_custom_audience_update_background_job_ran 1300 extensions 971; // ContextualEducationTriggered contextual_education_triggered 1301 extensions 972; // CertificateTransparencyLogListUpdateStateChanged certificate_transparency_log_list_update_state_changed 1302 extensions 973; // Reserved for b/375457523 1303 extensions 974; // CarSystemUiDataSubscriptionEventReported car_system_ui_data_subscription_event_reported 1304 extensions 975; // CarSettingsDataSubscriptionEventReported car_settings_data_subscription_event_reported 1305 extensions 976; // CarQcLibEventReported car_qc_lib_event_reported 1306 extensions 977; // ImageDecoded image_decoded 1307 extensions 978; // IntentCreatorTokenAdded intent_creator_token_added 1308 extensions 979; // CoreNetworkingTerribleErrorOccurred core_networking_terrible_error_occurred 1309 extensions 980; // HealthConnectPhrApiInvoked health_connect_phr_api_invoked 1310 extensions 981; // HealthConnectPhrUsageStats health_connect_phr_usage_stats 1311 extensions 982; // BluetoothRfcommConnectionReportedAtClose bluetooth_rfcomm_connection_reported_at_close 1312 extensions 983; // NotificationChannelClassification notification_channel_classification 1313 extensions 984; // HealthConnectPhrStorageStats health_connect_phr_storage_stats 1314 extensions 985; // HealthConnectRestrictedEcosystemStats health_connect_restricted_ecosystem_stats 1315 extensions 986; // HealthConnectEcosystemStats health_connect_ecosystem_stats 1316 extensions 987; // BackportedFixStatusReported backported_fix_status_reported 1317 extensions 988; // BluetoothLeConnection bluetooth_le_connection 1318 extensions 989; // CertificateTransparencyVerificationReported certificate_transparency_verification_reported 1319 extensions 990; // MediaSubscriptionChanged media_subscription_changed 1320 extensions 991; // HdmiPowerStateChangeOnActiveSourceLostToggled hdmi_power_state_change_on_active_source_lost_toggled 1321 extensions 992; // FederatedComputeTraceEventReported federated_compute_trace_event_reported 1322 extensions 993; // RangingSessionConfigured ranging_session_configured 1323 extensions 994; // RangingSessionStarted ranging_session_started 1324 extensions 995; // RangingSessionClosed ranging_session_closed 1325 extensions 996; // RangingTechnologyStarted ranging_technology_started 1326 extensions 997; // RangingTechnologyStopped ranging_technology_stopped 1327 extensions 998; // AppFunctionsRequestReported app_functions_request_reported 1328 extensions 999; // CameraStatusForCompatibilityChanged camera_status_for_compatibility_changed 1329 extensions 1000; // NotificationBundleInteracted notification_bundle_interacted 1330 extensions 1001; // SettingsExtApiReported settings_extapi_reported 1331 extensions 1002; // PopulationDensityProviderLoadingReported population_density_provider_loading_reported 1332 extensions 1003; // DensityBasedCoarseLocationsUsageReported density_based_coarse_locations_usage_reported 1333 extensions 1004; // DensityBasedCoarseLocationsProviderQueryReported density_based_coarse_locations_provider_query_reported 1334 extensions 1005; // WsNotificationApiUsageReported ws_notification_api_usage_reported 1335 extensions 1006; // AdServicesProcessLifecycleReported ad_services_process_lifecycle_reported 1336 extensions 1007; // AdServicesProcessStableFlagsReported ad_services_process_stable_flags_reported 1337 extensions 1008; // AdServicesFlagUpdateReported ad_services_flag_update_reported 1338 extensions 1009; // SqliteDiscreteOpEventReported sqlite_discrete_op_event_reported 1339 extensions 1010; // WifiSoftApCallbackOnClientsDisconnected wifi_soft_ap_callback_on_clients_disconnected 1340 extensions 1011; // DeviceStateAutoRotateSettingIssueReported device_state_auto_rotate_setting_issue_reported 1341 extensions 1012; // WsRemoteInteractionsApiUsageReported ws_remote_interactions_api_usage_reported 1342 extensions 1013; // ReportingWithDestinationPerformed reporting_with_destination_performed 1343 extensions 1014; // NumberOfTypesOfReportingUrlsReceived number_of_types_of_reporting_url_received 1344 extensions 1015; // ZramMaintenanceExecuted zram_maintenance_executed 1345 extensions 1016; // ProcessTextActionLaunchedReported process_text_action_launched_reported 1346 extensions 1017; // MediaRouterEventReported media_router_event_reported 1347 extensions 1018; // SetComponentEnabledSettingReported set_component_enabled_setting_reported 1348 extensions 1019; // BalProcessControllerAddBoundClientUidReported bal_process_controller_add_bound_client_uid_reported 1349 extensions 1020; // RoleSettingsFragmentActionReported role_settings_fragment_action_reported 1350 extensions 1021; // HearingDeviceActiveEventReported hearing_device_active_event_reported 1351 extensions 1022; // Reserved for b/377302168 1352 extensions 1023; // HealthConnectDataBackupInvoked health_connect_data_backup_invoked 1353 extensions 1024; // HealthConnectSettingsBackupInvoked health_connect_settings_backup_invoked 1354 extensions 1025; // HealthConnectDataRestoreInvoked health_connect_data_restore_invoked 1355 extensions 1026; // HealthConnectSettingsRestoreInvoked health_connect_settings_restore_invoked 1356 extensions 1027; // HealthConnectRestoreEligibilityChecked health_connect_restore_eligibility_checked 1357 extensions 1028; // BroadcastProcessed broadcast_processed 1358 extensions 1029; // ZramSetupExecuted zram_setup_executed 1359 extensions 1030; // SensitiveAppLockStateChanged sensitive_app_lock_state_changed 1360 extensions 1031; // MobileDataDownloadLatencyReported mobile_data_download_latency_reported 1361 extensions 1032; // OtpNotificationDisplayed otp_notification_displayed 1362 extensions 1033; // XrRecorderSessionStatusReported xr_recorder_session_status_reported 1363 extensions 1034; // EcmRestrictionQueryInCall ecm_restriction_query_in_call 1364 extensions 1035; // CallWithEcmInteraction call_with_ecm_restriction 1365 extensions 1036; // NfcExitFrameTableChanged nfc_exit_frame_table_changed 1366 extensions 1037; // IntentRedirectBlocked intent_redirect_blocked 1367 extensions 1038; // NfcAutoTransactReported nfc_auto_transact_reported 1368 extensions 1039; // AndroidGraphicsBitmapAllocated android_graphics_bitmap_allocated 1369 extensions 1040; // AdvancedProtectionStateChanged advanced_protection_state_changed 1370 extensions 1041; // AdvancedProtectionSupportDialogDisplayed advanced_protection_support_dialog_displayed 1371 extensions 1042; // ExtraIntentKeysCollectedOnServer extra_intent_keys_collected_on_server 1372 extensions 1043; // PhotopickerAppMediaCapabilitiesReported photopicker_app_media_capabilities_reported 1373 extensions 1044; // PhotopickerVideoTranscodingDetailsLogged photopicker_video_transcoding_details_logged 1374 extensions 1045; // BindServiceLockedWithBalFlagsReported bind_service_locked_with_bal_flags_reported 1375 extensions 1046; // AdservicesMeasurementBackgroundJobInfo adservices_measurement_background_job_info 1376 extensions 1047; // AppSearchVmPayloadStatsReported app_search_vm_payload_stats_reported 1377 extensions 1048; // ClipboardGetEventReported clipboard_get_event_reported 1378 extensions 9999; // Atom9999 atom_9999 1379 1380 // StatsdStats tracks platform atoms with ids up to 1500. 1381 // Update StatsdStats::kMaxPushedAtomId when atom ids here approach that value. 1382 1383 // Pulled events will start at field 10000. 1384 // Next: 10237 1385 oneof pulled { 1386 WifiBytesTransfer wifi_bytes_transfer = 10000 [(module) = "framework"]; 1387 WifiBytesTransferByFgBg wifi_bytes_transfer_by_fg_bg = 10001 [(module) = "framework"]; 1388 MobileBytesTransfer mobile_bytes_transfer = 1389 10002 [(module) = "framework", (truncate_timestamp) = true]; 1390 MobileBytesTransferByFgBg mobile_bytes_transfer_by_fg_bg = 1391 10003 [(module) = "framework", (truncate_timestamp) = true]; 1392 BluetoothBytesTransfer bluetooth_bytes_transfer = 10006 [(module) = "framework"]; 1393 KernelWakelock kernel_wakelock = 10004 [(module) = "framework"]; 1394 SubsystemSleepState subsystem_sleep_state = 10005 [(module) = "framework", (module) = "statsdtest"]; 1395 CpuTimePerUid cpu_time_per_uid = 10009 [(module) = "framework", (module) = "statsdtest"]; 1396 CpuTimePerUidFreq cpu_time_per_uid_freq = 1397 10010 [(module) = "framework", (module) = "statsd"]; 1398 WifiActivityInfo wifi_activity_info = 10011 [(module) = "framework"]; 1399 ModemActivityInfo modem_activity_info = 10012 [(module) = "framework"]; 1400 BluetoothActivityInfo bluetooth_activity_info = 10007 [(module) = "framework"]; 1401 ProcessMemoryState process_memory_state = 10013 [(module) = "framework"]; 1402 SystemElapsedRealtime system_elapsed_realtime = 10014 [(module) = "framework"]; 1403 SystemUptime system_uptime = 10015 [(module) = "framework"]; 1404 CpuActiveTime cpu_active_time = 10016 [(module) = "framework", (module) = "statsdtest"]; 1405 CpuClusterTime cpu_cluster_time = 10017 [(module) = "framework"]; 1406 DiskSpace disk_space = 10018 [deprecated=true, (module) = "statsdtest"]; 1407 RemainingBatteryCapacity remaining_battery_capacity = 10019 [(module) = "framework"]; 1408 FullBatteryCapacity full_battery_capacity = 10020 [(module) = "framework"]; 1409 Temperature temperature = 10021 [(module) = "framework", (module) = "statsdtest"]; 1410 BinderCalls binder_calls = 10022 [(module) = "framework", (module) = "statsd"]; 1411 BinderCallsExceptions binder_calls_exceptions = 10023 [(module) = "framework"]; 1412 LooperStats looper_stats = 10024 [(module) = "framework", (module) = "statsd"]; 1413 DiskStats disk_stats = 10025 [(module) = "framework"]; 1414 DirectoryUsage directory_usage = 10026 [(module) = "framework"]; 1415 AppSize app_size = 10027 [(module) = "framework"]; 1416 CategorySize category_size = 10028 [(module) = "framework"]; 1417 ProcStats proc_stats = 10029 [(module) = "framework"]; 1418 BatteryVoltage battery_voltage = 10030 [(module) = "framework"]; 1419 NumFingerprintsEnrolled num_fingerprints_enrolled = 10031 [(module) = "framework"]; 1420 DiskIo disk_io = 10032 [(module) = "framework"]; 1421 PowerProfile power_profile = 10033 [(module) = "framework"]; 1422 ProcStatsPkgProc proc_stats_pkg_proc = 10034 [(module) = "framework"]; 1423 ProcessCpuTime process_cpu_time = 10035 [(module) = "framework"]; 1424 CpuTimePerThreadFreq cpu_time_per_thread_freq = 10037 [(module) = "framework"]; 1425 OnDevicePowerMeasurement on_device_power_measurement = 10038 [(module) = "framework"]; 1426 DeviceCalculatedPowerUse device_calculated_power_use = 10039 [(module) = "framework"]; 1427 ProcessMemoryHighWaterMark process_memory_high_water_mark = 10042 [(module) = "framework"]; 1428 BatteryLevel battery_level = 10043 [(module) = "framework"]; 1429 BuildInformation build_information = 10044 [(module) = "framework"]; 1430 BatteryCycleCount battery_cycle_count = 10045 [(module) = "framework"]; 1431 DebugElapsedClock debug_elapsed_clock = 10046 [(module) = "framework"]; 1432 DebugFailingElapsedClock debug_failing_elapsed_clock = 10047 [(module) = "framework"]; 1433 NumFacesEnrolled num_faces_enrolled = 10048 [(module) = "framework"]; 1434 RoleHolder role_holder = 10049 [(module) = "framework"]; 1435 DangerousPermissionState dangerous_permission_state = 10050 [(module) = "framework"]; 1436 TrainInfo train_info = 10051 [(module) = "statsd"]; 1437 TimeZoneDataInfo time_zone_data_info = 10052 [(module) = "framework"]; 1438 ExternalStorageInfo external_storage_info = 10053 [(module) = "framework"]; 1439 GpuStatsGlobalInfo gpu_stats_global_info = 10054; 1440 GpuStatsAppInfo gpu_stats_app_info = 10055; 1441 SystemIonHeapSize system_ion_heap_size = 10056 [deprecated = true, (module) = "framework"]; 1442 AppsOnExternalStorageInfo apps_on_external_storage_info = 10057 [(module) = "framework"]; 1443 FaceSettings face_settings = 10058 [(module) = "framework"]; 1444 CoolingDevice cooling_device = 10059 [(module) = "framework"]; 1445 AppOps app_ops = 10060 [(module) = "framework"]; 1446 ProcessSystemIonHeapSize process_system_ion_heap_size = 10061 [(module) = "framework"]; 1447 SurfaceflingerStatsGlobalInfo surfaceflinger_stats_global_info = 10062; 1448 SurfaceflingerStatsLayerInfo surfaceflinger_stats_layer_info = 10063; 1449 ProcessMemorySnapshot process_memory_snapshot = 10064 [(module) = "framework"]; 1450 VmsClientStats vms_client_stats = 10065 [(module) = "car"]; 1451 NotificationRemoteViews notification_remote_views = 10066 [(module) = "framework"]; 1452 DangerousPermissionStateSampled dangerous_permission_state_sampled = 1453 10067 [(module) = "framework"]; 1454 GraphicsStats graphics_stats = 10068 [(module) = "hwui"]; 1455 RuntimeAppOpAccess runtime_app_op_access = 10069 [(module) = "framework"]; 1456 IonHeapSize ion_heap_size = 10070 [(module) = "framework"]; 1457 PackageNotificationPreferences package_notification_preferences = 1458 10071 [(module) = "framework"]; 1459 PackageNotificationChannelPreferences package_notification_channel_preferences = 1460 10072 [(module) = "framework"]; 1461 PackageNotificationChannelGroupPreferences package_notification_channel_group_preferences = 1462 10073 [(module) = "framework"]; 1463 GnssStats gnss_stats = 10074 [(module) = "framework"]; 1464 AttributedAppOps attributed_app_ops = 10075 [(module) = "framework"]; 1465 VoiceCallSession voice_call_session = 10076 [(module) = "telephony"]; 1466 VoiceCallRatUsage voice_call_rat_usage = 10077 [(module) = "telephony"]; 1467 SimSlotState sim_slot_state = 10078 [(module) = "telephony"]; 1468 SupportedRadioAccessFamily supported_radio_access_family = 10079 [(module) = "telephony"]; 1469 SettingSnapshot setting_snapshot = 10080 [(module) = "framework"]; 1470 BlobInfo blob_info = 10081 [(module) = "framework"]; 1471 DataUsageBytesTransfer data_usage_bytes_transfer = 1472 10082 [(module) = "framework", (truncate_timestamp) = true]; 1473 BytesTransferByTagAndMetered bytes_transfer_by_tag_and_metered = 1474 10083 [(module) = "framework", (truncate_timestamp) = true]; 1475 dnd.DNDModeProto dnd_mode_rule = 10084 [(module) = "framework"]; 1476 GeneralExternalStorageAccessStats general_external_storage_access_stats = 1477 10085 [(module) = "mediaprovider"]; 1478 IncomingSms incoming_sms = 10086 [(module) = "telephony"]; 1479 OutgoingSms outgoing_sms = 10087 [(module) = "telephony"]; 1480 CarrierIdTableVersion carrier_id_table_version = 10088 [(module) = "telephony"]; 1481 DataCallSession data_call_session = 10089 [(module) = "telephony"]; 1482 CellularServiceState cellular_service_state = 10090 [(module) = "telephony"]; 1483 CellularDataServiceSwitch cellular_data_service_switch = 10091 [(module) = "telephony"]; 1484 SystemMemory system_memory = 10092 [(module) = "framework"]; 1485 ImsRegistrationTermination ims_registration_termination = 10093 [(module) = "telephony"]; 1486 ImsRegistrationStats ims_registration_stats = 10094 [(module) = "telephony"]; 1487 CpuTimePerClusterFreq cpu_time_per_cluster_freq = 10095 [(module) = "framework"]; 1488 CpuCyclesPerUidCluster cpu_cycles_per_uid_cluster = 10096 [(module) = "framework"]; 1489 DeviceRotatedData device_rotated_data = 10097 [(module) = "framework"]; 1490 CpuCyclesPerThreadGroupCluster cpu_cycles_per_thread_group_cluster = 10098 [(module) = "framework"]; 1491 MediaDrmActivityInfo media_drm_activity_info = 10099 [(module) = "media_metrics"]; 1492 OemManagedBytesTransfer oem_managed_bytes_transfer = 10100 [(module) = "framework"]; 1493 GnssPowerStats gnss_power_stats = 10101 [(module) = "framework"]; 1494 TimeZoneDetectorState time_zone_detector_state = 10102 [(module) = "framework"]; 1495 Keystore2StorageStats keystore2_storage_stats = 10103 [(module) = "framework"]; 1496 RkpPoolStats rkp_pool_stats = 10104 [deprecated = true]; 1497 ProcessDmabufMemory process_dmabuf_memory = 10105 [(module) = "framework"]; 1498 PendingAlarmInfo pending_alarm_info = 10106 [(module) = "framework"]; 1499 UserLevelHibernatedApps user_level_hibernated_apps = 10107 [(module) = "framework"]; 1500 sysui.LauncherLayoutSnapshot launcher_layout_snapshot = 10108 1501 [(module) = "sysui"]; 1502 GlobalHibernatedApps global_hibernated_apps = 10109 [(module) = "framework"]; 1503 input.InputEventLatencySketch input_event_latency_sketch = 10110 [(module) = "input"]; 1504 BatteryUsageStatsBeforeReset battery_usage_stats_before_reset = 1505 10111 [(module) = "framework"]; 1506 BatteryUsageStatsSinceReset battery_usage_stats_since_reset = 1507 10112 [(module) = "framework"]; 1508 BatteryUsageStatsSinceResetUsingPowerProfileModel 1509 battery_usage_stats_since_reset_using_power_profile_model = 1510 10113 [(module) = "framework"]; 1511 InstalledIncrementalPackage installed_incremental_package = 10114 [(module) = "framework"]; 1512 TelephonyNetworkRequests telephony_network_requests = 1513 10115 [(module) = "telephony", deprecated = true]; 1514 AppSearchStorageInfo app_search_storage_info = 10116 [(module) = "appsearch"]; 1515 VmStat vmstat = 10117 [(module) = "framework"]; 1516 Keystore2KeyCreationWithGeneralInfo keystore2_key_creation_with_general_info = 1517 10118 [(module) = "framework"]; 1518 Keystore2KeyCreationWithAuthInfo keystore2_key_creation_with_auth_info = 1519 10119 [(module) = "framework"]; 1520 Keystore2KeyCreationWithPurposeAndModesInfo 1521 keystore2_key_creation_with_purpose_and_modes_info = 10120 [(module) = "framework"]; 1522 Keystore2AtomWithOverflow keystore2_atom_with_overflow = 10121 [(module) = "framework"]; 1523 Keystore2KeyOperationWithPurposeAndModesInfo 1524 keystore2_key_operation_with_purpose_and_modes_info = 1525 10122 [(module) = "framework"]; 1526 Keystore2KeyOperationWithGeneralInfo keystore2_key_operation_with_general_info = 1527 10123 [(module) = "framework"]; 1528 RkpErrorStats rkp_error_stats = 10124 [(module) = "framework"]; 1529 Keystore2CrashStats keystore2_crash_stats = 10125 [(module) = "framework"]; 1530 VendorApexInfo vendor_apex_info = 10126 [(module) = "framework"]; 1531 AccessibilityShortcutStats accessibility_shortcut_stats = 10127 [(module) = "framework"]; 1532 AccessibilityFloatingMenuStats accessibility_floating_menu_stats = 1533 10128 [(module) = "framework"]; 1534 DataUsageBytesTransferV2 data_usage_bytes_transfer_v2 = 10129 [(module) = "framework", 1535 (truncate_timestamp) = true]; 1536 MediaCapabilities media_capabilities = 10130 [(module) = "framework"]; 1537 CarWatchdogSystemIoUsageSummary car_watchdog_system_io_usage_summary = 1538 10131 [(module) = "car"]; 1539 CarWatchdogUidIoUsageSummary car_watchdog_uid_io_usage_summary = 10132 [(module) = "car"]; 1540 ImsRegistrationFeatureTagStats ims_registration_feature_tag_stats = 1541 10133 [(module) = "telephony"]; 1542 RcsClientProvisioningStats rcs_client_provisioning_stats = 1543 10134 [(module) = "telephony"]; 1544 RcsAcsProvisioningStats rcs_acs_provisioning_stats = 1545 10135 [(module) = "telephony"]; 1546 SipDelegateStats sip_delegate_stats = 10136 [(module) = "telephony"]; 1547 SipTransportFeatureTagStats sip_transport_feature_tag_stats = 1548 10137 [(module) = "telephony"]; 1549 SipMessageResponse sip_message_response = 10138 [(module) = "telephony"]; 1550 SipTransportSession sip_transport_session = 10139 [(module) = "telephony"]; 1551 ImsDedicatedBearerListenerEvent ims_dedicated_bearer_listener_event = 1552 10140 [(module) = "telephony"]; 1553 ImsDedicatedBearerEvent ims_dedicated_bearer_event = 10141 [(module) = "telephony"]; 1554 ImsRegistrationServiceDescStats ims_registration_service_desc_stats = 1555 10142 [(module) = "telephony"]; 1556 UceEventStats uce_event_stats = 10143 [(module) = "telephony"]; 1557 PresenceNotifyEvent presence_notify_event = 10144 [(module) = "telephony"]; 1558 GbaEvent gba_event = 10145 [(module) = "telephony"]; 1559 PerSimStatus per_sim_status = 10146 [(module) = "telephony"]; 1560 GpuWorkPerUid gpu_work_per_uid = 10147; 1561 PersistentUriPermissionsAmountPerPackage persistent_uri_permissions_amount_per_package = 1562 10148 [(module) = "framework"]; 1563 SignedPartitionInfo signed_partition_info = 10149 [(module) = "framework"]; 1564 PinnedFileSizesPerPackage pinned_file_sizes_per_package = 10150 1565 [(module) = "framework"]; 1566 PendingIntentsPerPackage pending_intents_per_package = 10151 1567 [(module) = "framework"]; 1568 UserInfo user_info = 10152 [(module) = "framework"]; 1569 TelephonyNetworkRequestsV2 telephony_network_requests_v2 = 10153 [(module) = "telephony"]; 1570 DeviceTelephonyProperties device_telephony_properties = 10154 [(module) = "telephony"]; 1571 RemoteKeyProvisioningErrorCounts remote_key_provisioning_error_counts = 10155 [deprecated = true]; 1572 SafetyState safety_state = 10156 [(module) = "permissioncontroller"]; 1573 IncomingMms incoming_mms = 10157 [(module) = "mms"]; 1574 OutgoingMms outgoing_mms = 10158 [(module) = "mms"]; 1575 MultiUserInfo multi_user_info = 10160 [(module) = "framework"]; 1576 NetworkBpfMapInfo network_bpf_map_info = 10161 [(module) = "connectivity"]; 1577 OutgoingShortCodeSms outgoing_short_code_sms = 10162 [(module) = "telephony"]; 1578 ConnectivityStateSample connectivity_state_sample = 10163 [(module) = "connectivity"]; 1579 NetworkSelectionRematchReasonsInfo network_selection_rematch_reasons_info = 10164 [(module) = "connectivity"]; 1580 agif.GameModeInfo game_mode_info = 10165 [(module) = "framework"]; 1581 agif.GameModeConfiguration game_mode_configuration = 10166 [(module) = "framework"]; 1582 agif.GameModeListener game_mode_listener = 10167 [(module) = "framework"]; 1583 NetworkSliceRequestCountSample network_slice_request_count = 10168 [(module) = "connectivity"]; 1584 WsTileSnapshot ws_tile_snapshot = 10169 [(module) = "wearservices"]; 1585 WsActiveWatchFaceComplicationSetSnapshot ws_active_watch_face_complication_set_snapshot = 10170 [(module) = "wearservices"]; 1586 ProcessState process_state = 10171 [(module) = "framework"]; 1587 ProcessAssociation process_association = 10172 [(module) = "framework"]; 1588 adpf.ADPFSystemComponentInfo adpf_system_component_info = 10173 [(module) = "framework"]; 1589 sysui.NotificationMemoryUse notification_memory_use = 10174 [(module) = "sysui"]; 1590 display.HdrCapabilities hdr_capabilities = 10175 [(module) = "framework"]; 1591 WsFavouriteWatchFaceListSnapshot ws_favourite_watch_face_list_snapshot = 10176 [(module) = "wearservices"]; 1592 } 1593 1594 // Pulled atom extensions. 1595 // The atom definitions are under atoms/<feature>/<feature>_extension_atoms.proto 1596 extensions 10159; // SandboxSdkStorage sandbox_sdk_storage 1597 extensions 10177; // QnsRatPreferenceMismatchInfo qns_rat_preference_mismatch_info 1598 extensions 10178; // QnsHandoverTimeMillis qns_handover_time_millis 1599 extensions 10179; // QnsHandoverPingpong qns_handover_pingpong 1600 extensions 10180; // EmergencyNumbersInfo emergency_numbers_info 1601 extensions 10181; // MteState mte_state 1602 extensions 10182; // SatelliteController satellite_controller 1603 extensions 10183; // SatelliteSession satellite_session 1604 extensions 10184; // SatelliteIncomingDatagram satellite_incoming_datagram 1605 extensions 10185; // SatelliteOutgoingDatagram satellite_outgoing_datagram 1606 extensions 10186; // SatelliteProvision satellite_provision 1607 extensions 10187; // SatelliteSosMessageRecommender satellite_sos_message_recommender 1608 extensions 10188; // UwbActivityInfo uwb_activity_info 1609 extensions 10189; // CachedAppsHighWaterMark cached_apps_high_watermark 1610 extensions 10190; // WifiAwareCapabilities wifi_aware_capabilities 1611 extensions 10191; // TouchpadUsage touchpad_usage 1612 extensions 10192; // DreamSettingSnapshot dream_setting_snapshot 1613 extensions 10193; // WifiModuleInfo wifi_module_info 1614 extensions 10194; // WifiSettingInfo wifi_setting_info 1615 extensions 10195; // WifiComplexSettingInfo wifi_complex_setting_info 1616 // Deprecated, use proxy_bytes_transfer_by_fg_bg (10200) instead. 1617 extensions 10196; // SysproxyBluetoothBytesTransfer sysproxy_bluetooth_bytes_transfer 1618 extensions 10197; // WsStandaloneModeSnapshot ws_standalone_mode_snapshot 1619 extensions 10198; // WifiConfiguredNetworkInfo wifi_configured_network_info; 1620 extensions 10199; // CpuPolicy cpu_policy 1621 extensions 10200; // ProxyBytesTransferByFgBg proxy_bytes_transfer_by_fg_bg 1622 extensions 10201; // ThermalHeadroomThresholds thermal_headroom_thresholds 1623 extensions 10202; // Reserved for b/308823939. 1624 extensions 10203; // Reserved for b/308823939. 1625 extensions 10204; // MobileBytesTransferByProcState mobile_bytes_transfer_by_proc_state 1626 extensions 10205; // ArtDeviceStatus art_device_status 1627 extensions 10206; // WsFavouriteWatchFaceSnapshot ws_favorite_watch_face_snapshot 1628 extensions 10207; // DataNetworkValidation data_network_validation 1629 // 10208 is reserved due to removing the old atom. 1630 extensions 10209; // BatteryUsageStatsPerUid battery_usage_stats_per_uid 1631 extensions 10210; // Reserved for b/339008431 1632 extensions 10211; // CarrierRoamingSatelliteSession carrier_roaming_satellite_session 1633 extensions 10212; // CarrierRoamingSatelliteControllerStats carrier_roaming_satellite_controller_stats 1634 extensions 10213; // ControllerStatsPerPackage controller_stats_per_package 1635 extensions 10214; // SatelliteEntitlement satellite_entitlement 1636 extensions 10215; // SatelliteConfigUpdater satellite_config_updater 1637 extensions 10216; // DevicePolicyManagementMode 1638 extensions 10217; // DevicePolicyPolicyState 1639 extensions 10218; // AdpfSessionSnapshot adpf_session_snapshot 1640 extensions 10219; // SatelliteAccessController satellite_access_controller 1641 extensions 10220; // AndroidHardwareHealthBattery android_hardware_health_battery 1642 extensions 10221; // CallStats call_stats 1643 extensions 10222; // CallAudioRouteStats call_audio_route_stats 1644 extensions 10223; // TelecomApiStats telecom_api_stats 1645 extensions 10224; // TelecomErrorStats telecom_error_stats 1646 extensions 10225; // WsPhotosWatchFaceFeatureSnapshot ws_photos_watch_face_feature_snapshot 1647 extensions 10226; // CommunalHubSnapshot communal_hub_snapshot 1648 extensions 10227; // WsWatchFaceCustomizationSnapshot ws_watch_face_customization_snapshot 1649 // 10228 is reserved due to removing the old atom 1650 extensions 10229; // PressureStallInformation pressure_stall_information 1651 extensions 10230; // FrameworkWakelockInfo framework_wakelock_info 1652 extensions 10231; // NotificationBundlePreferences notification_bundle_preferences 1653 extensions 10232; // ZramMmStatMmd zram_mm_stat_mmd 1654 extensions 10233; // ZramBdStatMmd zram_bd_stat_mmd 1655 extensions 10234; // WidgetMemoryStats 1656 extensions 10235; // TelecomEventStats telecom_event_stats 1657 extensions 10236; // AdvancedProtectionStateInfo advanced_protection_state_info 1658 extensions 99999; // Atom99999 atom_99999 1659 1660 // DO NOT USE field numbers above 100,000 in AOSP. 1661 // Field numbers 100,000 - 199,999 are reserved for non-AOSP (e.g. OEMs) to use. 1662 // Field numbers 200,000 and above are reserved for future use; do not use them at all. 1663 reserved 54, 58, 83, 360 to 363, 492, 597, 801, 936, 937, 938, 939, 10008, 10036, 10040, 10041, 10228, 21004, 21005; 1664} 1665 1666/* 1667 * ***************************************************************************** 1668 * Below are all of the individual atoms that are logged by Android via statsd. 1669 * 1670 * RULES: 1671 * - The field ids for each atom must start at 1, and count upwards by 1. 1672 * Skipping field ids is not allowed. 1673 * - These form an API, so renaming, renumbering or removing fields is 1674 * not allowed between android releases. (This is not currently enforced, 1675 * but there will be a tool to enforce this restriction). 1676 * - The types must be built-in protocol buffer types, namely, no sub-messages 1677 * are allowed (yet). The bytes type is also not allowed. 1678 * - The CamelCase name of the message type should match the 1679 * underscore_separated name as defined in Atom. 1680 * - If an atom represents work that can be attributed to an app, there can 1681 * be exactly one AttributionChain field. It must be field number 1. 1682 * - A field that is a uid should be an int32 field, tagged with the 1683 * [(is_uid) = true] annotation. 1684 * 1685 * CONVENTIONS: 1686 * - Events are past tense. e.g. ScreenStateChanged, not ScreenStateChange. 1687 * - If there is a UID, it goes first. Think in an object-oriented fashion. 1688 * ***************************************************************************** 1689 */ 1690 1691/** 1692 * This atom is deprecated starting in Q. Please use ThermalThrottlingSeverityStateChanged. 1693 * Logs when the Thermal service HAL notifies the throttling start/stop events. 1694 * 1695 * Logged from: 1696 * frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java 1697 */ 1698message ThermalThrottlingStateChanged { 1699 // The type of temperature being reported (CPU, GPU, SKIN, etc) 1700 optional android.os.TemperatureTypeEnum sensor_type = 1; 1701 1702 // Throttling state, this field is DEPRECATED 1703 enum State { 1704 UNKNOWN = 0; 1705 START = 1; // START indicated that throttling was triggered. 1706 STOP = 2; // STOP indicates that throttling was cleared. 1707 } 1708 optional State state = 2; 1709 1710 optional float temperature = 3; 1711} 1712 1713/** 1714 * Track transcoding service usage 1715 * Logged from: 1716 * packages/providers/MediaProvider/src/com/android/providers/media/TranscodeHelper.java 1717 * Next Tag: 14 1718 */ 1719message TranscodingData { 1720 // Reason that leads to the type of access. 1721 enum AccessReason { 1722 UNKNOWN = 0; 1723 SYSTEM_DEFAULT = 1; // Default option 1724 SYSTEM_CONFIG = 2; // Server-side/on-device config 1725 APP_MANIFEST = 3; // media_capabilites.xml 1726 APP_COMPAT = 4; // App compat framework 1727 APP_EXTRA = 5; // ApplicationMediaCapabilities API in open() 1728 } 1729 1730 // Causes that leads to the failure of transcode. 1731 enum FailureCause { 1732 CAUSE_UNKNOWN = 0; 1733 TRANSCODING_SERVICE_ERROR = 1; // Error from transcoding service. 1734 TRANSCODING_CLIENT_TIMEOUT = 2; // Timeout from MediaProvider. 1735 TRANSCODING_SESSION_CANCELED = 3; // MediaProvider cancels the transcode. 1736 } 1737 1738 enum AccessType { 1739 HEVC_WRITE = 1; 1740 READ_DIRECT = 2; 1741 READ_CACHE = 3; 1742 READ_TRANSCODE = 4; 1743 WRITE_CACHE = 5; // App trying to write to transcodeid avc file in cache, this is rare. 1744 AVC_WRITE = 6; 1745 } 1746 1747 enum Result { 1748 SUCCESS = 0; 1749 FAIL = 1; 1750 UNDEFINED = 2; 1751 } 1752 1753 optional string requestor_package = 1; 1754 optional AccessType access_type = 2; 1755 optional int64 file_size_bytes = 3; 1756 optional Result transcode_result = 4; 1757 optional int64 transcode_duration_millis = 5; // The duration of transcoding. 1758 optional int64 file_duration_millis = 6; // The duration of the video file. 1759 optional int64 file_framerate_fps = 7; // The framerate of the video file. 1760 optional AccessReason access_reason = 8; 1761 optional int64 width = 9; 1762 optional int64 height = 10; 1763 optional bool hit_anr = 11; 1764 optional FailureCause failure_cause = 12; // This field is valid only when fails. 1765 optional int64 transcoding_service_error_code = 13; // Error code from transcoding service. 1766} 1767 1768/** 1769 * Logs when the screen state changes. 1770 * 1771 * Logged from: 1772 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java 1773 */ 1774message ScreenStateChanged { 1775 // New screen state, from frameworks/proto_logging/stats/enums/view/enums.proto. 1776 optional android.view.DisplayStateEnum state = 1 1777 [(state_field_option).exclusive_state = true, (state_field_option).nested = false]; 1778} 1779 1780/** 1781 * Part of the go/activity-security project. Logs information about activity 1782 * starts which would be blocked as part of the project. 1783 * 1784 * Logged from: 1785 * - frameworks/base/services/core/java/com/android/server/wm/ActivityStarter.java 1786 * - frameworks/base/services/core/java/com/android/server/wm/ActivityClientController.java 1787 */ 1788message ActivityActionBlocked { 1789 enum Action { 1790 ACTION_UNSPECIFIED = 0; 1791 ACTIVITY_START_SAME_TASK = 1; 1792 ACTIVITY_START_DIFFERENT_TASK = 2; 1793 ACTIVITY_START_NEW_TASK = 3; 1794 FINISH_TASK = 4; 1795 } 1796 optional int32 caller_uid = 1 [(is_uid) = true]; 1797 optional string caller_activity_class_name = 2; 1798 optional int32 target_task_top_activity_uid = 3 [(is_uid) = true]; 1799 optional string target_task_top_activity_class_name = 4; 1800 optional bool target_task_is_different = 5; 1801 optional int32 target_activity_uid = 6 [(is_uid) = true]; 1802 optional string target_activity_class_name = 7; 1803 optional string target_intent_action = 8; 1804 optional int32 target_intent_flags = 9; 1805 1806 optional Action action = 10; 1807 optional int32 version = 11; 1808 optional bool multi_window = 12; 1809 optional int32 bal_code = 13; 1810 optional string task_debug_info = 14; 1811} 1812 1813/** 1814 * Logs that the process state of the uid, as determined by ActivityManager 1815 * (i.e. the highest process state of that uid's processes) has changed. 1816 * 1817 * Logged from: 1818 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java 1819 */ 1820message UidProcessStateChanged { 1821 optional int32 uid = 1 [(state_field_option).primary_field = true, (is_uid) = true]; 1822 1823 // The state, from frameworks/proto_logging/stats/enums/app_shared/app_enums.proto. 1824 optional android.app.ProcessStateEnum state = 2 1825 [(state_field_option).exclusive_state = true, (state_field_option).nested = false]; 1826} 1827 1828/** 1829 * Logs process state change of a process, as per the activity manager. 1830 * 1831 * Logged from: 1832 * frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java 1833 */ 1834message ProcessStateChanged { 1835 optional int32 uid = 1 [(is_uid) = true]; 1836 optional string process_name = 2; 1837 optional string package_name = 3; 1838 // TODO: remove this when validation is done 1839 optional int64 version = 5; 1840 // The state, from frameworks/proto_logging/stats/enums/app_shared/app_enums.proto. 1841 optional android.app.ProcessStateEnum state = 4; 1842} 1843 1844/** 1845 * Logs how long a process was in each of the states. 1846 */ 1847message ProcessState { 1848 optional int32 uid = 1 [(is_uid) = true]; 1849 optional string process_name = 2; 1850 1851 // Measurement period. Can be used as denominator. 1852 // The gauge duration is not representative because we want uptime and also 1853 // the measurement usually ends at a time earlier than pull time. 1854 optional int32 measurement_start_uptime_seconds = 3; 1855 optional int32 measurement_end_uptime_seconds = 4; 1856 optional int32 measurement_duration_uptime_seconds = 5; 1857 1858 // Individual state breakdowns, summing up to total process runtime. 1859 // Flattening (instead of a dimensions - value pair) for two reasons: 1860 // 1. Makes metric filtering possible (can pull the entire process data based 1861 // on a specific value. 1862 // 2. More efficient to encode (proto id serves as dimension). 1863 optional int32 top_seconds = 6; 1864 optional int32 fgs_seconds = 7; 1865 optional int32 bound_top_seconds = 8; 1866 optional int32 bound_fgs_seconds = 9; 1867 optional int32 important_fg_bg_seconds = 10; 1868 optional int32 cached_seconds = 11; 1869 optional int32 frozen_seconds = 12; 1870 optional int32 other_seconds = 13; 1871} 1872 1873/** 1874 * Logs association between processes. 1875 */ 1876message ProcessAssociation { 1877 optional int32 client_uid = 1 [(is_uid) = true]; 1878 1879 // If we only care about the package name name we do not need to upload this 1880 // (even though we should add it to the atom for filtering / sharding) 1881 optional string client_process = 2; 1882 1883 optional int32 service_uid = 3 [(is_uid) = true]; 1884 1885 optional string service_name = 4; 1886 1887 optional string service_process = 10; 1888 1889 // Measurement period. Can be used as denominator. 1890 // The gauge duration is not representative because we want uptime and also 1891 // the measurement usually ends at a time earlier than pull time. 1892 optional int32 measurement_start_uptime_seconds = 5; 1893 optional int32 measurement_end_uptime_seconds = 6; 1894 optional int32 measurement_duration_uptime_seconds = 7; 1895 1896 optional int32 duration_seconds = 8; 1897 1898 // Number of times this association was established. 1899 optional int32 count = 9; 1900} 1901 1902/** 1903 * Logs when ActivityManagerService sleep state is changed. 1904 * 1905 * Logged from: 1906 * frameworks/base/services/core/java/com/android/server/am/ActivityTaskManagerService.java 1907 */ 1908message ActivityManagerSleepStateChanged { 1909 // TODO: import frameworks proto 1910 enum State { 1911 UNKNOWN = 0; 1912 ASLEEP = 1; 1913 AWAKE = 2; 1914 } 1915 optional State state = 1 1916 [(state_field_option).exclusive_state = true, (state_field_option).nested = false]; 1917} 1918 1919/** 1920 * Logs when system memory state changes. 1921 * 1922 * Logged from: 1923 * frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java 1924 */ 1925message MemoryFactorStateChanged { 1926 // TODO: import frameworks proto 1927 enum State { 1928 MEMORY_UNKNOWN = 0; 1929 NORMAL = 1; // normal. 1930 MODERATE = 2; // moderate memory pressure. 1931 LOW = 3; // low memory. 1932 CRITICAL = 4; // critical memory. 1933 1934 } 1935 optional State factor = 1 [ 1936 (state_field_option).exclusive_state = true, 1937 (state_field_option).nested = false 1938 ]; 1939} 1940 1941/** 1942 * Logs when app is using too much cpu, according to ActivityManagerService. 1943 * 1944 * Logged from: 1945 * frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java 1946 */ 1947message ExcessiveCpuUsageReported { 1948 optional int32 uid = 1 [(is_uid) = true]; 1949 optional string process_name = 2; 1950 optional string package_name = 3; 1951 // package version. TODO: remove this when validation is done 1952 optional int64 version = 4; 1953} 1954 1955/** 1956 * Logs when a cached process is killed, along with its pss. 1957 * 1958 * Logged from: 1959 * frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java 1960 */ 1961message CachedKillReported { 1962 optional int32 uid = 1 [(is_uid) = true]; 1963 optional string process_name = 2; 1964 optional string package_name = 3; 1965 // TODO: remove this when validation is done 1966 optional int64 version = 5; 1967 optional int64 pss = 4; 1968} 1969 1970/** 1971 * Logs the change in wifi health. 1972 * 1973 * Logged from: 1974 * frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiDataStall.java 1975 */ 1976message WifiHealthStatReported { 1977 enum Band { 1978 UNKNOWN = 0; 1979 // All of 2.4GHz band 1980 BAND_2G = 1; 1981 // Frequencies in the range of [5150, 5250) GHz 1982 BAND_5G_LOW = 2; 1983 // Frequencies in the range of [5250, 5725) GHz 1984 BAND_5G_MIDDLE = 3; 1985 // Frequencies in the range of [5725, 5850) GHz 1986 BAND_5G_HIGH = 4; 1987 // Frequencies in the range of [5925, 6425) GHz 1988 BAND_6G_LOW = 5; 1989 // Frequencies in the range of [6425, 6875) GHz 1990 BAND_6G_MIDDLE = 6; 1991 // Frequencies in the range of [6875, 7125) GHz 1992 BAND_6G_HIGH = 7; 1993 } 1994 // duration this stat is obtained over in milliseconds 1995 optional int32 duration_millis = 1; 1996 // whether wifi is classified as sufficient for the user's data traffic, determined 1997 // by whether the calculated throughput exceeds the average demand within |duration_millis| 1998 optional bool is_sufficient = 2; 1999 // whether cellular data is available 2000 optional bool is_cell_data_available = 3; 2001 // the Band bucket the connected network is on 2002 optional Band band = 4; 2003 // the Signal strength in the range of [-126, 0) 2004 optional int32 rssi = 5; 2005 // estimated tx throughput in kbps 2006 optional int32 tx_kbps = 6 [default = -1]; 2007 // estimated rx throughput in kbps 2008 optional int32 rx_kbps = 7 [default = -1]; 2009 // External scorer UID if external scorer is enabled. Otherwise WIFI_UID for 2010 // AOSP scorer. 2011 optional int32 scorer_uid = 8 [(is_uid) = true]; 2012 // Whether or not Wi-Fi is predicted as usable by the scorer 2013 // Note: 'is_wifi_predicted_as_usable' is deprectaed by 'wifi_predicted_usability_state'. 2014 optional bool is_wifi_predicted_as_usable = 9; 2015 // Wi-Fi usability state as predicted by the scorer 2016 optional android.net.wifi.WifiPredictedUsabilityState wifi_predicted_usability_state = 10; 2017 // Wi-Fi Tx link speed 2018 optional int32 txLinkSpeed = 11; 2019 // Wi-Fi Rx link speed 2020 optional int32 rxLinkSpeed = 12; 2021 // Supported bandwidth in current connection channel 2022 optional android.net.wifi.WifiChannelWidth channel_width_mhz = 13; 2023} 2024 2025/** 2026 * Logged when wifi detects a significant change in connection failure rate. 2027 * 2028 * Logged from: frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiHealthMonitor.java 2029 * 2030 */ 2031message WifiFailureStatReported { 2032 enum AbnormalityType { 2033 UNKNOWN = 0; 2034 SIGNIFICANT_INCREASE = 1; 2035 SIGNIFICANT_DECREASE = 2; 2036 SIMPLY_HIGH = 3; 2037 } 2038 enum FailureType { 2039 FAILURE_UNKNOWN = 0; 2040 FAILURE_CONNECTION = 1; 2041 FAILURE_ASSOCIATION_REJECTION = 2; 2042 FAILURE_ASSOCIATION_TIMEOUT = 3; 2043 FAILURE_AUTHENTICATION = 4; 2044 FAILURE_NON_LOCAL_DISCONNECTION = 5; 2045 FAILURE_SHORT_CONNECTION_DUE_TO_NON_LOCAL_DISCONNECTION = 6; 2046 } 2047 // Reason for uploading this stat 2048 optional AbnormalityType abnormality_type = 1; 2049 // The particular type of failure 2050 optional FailureType failure_type = 2; 2051 // How many times we have encountered this combination of AbnormalityType and FailureType 2052 optional int32 failure_count = 3; 2053} 2054 2055/** 2056 * Logs whether a Wifi connection attempt was successful and reasons for failure if it wasn't. 2057 * 2058 * Logged from: 2059 * frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiMetrics.java 2060 */ 2061message WifiConnectionResultReported { 2062 enum FailureCode { 2063 FAILURE_UNKNOWN = 0; 2064 FAILURE_ASSOCIATION_TIMEOUT = 1; 2065 FAILURE_ASSOCIATION_REJECTION = 2; 2066 FAILURE_AUTHENTICATION_GENERAL = 3; 2067 FAILURE_AUTHENTICATION_EAP = 4; 2068 FAILURE_DHCP = 5; 2069 FAILURE_NETWORK_DISCONNECTION = 6; 2070 FAILURE_ROAM_TIMEOUT = 7; 2071 FAILURE_WRONG_PASSWORD = 8; 2072 FAILURE_CONNECT_NETWORK_FAILED = 9; 2073 FAILURE_NEW_CONNECTION_ATTEMPT = 10; 2074 FAILURE_REDUNDANT_CONNECTION_ATTEMPT = 11; 2075 FAILURE_NETWORK_NOT_FOUND = 12; 2076 FAILURE_NO_RESPONSE = 13; 2077 FAILURE_OTHERS = 14; 2078 } 2079 2080 enum Trigger { 2081 UNKNOWN = 0; 2082 // Connection attempt was initiated manually. 2083 MANUAL = 1; 2084 // Automatic reconnection to the same network as connected previously. 2085 RECONNECT_SAME_NETWORK = 2; 2086 // Automatic reconnection to a saved network, but not the previous one. 2087 AUTOCONNECT_CONFIGURED_NETWORK = 3; 2088 // Automatic first connection attempt after device boot. 2089 AUTOCONNECT_BOOT = 4; 2090 } 2091 2092 // True represents a successful connection. 2093 optional bool connection_result = 1; 2094 // Reason for the connection failure. 2095 optional FailureCode failure_code = 2; 2096 // Scan RSSI before the connection attempt. 2097 optional int32 rssi = 3; 2098 // Time taken by this connection attempt. 2099 optional int32 connection_attempt_duration_millis = 4; 2100 // Band bucket the connected network is on. 2101 optional android.net.wifi.WifiBandBucket band = 5; 2102 // Authentication type. 2103 optional android.net.wifi.WifiAuthType auth_type = 6; 2104 // What triggered this connection attempt. 2105 optional Trigger trigger = 7; 2106 // Whether this network was used (successfully connected to) previously. 2107 optional bool network_used = 8; 2108 // Time taken from the last successful connection (or device boot if that's the first one). 2109 optional int32 time_since_last_connection_seconds = 9; 2110 // Whether the connection is carrier wifi. 2111 optional bool is_carrier_wifi = 10; 2112 // Whether the OOB pseeudonym is enabled for the current connection. 2113 optional bool is_oob_pseudonym_enabled = 11; 2114 // The client mode role for the connection, can use to determine the connection type. 2115 optional android.net.wifi.ClientModeRole role = 12; 2116 // The status code specific to each failure code. 2117 // - For FAILURE_ASSOCIATION_REJECTION, the value should be one of 2118 // SupplicantStaIfaceHal.StaIfaceStatusCode. 2119 // - For FAILURE_NETWORK_DISCONNECTION, the value should be 2120 // one of SupplicantStaIfaceHal.StaIfaceReasonCode. 2121 // - For FAILURE_AUTHENTICATION_EAP, the value should be a EAP failure code. 2122 // For all other failure codes, this should be 0. 2123 optional int32 failure_specific_status_code = 13; 2124 // Information only applicable for EAP networks. 2125 optional android.net.wifi.EapType eap_type = 14; 2126 optional android.net.wifi.EapInnerMethod eap_inner_method = 15; 2127 optional android.net.wifi.RoamingType passpoint_roaming_type = 16; 2128 // carrier ID of the network 2129 optional int32 carrier_id = 17; 2130 optional android.net.wifi.TofuConfiguration tofu_configuration = 18; 2131 // uid of the caller who initiated this connection 2132 optional int32 connection_uid = 19 [(is_uid) = true]; 2133 // connection channel frequency 2134 optional int32 frequency = 20; 2135 // L2 connecting time duration in millis 2136 optional int64 l2_connecting_duration_ms = 21; 2137 // L3 connecting time duration in millis 2138 optional int64 l3_connecting_duration_ms = 22; 2139} 2140 2141/** 2142 * Logs when a Wifi connection drops. 2143 * 2144 * Logged from: 2145 * frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiMetrics.java 2146 */ 2147message WifiDisconnectReported { 2148 enum FailureCode { 2149 UNKNOWN = 0; 2150 2151 // Wifi supplicant failure reason codes (IEEE Std 802.11-2016, 9.4.1.7, Table 9-45). 2152 // See ISupplicantStaIfaceCallback.java:ReasonCode 2153 UNSPECIFIED = 1; 2154 PREV_AUTH_NOT_VALID = 2; 2155 DEAUTH_LEAVING = 3; 2156 DISASSOC_DUE_TO_INACTIVITY = 4; 2157 DISASSOC_AP_BUSY = 5; 2158 CLASS2_FRAME_FROM_NONAUTH_STA = 6; 2159 CLASS3_FRAME_FROM_NONASSOC_STA = 7; 2160 DISASSOC_STA_HAS_LEFT = 8; 2161 STA_REQ_ASSOC_WITHOUT_AUTH = 9; 2162 PWR_CAPABILITY_NOT_VALID = 10; 2163 SUPPORTED_CHANNEL_NOT_VALID = 11; 2164 BSS_TRANSITION_DISASSOC = 12; 2165 INVALID_IE = 13; 2166 MICHAEL_MIC_FAILURE = 14; 2167 FOURWAY_HANDSHAKE_TIMEOUT = 15; 2168 GROUP_KEY_UPDATE_TIMEOUT = 16; 2169 IE_IN_4WAY_DIFFERS = 17; 2170 GROUP_CIPHER_NOT_VALID = 18; 2171 PAIRWISE_CIPHER_NOT_VALID = 19; 2172 AKMP_NOT_VALID = 20; 2173 UNSUPPORTED_RSN_IE_VERSION = 21; 2174 INVALID_RSN_IE_CAPAB = 22; 2175 IEEE_802_1X_AUTH_FAILED = 23; 2176 CIPHER_SUITE_REJECTED = 24; 2177 TDLS_TEARDOWN_UNREACHABLE = 25; 2178 TDLS_TEARDOWN_UNSPECIFIED = 26; 2179 SSP_REQUESTED_DISASSOC = 27; 2180 NO_SSP_ROAMING_AGREEMENT = 28; 2181 BAD_CIPHER_OR_AKM = 29; 2182 NOT_AUTHORIZED_THIS_LOCATION = 30; 2183 SERVICE_CHANGE_PRECLUDES_TS = 31; 2184 UNSPECIFIED_QOS_REASON = 32; 2185 NOT_ENOUGH_BANDWIDTH = 33; 2186 DISASSOC_LOW_ACK = 34; 2187 EXCEEDED_TXOP = 35; 2188 STA_LEAVING = 36; 2189 END_TS_BA_DLS = 37; 2190 UNKNOWN_TS_BA = 38; 2191 TIMEOUT = 39; 2192 PEERKEY_MISMATCH = 45; 2193 AUTHORIZED_ACCESS_LIMIT_REACHED = 46; 2194 EXTERNAL_SERVICE_REQUIREMENTS = 47; 2195 INVALID_FT_ACTION_FRAME_COUNT = 48; 2196 INVALID_PMKID = 49; 2197 INVALID_MDE = 50; 2198 INVALID_FTE = 51; 2199 MESH_PEERING_CANCELLED = 52; 2200 MESH_MAX_PEERS = 53; 2201 MESH_CONFIG_POLICY_VIOLATION = 54; 2202 MESH_CLOSE_RCVD = 55; 2203 MESH_MAX_RETRIES = 56; 2204 MESH_CONFIRM_TIMEOUT = 57; 2205 MESH_INVALID_GTK = 58; 2206 MESH_INCONSISTENT_PARAMS = 59; 2207 MESH_INVALID_SECURITY_CAP = 60; 2208 MESH_PATH_ERROR_NO_PROXY_INFO = 61; 2209 MESH_PATH_ERROR_NO_FORWARDING_INFO = 62; 2210 MESH_PATH_ERROR_DEST_UNREACHABLE = 63; 2211 MAC_ADDRESS_ALREADY_EXISTS_IN_MBSS = 64; 2212 MESH_CHANNEL_SWITCH_REGULATORY_REQ = 65; 2213 MESH_CHANNEL_SWITCH_UNSPECIFIED = 66; 2214 2215 // ClientModeImpl error codes 2216 // Defined in /frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiMetrics.java 2217 IFACE_DESTROYED = 10000; 2218 WIFI_DISABLED = 10001; 2219 SUPPLICANT_DISCONNECTED = 10002; 2220 CONNECTING_WATCHDOG_TIMER = 10003; 2221 ROAM_WATCHDOG_TIMER = 10004; 2222 2223 // New reasons tracking disconnections initiated by wifi framework 2224 DISCONNECT_GENERAL = 10005; // Framework disconnect, generic reason 2225 // Disconnecting due to unspecified IP reachability lost. 2226 DISCONNECT_NUD_FAILURE_GENERIC = 10006; 2227 // Disconnecting due to IP reachability lost from roaming 2228 DISCONNECT_NUD_FAILURE_ROAM = 10007; 2229 // Disconnecting due to IP reachability lost from the CONFIRM command 2230 DISCONNECT_NUD_FAILURE_CONFIRM = 10008; 2231 // Disconnecting due to IP reachability lost from kernel check 2232 DISCONNECT_NUD_FAILURE_ORGANIC = 10009; 2233 // Connectivity no longer wants this network 2234 DISCONNECT_UNWANTED_BY_CONNECTIVITY = 10010; 2235 // Timeout creating the IP client 2236 DISCONNECT_CREATE_IP_CLIENT_TIMEOUT = 10011; 2237 DISCONNECT_IP_PROVISIONING_FAILURE = 10012; // IP provisioning failure 2238 DISCONNECT_P2P_REQUESTED_DISCONNECT = 10013; // Disconnect by P2P 2239 // Network is removed from the WifiConfigManager 2240 DISCONNECT_NETWORK_REMOVED = 10014; 2241 DISCONNECT_NETWORK_UNTRUSTED = 10015; // Network is marked as untrusted 2242 DISCONNECT_NETWORK_METERED = 10016; // Network is marked as metered 2243 DISCONNECT_TEMP_DISABLED = 10017; // Network is temporarily disabled 2244 DISCONNECT_PERM_DISABLED = 10018; // Network is permanently disabled 2245 DISCONNECT_CARRIER_OFFLOAD_DISABLED = 10019; 2246 // Disconnecting due to Passpoint terms and conditions page 2247 DISCONNECT_PASSPOINT_TAC = 10020; 2248 // Disconnecting due to issues with terms and conditions URL 2249 DISCONNECT_VNC_REQUEST = 10021; 2250 // Connected to a network that is already removed 2251 DISCONNECT_UNKNOWN_NETWORK = 10022; 2252 // User initiated a new connection 2253 DISCONNECT_NEW_CONNECTION_USER = 10023; 2254 // New connection triggered by non-user 2255 DISCONNECT_NEW_CONNECTION_OTHERS = 10024; 2256 // Wi-Fi 7 is enabled or disabled for this network 2257 DISCONNECT_NETWORK_WIFI7_TOGGLED = 10025; 2258 } 2259 2260 // How long the session lasted from successful connection to disconnect. 2261 optional int32 connected_duration_seconds = 1; 2262 2263 // Reason for the disconnect. 2264 optional FailureCode failure_code = 2; 2265 2266 // Band bucket the connected network was on. 2267 optional android.net.wifi.WifiBandBucket band = 3; 2268 2269 // Authentication type. 2270 optional android.net.wifi.WifiAuthType auth_type = 4; 2271 2272 // Last seen RSSI before the disconnect. 2273 optional int32 last_rssi = 5; 2274 2275 // Last seen link speed before the disconnect. 2276 optional int32 last_link_speed = 6; 2277 2278 // Time since the last RSSI and link speed update. 2279 // Useful for filtering out very old data 2280 optional int32 time_since_last_rssi_poll_seconds = 7; 2281 2282 // Time from the last NETWORK_CONNECTION_EVENT to the disconnect 2283 optional int32 connected_time_since_last_roam_seconds = 8; 2284 2285 // The purpose the of the connection 2286 optional android.net.wifi.ClientModeRole role = 9; 2287 2288 // The type of EAP authentication. Only applicable for EAP networks. 2289 optional android.net.wifi.EapType eap_type = 10; 2290 2291 optional android.net.wifi.EapInnerMethod eap_inner_method = 11; 2292 2293 optional android.net.wifi.RoamingType passpoint_roaming_type = 12; 2294 2295 // Carrier id of the network. 2296 optional int32 carrier_id = 13; 2297 2298 // uid of the caller who initiated this connection 2299 optional int32 connection_uid = 14 [(is_uid) = true]; 2300} 2301 2302/** 2303 * Logs when Wifi connection is established or dropped. 2304 * 2305 * Logged from: 2306 * frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiMetrics.java 2307 */ 2308message WifiConnectionStateChanged { 2309 optional bool is_connected = 1 [ 2310 (state_field_option).exclusive_state = true, 2311 (state_field_option).nested = false 2312 ]; 2313 2314 // Band bucket the connected network was on. 2315 // Filled for both connected and disconnected cases. 2316 optional android.net.wifi.WifiBandBucket band = 2; 2317 2318 // Authentication type. 2319 // Filled for both connected and disconnected cases. 2320 optional android.net.wifi.WifiAuthType auth_type = 3; 2321} 2322 2323/** 2324 * Logged when wifi peer to peer connection happens 2325 */ 2326message WifiP2pConnectionReported { 2327 enum Type { 2328 UNSPECIFIED = 0; 2329 // fresh new connection. 2330 FRESH = 1; 2331 // reinvoke a group. 2332 REINVOKE = 2; 2333 // create a group with the current device as the group owner locally. 2334 LOCAL = 3; 2335 // create a group or join a group with config. 2336 FAST = 4; 2337 } 2338 enum FailureCode { 2339 // Failure is unknown. 2340 UNKNOWN = 0; 2341 // No failure. 2342 NONE = 1; 2343 // Timeout for current connecting request. 2344 TIMEOUT = 2; 2345 // The connecting request is canceled by the user. 2346 CANCEL = 3; 2347 // Provision discovery failure, e.g. no pin code, timeout, rejected by the peer. 2348 PROV_DISC_FAIL = 4; 2349 // Invitation failure, e.g. rejected by the peer. 2350 INVITATION_FAIL = 5; 2351 // Incoming request is rejected by the user. 2352 USER_REJECT = 6; 2353 // New connection request is issued before ending previous connecting request. 2354 NEW_CONNECTION_ATTEMPT = 7; 2355 // Group has been removed 2356 GROUP_REMOVED = 8; 2357 // Creating group failed 2358 CREATE_GROUP_FAILED = 9; 2359 } 2360 enum GroupRole { 2361 GROUP_UNKNOWN = 0; 2362 GROUP_OWNER = 1; 2363 GROUP_CLIENT = 2; 2364 } 2365 enum Band { 2366 // Unknown band/frequency 2367 BAND_UNKNOWN = 0; 2368 // any band 2369 BAND_AUTO = 1; 2370 // With 2G band 2371 BAND_2G = 2; 2372 // With 5G band 2373 BAND_5G = 3; 2374 // With 6G band 2375 BAND_6G = 4; 2376 // With a specific frequency 2377 BAND_FREQUENCY = 5; 2378 } 2379 // Type of the connection. 2380 optional Type type = 1; 2381 // Duration to connect in millis. 2382 optional int32 latency_ms= 2; 2383 // Duration to connect in step size of 200 millis. 2384 optional int32 latency_200ms= 3; 2385 // Failure code 2386 optional FailureCode failure_code = 4; 2387 // Group role. This could be unknown with connect() call when the WifiConfig doesn't have the 2388 // credential. 2389 optional GroupRole group_role = 5; 2390 // Group band preference 2391 optional Band band = 6; 2392 // Group frequency in MHz if positive. Otherwise, no frequency preference. 2393 optional int32 frequency_mhz = 7; 2394 // STA mode channel frequency. 0 means unknown. 2395 optional int32 sta_frequency_mhz = 8; 2396 // The uid of the app that initiates the connection. 2397 optional int32 uid = 9 [(is_uid) = true]; 2398 // if the country code is in the world mode 2399 optional bool is_country_code_world_mode = 10; 2400 // fallback to negotiation if device receives invitation response status code "information is 2401 // currently unavailable" 2402 optional bool fallback_to_negotiation_on_invite_status_info_unavailable = 11; 2403 // The try count of connection 2404 optional int32 try_count = 12; 2405 // The Attribution tag to identify the caller 2406 optional string attribution_tag = 13; 2407} 2408 2409/** 2410 * Logged when wifi setup failure or crash reported 2411 */ 2412message WifiSetupFailureCrashReported { 2413 enum Type { 2414 UNKNOWN = 0; 2415 // Wifi HAL crash 2416 HAL_CRASH = 1; 2417 // Wificond crash 2418 WIFICOND_CRASH = 2; 2419 // Supplicant crash 2420 SUPPLICANT_CRASH = 3; 2421 // hostapd crash 2422 HOSTAPD_CRASH = 4; 2423 // HAL error on WifiNative.setupInterfaceForClientMode 2424 CLIENT_FAILURE_HAL = 5; 2425 // Wificond error on WifiNative.setupInterfaceForClientMode 2426 CLIENT_FAILURE_WIFICOND = 6; 2427 // Supplicant error on WifiNative.setupInterfaceForClientMode 2428 CLIENT_FAILURE_SUPPLICANT = 7; 2429 // HAL error on WifiNative.setupInterfaceForSoftApMode 2430 SOFT_AP_FAILURE_HAL = 8; 2431 // Wificond error on WifiNative.setupInterfaceForSoftApMode 2432 SOFT_AP_FAILURE_WIFICOND = 9; 2433 // Hostapd error on WifiNative.setupInterfaceForSoftApMode 2434 SOFT_AP_FAILURE_HOSTAPD = 10; 2435 // HAL error on WifiP2pNative.setupInterface 2436 P2P_FAILURE_HAL = 11; 2437 // Supplicant error on WifiP2pNative.setupInterface 2438 P2P_FAILURE_SUPPLICANT = 12; 2439 } 2440 // Type of failure 2441 optional Type type= 1; 2442} 2443 2444 2445/* 2446 * Logs metrics on bedtime mode state changed 2447 * 2448 * Logged From: 2449 * frameworks/opt/wear/src/com/google/android/clockwork/healthservices/BedtimeModeController.java 2450*/ 2451message BedtimeModeStateChanged { 2452 enum BedTimeModeState { 2453 BEDTIME_OFF = 0; 2454 BEDTIME_ON = 1; 2455 } 2456 // Log the bedtime mode state 2457 optional BedTimeModeState bedtime_mode_state = 1; 2458 enum State { 2459 OFF = 0; 2460 ON = 1; 2461 } 2462 // Current Wifi state when bedtime mode is toggled 2463 optional State current_wifi_state = 2; 2464 2465 // Current LTE state when bedtime mode is toggled 2466 optional State current_cellular_state = 3; 2467 2468 // Current BT state when bedtime mode is toggled 2469 optional State current_bluetooth_state = 4; 2470 2471 // Current Battery level. Should be in [0, 100]. 2472 optional int32 battery_level = 5; 2473} 2474 2475/** 2476 * Logs when memory stats of a process is reported. 2477 * 2478 * Logged from: 2479 * frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java 2480 */ 2481message ProcessMemoryStatReported { 2482 optional int32 uid = 1 [(is_uid) = true]; 2483 optional string process_name = 2; 2484 optional string package_name = 3; 2485 //TODO: remove this when validation is done 2486 optional int64 version = 9; 2487 optional int64 pss = 4; 2488 optional int64 uss = 5; 2489 optional int64 rss = 6; 2490 enum Type { 2491 ADD_PSS_INTERNAL_SINGLE = 0; 2492 ADD_PSS_INTERNAL_ALL_MEM = 1; 2493 ADD_PSS_INTERNAL_ALL_POLL = 2; 2494 ADD_PSS_EXTERNAL = 3; 2495 ADD_PSS_EXTERNAL_SLOW = 4; 2496 } 2497 optional Type type = 7; 2498 optional int64 duration_millis = 8; 2499 2500 // The types of the components this process is hosting at the moment this 2501 // snapshot is taken. 2502 // See the available types in HostingComponentType in AppProtoEnums. 2503 optional int32 current_hosting_component_types = 10; 2504 2505 // The historical types of the components this process is or was hosting 2506 // since it's born. 2507 // See the available types in HostingComponentType in AppProtoEnums. 2508 optional int32 historical_hosting_component_types = 11; 2509} 2510 2511/** 2512 * Logs that a process started, finished, crashed, or ANRed. 2513 * 2514 * Logged from: 2515 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java 2516 */ 2517message ProcessLifeCycleStateChanged { 2518 optional int32 uid = 1 [(is_uid) = true]; 2519 2520 // The process name (usually same as the app name). 2521 optional string process_name = 2; 2522 2523 // What lifecycle state the process changed to. 2524 // This enum is specific to atoms.proto. 2525 enum State { 2526 FINISHED = 0; 2527 STARTED = 1; 2528 CRASHED = 2; 2529 } 2530 optional State state = 3; 2531} 2532 2533/** 2534 * Logs when the ble scan state changes. 2535 * 2536 * Logged from: 2537 * packages/apps/Bluetooth/src/com/android/bluetooth/le_scan/AppScanStats.java 2538 */ 2539message BleScanStateChanged { 2540 repeated AttributionNode attribution_node = 1 2541 [(state_field_option).primary_field_first_uid = true]; 2542 2543 enum State { 2544 OFF = 0; 2545 ON = 1; 2546 // RESET indicates all ble stopped. Used when it (re)starts (e.g. after it crashes). 2547 RESET = 2; 2548 } 2549 optional State state = 2 [ 2550 (state_field_option).exclusive_state = true, 2551 (state_field_option).default_state_value = 0 /* State.OFF */, 2552 (state_field_option).trigger_state_reset_value = 2 /* State.RESET */, 2553 (state_field_option).nested = true 2554 ]; 2555 2556 // Does the scan have a filter. 2557 optional bool is_filtered = 3 [(state_field_option).primary_field = true]; 2558 // Whether the scan is a CALLBACK_TYPE_FIRST_MATCH scan. Called 'background' scan internally. 2559 optional bool is_first_match = 4 [(state_field_option).primary_field = true]; 2560 // Whether the scan set to piggy-back off the results of other scans (SCAN_MODE_OPPORTUNISTIC). 2561 optional bool is_opportunistic = 5 [(state_field_option).primary_field = true]; 2562} 2563 2564/** 2565 * Logs reporting of a ble scan finding results. 2566 * 2567 * Logged from: 2568 * packages/apps/Bluetooth/src/com/android/bluetooth/le_scan/AppScanStats.java 2569 */ 2570// TODO: Consider also tracking per-scanner-id. 2571message BleScanResultReceived { 2572 repeated AttributionNode attribution_node = 1; 2573 2574 // Number of ble scan results returned. 2575 optional int32 num_results = 2; 2576} 2577 2578/** 2579 * Logs when a sensor state changes. 2580 * 2581 * Logged from: 2582 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java 2583 */ 2584message SensorStateChanged { 2585 repeated AttributionNode attribution_node = 1; 2586 2587 // The id (int) of the sensor. 2588 optional int32 sensor_id = 2; 2589 2590 enum State { 2591 OFF = 0; 2592 ON = 1; 2593 } 2594 optional State state = 3; 2595} 2596 2597/** 2598 * Logs when GPS signal quality. 2599 * 2600 * Logged from: 2601 * /frameworks/base/location/java/com/android/internal/location/gnssmetrics/GnssMetrics.java 2602 */ 2603message GpsSignalQualityChanged { 2604 optional android.server.location.GpsSignalQualityEnum level = 1; 2605} 2606 2607 2608/** 2609 * Logs when a sync manager sync state changes. 2610 * 2611 * Logged from: 2612 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java 2613 */ 2614message SyncStateChanged { 2615 repeated AttributionNode attribution_node = 1; 2616 2617 // Name of the sync (as named in the app). Can be chosen at run-time. 2618 optional string sync_name = 2; 2619 2620 enum State { 2621 OFF = 0; 2622 ON = 1; 2623 } 2624 optional State state = 3; 2625} 2626 2627/* 2628 * Deferred job stats. 2629 * 2630 * Logged from: 2631 * frameworks/base/services/core/java/com/android/server/job/JobSchedulerService.java 2632*/ 2633message DeferredJobStatsReported { 2634 repeated AttributionNode attribution_node = 1; 2635 2636 // Number of jobs deferred. 2637 optional int32 num_jobs_deferred = 2; 2638 2639 // Time since the last job runs. 2640 optional int64 time_since_last_job_millis = 3; 2641} 2642 2643/** 2644 * Logs when a job scheduler job state changes. 2645 * 2646 * Logged from: 2647 * frameworks/base/services/core/java/com/android/server/job/JobSchedulerService.java 2648 * frameworks/base/services/core/java/com/android/server/job/JobServiceContext.java 2649 * 2650 * Next tag: 57 2651 */ 2652message ScheduledJobStateChanged { 2653 repeated AttributionNode attribution_node = 1; 2654 2655 // Name of the job (as named in the app) 2656 optional string job_name = 2; 2657 2658 enum State { 2659 // A job started executing (passed through the STARTED state) and has finished. 2660 FINISHED = 0; 2661 // A scheduled job has just started executing. 2662 STARTED = 1; 2663 // An app just scheduled this job to be executed at some point in the future. 2664 SCHEDULED = 2; 2665 // The job was SCHEDULED but cancelled before it started executing (so it never went 2666 // through the STARTED state). 2667 CANCELLED = 3; 2668 } 2669 optional State state = 3; 2670 2671 // The internal reason a job has stopped. 2672 // This is only applicable when the state is FINISHED. 2673 // The default value is INTERNAL_STOP_REASON_UNKNOWN. 2674 optional android.app.job.InternalStopReasonEnum internal_stop_reason = 4; 2675 2676 // The publicly returned reason onStopJob() was called. 2677 // This is only applicable when the state is FINISHED, but may be undefined if 2678 // JobService.onStopJob() was never called for the job. 2679 // The default value is STOP_REASON_UNDEFINED. 2680 optional android.app.job.StopReasonEnum public_stop_reason = 17; 2681 2682 // The standby bucket of the app that scheduled the job. These match the framework constants 2683 // defined in JobSchedulerService.java with the addition of UNKNOWN using -1, as ACTIVE is 2684 // already assigned 0. 2685 enum Bucket { 2686 UNKNOWN = -1; 2687 ACTIVE = 0; 2688 WORKING_SET = 1; 2689 FREQUENT = 2; 2690 RARE = 3; 2691 NEVER = 4; 2692 RESTRICTED = 5; 2693 EXEMPTED = 6; 2694 } 2695 optional Bucket standby_bucket = 5 [default = UNKNOWN]; 2696 2697 // On T- builds, this is the job id (as assigned by the app). 2698 // On U+ builds, this is generated by the system, factoring in the job's namespace. 2699 optional int64 job_id = 6; 2700 2701 // One flag for each of the API constraints defined by JobScheduler. Does not include implicit 2702 // constraints as they are always assumed to be set. 2703 optional bool has_charging_constraint = 7; 2704 optional bool has_battery_not_low_constraint = 8; 2705 optional bool has_storage_not_low_constraint = 9; 2706 optional bool has_timing_delay_constraint = 10; 2707 optional bool has_deadline_constraint = 11; 2708 optional bool has_idle_constraint = 12; 2709 optional bool has_connectivity_constraint = 13; 2710 optional bool has_content_trigger_constraint = 14; 2711 optional bool is_prefetch = 18; 2712 optional bool is_periodic = 34; 2713 optional bool has_flex_constraint = 47; 2714 2715 // True if the app has requested this run as an expedited job. 2716 optional bool is_requested_expedited_job = 15; 2717 // True if the job is running as an expedited job. Only valid for STARTED and FINISHED states. 2718 optional bool is_running_as_expedited_job = 16; 2719 2720 // True if the app has requested this run as a user initiated job. 2721 optional bool is_requested_as_user_initiated_job = 32; 2722 // True if the job is running as a user initiated job. Only valid for STARTED/FINISHED states. 2723 optional bool is_running_as_user_initiated_job = 33; 2724 2725 // The priority set by the app (via JobInfo.Builder.setPriority()). 2726 optional int32 requested_priority = 19; 2727 // The priority JobScheduler ran the job at. Only valid for STARTED and FINISHED states. 2728 optional int32 effective_priority = 20; 2729 2730 // Number of times JobScheduler has tried to run this particular job. This value is incremented 2731 // when a job is stopped and rescheduled for various reasons (lost network, constraints no 2732 // longer satisfied, etc). For periodic jobs, this value is reset after a successful run. 2733 optional int32 num_previous_attempts = 21; 2734 2735 // The deadline that the Job has requested. 2736 // This is only valid if has_deadline_constraint is true. 2737 optional int64 deadline_ms = 22; 2738 2739 // The delay that the Job has requested. 2740 // This is only valid if has_timing_delay_constraint is true. 2741 optional int64 delay_ms = 35; 2742 2743 // True if the Job hit its deadline 2744 optional bool is_deadline_constraint_satisfied = 23; 2745 2746 optional bool is_charging_constraint_satisfied = 24; 2747 2748 optional bool is_battery_not_low_constraint_satisfied = 25; 2749 2750 optional bool is_storage_not_low_constraint_satisfied = 26; 2751 2752 optional bool is_timing_delay_constraint_satisfied = 27; 2753 2754 optional bool is_idle_constraint_satisfied = 28; 2755 2756 optional bool is_connectivity_constraint_satisfied = 29; 2757 2758 optional bool is_content_trigger_constraint_satisfied = 30; 2759 2760 optional bool is_flex_constraint_satisfied = 48; 2761 2762 // The amount of time that elapsed between the job being scheduled (state = SCHEDULED) 2763 // and it being started (state = STARTED). Persisted jobs loaded at boot are considered 2764 // to be scheduled at boot, so all values are within the current boot cycle. Periodic 2765 // and other rescheduled jobs are considered to be newly scheduled and therefore this 2766 // value reflects the time since the most recent (re)schedule. 2767 // This is only valid for the STARTED and FINISHED states. 2768 optional int64 job_start_latency_ms = 31; 2769 2770 // The amount of data the app estimated it would download. 2771 // This is only valid if has_connectivity_constraint is true. 2772 // If the job has JobWorkItems attached, this value will include the estimates from the items. 2773 optional int64 estimated_download_bytes = 36; 2774 2775 // The amount of data the app estimated it would upload. 2776 // This is only valid if has_connectivity_constraint is true. 2777 // If the job has JobWorkItems attached, this value will include the estimates from the items. 2778 optional int64 estimated_upload_bytes = 37; 2779 2780 // The number of JobWorkItems the app has attached to this job but not completed 2781 // (by calling JobParameters.completeWork()). 2782 optional int32 num_uncompleted_work_items = 38; 2783 2784 // Proc state of the UID of the logged event 2785 optional android.app.ProcessStateEnum proc_state = 39 [default = PROCESS_STATE_UNKNOWN]; 2786 2787 // Hash of the namespace set via JobScheduler.forNamespace(String). 2788 optional string namespace_hash = 40; 2789 2790 // System estimated/measured bytes that the job 2791 // downloaded over its runtime. Only valid for FINISHED 2792 // state. We measure here for the SOURCE UID 2793 optional int64 system_measured_source_download_bytes = 41; 2794 2795 // System estimated/measured uploaded bytes that the job 2796 // uploaded over its runtime. Only valid for FINISHED 2797 // state. We measure here for the SOURCE UID 2798 optional int64 system_measured_source_upload_bytes = 42; 2799 2800 // System estimated/measured bytes that the job 2801 // downloaded over its runtime. Only valid for FINISHED 2802 // state. We measure here for the CALLING UID 2803 optional int64 system_measured_calling_download_bytes = 43; 2804 2805 // System estimated/measured uploaded bytes that the job 2806 // uploaded over its runtime. Only valid for FINISHED 2807 // state. We measure here for the CALLING UID 2808 optional int64 system_measured_calling_upload_bytes = 44; 2809 2810 // Interval for the job to recur when it is set as periodic. 2811 // Valid only if is_periodic is true 2812 optional int64 periodic_job_interval_ms = 45; 2813 2814 // Flex interval for the periodic job. This value is set via the second 2815 // parameter of JobInfo.Builder.setPeriodic(long, long). The job can 2816 // execute at any time in a window flex length at the end of the period. 2817 // Valid only if is_periodic is true 2818 optional int64 periodic_job_flex_interval_ms = 46; 2819 2820 // Whether transport preference logic can be applied to this job with flex policy 2821 optional bool can_apply_transport_affinities = 49; 2822 2823 // The number of flexible job constraints being applied to the job. 2824 // num_required_flex_constraints = num_applied_flex_constraints - num_dropped_flex_constraints. 2825 optional int32 num_applied_flex_constraints = 50; 2826 2827 // The number of required flexible job constraints that have been dropped for this job. 2828 // num_required_flex_constraints = num_applied_flex_constraints - num_dropped_flex_constraints. 2829 optional int32 num_dropped_flex_constraints = 51; 2830 2831 // Trace tag set via JobInfo.Builder.setTraceTag(). Basic PII filtering has been applied, 2832 // but further filtering should be done by clients. 2833 optional string filtered_trace_tag = 52; 2834 2835 // Set of tags set by the app to characterize the work being done. Set via 2836 // JobInfo.Builder.addDebugTag(). Basic PII filtering has been applied, 2837 // but further filtering should be done by clients. 2838 repeated string filtered_debug_tags = 53; 2839 2840 // Number of reschedules due to job being abandoned. 2841 optional int32 num_reschedules_due_to_abandonment = 54; 2842 2843 // Back off policy applied to the job that gets rescheduled. 2844 // This is defined in JobInfo.java (See JobInfo.BACKOFF_POLICY_*). 2845 enum BackOffPolicyType { 2846 UNKNOWN_POLICY = 0; 2847 LINEAR = 1; 2848 EXPONENTIAL = 2; 2849 } 2850 // Back off policy applied to the job that gets rescheduled. 2851 optional BackOffPolicyType back_off_policy_type = 55; 2852 // Is back off policy restriction applied due to abandoned job. 2853 optional bool is_back_off_policy_restriction_applied = 56; 2854} 2855 2856/** 2857 * Logs when the audio state changes. 2858 * 2859 * Logged from: 2860 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java 2861 */ 2862message AudioStateChanged { 2863 repeated AttributionNode attribution_node = 1; 2864 2865 enum State { 2866 OFF = 0; 2867 ON = 1; 2868 // RESET indicates all audio stopped. Used when it (re)starts (e.g. after it crashes). 2869 RESET = 2; 2870 } 2871 optional State state = 2; 2872} 2873 2874/** 2875 * Logs when the video codec state changes. 2876 * 2877 * Logged from: 2878 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java 2879 */ 2880message MediaCodecStateChanged { 2881 repeated AttributionNode attribution_node = 1; 2882 2883 enum State { 2884 OFF = 0; 2885 ON = 1; 2886 // RESET indicates all mediaCodec stopped. Used when it (re)starts (e.g. after it crashes). 2887 RESET = 2; 2888 } 2889 optional State state = 2; 2890} 2891 2892/** 2893 * Logs when the flashlight state changes. 2894 * 2895 * Logged from: 2896 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java 2897 */ 2898message FlashlightStateChanged { 2899 repeated AttributionNode attribution_node = 1; 2900 2901 enum State { 2902 OFF = 0; 2903 ON = 1; 2904 // RESET indicates all flashlight stopped. Used when it (re)starts (e.g. after it crashes). 2905 RESET = 2; 2906 } 2907 optional State state = 2; 2908} 2909 2910/** 2911 * Logs when the camera state changes. 2912 * 2913 * Logged from: 2914 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java 2915 */ 2916message CameraStateChanged { 2917 repeated AttributionNode attribution_node = 1; 2918 2919 enum State { 2920 OFF = 0; 2921 ON = 1; 2922 // RESET indicates all camera stopped. Used when it (re)starts (e.g. after it crashes). 2923 RESET = 2; 2924 } 2925 optional State state = 2; 2926} 2927 2928/** 2929 * Logs that the state of a wakelock (per app and per wakelock name) has changed. 2930 * 2931 * Logged from: 2932 * TODO 2933 */ 2934message WakelockStateChanged { 2935 repeated AttributionNode attribution_node = 1 2936 [(state_field_option).primary_field_first_uid = true]; 2937 2938 // The type (level) of the wakelock; e.g. a partial wakelock or a full wakelock. 2939 // From frameworks/proto_logging/stats/enums/os/enums.proto. 2940 optional android.os.WakeLockLevelEnum type = 2 [(state_field_option).primary_field = true]; 2941 2942 // The wakelock tag (Called tag in the Java API, sometimes name elsewhere). 2943 optional string tag = 3 [(state_field_option).primary_field = true]; 2944 2945 enum State { 2946 RELEASE = 0; 2947 ACQUIRE = 1; 2948 CHANGE_RELEASE = 2; 2949 CHANGE_ACQUIRE = 3; 2950 } 2951 optional State state = 4 [ 2952 (state_field_option).exclusive_state = true, 2953 (state_field_option).default_state_value = 0, 2954 (state_field_option).nested = true 2955 ]; 2956 2957 optional android.app.ProcessStateEnum process_state = 5 [default = PROCESS_STATE_UNKNOWN]; 2958} 2959 2960/** 2961 * Logs when a partial wakelock is considered 'long' (over 1 min). 2962 * 2963 * Logged from: 2964 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java 2965 */ 2966message LongPartialWakelockStateChanged { 2967 repeated AttributionNode attribution_node = 1; 2968 2969 // The wakelock tag (Called tag in the Java API, sometimes name elsewhere). 2970 optional string tag = 2; 2971 2972 // TODO: I have no idea what this is. 2973 optional string history_tag = 3; 2974 2975 enum State { 2976 OFF = 0; 2977 ON = 1; 2978 } 2979 optional State state = 4; 2980} 2981 2982/** 2983 * Logs when the device is interactive, according to the PowerManager Notifier. 2984 * 2985 * Logged from: 2986 * frameworks/base/services/core/java/com/android/server/power/Notifier.java 2987 */ 2988message InteractiveStateChanged { 2989 enum State { 2990 OFF = 0; 2991 ON = 1; 2992 } 2993 optional State state = 1 2994 [(state_field_option).exclusive_state = true, (state_field_option).nested = false]; 2995} 2996 2997/** 2998 * Logs Battery Saver state change. 2999 * 3000 * Logged from: 3001 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java 3002 */ 3003message BatterySaverModeStateChanged { 3004 enum State { 3005 OFF = 0; 3006 ON = 1; 3007 } 3008 optional State state = 1 3009 [(state_field_option).exclusive_state = true, (state_field_option).nested = false]; 3010} 3011 3012/** 3013 * Logs Doze mode state change. 3014 * 3015 * Logged from: 3016 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java 3017 */ 3018message DeviceIdleModeStateChanged { 3019 optional android.server.DeviceIdleModeEnum state = 1 3020 [(state_field_option).exclusive_state = true, (state_field_option).nested = false]; 3021} 3022 3023 3024/** 3025 * Logs state change of Doze mode including maintenance windows. 3026 * 3027 * Logged from: 3028 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java 3029 */ 3030message DeviceIdlingModeStateChanged { 3031 optional android.server.DeviceIdleModeEnum state = 1 3032 [(state_field_option).exclusive_state = true, (state_field_option).nested = false]; 3033} 3034 3035/** 3036 * Logs screen brightness level. 3037 * 3038 * Logged from: 3039 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java 3040 */ 3041message ScreenBrightnessChanged { 3042 // Screen brightness level. Should be in [-1, 255] according to PowerManager.java. 3043 optional int32 level = 1; 3044} 3045 3046/** 3047 * Logs battery level (percent full, from 0 to 100). 3048 * 3049 * Logged from: 3050 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java 3051 */ 3052message BatteryLevelChanged { 3053 // Battery level. Should be in [0, 100]. 3054 optional int32 battery_level = 1; 3055} 3056 3057/** 3058 * Logs change in charging status of the device. 3059 * 3060 * Logged from: 3061 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java 3062 */ 3063message ChargingStateChanged { 3064 // State of the battery, from frameworks/proto_logging/stats/enums/os/enums.proto. 3065 optional android.os.BatteryStatusEnum state = 1 3066 [(state_field_option).exclusive_state = true, (state_field_option).nested = false]; 3067} 3068 3069/** 3070 * Logs whether the device is plugged in, and what power source it is using. 3071 * 3072 * Logged from: 3073 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java 3074 */ 3075message PluggedStateChanged { 3076 // Whether the device is plugged in, from frameworks/proto_logging/stats/enums/os/enums.proto. 3077 optional android.os.BatteryPluggedStateEnum state = 1 3078 [(state_field_option).exclusive_state = true, (state_field_option).nested = false]; 3079} 3080 3081/** 3082 * Logs whether the device is docked, and what type of dock it is using. 3083 * 3084 * Logged from: 3085 * services/core/java/com/android/server/power/PowerManagerService.java 3086 */ 3087message DockStateChanged { 3088 // The device dock state, from frameworks/proto_logging/stats/enums/server/enums.proto. 3089 optional android.server.DockStateEnum state = 1 3090 [(state_field_option).exclusive_state = true, (state_field_option).nested = false]; 3091} 3092 3093/** 3094 * Logs when an app's wakeup alarm fires. 3095 * 3096 * Logged from: 3097 * frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java 3098 */ 3099message WakeupAlarmOccurred { 3100 repeated AttributionNode attribution_node = 1; 3101 3102 // Name of the wakeup alarm. 3103 optional string tag = 2; 3104 3105 // Name of source package (for historical reasons, since BatteryStats tracked it). 3106 optional string package_name = 3; 3107 3108 // The App Standby bucket of the app that scheduled the alarm at the time the alarm fired. 3109 optional AppStandbyBucketChanged.Bucket app_standby_bucket = 4; 3110} 3111 3112/** 3113 * Logs when an an app causes the mobile radio to change state. 3114 * Changing from LOW to MEDIUM or HIGH can be considered the app waking the mobile radio. 3115 * 3116 * Logged from: 3117 * frameworks/base/services/core/java/com/android/server/NetworkManagementService.java 3118 */ 3119message MobileRadioPowerStateChanged { 3120 repeated AttributionNode attribution_node = 1; 3121 3122 // Power state, from frameworks/proto_logging/stats/enums/telephony/enums.proto. 3123 optional android.telephony.DataConnectionPowerStateEnum state = 2; 3124} 3125 3126/** 3127 * Logs when an an app causes the wifi radio to change state. 3128 * Changing from LOW to MEDIUM or HIGH can be considered the app waking the wifi radio. 3129 * 3130 * Logged from: 3131 * frameworks/base/services/core/java/com/android/server/NetworkManagementService.java 3132 */ 3133message WifiRadioPowerStateChanged { 3134 repeated AttributionNode attribution_node = 1; 3135 3136 // Power state, from frameworks/proto_logging/stats/enums/telephony/enums.proto. 3137 optional android.telephony.DataConnectionPowerStateEnum state = 2; 3138} 3139 3140/** 3141 * Logs kernel wakeup reasons and aborts. 3142 * 3143 * Logged from: 3144 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java 3145 */ 3146message KernelWakeupReported { 3147 // Name of the kernel wakeup reason (or abort). 3148 optional string wakeup_reason_name = 1; 3149 3150 // Duration (in microseconds) for the wake-up interrupt to be serviced. 3151 optional int64 duration_micros = 2; 3152 3153 // The elapsed time when this wake-up was reported. 3154 optional int64 elapsed_millis = 3; 3155} 3156 3157/** 3158 * Logs when Wifi is toggled on/off. 3159 * Note that Wifi may still perform certain functions (e.g. location scanning) even when disabled. 3160 * 3161 * Logged from: 3162 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java 3163 */ 3164message WifiEnabledStateChanged { 3165 enum State { 3166 OFF = 0; 3167 ON = 1; 3168 } 3169 optional State state = 1; 3170} 3171 3172/** 3173 * This atom is deprecated starting in R. 3174 * 3175 * Logs when an app causes Wifi to run. In this context, 'to run' means to use Wifi Client Mode. 3176 * TODO: Include support for Hotspot, perhaps by using an extra field to denote 'mode'. 3177 * Note that Wifi Scanning is monitored separately in WifiScanStateChanged. 3178 * 3179 * Logged from: 3180 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java 3181 */ 3182message WifiRunningStateChanged { 3183 repeated AttributionNode attribution_node = 1; 3184 3185 enum State { 3186 OFF = 0; 3187 ON = 1; 3188 } 3189 optional State state = 2; 3190} 3191 3192/** 3193 * Logs wifi locks held by an app. 3194 * 3195 * Logged from: 3196 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java 3197 */ 3198message WifiLockStateChanged { 3199 repeated AttributionNode attribution_node = 1; 3200 3201 enum State { 3202 OFF = 0; 3203 ON = 1; 3204 } 3205 optional State state = 2; 3206 3207 // WifiLock type, from frameworks/proto_logging/stats/enums/wifi/enums.proto. 3208 optional android.net.wifi.WifiModeEnum mode = 3; 3209} 3210 3211/** 3212 * Logs wifi signal strength changes. 3213 * 3214 * Logged from: 3215 * frameworks/opt/net/wifi/service/java/com/android/server/wifi/ClientModeImpl.java 3216 */ 3217message WifiSignalStrengthChanged { 3218 // Signal strength, from frameworks/proto_logging/stats/enums/telephony/enums.proto. 3219 optional android.telephony.SignalStrengthEnum signal_strength = 1 3220 [(state_field_option).exclusive_state = true, (state_field_option).nested = false]; 3221} 3222 3223/** 3224 * Logs wifi scans performed by an app. 3225 * 3226 * Logged from: 3227 * frameworks/opt/net/wifi/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java 3228 */ 3229message WifiScanStateChanged { 3230 repeated AttributionNode attribution_node = 1; 3231 3232 enum State { 3233 OFF = 0; 3234 ON = 1; 3235 } 3236 optional State state = 2; 3237} 3238 3239/** 3240 * Logs wifi multicast locks held by an app 3241 * 3242 * Logged from: 3243 * frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiMulticastLockManager.java 3244 */ 3245message WifiMulticastLockStateChanged { 3246 repeated AttributionNode attribution_node = 1; 3247 3248 enum State { 3249 OFF = 0; 3250 ON = 1; 3251 } 3252 optional State state = 2; 3253 3254 optional string tag = 3; 3255} 3256 3257/** 3258 * Logs shutdown reason and duration on next boot. 3259 * 3260 * Logged from: 3261 * frameworks/base/core/java/com/android/server/BootReceiver.java 3262 */ 3263message ShutdownSequenceReported { 3264 // True if shutdown is for a reboot. Default: false if we do not know. 3265 optional bool reboot = 1; 3266 3267 // Reason for shutdown. Eg: userrequested. Default: "<EMPTY>". 3268 optional string reason = 2; 3269 3270 // Beginning of shutdown time in ms using wall clock time since unix epoch. 3271 // Default: 0 if no start time received. 3272 optional int64 start_time_millis = 3; 3273 3274 // Duration of shutdown in ms. Default: 0 if no duration received. 3275 optional int64 duration_millis = 4; 3276} 3277 3278 3279/** 3280 * Logs boot reason and duration. 3281 * 3282 * Logged from: 3283 * system/core/bootstat/bootstat.cpp 3284 */ 3285message BootSequenceReported { 3286 // Reason for bootloader boot. Eg. reboot. See bootstat.cpp for larger list 3287 // Default: "<EMPTY>" if not available. 3288 optional string bootloader_reason = 1; 3289 3290 // Reason for system boot. Eg. bootloader, reboot,userrequested 3291 // Default: "<EMPTY>" if not available. 3292 optional string system_reason = 2; 3293 3294 // End of boot time in ms from unix epoch using system wall clock. 3295 optional int64 end_time_millis = 3; 3296 3297 // Total boot duration in ms. 3298 optional int64 total_duration_millis = 4; 3299 3300 // Bootloader duration in ms. 3301 optional int64 bootloader_duration_millis = 5; 3302 3303 // Time since last boot in ms. Default: 0 if not available. 3304 optional int64 time_since_last_boot = 6; 3305} 3306 3307 3308/** 3309 * Logs call state and disconnect cause (if applicable). 3310 * 3311 * Logged from: 3312 * packages/services/Telecomm/src/com/android/server/telecom/Call.java 3313 */ 3314message CallStateChanged { 3315 // The state of the call. Eg. DIALING, ACTIVE, ON_HOLD, DISCONNECTED. 3316 // From frameworks/proto_logging/stats/enums/telecomm/enums.proto. 3317 optional android.telecom.CallStateEnum call_state = 1; 3318 3319 // The reason the call disconnected. Eg. ERROR, MISSED, REJECTED, BUSY. 3320 // This value is only applicable when the call_state is DISCONNECTED, and 3321 // should always be UNKNOWN if the call_state is not DISCONNECTED. 3322 // From frameworks/proto_logging/stats/enums/telecomm/enums.proto. 3323 optional android.telecom.DisconnectCauseEnum disconnect_cause = 2; 3324 3325 // True if the call is self-managed, which are apps that use the 3326 // telecom infrastructure to make their own calls. 3327 optional bool self_managed = 3; 3328 3329 // True if call is external. External calls are calls on connected Wear 3330 // devices but show up in Telecom so the user can pull them onto the device. 3331 optional bool external_call = 4; 3332 3333 // True if call is emergency call. 3334 optional bool emergency_call = 5; 3335 3336 // UID of the package that has initiated the call. 3337 optional int32 uid = 6 [(is_uid) = true]; 3338 3339 // Elapsed time between CALL_STATE_ACTIVE to CALL_STATE_DISCONNECTED. 3340 // This value is only applicable when the call_state is DISCONNECTED, 3341 // 0 otherwise. 3342 optional int32 duration_seconds = 7; 3343 3344 // Number of all existing calls when this call is created. 3345 optional int32 existing_call_count = 8; 3346 3347 // Number of existing calls held by this call. 3348 // This value is set after a call is actually held, 0 otherwise. 3349 optional int32 held_call_count = 9; 3350 3351 // The reason the call hasn't been started by device condition. 3352 // This value is only applicable when the call_state is DISCONNECTED, 3353 // and should always be NONE if the call_state is not DISCONNECTED. 3354 // From frameworks/base/core/proto/android/telecomm/enums.proto. 3355 optional android.telecom.CallFailureCauseEnum start_fail_cause = 10; 3356} 3357 3358/* 3359 * Logs changes to the configuration of the device. The configuration is defined 3360 * in frameworks/base/core/java/android/content/res/Configuration.java 3361 * More documentation is at https://d.android.com/reference/android/content/res/Configuration.html 3362 * Please go there to interpret the possible values each field can be. 3363 * 3364 * Logged from: 3365 * frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java 3366 */ 3367message ResourceConfigurationChanged { 3368 // Bit mask of color capabilities of the screen. 3369 // Contains information about the color gamut and hdr mode of the screen. 3370 // See: https://d.android.com/reference/android/content/res/Configuration.html#colorMode 3371 optional int32 color_mode = 1; 3372 3373 // The target screen density being rendered to. 3374 // See: https://d.android.com/reference/android/content/res/Configuration.html#densityDpi 3375 optional int32 density_dpi = 2; 3376 3377 // Current user preference for the scaling factor for fonts, 3378 // relative to the base density scaling. 3379 // See: https://d.android.com/reference/android/content/res/Configuration.html#fontScale 3380 optional float font_scale = 3; 3381 3382 // Flag indicating whether the hard keyboard is hidden. 3383 // See: https://d.android.com/reference/android/content/res/Configuration.html#hardKeyboardHidden 3384 optional int32 hard_keyboard_hidden = 4; 3385 3386 // The type of keyboard attached to the device. 3387 // See: https://d.android.com/reference/android/content/res/Configuration.html#keyboard 3388 optional int32 keyboard = 5; 3389 3390 // Flag indicating whether any keyboard is available. Takes soft keyboards into account. 3391 // See: https://d.android.com/reference/android/content/res/Configuration.html#keyboardHidden 3392 optional int32 keyboard_hidden = 6; 3393 3394 // IMSI MCC (Mobile Country Code), corresponding to mcc resource qualifier. 3395 // 0 if undefined. 3396 // See: https://d.android.com/reference/android/content/res/Configuration.html#mcc 3397 optional int32 mcc = 7; 3398 3399 // IMSI MNC (Mobile Network Code), corresponding to mnc resource qualifier. 3400 // 0 if undefined. Note: the actual MNC may be 0, to check for this use the 3401 // MNC_ZERO symbol defined in Configuration.java. 3402 // See: https://d.android.com/reference/android/content/res/Configuration.html#mnc 3403 optional int32 mnc = 8; 3404 3405 // The kind of navigation available on the device. 3406 // See: https://developer.android.com/reference/android/content/res/Configuration.html#navigation 3407 optional int32 navigation = 9; 3408 3409 // Flag indicating whether the navigation is available. 3410 // See: https://d.android.com/reference/android/content/res/Configuration.html#navigationHidden 3411 optional int32 navigation_hidden = 10; 3412 3413 // Overall orientation of the screen. 3414 // See: https://d.android.com/reference/android/content/res/Configuration.html#orientation 3415 optional int32 orientation = 11; 3416 3417 // The current height of the available screen space, in dp units. 3418 // See: https://d.android.com/reference/android/content/res/Configuration.html#screenHeightDp 3419 optional int32 screen_height_dp = 12; 3420 3421 // Bit mask of overall layout of the screen. 3422 // Contains information about screen size, whether the screen is wider/taller 3423 // than normal, whether the screen layout is right-tl-left or left-to-right, 3424 // and whether the screen has a rounded shape. 3425 // See: https://d.android.com/reference/android/content/res/Configuration.html#screenLayout 3426 optional int32 screen_layout = 13; 3427 3428 // Current width of the available screen space, in dp units. 3429 // See: https://d.android.com/reference/android/content/res/Configuration.html#screenWidthDp 3430 optional int32 screen_width_dp = 14; 3431 3432 // The smallest screen size an application will see in normal operation. 3433 // This is the smallest value of both screenWidthDp and screenHeightDp 3434 // in portrait and landscape. 3435 // See: https://d.android.com/reference/android/content/res/Configuration.html#smallestScreenWidthDp 3436 optional int32 smallest_screen_width_dp = 15; 3437 3438 // The type of touch screen attached to the device. 3439 // See: https://d.android.com/reference/android/content/res/Configuration.html#touchscreen 3440 optional int32 touchscreen = 16; 3441 3442 // Bit mask of the ui mode. 3443 // Contains information about the overall ui mode of the device. 3444 // Eg: NORMAL, DESK, CAR, TELEVISION, WATCH, VR_HEADSET 3445 // Also contains information about whether the device is in night mode. 3446 // See: https://d.android.com/reference/android/content/res/Configuration.html#uiMode 3447 optional int32 ui_mode = 17; 3448} 3449 3450 3451/** 3452 * Logs changes in the connection state of the mobile radio. 3453 * 3454 * Logged from: 3455 * frameworks/opt/telephony/src/java/com/android/internal/telephony/dataconnection/DataConnection.java 3456 */ 3457message MobileConnectionStateChanged { 3458 // States are from the state machine DataConnection.java. 3459 enum State { 3460 UNKNOWN = 0; 3461 // The connection is inactive, or disconnected. 3462 INACTIVE = 1; 3463 // The connection is being activated, or connecting. 3464 ACTIVATING = 2; 3465 // The connection is active, or connected. 3466 ACTIVE = 3; 3467 // The connection is disconnecting. 3468 DISCONNECTING = 4; 3469 // The connection is disconnecting after creating a connection. 3470 DISCONNECTION_ERROR_CREATING_CONNECTION = 5; 3471 } 3472 optional State state = 1; 3473 // For multi-sim phones, this distinguishes between the sim cards. 3474 optional int32 sim_slot_index = 2; 3475 // Used to identify the connection. Starts at 0 and increments by 1 for 3476 // every new network created. Resets whenever the device reboots. 3477 optional int32 data_connection_id = 3; 3478 // A bitmask for the capabilities of this connection. 3479 // Eg. DEFAULT (internet), MMS, SUPL, DUN, IMS. 3480 // Default value (if we have no information): 0 3481 optional int64 capabilities = 4; 3482 // If this connection has internet. 3483 // This just checks if the DEFAULT bit of capabilities is set. 3484 optional bool has_internet = 5; 3485} 3486 3487/** 3488 * Logs changes in mobile radio technology. eg: LTE, EDGE, CDMA. 3489 * 3490 * Logged from: 3491 * frameworks/opt/telephony/src/java/com/android/internal/telephony/ServiceStateTracker.java 3492 */ 3493message MobileRadioTechnologyChanged { 3494 optional android.telephony.NetworkTypeEnum state = 1; 3495 // For multi-sim phones, this distinguishes between the sim cards. 3496 optional int32 sim_slot_index = 2; 3497} 3498 3499/** 3500 * Logs the VID and PID of any connected USB devices. 3501 * 3502 * Notes if any Audio, HID (input buttons/mouse/keyboard), or Storage interfaces are present. 3503 * 3504 * Logged by Vendor. 3505 */ 3506message UsbDeviceAttached { 3507 optional int32 vid = 1; 3508 optional int32 pid = 2; 3509 optional bool has_audio = 3; 3510 optional bool has_hid = 4; 3511 optional bool has_storage = 5; 3512 enum State { 3513 STATE_DISCONNECTED = 0; 3514 STATE_CONNECTED = 1; 3515 } 3516 optional State state = 6; 3517 optional int64 last_connect_duration_millis = 7; 3518} 3519 3520 3521/** 3522 * Logs when Bluetooth is enabled and disabled. 3523 * 3524 * Logged from: 3525 * services/core/java/com/android/server/BluetoothManagerService.java 3526 */ 3527message BluetoothEnabledStateChanged { 3528 repeated AttributionNode attribution_node = 1; 3529 // Whether or not bluetooth is enabled on the device. 3530 enum State { 3531 UNKNOWN = 0; 3532 ENABLED = 1; 3533 DISABLED = 2; 3534 } 3535 optional State state = 2; 3536 // The reason for being enabled/disabled. 3537 // Eg. Airplane mode, crash, application request. 3538 optional android.bluetooth.EnableDisableReasonEnum reason = 3; 3539 // If the reason is an application request, this will be the package name. 3540 optional string pkg_name = 4; 3541 // Previous state. Default: UNKNOWN if there is no previous state. 3542 optional State previous_state = 5; 3543 // Timedelta in milliseconds since the last state changed. 3544 // Default: 0 if there is no previous state. 3545 optional int64 time_since_last_changed_millis = 6; 3546} 3547 3548/** 3549 * Logs when profiles on a Bluetooth device connects and disconnects. 3550 * 3551 * Logged from: 3552 * packages/apps/Bluetooth/src/com/android/bluetooth/btservice/RemoteDevices.java 3553 * 3554 * Next Tag: 6 3555 */ 3556message BluetoothConnectionStateChanged { 3557 // The state of the connection. 3558 // Eg: CONNECTING, CONNECTED, DISCONNECTING, DISCONNECTED. 3559 optional android.bluetooth.ConnectionStateEnum state = 1; 3560 // An identifier that can be used to match connect and disconnect events. 3561 // Currently is last two bytes of a hash of a device level ID and 3562 // the mac address of the bluetooth device that is connected. 3563 // Deprecated: use obfuscated_id instead, this one is always 0 for Q+ 3564 optional int32 obfuscated_id = 2 [deprecated = true]; 3565 // The profile that is connected. Eg. GATT, A2DP, HEADSET. 3566 // From android.bluetooth.BluetoothAdapter.java 3567 // Default: 0 when not used 3568 optional int32 bt_profile = 3; 3569 // An identifier that can be used to match events for this device. 3570 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 3571 // Salt: Randomly generated 256 bit value 3572 // Hash algorithm: HMAC-SHA256 3573 // Size: 32 byte 3574 // Default: null or empty if the device identifier is not known 3575 optional bytes new_obfuscated_id = 4 [(android.os.statsd.log_mode) = MODE_BYTES]; 3576 // An identifier that can be used to match events for this device. 3577 // The incremental identifier is locally generated and guaranteed not derived 3578 // from any globally unique hardware id. 3579 // For paired devices, it stays consistent between Bluetooth toggling for the 3580 // same remote device. 3581 // For unpaired devices, it stays consistent within the same Bluetooth adapter 3582 // session for the same remote device. 3583 // Default: 0 if the device's metric id is unknown. 3584 optional int32 metric_id = 5; 3585 // An index to group connection events by session. It's a counter generated by 3586 // each profile. e.g. Gatt server generate such id to identify Gatt apps 3587 optional int32 session_index = 6; 3588 // An identifier that indicates the connection failure reason 3589 optional int32 connection_reason = 7; 3590} 3591 3592/** 3593 * Logs when a Bluetooth device connects and disconnects over ACL 3594 * 3595 * Logged from: 3596 * packages/apps/Bluetooth/src/com/android/bluetooth/btservice/AdapterProperties.java 3597 * 3598 * Next Tag: 4 3599 */ 3600message BluetoothAclConnectionStateChanged { 3601 // An identifier that can be used to match events for this device. 3602 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 3603 // Salt: Randomly generated 256 bit value 3604 // Hash algorithm: HMAC-SHA256 3605 // Size: 32 byte 3606 // Default: null or empty if the device identifier is not known 3607 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 3608 // The state of the connection. 3609 // Eg: CONNECTING, CONNECTED, DISCONNECTING, DISCONNECTED. 3610 optional android.bluetooth.ConnectionStateEnum state = 2; 3611 // An identifier that can be used to match events for this device. 3612 // The incremental identifier is locally generated and guaranteed not derived 3613 // from any globally unique hardware id. 3614 // For paired devices, it stays consistent between Bluetooth toggling for the 3615 // same remote device. 3616 // For unpaired devices, it stays consistent within the same Bluetooth adapter 3617 // session for the same remote device. 3618 // Default: 0 if the device's metric id is unknown. 3619 optional int32 metric_id = 3; 3620 // Used transport of this event. 3621 optional android.bluetooth.TransportTypeEnum transport = 4; 3622} 3623 3624/** 3625 * Logs when a Bluetooth device connects and disconnects over SCO 3626 * 3627 * Logged from: 3628 * packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java 3629 * packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetClientStateMachine.java 3630 * 3631 * Next Tag: 5 3632 */ 3633message BluetoothScoConnectionStateChanged { 3634 // An identifier that can be used to match events for this device. 3635 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 3636 // Salt: Randomly generated 256 bit value 3637 // Hash algorithm: HMAC-SHA256 3638 // Size: 32 byte 3639 // Default: null or empty if the device identifier is not known 3640 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 3641 // The state of the connection. 3642 // Eg: CONNECTING, CONNECTED, DISCONNECTING, DISCONNECTED. 3643 optional android.bluetooth.ConnectionStateEnum state = 2; 3644 // Codec used for this SCO connection 3645 // Default: UNKNOWN 3646 optional android.bluetooth.hfp.ScoCodec codec = 3; 3647 // An identifier that can be used to match events for this device. 3648 // The incremental identifier is locally generated and guaranteed not derived 3649 // from any globally unique hardware id. 3650 // For paired devices, it stays consistent between Bluetooth toggling for the 3651 // same remote device. 3652 // For unpaired devices, it stays consistent within the same Bluetooth adapter 3653 // session for the same remote device. 3654 // Default: 0 if the device's metric id is unknown. 3655 optional int32 metric_id = 4; 3656} 3657 3658/** 3659 * Logged when active device of a profile changes 3660 * 3661 * Logged from: 3662 * packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpService.java 3663 * packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetService.java 3664 * packages/apps/Bluetooth/src/com/android/bluetooth/hearingaid/HearingAidService.java 3665 */ 3666message BluetoothActiveDeviceChanged { 3667 // The profile whose active device has changed. Eg. A2DP, HEADSET, HEARING_AID 3668 // From android.bluetooth.BluetoothProfile 3669 optional int32 bt_profile = 1; 3670 // An identifier that can be used to match events for this new active device. 3671 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 3672 // Salt: Randomly generated 256 bit value 3673 // Hash algorithm: HMAC-SHA256 3674 // Size: 32 byte 3675 // Default: null or empty if there is no active device for this profile 3676 optional bytes obfuscated_id = 2 [(android.os.statsd.log_mode) = MODE_BYTES]; 3677 // An identifier that can be used to match events for this device. 3678 // The incremental identifier is locally generated and guaranteed not derived 3679 // from any globally unique hardware id. 3680 // For paired devices, it stays consistent between Bluetooth toggling for the 3681 // same remote device. 3682 // For unpaired devices, it stays consistent within the same Bluetooth adapter 3683 // session for the same remote device. 3684 // Default: 0 if the device's metric id is unknown. 3685 optional int32 metric_id = 3; 3686} 3687 3688// Logs when there is an event affecting Bluetooth device's link layer connection. 3689// - This event is triggered when there is a related HCI command or event 3690// - Users of this metrics can deduce Bluetooth device's connection state from these events 3691// - HCI commands are logged before the command is sent, after receiving command status, and after 3692// receiving command complete 3693// - HCI events are logged when they arrive 3694// 3695// Low level log from system/bt 3696// 3697// Bluetooth classic commands: 3698// - CMD_CREATE_CONNECTION 3699// - CMD_DISCONNECT 3700// - CMD_CREATE_CONNECTION_CANCEL 3701// - CMD_ACCEPT_CONNECTION_REQUEST 3702// - CMD_REJECT_CONNECTION_REQUEST 3703// - CMD_SETUP_ESCO_CONNECTION 3704// - CMD_ACCEPT_ESCO_CONNECTION 3705// - CMD_REJECT_ESCO_CONNECTION 3706// - CMD_ENH_SETUP_ESCO_CONNECTION 3707// - CMD_ENH_ACCEPT_ESCO_CONNECTION 3708// 3709// Bluetooth low energy commands: 3710// - CMD_BLE_CREATE_LL_CONN [Only logged on error or when initiator filter policy is 0x00] 3711// - CMD_BLE_CREATE_CONN_CANCEL [Only logged when there is an error] 3712// - CMD_BLE_EXTENDED_CREATE_CONNECTION [Only logged on error or when initiator filter policy is 0x00] 3713// - CMD_BLE_CLEAR_WHITE_LIST 3714// - CMD_BLE_ADD_WHITE_LIST 3715// - CMD_BLE_REMOVE_WHITE_LIST 3716// 3717// Bluetooth classic events: 3718// - EVT_CONNECTION_COMP 3719// - EVT_CONNECTION_REQUEST 3720// - EVT_DISCONNECTION_COMP 3721// - EVT_ESCO_CONNECTION_COMP 3722// - EVT_ESCO_CONNECTION_CHANGED 3723// 3724// Bluetooth low energy meta events: 3725// - BLE_EVT_CONN_COMPLETE_EVT 3726// - BLE_EVT_ENHANCED_CONN_COMPLETE_EVT 3727// 3728// Next tag: 10 3729message BluetoothLinkLayerConnectionEvent { 3730 // An identifier that can be used to match events for this device. 3731 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 3732 // Salt: Randomly generated 256 bit value 3733 // Hash algorithm: HMAC-SHA256 3734 // Size: 32 byte 3735 // Default: null or empty if the device identifier is not known 3736 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 3737 // Connection handle of this connection if available 3738 // Range: 0x0000 - 0x0EFF (12 bits) 3739 // Default: 0xFFFF if the handle is unknown 3740 optional int32 connection_handle = 2; 3741 // Direction of the link 3742 // Default: DIRECTION_UNKNOWN 3743 optional android.bluetooth.DirectionEnum direction = 3; 3744 // Type of this link 3745 // Default: LINK_TYPE_UNKNOWN 3746 optional android.bluetooth.LinkTypeEnum type = 4; 3747 3748 // Reason metadata for this link layer connection event, rules for interpretation: 3749 // 1. If hci_cmd is set and valid, hci_event can be either EVT_COMMAND_STATUS or 3750 // EVT_COMMAND_COMPLETE, ignore hci_ble_event in this case 3751 // 2. If hci_event is set to EVT_BLE_META, look at hci_ble_event; otherwise, if hci_event is 3752 // set and valid, ignore hci_ble_event 3753 3754 // HCI command associated with this event 3755 // Default: CMD_UNKNOWN 3756 optional android.bluetooth.hci.CommandEnum hci_cmd = 5; 3757 // HCI event associated with this event 3758 // Default: EVT_UNKNOWN 3759 optional android.bluetooth.hci.EventEnum hci_event = 6; 3760 // HCI BLE meta event associated with this event 3761 // Default: BLE_EVT_UNKNOWN 3762 optional android.bluetooth.hci.BleMetaEventEnum hci_ble_event = 7; 3763 // HCI command status code if this is triggerred by hci_cmd 3764 // Default: STATUS_UNKNOWN 3765 optional android.bluetooth.hci.StatusEnum cmd_status = 8; 3766 // HCI reason code associated with this event 3767 // Default: STATUS_UNKNOWN 3768 optional android.bluetooth.hci.StatusEnum reason_code = 9; 3769 // An identifier that can be used to match events for this device. 3770 // The incremental identifier is locally generated and guaranteed not derived 3771 // from any globally unique hardware id. 3772 // For paired devices, it stays consistent between Bluetooth toggling for the 3773 // same remote device. 3774 // For unpaired devices, it stays consistent within the same Bluetooth adapter 3775 // session for the same remote device. 3776 // Default: 0 if the device's metric id is unknown. 3777 optional int32 metric_id = 10; 3778} 3779 3780/** 3781 * Logs when a module is rolled back by Watchdog. 3782 * 3783 * Logged from: Rollback Manager 3784 */ 3785message WatchdogRollbackOccurred { 3786 enum RollbackType { 3787 UNKNOWN = 0; 3788 ROLLBACK_INITIATE = 1; 3789 ROLLBACK_SUCCESS = 2; 3790 ROLLBACK_FAILURE = 3; 3791 ROLLBACK_BOOT_TRIGGERED = 4; 3792 } 3793 optional RollbackType rollback_type = 1; 3794 3795 optional string package_name = 2; 3796 3797 optional int32 package_version_code = 3; 3798 3799 enum RollbackReasonType { 3800 REASON_UNKNOWN = 0; 3801 REASON_NATIVE_CRASH = 1; 3802 REASON_EXPLICIT_HEALTH_CHECK = 2; 3803 REASON_APP_CRASH = 3; 3804 REASON_APP_NOT_RESPONDING = 4; 3805 REASON_NATIVE_CRASH_DURING_BOOT = 5; 3806 REASON_NETWORK_RELATED_CRASH = 6; 3807 REASON_BOOT_LOOPING = 7; 3808 } 3809 optional RollbackReasonType rollback_reason = 4; 3810 3811 // Set by RollbackPackageHealthObserver to be the package that is failing when a rollback 3812 // is initiated. Empty if the package is unknown. 3813 optional string failing_package_name = 5; 3814 3815 optional TrainExperimentIds experiment_ids = 6 [(log_mode) = MODE_BYTES]; 3816} 3817 3818/** 3819 * Logs when there is a change in Bluetooth A2DP playback state 3820 * 3821 * Logged from: 3822 * packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpService.java 3823 */ 3824message BluetoothA2dpPlaybackStateChanged { 3825 // An identifier that can be used to match events for this device. 3826 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 3827 // Salt: Randomly generated 256 bit value 3828 // Hash algorithm: HMAC-SHA256 3829 // Size: 32 byte 3830 // Default: null or empty if the device identifier is not known 3831 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 3832 // Current playback state 3833 // Default: PLAYBACK_STATE_UNKNOWN 3834 optional android.bluetooth.a2dp.PlaybackStateEnum playback_state = 2; 3835 // Current audio coding mode 3836 // Default: AUDIO_CODING_MODE_UNKNOWN 3837 optional android.bluetooth.a2dp.AudioCodingModeEnum audio_coding_mode = 3; 3838 // An identifier that can be used to match events for this device. 3839 // The incremental identifier is locally generated and guaranteed not derived 3840 // from any globally unique hardware id. 3841 // For paired devices, it stays consistent between Bluetooth toggling for the 3842 // same remote device. 3843 // For unpaired devices, it stays consistent within the same Bluetooth adapter 3844 // session for the same remote device. 3845 // Default: 0 if the device's metric id is unknown. 3846 optional int32 metric_id = 4; 3847} 3848 3849/** 3850 * Logs when there is a change in A2DP codec config for a particular remote device 3851 * 3852 * Logged from: 3853 * frameworks/base/core/java/android/bluetooth/BluetoothCodecConfig.java 3854 * packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpService.java 3855 */ 3856message BluetoothA2dpCodecConfigChanged { 3857 // An identifier that can be used to match events for this device. 3858 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 3859 // Salt: Randomly generated 256 bit value 3860 // Hash algorithm: HMAC-SHA256 3861 // Size: 32 byte 3862 // Default: null or empty if the device identifier is not known 3863 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 3864 // Type of codec as defined by various SOURCE_CODEC_TYPE_* constants in BluetoothCodecConfig 3865 // Default SOURCE_CODEC_TYPE_INVALID 3866 optional int32 codec_type = 2; 3867 // Codec priroity, the higher the more preferred, -1 for disabled 3868 // Default: CODEC_PRIORITY_DEFAULT 3869 optional int32 codec_priority = 3; 3870 // Sample rate in Hz as defined by various SAMPLE_RATE_* constants in BluetoothCodecConfig 3871 // Default: SAMPLE_RATE_NONE 3872 optional int32 sample_rate = 4; 3873 // Bits per sample as defined by various BITS_PER_SAMPLE_* constants in BluetoothCodecConfig 3874 // Default: BITS_PER_SAMPLE_NONE 3875 optional int32 bits_per_sample = 5; 3876 // Channel mode as defined by various CHANNEL_MODE_* constants in BluetoothCodecConfig 3877 // Default: CHANNEL_MODE_NONE 3878 optional int32 channel_mode = 6; 3879 // Codec specific values 3880 // Default 0 3881 optional int64 codec_specific_1 = 7; 3882 optional int64 codec_specific_2 = 8; 3883 optional int64 codec_specific_3 = 9; 3884 optional int64 codec_specific_4 = 10; 3885 // An identifier that can be used to match events for this device. 3886 // The incremental identifier is locally generated and guaranteed not derived 3887 // from any globally unique hardware id. 3888 // For paired devices, it stays consistent between Bluetooth toggling for the 3889 // same remote device. 3890 // For unpaired devices, it stays consistent within the same Bluetooth adapter 3891 // session for the same remote device. 3892 // Default: 0 if the device's metric id is unknown. 3893 optional int32 metric_id = 11; 3894} 3895 3896/** 3897 * Logs when there is a change in selectable A2DP codec capability for a paricular remote device 3898 * Each codec's capability is logged separately due to statsd restriction 3899 * 3900 * Logged from: 3901 * frameworks/base/core/java/android/bluetooth/BluetoothCodecConfig.java 3902 * packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpService.java 3903 */ 3904message BluetoothA2dpCodecCapabilityChanged { 3905 // An identifier that can be used to match events for this device. 3906 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 3907 // Salt: Randomly generated 256 bit value 3908 // Hash algorithm: HMAC-SHA256 3909 // Size: 32 byte 3910 // Default: null or empty if the device identifier is not known 3911 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 3912 // Type of codec as defined by various SOURCE_CODEC_TYPE_* constants in BluetoothCodecConfig 3913 // Default SOURCE_CODEC_TYPE_INVALID 3914 optional int32 codec_type = 2; 3915 // Codec priroity, the higher the more preferred, -1 for disabled 3916 // Default: CODEC_PRIORITY_DEFAULT 3917 optional int32 codec_priority = 3; 3918 // A bit field of supported sample rates as defined by various SAMPLE_RATE_* constants 3919 // in BluetoothCodecConfig 3920 // Default: empty and SAMPLE_RATE_NONE for individual item 3921 optional int32 sample_rate = 4; 3922 // A bit field of supported bits per sample as defined by various BITS_PER_SAMPLE_* constants 3923 // in BluetoothCodecConfig 3924 // Default: empty and BITS_PER_SAMPLE_NONE for individual item 3925 optional int32 bits_per_sample = 5; 3926 // A bit field of supported channel mode as defined by various CHANNEL_MODE_* constants in 3927 // BluetoothCodecConfig 3928 // Default: empty and CHANNEL_MODE_NONE for individual item 3929 optional int32 channel_mode = 6; 3930 // Codec specific values 3931 // Default 0 3932 optional int64 codec_specific_1 = 7; 3933 optional int64 codec_specific_2 = 8; 3934 optional int64 codec_specific_3 = 9; 3935 optional int64 codec_specific_4 = 10; 3936 // An identifier that can be used to match events for this device. 3937 // The incremental identifier is locally generated and guaranteed not derived 3938 // from any globally unique hardware id. 3939 // For paired devices, it stays consistent between Bluetooth toggling for the 3940 // same remote device. 3941 // For unpaired devices, it stays consistent within the same Bluetooth adapter 3942 // session for the same remote device. 3943 // Default: 0 if the device's metric id is unknown. 3944 optional int32 metric_id = 11; 3945} 3946 3947/** 3948 * Logs when A2DP failed to read from PCM source. 3949 * This typically happens when audio HAL cannot supply A2DP with data fast enough for encoding. 3950 * 3951 * Logged from: 3952 * system/bt 3953 */ 3954message BluetoothA2dpAudioUnderrunReported { 3955 // An identifier that can be used to match events for this device. 3956 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 3957 // Salt: Randomly generated 256 bit value 3958 // Hash algorithm: HMAC-SHA256 3959 // Size: 32 byte 3960 // Default: null or empty if the device identifier is not known 3961 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 3962 // Encoding interval in nanoseconds 3963 // Default: 0 3964 optional int64 encoding_interval_nanos = 2; 3965 // Number of bytes of PCM data that could not be read from the source 3966 // Default: 0 3967 optional int32 num_missing_pcm_bytes = 3; 3968 // An identifier that can be used to match events for this device. 3969 // The incremental identifier is locally generated and guaranteed not derived 3970 // from any globally unique hardware id. 3971 // For paired devices, it stays consistent between Bluetooth toggling for the 3972 // same remote device. 3973 // For unpaired devices, it stays consistent within the same Bluetooth adapter 3974 // session for the same remote device. 3975 // Default: 0 if the device's metric id is unknown. 3976 optional int32 metric_id = 4; 3977} 3978 3979/** 3980 * Logs when A2DP failed send encoded data to the remote device fast enough such that the transmit 3981 * buffer queue is full and we have to drop data 3982 * 3983 * Logged from: 3984 * system/bt 3985 */ 3986message BluetoothA2dpAudioOverrunReported { 3987 // An identifier that can be used to match events for this device. 3988 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 3989 // Salt: Randomly generated 256 bit value 3990 // Hash algorithm: HMAC-SHA256 3991 // Size: 32 byte 3992 // Default: null or empty if the device identifier is not known 3993 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 3994 // Encoding interval in nanoseconds 3995 // Default: 0 3996 optional int64 encoding_interval_nanos = 2; 3997 // Number of buffers dropped in this event 3998 // Each buffer is encoded in one encoding interval and consists of multiple encoded frames 3999 // Default: 0 4000 optional int32 num_dropped_buffers = 3; 4001 // Number of encoded buffers dropped in this event 4002 // Default 0 4003 optional int32 num_dropped_encoded_frames = 4; 4004 // Number of encoded bytes dropped in this event 4005 // Default: 0 4006 optional int32 num_dropped_encoded_bytes = 5; 4007 // An identifier that can be used to match events for this device. 4008 // The incremental identifier is locally generated and guaranteed not derived 4009 // from any globally unique hardware id. 4010 // For paired devices, it stays consistent between Bluetooth toggling for the 4011 // same remote device. 4012 // For unpaired devices, it stays consistent within the same Bluetooth adapter 4013 // session for the same remote device. 4014 // Default: 0 if the device's metric id is unknown. 4015 optional int32 metric_id = 6; 4016} 4017 4018/** 4019 * Logs when we receive reports regarding a device's RSSI value 4020 * 4021 * Logged from: 4022 * system/bt 4023 */ 4024message BluetoothDeviceRssiReported { 4025 // An identifier that can be used to match events for this device. 4026 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 4027 // Salt: Randomly generated 256 bit value 4028 // Hash algorithm: HMAC-SHA256 4029 // Size: 32 byte 4030 // Default: null or empty if the device identifier is not known 4031 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 4032 // Connection handle of this connection if available 4033 // Range: 0x0000 - 0x0EFF (12 bits) 4034 // Default: 0xFFFF if the handle is unknown 4035 optional int32 connection_handle = 2; 4036 // HCI command status code if this is triggerred by hci_cmd 4037 // Default: STATUS_UNKNOWN 4038 optional android.bluetooth.hci.StatusEnum hci_status = 3; 4039 // BR/EDR 4040 // Range: -128 ≤ N ≤ 127 (signed integer) 4041 // Units: dB 4042 // LE: 4043 // Range: -127 to 20, 127 (signed integer) 4044 // Units: dBm 4045 // Invalid when an out of range value is reported 4046 optional int32 rssi = 4; 4047 // An identifier that can be used to match events for this device. 4048 // The incremental identifier is locally generated and guaranteed not derived 4049 // from any globally unique hardware id. 4050 // For paired devices, it stays consistent between Bluetooth toggling for the 4051 // same remote device. 4052 // For unpaired devices, it stays consistent within the same Bluetooth adapter 4053 // session for the same remote device. 4054 // Default: 0 if the device's metric id is unknown. 4055 optional int32 metric_id = 5; 4056} 4057 4058/** 4059 * Logs when we receive reports regarding how many consecutive failed contacts for a connection 4060 * 4061 * Logged from: 4062 * system/bt 4063 */ 4064message BluetoothDeviceFailedContactCounterReported { 4065 // An identifier that can be used to match events for this device. 4066 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 4067 // Salt: Randomly generated 256 bit value 4068 // Hash algorithm: HMAC-SHA256 4069 // Size: 32 byte 4070 // Default: null or empty if the device identifier is not known 4071 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 4072 // Connection handle of this connection if available 4073 // Range: 0x0000 - 0x0EFF (12 bits) 4074 // Default: 0xFFFF if the handle is unknown 4075 optional int32 connection_handle = 2; 4076 // HCI command status code if this is triggerred by hci_cmd 4077 // Default: STATUS_UNKNOWN 4078 optional android.bluetooth.hci.StatusEnum cmd_status = 3; 4079 // Number of consecutive failed contacts for a connection corresponding to the Handle 4080 // Range: uint16_t, 0-0xFFFF 4081 // Default: 0xFFFFF 4082 optional int32 failed_contact_counter = 4; 4083 // An identifier that can be used to match events for this device. 4084 // The incremental identifier is locally generated and guaranteed not derived 4085 // from any globally unique hardware id. 4086 // For paired devices, it stays consistent between Bluetooth toggling for the 4087 // same remote device. 4088 // For unpaired devices, it stays consistent within the same Bluetooth adapter 4089 // session for the same remote device. 4090 // Default: 0 if the device's metric id is unknown. 4091 optional int32 metric_id = 5; 4092} 4093 4094/** 4095 * Logs when we receive reports regarding the tranmit power level used for a specific connection 4096 * 4097 * Logged from: 4098 * system/bt 4099 */ 4100message BluetoothDeviceTxPowerLevelReported { 4101 // An identifier that can be used to match events for this device. 4102 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 4103 // Salt: Randomly generated 256 bit value 4104 // Hash algorithm: HMAC-SHA256 4105 // Size: 32 byte 4106 // Default: null or empty if the device identifier is not known 4107 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 4108 // Connection handle of this connection if available 4109 // Range: 0x0000 - 0x0EFF (12 bits) 4110 // Default: 0xFFFF if the handle is unknown 4111 optional int32 connection_handle = 2; 4112 // HCI command status code if this is triggered by hci_cmd 4113 // Default: STATUS_UNKNOWN 4114 optional android.bluetooth.hci.StatusEnum hci_status = 3; 4115 // Range: -30 ≤ N ≤ 20 4116 // Units: dBm 4117 // Invalid when an out of range value is reported 4118 optional int32 transmit_power_level = 4; 4119 // An identifier that can be used to match events for this device. 4120 // The incremental identifier is locally generated and guaranteed not derived 4121 // from any globally unique hardware id. 4122 // For paired devices, it stays consistent between Bluetooth toggling for the 4123 // same remote device. 4124 // For unpaired devices, it stays consistent within the same Bluetooth adapter 4125 // session for the same remote device. 4126 // Default: 0 if the device's metric id is unknown. 4127 optional int32 metric_id = 5; 4128} 4129 4130/** 4131 * Logs when Bluetooth controller failed to reply with command status within a timeout period after 4132 * receiving an HCI command from the host 4133 * 4134 * Logged from: system/bt 4135 */ 4136message BluetoothHciTimeoutReported { 4137 // HCI command associated with this event 4138 // Default: CMD_UNKNOWN 4139 optional android.bluetooth.hci.CommandEnum hci_command = 1; 4140} 4141 4142/** 4143 * Logs when we receive Bluetooth Link Quality Report event from the controller 4144 * See Android Bluetooth HCI specification for more details 4145 * 4146 * Note: all count and bytes field are counted since last event 4147 * 4148 * Logged from: system/bt 4149 */ 4150message BluetoothQualityReportReported { 4151 // Quality report ID 4152 // Original type: uint8_t 4153 // Default: BQR_ID_UNKNOWN 4154 optional android.bluetooth.hci.BqrIdEnum quality_report_id = 1; 4155 // Packet type of the connection 4156 // Original type: uint8_t 4157 // Default: BQR_PACKET_TYPE_UNKNOWN 4158 optional android.bluetooth.hci.BqrPacketTypeEnum packet_types = 2; 4159 // Connection handle of the connection 4160 // Original type: uint16_t 4161 optional int32 connection_handle = 3; 4162 // Performing Role for the connection 4163 // Original type: uint8_t 4164 optional int32 connection_role = 4; 4165 // Current Transmit Power Level for the connection. This value is the same as the controller's 4166 // response to the HCI_Read_Transmit_Power_Level HCI command 4167 // Original type: uint8_t 4168 optional int32 tx_power_level = 5; 4169 // Received Signal Strength Indication (RSSI) value for the connection. This value is an 4170 // absolute receiver signal strength value 4171 // Original type: int8_t 4172 optional int32 rssi = 6; 4173 // Signal-to-Noise Ratio (SNR) value for the connection. It is the average SNR of all the 4174 // channels used by the link currently 4175 // Original type: uint8_t 4176 optional int32 snr = 7; 4177 // Indicates the number of unused channels in AFH_channel_map 4178 // Original type: uint8_t 4179 optional int32 unused_afh_channel_count = 8; 4180 // Indicates the number of the channels which are interfered and quality is bad but are still 4181 // selected for AFH 4182 // Original type: uint8_t 4183 optional int32 afh_select_unideal_channel_count = 9; 4184 // Current Link Supervision Timeout Setting 4185 // Unit: N * 0.3125 ms (1 Bluetooth Clock) 4186 // Original type: uint16_t 4187 optional int32 lsto = 10; 4188 // Piconet Clock for the specified Connection_Handle. This value is the same as the controller's 4189 // response to HCI_Read_Clock HCI command with the parameter "Which_Clock" of 4190 // 0x01 (Piconet Clock) 4191 // Unit: N * 0.3125 ms (1 Bluetooth Clock) 4192 // Original type: uint32_t 4193 optional int64 connection_piconet_clock = 11; 4194 // The count of retransmission 4195 // Original type: uint32_t 4196 optional int64 retransmission_count = 12; 4197 // The count of no RX 4198 // Original type: uint32_t 4199 optional int64 no_rx_count = 13; 4200 // The count of NAK (Negative Acknowledge) 4201 // Original type: uint32_t 4202 optional int64 nak_count = 14; 4203 // Controller timestamp of last TX ACK 4204 // Unit: N * 0.3125 ms (1 Bluetooth Clock) 4205 // Original type: uint32_t 4206 optional int64 last_tx_ack_timestamp = 15; 4207 // The count of Flow-off (STOP) 4208 // Original type: uint32_t 4209 optional int64 flow_off_count = 16; 4210 // Controller timestamp of last Flow-on (GO) 4211 // Unit: N * 0.3125 ms (1 Bluetooth Clock) 4212 // Original type: uint32_t 4213 optional int64 last_flow_on_timestamp = 17; 4214 // Buffer overflow count (how many bytes of TX data are dropped) since the last event 4215 // Original type: uint32_t 4216 optional int64 buffer_overflow_bytes = 18; 4217 // Buffer underflow count (in byte) since last event 4218 // Original type: uint32_t 4219 optional int64 buffer_underflow_bytes = 19; 4220} 4221 4222/** 4223 * Logs when a Bluetooth device's manufacturer information is learnt by the Bluetooth stack 4224 * 4225 * Notes: 4226 * - Each event can be partially filled as we might learn different pieces of device 4227 * information at different time 4228 * - Multiple device info events can be combined to give more complete picture 4229 * - When multiple device info events tries to describe the same information, the 4230 * later one wins 4231 * 4232 * Logged from: 4233 * packages/apps/Bluetooth 4234 */ 4235message BluetoothDeviceInfoReported { 4236 // An identifier that can be used to match events for this device. 4237 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 4238 // Salt: Randomly generated 256 bit value 4239 // Hash algorithm: HMAC-SHA256 4240 // Size: 32 byte 4241 // Default: null or empty if the device identifier is not known 4242 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 4243 // Where is this device info obtained from 4244 optional android.bluetooth.DeviceInfoSrcEnum source_type = 2; 4245 // Name of the data source 4246 // For EXTERNAL: package name of the data source 4247 // For INTERNAL: null for general case, component name otherwise 4248 optional string source_name = 3; 4249 // Name of the manufacturer of this device 4250 optional string manufacturer = 4; 4251 // Model of this device 4252 optional string model = 5; 4253 // Hardware version of this device 4254 optional string hardware_version = 6; 4255 // Software version of this device 4256 optional string software_version = 7; 4257 // An identifier that can be used to match events for this device. 4258 // The incremental identifier is locally generated and guaranteed not derived 4259 // from any globally unique hardware id. 4260 // For paired devices, it stays consistent between Bluetooth toggling for the 4261 // same remote device. 4262 // For unpaired devices, it stays consistent within the same Bluetooth adapter 4263 // session for the same remote device. 4264 // Default: 0 if the device's metric id is unknown. 4265 optional int32 metric_id = 8; 4266 // A flag indicating if the MAC address of the remote device is public or 4267 // random. 4268 optional android.bluetooth.AddressTypeEnum address_type = 9; 4269 // The first byte of MAC address 4270 optional int32 byte1 = 10; 4271 // The second byte of MAC address 4272 optional int32 byte2 = 11; 4273 // The third byte of MAC address 4274 optional int32 byte3 = 12; 4275 4276} 4277 4278/** 4279 * Logs when we receive Bluetooth Read Remote Version Information Complete Event from the remote 4280 * device, as documented by the Bluetooth Core HCI specification 4281 * Reference: https://www.bluetooth.com/specifications/bluetooth-core-specification 4282 * Vol 2, Part E, Page 1118 4283 * 4284 * Logged from: 4285 * system/bt 4286 */ 4287message BluetoothRemoteVersionInfoReported { 4288 // Connection handle of the connection 4289 // Original type: uint16_t 4290 optional int32 connection_handle = 1; 4291 // HCI command status code 4292 // Default: STATUS_UNKNOWN 4293 optional android.bluetooth.hci.StatusEnum hci_status = 2; 4294 // 1 byte Version of current LMP in the remote controller 4295 optional int32 lmp_version = 3; 4296 // 2 bytes LMP manufacturer code of the remote controller 4297 // https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers 4298 optional int32 lmp_manufacturer_code = 4; 4299 // 4 bytes subversion of the LMP in the remote controller 4300 optional int32 lmp_subversion = 5; 4301} 4302 4303/** 4304 * Logs when certain Bluetooth SDP attributes are discovered 4305 * Constant definitions are from: 4306 * https://www.bluetooth.com/specifications/assigned-numbers/service-discovery 4307 * 4308 * Current logged attributes: 4309 * - BluetoothProfileDescriptorList 4310 * - Supported Features Bitmask 4311 * 4312 * Logged from: 4313 * system/bt 4314 */ 4315message BluetoothSdpAttributeReported { 4316 // An identifier that can be used to match events for this device. 4317 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 4318 // Salt: Randomly generated 256 bit value 4319 // Hash algorithm: HMAC-SHA256 4320 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 4321 // Short form UUIDs used to identify Bluetooth protocols, profiles, and service classes 4322 // Original type: uint16_t 4323 optional int32 protocol_uuid = 2; 4324 // Short form UUIDs used to identify Bluetooth SDP attribute types 4325 // Original type: uint16_t 4326 optional int32 attribute_id = 3; 4327 // Attribute value for the particular attribute 4328 optional bytes attribute_value = 4 [(android.os.statsd.log_mode) = MODE_BYTES]; 4329 // An identifier that can be used to match events for this device. 4330 // The incremental identifier is locally generated and guaranteed not derived 4331 // from any globally unique hardware id. 4332 // For paired devices, it stays consistent between Bluetooth toggling for the 4333 // same remote device. 4334 // For unpaired devices, it stays consistent within the same Bluetooth adapter 4335 // session for the same remote device. 4336 // Default: 0 if the device's metric id is unknown. 4337 optional int32 metric_id = 5; 4338} 4339 4340/** 4341* Logs the user created Bluetooth device's name. 4342* It is pushed at Bluetooth pairing and connection. 4343* 4344* Logged from: 4345* packages/modules/Bluetooth 4346*/ 4347message BluetoothDeviceNameReported { 4348 // An identifier that can be used to match events for this device. 4349 // The incremental identifier is locally generated and guaranteed not derived 4350 // from any globally unique hardware id. 4351 // For paired devices, it stays consistent between Bluetooth toggling for the 4352 // same remote device. 4353 // For unpaired devices, it stays consistent within the same Bluetooth adapter 4354 // session for the same remote device. 4355 // Default: 0 if the device's metric id is unknown. 4356 optional int32 metric_id = 1; 4357 4358 // Name of the Bluetooth device. It is created by the user. 4359 optional string device_name = 2; 4360} 4361 4362/** 4363 * Logs when bond state of a Bluetooth device changes 4364 * 4365 * Logged from: 4366 * frameworks/base/core/java/android/bluetooth/BluetoothDevice.java 4367 * packages/apps/Bluetooth/src/com/android/bluetooth/btservice/BondStateMachine.java 4368 */ 4369message BluetoothBondStateChanged { 4370 // An identifier that can be used to match events for this device. 4371 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 4372 // Salt: Randomly generated 256 bit value 4373 // Hash algorithm: HMAC-SHA256 4374 // Size: 32 byte 4375 // Default: null or empty if the device identifier is not known 4376 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 4377 // Preferred transport type to remote dual mode device 4378 // Default: TRANSPORT_AUTO means no preference 4379 optional android.bluetooth.TransportTypeEnum transport = 2; 4380 // The type of this Bluetooth device (Classic, LE, or Dual mode) 4381 // Default: UNKNOWN 4382 optional android.bluetooth.DeviceTypeEnum type = 3; 4383 // Current bond state (NONE, BONDING, BONDED) 4384 // Default: BOND_STATE_UNKNOWN 4385 optional android.bluetooth.BondStateEnum bond_state = 4; 4386 // Bonding sub state 4387 // Default: BOND_SUB_STATE_UNKNOWN 4388 optional android.bluetooth.BondSubStateEnum bonding_sub_state = 5; 4389 // Unbond Reason 4390 // Default: UNBOND_REASON_UNKNOWN 4391 optional android.bluetooth.UnbondReasonEnum unbond_reason = 6; 4392 // An identifier that can be used to match events for this device. 4393 // The incremental identifier is locally generated and guaranteed not derived 4394 // from any globally unique hardware id. 4395 // For paired devices, it stays consistent between Bluetooth toggling for the 4396 // same remote device. 4397 // For unpaired devices, it stays consistent within the same Bluetooth adapter 4398 // session for the same remote device. 4399 // Default: 0 if the device's metric id is unknown. 4400 optional int32 metric_id = 7; 4401} 4402 4403/** 4404 * Logs there is an event related Bluetooth classic pairing 4405 * 4406 * Logged from: 4407 * system/bt 4408 */ 4409message BluetoothClassicPairingEventReported { 4410 // An identifier that can be used to match events for this device. 4411 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 4412 // Salt: Randomly generated 256 bit value 4413 // Hash algorithm: HMAC-SHA256 4414 // Size: 32 byte 4415 // Default: null or empty if the device identifier is not known 4416 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 4417 // Connection handle of this connection if available 4418 // Range: 0x0000 - 0x0EFF (12 bits) 4419 // Default: 0xFFFF if the handle is unknown 4420 optional int32 connection_handle = 2; 4421 // HCI command associated with this event 4422 // Default: CMD_UNKNOWN 4423 optional android.bluetooth.hci.CommandEnum hci_cmd = 3; 4424 // HCI event associated with this event 4425 // Default: EVT_UNKNOWN 4426 optional android.bluetooth.hci.EventEnum hci_event = 4; 4427 // HCI command status code if this is triggerred by hci_cmd 4428 // Default: STATUS_UNKNOWN 4429 optional android.bluetooth.hci.StatusEnum cmd_status = 5; 4430 // HCI reason code associated with this event 4431 // Default: STATUS_UNKNOWN 4432 optional android.bluetooth.hci.StatusEnum reason_code = 6; 4433 // A status value related to this specific event 4434 // Default: 0 4435 optional int64 event_value = 7; 4436 // An identifier that can be used to match events for this device. 4437 // The incremental identifier is locally generated and guaranteed not derived 4438 // from any globally unique hardware id. 4439 // For paired devices, it stays consistent between Bluetooth toggling for the 4440 // same remote device. 4441 // For unpaired devices, it stays consistent within the same Bluetooth adapter 4442 // session for the same remote device. 4443 // Default: 0 if the device's metric id is unknown. 4444 optional int32 metric_id = 8; 4445} 4446 4447/** 4448 * Logs when there is an event related to Bluetooth Security Manager Protocol (SMP) 4449 * 4450 * Logged from: 4451 * system/bt 4452 */ 4453message BluetoothSmpPairingEventReported { 4454 // An identifier that can be used to match events for this device. 4455 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 4456 // Salt: Randomly generated 256 bit value 4457 // Hash algorithm: HMAC-SHA256 4458 // Size: 32 byte 4459 // Default: null or empty if the device identifier is not known 4460 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 4461 // SMP command sent or received over L2CAP 4462 // Default: CMD_UNKNOWN 4463 optional android.bluetooth.smp.CommandEnum smp_command = 2; 4464 // Whether this command is sent or received 4465 // Default: DIRECTION_UNKNOWN 4466 optional android.bluetooth.DirectionEnum direction = 3; 4467 // SMP failure reason code 4468 // Default: PAIRING_FAIL_REASON_DEFAULT 4469 optional android.bluetooth.smp.PairingFailReasonEnum smp_fail_reason = 4; 4470 // An identifier that can be used to match events for this device. 4471 // The incremental identifier is locally generated and guaranteed not derived 4472 // from any globally unique hardware id. 4473 // For paired devices, it stays consistent between Bluetooth toggling for the 4474 // same remote device. 4475 // For unpaired devices, it stays consistent within the same Bluetooth adapter 4476 // session for the same remote device. 4477 // Default: 0 if the device's metric id is unknown. 4478 optional int32 metric_id = 5; 4479} 4480 4481/** 4482 * Logs when a Bluetooth socket’s connection state changed 4483 * 4484 * Logged from: 4485 * system/bt 4486 */ 4487message BluetoothSocketConnectionStateChanged { 4488 // An identifier that can be used to match events for this device. 4489 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 4490 // Salt: Randomly generated 256 bit value 4491 // Hash algorithm: HMAC-SHA256 4492 // Size: 32 byte 4493 // Default: null or empty if this is a server listener socket 4494 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 4495 // Temporary port of this socket for the current connection or session only 4496 // Default 0 when unknown or don't care 4497 optional int32 port = 2; 4498 // Socket type as mentioned in 4499 // frameworks/base/core/java/android/bluetooth/BluetoothSocket.java 4500 // Default: SOCKET_TYPE_UNKNOWN 4501 optional android.bluetooth.SocketTypeEnum type = 3; 4502 // Socket connection state 4503 // Default: SOCKET_CONNECTION_STATE_UNKNOWN 4504 optional android.bluetooth.SocketConnectionstateEnum state = 4; 4505 // Number of bytes sent to remote device during this connection 4506 optional int64 tx_bytes = 5; 4507 // Number of bytes received from remote device during this connection 4508 optional int64 rx_bytes = 6; 4509 // Socket owner's UID 4510 optional int32 uid = 7 [(is_uid) = true]; 4511 // Server port of this socket, if any. When both |server_port| and |port| fields are populated, 4512 // |port| must be spawned by |server_port| 4513 // Default 0 when unknown or don't care 4514 optional int32 server_port = 8; 4515 // Whether this is a server listener socket 4516 optional android.bluetooth.SocketRoleEnum is_server = 9; 4517 // An identifier that can be used to match events for this device. 4518 // The incremental identifier is locally generated and guaranteed not derived 4519 // from any globally unique hardware id. 4520 // For paired devices, it stays consistent between Bluetooth toggling for the 4521 // same remote device. 4522 // For unpaired devices, it stays consistent within the same Bluetooth adapter 4523 // session for the same remote device. 4524 // Default: 0 if the device's metric id is unknown. 4525 optional int32 metric_id = 10; 4526 // Duration of socket connection in milliseconds 4527 // Default 0, only logged when the state changes to SOCKET_CONNECTION_STATE_DISCONNECTED 4528 optional int64 connection_duration_ms = 11; 4529 // Error code of socket failures 4530 // Use SOCKET_ERROR_NONE if no error 4531 optional android.bluetooth.SocketErrorEnum error_code = 12; 4532 // Whether this is a offload socket 4533 // Offload socket utilizes offload stack running on a low-power processor for Bluetooth 4534 // communication, while non-offload socket uses the main Bluetooth stack running on the 4535 // application processor. 4536 optional bool is_hardware_offload = 13; 4537} 4538 4539/** 4540 * Logs when Class of Device (CoD) value is learnt for a device during pairing or connection 4541 * 4542 * Logged from: 4543 * packages/apps/Bluetooth/src/com/android/bluetooth/btservice/BondStateMachine.java 4544 * packages/apps/Bluetooth/src/com/android/bluetooth/btservice/RemoteDevices.java 4545 * 4546 */ 4547message BluetoothClassOfDeviceReported { 4548 // An identifier that can be used to match events for this device. 4549 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 4550 // Salt: Randomly generated 256 bit value 4551 // Hash algorithm: HMAC-SHA256 4552 // Size: 32 byte 4553 // Default: null or empty if this is a server listener socket 4554 optional bytes obfuscated_id = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 4555 // Class of Device (CoD) value including both Major, Minor device class and service class 4556 // Defined in: https://www.bluetooth.com/specifications/assigned-numbers/baseband 4557 // Also defined in: https://developer.android.com/reference/android/bluetooth/BluetoothClass 4558 // Default: 0 4559 optional int32 class_of_device = 2; 4560 // An identifier that can be used to match events for this device. 4561 // The incremental identifier is locally generated and guaranteed not derived 4562 // from any globally unique hardware id. 4563 // For paired devices, it stays consistent between Bluetooth toggling for the 4564 // same remote device. 4565 // For unpaired devices, it stays consistent within the same Bluetooth adapter 4566 // session for the same remote device. 4567 // Default: 0 if the device's metric id is unknown. 4568 optional int32 metric_id = 3; 4569} 4570 4571/** 4572 * Logs when there is a crash in hardware abstraction layer (HAL) 4573 * 4574 * Logged from: 4575 * system/bt 4576 * 4577 */ 4578message BluetoothHALCrashReasonReported { 4579 // An identifier that can be used to match events for this device. 4580 // The incremental identifier is locally generated and guaranteed not derived 4581 // from any globally unique hardware id. 4582 // For paired devices, it stays consistent between Bluetooth toggling for the 4583 // same remote device. 4584 // For unpaired devices, it stays consistent within the same Bluetooth adapter 4585 // session for the same remote device. 4586 // Default: 0 if the device's metric id is unknown. 4587 optional int32 metric_id = 1; 4588 // An identifier that can be used to match events for this device. 4589 // Currently, this is a salted hash of the MAC address of this Bluetooth device. 4590 // Salt: Randomly generated 256 bit value 4591 // Hash algorithm: HMAC-SHA256 4592 // Size: 32 byte 4593 // Default: null or empty if the device identifier is not known 4594 optional bytes obfuscated_id = 2 [(android.os.statsd.log_mode) = MODE_BYTES]; 4595 // Bluetooth HAL crash reason error code. 4596 // Original type: uint8_t 4597 // Default: 0x00 (DEFAULT) 4598 optional int32 error_code = 3; 4599 // Bluetooth HAL crash reason vendor error code. 4600 // Original type: uint8_t 4601 // Default: 0x00 (DEFAULT) 4602 optional int32 vendor_error_code = 4; 4603} 4604 4605/** 4606 * Logs when an LE Audio connection session ended 4607 * 4608 * Logged from: 4609 * packages/modules/Bluetooth 4610 * 4611 */ 4612message LeAudioConnectionSessionReported { 4613 // Size of this CSIS group 4614 optional int32 group_size = 1; 4615 // An identifier that can be used to match events for this CSIS group. 4616 // The incremental identifier is locally generated and guaranteed not derived 4617 // from any globally unique hardware id. 4618 // For paired groups, it stays consistent between Bluetooth toggling for the 4619 // same remote group. 4620 // For unpaired groups, it stays consistent within the same Bluetooth adapter 4621 // session for the same remote group. 4622 // Default: 0 if the group's metric id is unknown. 4623 optional int32 group_metric_id = 2; 4624 // Total duration of this LeAudioConnectionSession 4625 optional int64 duration_nanos = 3; 4626 4627 // Connecting timestamp offset to the beginning of this session of each device session 4628 repeated int64 device_connecting_offset_nanos = 4; 4629 // Connected timestamp offset to the beginning of this session of each device session 4630 repeated int64 device_connected_offset_nanos = 5; 4631 // Duration of each device session 4632 repeated int64 device_connection_duration_nanos = 6; 4633 // Connection status of each device session 4634 repeated android.bluetooth.leaudio.ConnectionStatus device_connection_status = 7; 4635 // Disconnection status of each device session 4636 repeated android.bluetooth.leaudio.ConnectionStatus device_disconnection_status = 8; 4637 // An identifier that can be used to match events for this device. 4638 // The incremental identifier is locally generated and guaranteed not derived 4639 // from any globally unique hardware id. 4640 // For paired devices, it stays consistent between Bluetooth toggling for the 4641 // same remote device. 4642 // For unpaired devices, it stays consistent within the same Bluetooth adapter 4643 // session for the same remote device. 4644 // Default: 0 if the device's metric id is unknown. 4645 repeated int32 device_metric_id = 9; 4646 4647 // Streaming beginning timestamp offset to the beginning of this session 4648 repeated int64 streaming_session_offset_nanos = 10; 4649 // Streaming ending timestamp offset to the beginning of this session 4650 repeated int64 streaming_session_duration_nanos = 11; 4651 // Streaming context type of each steaming session 4652 repeated android.bluetooth.leaudio.ContextType streaming_context_type = 12; 4653} 4654 4655/** 4656 * Logs when an LE Audio broadcast session ended 4657 * 4658 * Logged from: 4659 * packages/modules/Bluetooth 4660 * 4661 */ 4662message LeAudioBroadcastSessionReported { 4663 // Broadcast duration 4664 optional int64 duration_nanos = 1; 4665} 4666 4667/** 4668 * Logs when the counter is incremented 4669 * 4670 * Logged from: 4671 * system/bt 4672 * packages/apps/Bluetooth 4673 * 4674 */ 4675message BluetoothCodePathCounter { 4676 // Keys of events with enum ranges to be defined 4677 optional android.bluetooth.CodePathCounterKeyEnum key = 1; 4678 // Number of frequency of events 4679 optional int64 number = 2; 4680} 4681 4682/** 4683 * Logs when an application attempts to start a Bluetooth Low Energy scan. 4684 * It only happens when the scan is initiated and does not repeatedly call 4685 * while the scan is running. 4686 * 4687 * Logged from: 4688 * packages/apps/Bluetooth/src/com/android/bluetooth/gatt/GattService.java 4689 * 4690 */ 4691message BluetoothLeBatchScanReportDelay { 4692 optional int32 application_uid = 1 [(is_uid) = true]; 4693 optional int64 application_report_delay_millis = 2; 4694} 4695 4696message BluetoothLocalVersionsReported { 4697 // Chip Manufacturer name 4698 optional int32 lmp_manufacturer_name = 1; 4699 // LMP Version 4700 optional int32 lmp_version = 2; 4701 // LMP Subversion 4702 optional int32 lmp_subversion = 3; 4703 // HCI Version 4704 optional int32 hci_version = 4; 4705 // HCI Revision 4706 optional int32 hci_revision = 5; 4707} 4708 4709message BluetoothRemoteSupportedFeaturesReported { 4710 // An identifier that can be used to match events for this device. 4711 // The incremental identifier is locally generated and guaranteed not derived 4712 // from any globally unique hardware id. 4713 // For paired devices, it stays consistent between Bluetooth toggling for the 4714 // same remote device. 4715 // For unpaired devices, it stays consistent within the same Bluetooth adapter 4716 // session for the same remote device. 4717 // Default: 0 if the device's metric id is unknown. 4718 optional int32 metric_id = 1; 4719 // Page of the feature bit masks 4720 optional int32 page = 2; 4721 // Bit mask of features 4722 optional int64 features_page2 = 3; 4723 // Connection handle of this connection if available 4724 // Range: 0x0000 - 0x0EFF (12 bits) 4725 // Default: 0xFFFF if the handle is unknown 4726 optional int32 connection_handle = 4; 4727} 4728 4729message BluetoothLocalSupportedFeaturesReported { 4730 // Page of the feature bit masks 4731 optional int32 page_num = 1; 4732 // Bit mask of features 4733 optional int64 features_page = 2; 4734} 4735 4736message BluetoothDisconnectionReasonReported { 4737 // Disconnection reason 4738 optional int32 reason = 1; 4739 // An identifier that can be used to match events for this device. 4740 // The incremental identifier is locally generated and guaranteed not derived 4741 // from any globally unique hardware id. 4742 // For paired devices, it stays consistent between Bluetooth toggling for the 4743 // same remote device. 4744 // For unpaired devices, it stays consistent within the same Bluetooth adapter 4745 // session for the same remote device. 4746 // Default: 0 if the device's metric id is unknown. 4747 optional int32 metric_id = 2; 4748 // Connection handle of this connection if available 4749 // Range: 0x0000 - 0x0EFF (12 bits) 4750 // Default: 0xFFFF if the handle is unknown 4751 optional int32 connection_handle = 3; 4752} 4753 4754message BluetoothGattAppInfo { 4755 // An index to group connection events by session. It's a counter generated by 4756 // each profile. e.g. Gatt server generate such id to identify Gatt apps 4757 optional int32 session_index = 1; 4758 // An identifier that can be used to match events for this device. 4759 // The incremental identifier is locally generated and guaranteed not derived 4760 // from any globally unique hardware id. 4761 // For paired devices, it stays consistent between Bluetooth toggling for the 4762 // same remote device. 4763 // For unpaired devices, it stays consistent within the same Bluetooth adapter 4764 // session for the same remote device. 4765 // Default: 0 if the device's metric id is unknown. 4766 optional int32 metric_id = 2; 4767 // UID of the GATT app 4768 optional int32 uid = 3 [(is_uid) = true]; 4769} 4770 4771/** 4772 * Logs when something is plugged into or removed from the USB-C connector. 4773 * 4774 * Logged from: 4775 * UsbService 4776 */ 4777message UsbConnectorStateChanged { 4778 enum State { 4779 STATE_DISCONNECTED = 0; 4780 STATE_CONNECTED = 1; 4781 } 4782 optional State state = 1 4783 [(state_field_option).exclusive_state = true, (state_field_option).nested = false]; 4784 optional string id = 2 [(state_field_option).primary_field = true]; 4785 // Last active session in ms. 4786 // 0 when the port is in connected state. 4787 optional int64 last_connect_duration_millis = 3; 4788} 4789 4790/** 4791 * Logs the reported speaker impedance. 4792 * 4793 * Logged from: 4794 * Vendor audio implementation. 4795 */ 4796message SpeakerImpedanceReported { 4797 optional int32 speaker_location = 1; 4798 optional int32 impedance = 2; 4799} 4800 4801/** 4802 * Logs the report of a failed hardware. 4803 * 4804 * Logged from: 4805 * Vendor HALs. 4806 * 4807 */ 4808message HardwareFailed { 4809 enum HardwareType { 4810 HARDWARE_FAILED_UNKNOWN = 0; 4811 HARDWARE_FAILED_MICROPHONE = 1; 4812 HARDWARE_FAILED_CODEC = 2; 4813 HARDWARE_FAILED_SPEAKER = 3; 4814 HARDWARE_FAILED_FINGERPRINT = 4; 4815 } 4816 optional HardwareType hardware_type = 1; 4817 4818 /** 4819 * hardware_location allows vendors to differentiate between multiple instances of 4820 * the same hardware_type. The specific locations are vendor defined integers, 4821 * referring to board-specific numbering schemes. 4822 */ 4823 optional int32 hardware_location = 2; 4824 4825 /** 4826 * failure_code is specific to the HardwareType of the failed hardware. 4827 * It should use one of the enum values defined below. 4828 */ 4829 enum HardwareErrorCode { 4830 UNKNOWN = 0; 4831 COMPLETE = 1; 4832 SPEAKER_HIGH_Z = 2; 4833 SPEAKER_SHORT = 3; 4834 FINGERPRINT_SENSOR_BROKEN = 4; 4835 FINGERPRINT_TOO_MANY_DEAD_PIXELS = 5; 4836 DEGRADE = 6; 4837 } 4838 optional int32 failure_code = 3; 4839} 4840 4841/** 4842 * Log an event when the device has been physically dropped. 4843 * Reported from the /vendor partition. 4844 */ 4845message PhysicalDropDetected { 4846 // Confidence that the event was actually a drop, 0 -> 100 4847 optional int32 confidence_pctg = 1; 4848 // Peak acceleration of the drop, in 1/1000s of a g. 4849 optional int32 accel_peak_thousandths_g = 2; 4850 // Duration of freefall in ms 4851 optional int32 freefall_time_millis = 3; 4852} 4853 4854/** 4855 * Log bucketed battery charge cycles. 4856 * 4857 * Each bucket represents cycles of the battery past 4858 * a given charge point. For example, if 10 cycle buckets are 4859 * initialized, bucket 1 is the lowest 1/10th of the battery, 4860 * and bucket 10 is 100%. 4861 * 4862 * Logged from: 4863 * /sys/class/power_supply/bms/cycle_count, via Vendor. 4864 */ 4865message ChargeCyclesReported { 4866 optional int32 cycle_bucket_1 = 1; 4867 optional int32 cycle_bucket_2 = 2; 4868 optional int32 cycle_bucket_3 = 3; 4869 optional int32 cycle_bucket_4 = 4; 4870 optional int32 cycle_bucket_5 = 5; 4871 optional int32 cycle_bucket_6 = 6; 4872 optional int32 cycle_bucket_7 = 7; 4873 optional int32 cycle_bucket_8 = 8; 4874 optional int32 cycle_bucket_9 = 9; 4875 optional int32 cycle_bucket_10 = 10; 4876} 4877 4878/** 4879 * Log battery health snapshot. 4880 * 4881 * Resistance, Voltage, Open Circuit Voltage, Temperature, and Charge Level 4882 * are snapshotted periodically over 24hrs. 4883 */ 4884message BatteryHealthSnapshot { 4885 enum BatterySnapshotType { 4886 UNKNOWN = 0; 4887 MIN_TEMP = 1; // Snapshot at min batt temp over 24hrs. 4888 MAX_TEMP = 2; // Snapshot at max batt temp over 24hrs. 4889 MIN_RESISTANCE = 3; // Snapshot at min batt resistance over 24hrs. 4890 MAX_RESISTANCE = 4; // Snapshot at max batt resistance over 24hrs. 4891 MIN_VOLTAGE = 5; // Snapshot at min batt voltage over 24hrs. 4892 MAX_VOLTAGE = 6; // Snapshot at max batt voltage over 24hrs. 4893 MIN_CURRENT = 7; // Snapshot at min batt current over 24hrs. 4894 MAX_CURRENT = 8; // Snapshot at max batt current over 24hrs. 4895 MIN_BATT_LEVEL = 9; // Snapshot at min battery level (SoC) over 24hrs. 4896 MAX_BATT_LEVEL = 10; // Snapshot at max battery level (SoC) over 24hrs. 4897 AVG_RESISTANCE = 11; // Snapshot at average battery resistance over 24hrs. 4898 } 4899 optional BatterySnapshotType type = 1; 4900 // Temperature, in 1/10ths of degree C. 4901 optional int32 temperature_deci_celsius = 2; 4902 // Voltage Battery Voltage, in microVolts. 4903 optional int32 voltage_micro_volt = 3; 4904 // Current Battery current, in microAmps. 4905 optional int32 current_micro_amps = 4; 4906 // OpenCircuitVoltage Battery Open Circuit Voltage, in microVolts. 4907 optional int32 open_circuit_micro_volt = 5; 4908 // Resistance Battery Resistance, in microOhms. 4909 optional int32 resistance_micro_ohm = 6; 4910 // Level Battery Level, as % of full. 4911 optional int32 level_percent = 7; 4912} 4913 4914/** 4915 * Log slow I/O operations on the primary storage. 4916 */ 4917message SlowIo { 4918 // Classifications of IO Operations. 4919 enum IoOperation { 4920 UNKNOWN = 0; 4921 READ = 1; 4922 WRITE = 2; 4923 UNMAP = 3; 4924 SYNC = 4; 4925 } 4926 optional IoOperation operation = 1; 4927 4928 // The number of slow IO operations of this type over 24 hours. 4929 optional int32 count = 2; 4930} 4931 4932/** 4933 * Log battery caused shutdown with the last recorded voltage. 4934 */ 4935message BatteryCausedShutdown { 4936 // The last recorded battery voltage prior to shutdown. 4937 optional int32 last_recorded_micro_volt = 1; 4938} 4939 4940/** 4941 * Logs when ThermalService receives throttling events. 4942 * 4943 * Logged from: 4944 * frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java 4945 */ 4946message ThermalThrottlingSeverityStateChanged { 4947 // The type of temperature being reported (CPU, GPU, SKIN, etc) 4948 optional android.os.TemperatureTypeEnum sensor_type = 1 4949 [(state_field_option).primary_field = true]; 4950 4951 // The name of the temperature source. Eg. CPU0 4952 optional string sensor_name = 2 [(state_field_option).primary_field = true]; 4953 4954 // Temperature in tenths of a degree C. 4955 // For BCL, it is decimillivolt, decimilliamps, and percentage * 10. 4956 optional int32 temperature_deci_celsius = 3; 4957 4958 // Relative severity of the throttling, see enum definition. 4959 optional android.os.ThrottlingSeverityEnum severity = 4 [ 4960 (state_field_option).exclusive_state = true, 4961 (state_field_option).nested = false 4962 ]; 4963} 4964 4965/** 4966 * Logs phone signal strength changes. 4967 * 4968 * The atom doesn't tell which SIM had signal strength changed -- use with caution when there are 4969 * multiple SIMs present. 4970 * 4971 * Logged from: 4972 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java 4973 */ 4974message PhoneSignalStrengthChanged { 4975 // Signal strength, from frameworks/proto_logging/stats/enums/telephony/enums.proto. 4976 optional android.telephony.SignalStrengthEnum signal_strength = 1 4977 [(state_field_option).exclusive_state = true, (state_field_option).nested = false]; 4978} 4979 4980 4981/** 4982 * Logs when the phone state, sim state or signal strength changes 4983 * 4984 * Logged from: 4985 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java 4986 */ 4987message PhoneServiceStateChanged { 4988 optional android.telephony.ServiceStateEnum state = 1; 4989 optional android.telephony.SimStateEnum sim_state = 2; 4990 optional android.telephony.SignalStrengthEnum signal_strength = 3; 4991} 4992 4993/** 4994 * Logs when the phone becomes on or off. 4995 * 4996 * Logged from: 4997 * frameworks/base/core/java/com/android/internal/os/TelephonyRegistry.java 4998 */ 4999message PhoneStateChanged { 5000 enum State { 5001 OFF = 0; 5002 ON = 1; 5003 } 5004 optional State state = 1; 5005} 5006 5007message ExclusionRectStateChanged { 5008 optional string component_name = 1; // if not available, simply packageName 5009 optional int32 requested_height = 2; // px 5010 optional int32 rejected_height = 3; // px 5011 5012 enum WindowHorizontalLocation { 5013 DEFAULT_LOCATION = 0; 5014 LEFT = 1; 5015 RIGHT = 2; 5016 } 5017 optional WindowHorizontalLocation x_location = 4; 5018 optional bool landscape = 5; 5019 optional bool splitscreen = 6 [deprecated = true]; 5020 optional int32 duration_millis = 7; 5021} 5022 5023/** 5024 * Logs when Wallpaper or ThemePicker UI has changed. 5025 * 5026 * Logged from: 5027 * packages/apps/ThemePicker 5028 * packages/apps/WallpaperPicker2 5029 */ 5030message StyleUIChanged { 5031 optional android.stats.style.Action action = 1; 5032 optional int32 color_package_hash = 2; 5033 optional int32 font_package_hash = 3; 5034 optional int32 shape_package_hash = 4; 5035 optional int32 clock_package_hash = 5; 5036 optional int32 launcher_grid = 6; 5037 optional int32 wallpaper_category_hash = 7; 5038 optional int32 wallpaper_id_hash = 8; 5039 optional int32 color_preference = 9; 5040 optional android.stats.style.LocationPreference location_preference = 10; 5041 optional android.stats.style.DatePreference date_preference = 11; 5042 optional android.stats.style.LaunchedPreference launched_preference = 12; 5043 optional android.stats.style.EffectPreference effect_preference = 13; 5044 optional int32 effect_id_hash = 14; 5045 optional int32 lock_wallpaper_category_hash = 15; 5046 optional int32 lock_wallpaper_id_hash = 16; 5047 optional int32 first_launch_date_since_setup = 17; 5048 optional int32 first_wallpaper_apply_date_since_setup = 18; 5049 optional int32 app_launch_count = 19; 5050 optional int32 color_variant = 20; 5051 optional int64 time_elapsed_millis = 21; 5052 optional int32 effect_status_code = 22; 5053 optional int32 app_session_id = 23; 5054 optional android.stats.style.SetWallpaperEntryPoint set_wallpaper_entry_point = 24; 5055 optional android.stats.style.WallpaperDestination wallpaper_destination = 25; 5056 optional android.stats.style.ColorSource color_source = 26; 5057 optional int32 seed_color = 27; 5058 optional android.stats.style.ClockSize clock_size = 28; 5059 optional bool toggle_on = 29; 5060 optional string shortcut = 30; 5061 optional string shortcut_slot_id = 31; 5062 optional int32 lock_effect_id_hash = 32; 5063} 5064 5065/** 5066 * Logs when Settings UI has changed. 5067 * 5068 * Logged from: 5069 * packages/apps/Settings 5070 */ 5071message SettingsUIChanged { 5072 /** 5073 * Where this SettingsUIChange event comes from. For example, if 5074 * it's a PAGE_VISIBLE event, where the page is opened from. 5075 */ 5076 optional android.app.settings.PageId attribution = 1; 5077 5078 /** 5079 * What the UI action is. 5080 */ 5081 optional android.app.settings.Action action = 2; 5082 5083 /** 5084 * Where the action is happening 5085 */ 5086 optional android.app.settings.PageId page_id = 3; 5087 5088 /** 5089 * What preference changed in this event. 5090 */ 5091 optional string changed_preference_key = 4; 5092 5093 /** 5094 * The new value of the changed preference. 5095 */ 5096 optional int64 changed_preference_int_value = 5; 5097 5098 /** 5099 * Data about elapsed time since setup wizard finished. 5100 */ 5101 optional int64 elapsed_time_millis = 6; 5102} 5103 5104/** 5105 * Logs that a setting was updated. 5106 * Logged from: 5107 * frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java 5108 * The tag and is_default allow resetting of settings to default values based on the specified 5109 * tag. See Settings#putString(ContentResolver, String, String, String, boolean) for more details. 5110 */ 5111message SettingChanged { 5112 // The name of the setting. 5113 optional string setting = 1; 5114 5115 // The change being imposed on this setting. May represent a number, eg "3". 5116 optional string value = 2; 5117 5118 // The new value of this setting. For most settings, this is same as value. For some settings, 5119 // value is +X or -X where X represents an element in a set. For example, if the previous value 5120 // is A,B,C and value is -B, then new_value is A,C and prev_value is A,B,C. 5121 // The +/- feature is currently only used for location_providers_allowed. 5122 optional string new_value = 3; 5123 5124 // The previous value of this setting. 5125 optional string prev_value = 4; 5126 5127 // The tag used with the is_default for resetting sets of settings. This is generally null. 5128 optional string tag = 5; 5129 5130 // True if this setting with tag should be resettable. 5131 optional bool is_default = 6; 5132 5133 // The associated user (for multi-user feature). Defined in android/os/UserHandle.java 5134 optional int32 user = 7; 5135 5136 enum ChangeReason { 5137 UPDATED = 1; // Updated can be an insertion or an update. 5138 DELETED = 2; 5139 } 5140 optional ChangeReason reason = 8; 5141} 5142 5143/** 5144 * Logs activity going to foreground or background 5145 * 5146 * Logged from: 5147 * frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java 5148 */ 5149message ActivityForegroundStateChanged { 5150 optional int32 uid = 1 [(is_uid) = true]; 5151 optional string pkg_name = 2; 5152 optional string class_name = 3; 5153 5154 enum State { 5155 BACKGROUND = 0; 5156 FOREGROUND = 1; 5157 } 5158 optional State state = 4; 5159} 5160 5161/** 5162 * Logs when a volume entered low Storage state. 5163 * Logged from: 5164 * frameworks/base/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java 5165 */ 5166message LowStorageStateChanged { 5167 // Volume that ran out of storage. 5168 optional string volume_description = 1; 5169 5170 enum State { 5171 UNKNOWN = 0; 5172 OFF = 1; 5173 ON = 2; 5174 } 5175 optional State state = 2; 5176} 5177 5178/** 5179 * Logs when an app is downgraded. 5180 * Logged from: 5181 * frameworks/base/services/core/java/com/android/server/pm/BackgroundDexOptService.java 5182 */ 5183message AppDowngraded { 5184 optional string package_name = 1; 5185 // Size of the package (all data) before being downgraded. 5186 optional int64 size_in_bytes_before = 2; 5187 // Size of the package (all data) after being downgraded. 5188 optional int64 size_in_bytes_after = 3; 5189 5190 optional bool aggressive = 4; 5191} 5192 5193/** 5194 * Logs when an app is optimized after being downgraded. 5195 * Logged from: 5196 * frameworks/base/services/core/java/com/android/server/pm/BackgroundDexOptService.java 5197 */ 5198message AppOptimizedAfterDowngraded { 5199 optional string package_name = 1; 5200} 5201 5202/** 5203 * Logs whenever an app is installed on external storage. 5204 * Logged from: 5205 frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java 5206 */ 5207message AppInstallOnExternalStorageReported { 5208 // The type of external storage. 5209 optional android.stats.storage.ExternalStorageType storage_type = 1; 5210 // The name of the package that is installed on the sd card. 5211 optional string package_name = 2; 5212} 5213 5214/** 5215 * Logs when an app crashes. 5216 * Logged from: 5217 * frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java 5218 */ 5219message AppCrashOccurred { 5220 optional int32 uid = 1 [(is_uid) = true]; 5221 5222 optional string event_type = 2; 5223 5224 // The name of the process. 5225 // system_server if it is not by an app 5226 optional string process_name = 3; 5227 5228 // The pid if available. -1 means not available. 5229 optional int32 pid = 4; 5230 5231 optional string package_name = 5; 5232 5233 enum InstantApp { 5234 UNAVAILABLE = 0; 5235 FALSE = 1; 5236 TRUE = 2; 5237 } 5238 optional InstantApp is_instant_app = 6; 5239 5240 enum ForegroundState { 5241 UNKNOWN = 0; 5242 BACKGROUND = 1; 5243 FOREGROUND = 2; 5244 } 5245 optional ForegroundState foreground_state = 7; 5246 5247 optional android.server.ErrorSource error_source = 8; 5248 5249 optional bool is_incremental = 9; 5250 5251 optional float loading_progress = 10; 5252 5253 optional int64 millis_since_oldest_pending_read = 11; 5254 5255 // Status code to represent the health of the file system backing storage, as defined in 5256 // frameworks/base/core/java/android/os/incremental/IStorageHealthListener.aidl. 5257 // Value -1 if the app is not installed on Incremental 5258 optional int32 storage_health_code = 12; 5259 5260 // Status code to represent the status of data loader, as defined in 5261 // frameworks/base/core/java/android/content/pm/IDataLoaderStatusListener.aidl. 5262 // Value -1 if the app is not installed on Incremental 5263 optional int32 data_loader_status_code = 13; 5264 5265 // Whether read logs collection is enabled 5266 optional bool read_logs_enabled = 14; 5267 5268 // Duration since last attempt to bind data loader. 0 means did not attempt to bind. 5269 // -1 means the app is not installed on Incremental. 5270 optional int64 millis_since_last_data_loader_bind = 15; 5271 5272 // Delay for retrying to bind data loader. If not bound, it shows how soon it will be bound. 5273 optional int64 data_loader_bind_delay_millis = 16; 5274 5275 // Total count of delayed reads, as reported by Incremental File System. 5276 optional int32 total_delayed_reads = 17; 5277 5278 // Total count of failed reads (timeout or hash errors) as reported by Incremental File System. 5279 optional int32 total_failed_reads = 18; 5280 5281 // UID of the process that tried to read a page from the app but failed. 5282 // This shows whether the read was initiated by the system, the app itself, or some other apps. 5283 // -1 means there was no read error or the app is not installed on Incremental. 5284 optional int32 last_read_error_uid = 19 [(is_uid) = true]; 5285 5286 // Duration since that last read failure. 5287 // -1 means there was no read error or the app is not installed on Incremental. 5288 optional int64 last_read_error_millis_since = 20; 5289 5290 // Error code of last read failure. ETIME (value=62) for timeout, EBADMSG (value=74) for hash 5291 // and other positive values for other errors. -1 means app is not installed on Incremental. 5292 optional int32 last_read_error_code = 21; 5293 5294 // Total duration of delayed reads in milliseconds 5295 optional int64 total_delayed_reads_duration_millis = 22; 5296} 5297 5298/** 5299 * Logs when a WTF (What a Terrible Failure) happened. 5300 * Logged from: 5301 * frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java 5302 */ 5303message WTFOccurred { 5304 optional int32 uid = 1 [(is_uid) = true]; 5305 5306 optional string tag = 2; 5307 5308 // The name of the process. 5309 // system_server if it is not by an app 5310 optional string process_name = 3; 5311 5312 // The pid if available. -1 means not available. 5313 optional int32 pid = 4; 5314 5315 optional android.server.ErrorSource error_source = 5; 5316} 5317 5318/** 5319 * Logs when system server reports low memory. 5320 * Logged from: 5321 * frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java 5322 */ 5323message LowMemReported { 5324} 5325 5326/** 5327 * Logs when an app ANR (App Not Responding) occurs. 5328 * Logged from: 5329 * frameworks/base/services/core/java/com/android/server/am/AppErrors.java 5330 */ 5331message ANROccurred { 5332 optional int32 uid = 1 [(is_uid) = true]; 5333 5334 optional string process_name = 2; 5335 5336 optional string short_component_name = 3; 5337 5338 optional string reason = 4; 5339 5340 enum InstantApp { 5341 UNAVAILABLE = 0; 5342 FALSE = 1; 5343 TRUE = 2; 5344 } 5345 optional InstantApp is_instant_app = 5; 5346 5347 enum ForegroundState { 5348 UNKNOWN = 0; 5349 BACKGROUND = 1; 5350 FOREGROUND = 2; 5351 } 5352 optional ForegroundState foreground_state = 6; 5353 5354 optional android.server.ErrorSource error_source = 7; 5355 5356 optional string package_name = 8; 5357 5358 optional bool is_incremental = 9; 5359 5360 optional float loading_progress = 10; 5361 5362 optional int64 millis_since_oldest_pending_read = 11; 5363 5364 // Status code to represent the health of the file system backing storage, as defined in 5365 // frameworks/base/core/java/android/os/incremental/IStorageHealthListener.aidl. 5366 // Value -1 if the app is not installed on Incremental 5367 optional int32 storage_health_code = 12; 5368 5369 // Status code to represent the status of data loader, as defined in 5370 // frameworks/base/core/java/android/content/pm/IDataLoaderStatusListener.aidl. 5371 // Value -1 if the app is not installed on Incremental 5372 optional int32 data_loader_status_code = 13; 5373 5374 // Whether read logs collection is enabled 5375 optional bool read_logs_enabled = 14; 5376 5377 // Duration since last attempt to bind data loader. 0 means did not attempt to bind. 5378 // -1 means the app is not installed on Incremental. 5379 optional int64 millis_since_last_data_loader_bind = 15; 5380 5381 // Delay for retrying to bind data loader. If not bound, it shows how soon it will be bound. 5382 optional int64 data_loader_bind_delay_millis = 16; 5383 5384 // Total count of delayed reads, as reported by Incremental File System. 5385 optional int32 total_delayed_reads = 17; 5386 5387 // Total count of failed reads (timeout or hash errors) as reported by Incremental File System. 5388 optional int32 total_failed_reads = 18; 5389 5390 // UID of the process that tried to read a page from the app but failed. 5391 // This shows whether the read was initiated by the system, the app itself, or some other apps. 5392 // -1 means there was no read error or the app is not installed on Incremental. 5393 optional int32 last_read_error_uid = 19 [(is_uid) = true]; 5394 5395 // Duration since that last read failure. 5396 // -1 means there was no read error or the app is not installed on Incremental. 5397 optional int64 last_read_error_millis_since = 20; 5398 5399 // Error code of last read failure. ETIME (value=62) for timeout, EBADMSG (value=74) for hash 5400 // and other positive values for other errors. -1 means app is not installed on Incremental. 5401 optional int32 last_read_error_code = 21; 5402 5403 // Total duration of delayed reads in milliseconds 5404 optional int64 total_delayed_reads_duration_millis = 22; 5405} 5406 5407/** 5408 * Logs immediately after an app ANR (App Not Responding) occurs. In contrast, ANROccurred (the 5409 * atom above) logs some time (not necessarily immediately) after the ANR is detected. 5410 * Logged from: 5411 * frameworks/base/services/core/java/com/android/server/am/AppErrors.java 5412 */ 5413message ANROccurredProcessingStarted { 5414 optional string process_name = 1; 5415} 5416 5417/** 5418 * Logs when the vibrator state changes. 5419 * Logged from: 5420 * frameworks/base/services/core/java/com/android/vibrator/VibratorManagerService.java 5421 */ 5422message VibratorStateChanged { 5423 repeated AttributionNode attribution_node = 1; 5424 5425 enum State { 5426 OFF = 0; 5427 ON = 1; 5428 } 5429 optional State state = 2; 5430 5431 // Duration (in milliseconds) requested to keep the vibrator on. 5432 // Only applicable for State == ON. 5433 optional int64 duration_millis = 3; 5434} 5435 5436/** 5437 * Logs vibration request. 5438 * Logged from: 5439 * frameworks/base/services/core/java/com/android/server/vibrator/VibratorManagerService.java 5440 */ 5441// Next tag: 28 5442message VibrationReported { 5443 repeated AttributionNode attribution_node = 1; 5444 5445 enum VibrationType { 5446 5447 // Unknown vibration type. 5448 UNKNOWN = 0; 5449 5450 // One-off vibration effect/pattern. 5451 SINGLE = 1; 5452 5453 // Infinitely repeating vibration pattern. 5454 REPEATED = 2; 5455 5456 // Vibration defined in the platform outside the vibrator service 5457 // (e.g. from audio-coupled haptics or haptic generator). 5458 EXTERNAL = 3; 5459 5460 // Vibration defined by vendor apps/services. 5461 VENDOR = 4; 5462 } 5463 5464 // Vibration identifiers for aggregation. 5465 optional VibrationType vibration_type = 2; 5466 // One of VibrationAttributes.USAGE_* constant values. 5467 optional int32 vibration_usage = 3; 5468 optional int32 vibration_status = 4; 5469 5470 // Vibration parameters. 5471 // Adaptive scale value applied to this vibration, 0 if unset. 5472 optional float adaptive_scale = 26; 5473 5474 // Vibration completion causes. 5475 // Flag indicating if the vibration was canceled by the same process 5476 // or superseded/canceled by another vibration from the same process. 5477 optional bool ended_by_same_uid = 5; 5478 // Usage value of the vibration that superseded/canceled this one. 5479 optional int32 ended_by_usage = 6; 5480 // Usage value of the vibration that was superseded/canceled by this one. 5481 optional int32 interrupted_usage = 7; 5482 5483 // Vibration execution counters. 5484 optional int32 repeat_count = 8; 5485 // Total duration of this vibration at the service, including setup and cleanup. 5486 optional int64 vibration_duration_millis = 9; 5487 // Total duration the vibrator motor was active with non-zero amplitude. 5488 optional int64 vibrator_on_duration_millis = 10; 5489 // Delta between the incoming binder call to vibrate and the first step in the 5490 // vibration conductor (closest measure of starting HAL interactions). 5491 optional int64 start_latency_millis = 11; 5492 // Delta between the HAL reporting the last vibrate operation has completed and 5493 // vibrator service has finished the vibration and become idle. 5494 optional int64 end_latency_millis = 12; 5495 5496 // Vibrator hardware HAL API interaction counters. 5497 // The majority of vibrations will populate only a couple of the fields below. 5498 optional int32 hal_compose_count = 13; 5499 optional int32 hal_compose_pwle_count = 14; 5500 optional int32 hal_on_count = 15; 5501 optional int32 hal_off_count = 16; 5502 optional int32 hal_perform_count = 17; 5503 optional int32 hal_set_amplitude_count = 18; 5504 optional int32 hal_set_external_control_count = 19; 5505 optional int32 hal_perform_vendor_count = 27; 5506 5507 // Vibrator hardware HAL API constants used (deduped). 5508 // Values from CompositionPrimitive.aidl successfully triggered by this vibration at least once. 5509 repeated int32 hal_supported_composition_primitives_used = 20; 5510 // Values from Effect.aidl triggered by this vibration at least once. 5511 repeated int32 hal_supported_effects_used = 21; 5512 // Values from CompositionPrimitive.aidl triggered but not supported by the device. 5513 repeated int32 hal_unsupported_composition_primitives_used = 22; 5514 // Values from Effect.aidl triggered but not supported by the device. 5515 repeated int32 hal_unsupported_effects_used = 23; 5516 // Vibrator hardware HAL argument sizes (total). 5517 optional int32 hal_composition_size = 24; 5518 optional int32 hal_pwle_size = 25; 5519} 5520 5521/* 5522 * Allows other apps to push events into statsd. 5523 * Logged from: 5524 * frameworks/base/core/java/android/util/StatsLog.java 5525 */ 5526message AppBreadcrumbReported { 5527 // The uid of the application that sent this custom atom. 5528 optional int32 uid = 1 [(is_uid) = true]; 5529 5530 // An arbitrary label chosen by the developer. For Android P, the label should be in [0, 16). 5531 optional int32 label = 2; 5532 5533 // Allows applications to easily use a custom event as start/stop boundaries (ie, define custom 5534 // predicates for the metrics). 5535 enum State { 5536 UNKNOWN = 0; 5537 UNSPECIFIED = 1; // For events that are known to not represent START/STOP. 5538 STOP = 2; 5539 START = 3; 5540 } 5541 optional State state = 3; 5542} 5543 5544/** 5545 * Logs the wall-clock time when a significant wall-clock time shift occurs. 5546 * For example, this could be due to the user manually changing the time. 5547 * 5548 * Logged from: 5549 * frameworks/base/services/core/java/com/android/server/AlarmManagerService.java 5550 */ 5551message WallClockTimeShifted { 5552 // New wall-clock time in milliseconds, according to System.currentTimeMillis(). 5553 optional int64 wall_clock_timestamp_millis = 1; 5554} 5555 5556/** 5557 * Logs when statsd detects an anomaly. 5558 * 5559 * Logged from: 5560 * frameworks/base/cmds/statsd/src/anomaly/AnomalyTracker.cpp 5561 */ 5562message AnomalyDetected { 5563 // Uid that owns the config whose anomaly detection alert fired. 5564 optional int32 config_uid = 1 [(is_uid) = true]; 5565 5566 // Id of the config whose anomaly detection alert fired. 5567 optional int64 config_id = 2; 5568 5569 // Id of the alert (i.e. name of the anomaly that was detected). 5570 optional int64 alert_id = 3; 5571} 5572 5573message AppStartOccurred { 5574 // The uid if available. -1 means not available. 5575 optional int32 uid = 1 [(is_uid) = true]; 5576 5577 // The app package name. 5578 optional string pkg_name = 2; 5579 5580 enum TransitionType { 5581 UNKNOWN = 0; 5582 WARM = 1; 5583 HOT = 2; 5584 COLD = 3; 5585 RELAUNCH = 4; 5586 } 5587 // The transition type. 5588 optional TransitionType type = 3; 5589 5590 // The activity name. 5591 optional string activity_name = 4; 5592 5593 // The name of the calling app. Empty if not set. 5594 optional string calling_pkg_name = 5; 5595 5596 // Whether the app is an instant app. 5597 optional bool is_instant_app = 6; 5598 5599 // Device uptime when activity started. Deprecated: use activity_start_timestamp_millis instead. 5600 optional int64 activity_start_millis = 7 [deprecated = true]; 5601 5602 optional android.app.AppTransitionReasonEnum reason = 8; 5603 5604 optional int32 transition_delay_millis = 9; 5605 // -1 if not set. 5606 optional int32 starting_window_delay_millis = 10; 5607 // -1 if not set. 5608 optional int32 bind_application_delay_millis = 11; 5609 optional int32 windows_drawn_delay_millis = 12; 5610 5611 // Empty if not set. 5612 optional string launch_token = 13; 5613 5614 // The reason why the package was optimized. 5615 optional int32 package_optimization_compilation_reason = 14; 5616 5617 // The compiler filter used when when the package was optimized. 5618 optional int32 package_optimization_compilation_filter = 15; 5619 5620 enum SourceType { 5621 UNAVAILABLE = 0; 5622 LAUNCHER = 1; 5623 NOTIFICATION = 2; 5624 LOCKSCREEN = 3; 5625 RECENTS_ANIMATION = 4; 5626 } 5627 // The type of the startup source. 5628 optional SourceType source_type = 16; 5629 5630 // The time from the startup source to the beginning of handling the startup event. 5631 // -1 means not available. 5632 optional int32 source_event_delay_millis = 17; 5633 5634 // Whether the app is hibernating when it started 5635 optional bool is_hibernating = 18; 5636 5637 // Whether the app is installed on Incremental File System. 5638 optional bool is_incremental = 19; 5639 5640 // Whether the app is still being streamed. 5641 optional bool is_loading = 20; 5642 5643 // The hash value of the activity name. 5644 optional int32 activity_name_hash = 21; 5645 5646 // The timestamp(SystemClock#elapsedRealtime()) when starting activity. 5647 optional int64 activity_start_timestamp_millis = 22; 5648 5649 /** 5650 * The process state of apps, keep in sync with 5651 * frameworks/base/core/java/android/app/ActivityManager.java 5652 */ 5653 enum AppProcessState { 5654 PROCESS_STATE_UNKNOWN = -1; 5655 PROCESS_STATE_PERSISTENT = 0; 5656 PROCESS_STATE_PERSISTENT_UI = 1; 5657 PROCESS_STATE_TOP = 2; 5658 PROCESS_STATE_BOUND_TOP = 3; 5659 PROCESS_STATE_FOREGROUND_SERVICE = 4; 5660 PROCESS_STATE_BOUND_FOREGROUND_SERVICE = 5; 5661 PROCESS_STATE_IMPORTANT_FOREGROUND = 6; 5662 PROCESS_STATE_IMPORTANT_BACKGROUND = 7; 5663 PROCESS_STATE_TRANSIENT_BACKGROUND = 8; 5664 PROCESS_STATE_BACKUP = 9; 5665 PROCESS_STATE_SERVICE = 10; 5666 PROCESS_STATE_RECEIVER = 11; 5667 PROCESS_STATE_TOP_SLEEPING = 12; 5668 PROCESS_STATE_HEAVY_WEIGHT = 13; 5669 PROCESS_STATE_HOME = 14; 5670 PROCESS_STATE_LAST_ACTIVITY = 15; 5671 PROCESS_STATE_CACHED_ACTIVITY = 16; 5672 PROCESS_STATE_CACHED_ACTIVITY_CLIENT = 17; 5673 PROCESS_STATE_CACHED_RECENT = 18; 5674 PROCESS_STATE_CACHED_EMPTY = 19; 5675 PROCESS_STATE_NONEXISTENT = 20; 5676 } 5677 5678 // The process state of the launching activity prior to the launch. 5679 optional AppProcessState process_state = 23; 5680 5681 // The oom adj score of the launching activity prior to the launch. 5682 optional int32 process_oom_adj = 24; 5683 5684 // The stopped state (if any) the package was in before the launch 5685 optional PackageStoppedState package_stopped_state = 25; 5686 5687 // Reserved for b/281564325. 5688 optional bool is_xr_activity = 26; 5689 5690 // Whether this is the first launch of the app since install 5691 optional bool first_launch = 27; 5692 5693 // How long since this package was stopped, if it was in 5694 // package_stopped_state == PACKAGE_STATE_STOPPED 5695 optional int64 millis_since_stopped = 28; 5696 5697 /** 5698 * The type of multi-window launch. 5699 * This should match the constants declared in ActivityMetricsLogger. 5700 */ 5701 enum MultiWindowLaunchType { 5702 LAUNCH_TYPE_UNSPECIFIED = 0; 5703 LAUNCH_TYPE_APP_PAIR = 1; 5704 } 5705 5706 // The multi-indow launch type 5707 optional MultiWindowLaunchType multi_window_launch_type = 29; 5708} 5709 5710message AppStartCanceled { 5711 // The uid if available. -1 means not available. 5712 optional int32 uid = 1 [(is_uid) = true]; 5713 5714 // The app package name. 5715 optional string pkg_name = 2; 5716 5717 enum TransitionType { 5718 UNKNOWN = 0; 5719 WARM = 1; 5720 HOT = 2; 5721 COLD = 3; 5722 RELAUNCH = 4; 5723 } 5724 // The transition type. 5725 optional TransitionType type = 3; 5726 5727 // The activity name. 5728 optional string activity_name = 4; 5729} 5730 5731message AppStartFullyDrawn { 5732 // The uid if available. -1 means not available. 5733 optional int32 uid = 1 [(is_uid) = true]; 5734 5735 // The app package name. 5736 optional string pkg_name = 2; 5737 5738 enum TransitionType { 5739 UNKNOWN = 0; 5740 WITH_BUNDLE = 1; 5741 WITHOUT_BUNDLE = 2; 5742 } 5743 // The transition type. 5744 optional TransitionType type = 3; 5745 5746 // The activity name. 5747 optional string activity_name = 4; 5748 5749 optional bool transition_process_running = 5; 5750 5751 // App startup time (until call to Activity#reportFullyDrawn()). 5752 optional int64 app_startup_time_millis = 6; 5753 5754 // The reason why the package was optimized. 5755 optional int32 package_optimization_compilation_reason = 7; 5756 5757 // The compiler filter used when when the package was optimized. 5758 optional int32 package_optimization_compilation_filter = 8; 5759 5760 enum SourceType { 5761 UNAVAILABLE = 0; 5762 LAUNCHER = 1; 5763 NOTIFICATION = 2; 5764 LOCKSCREEN = 3; 5765 } 5766 // The type of the startup source. 5767 optional SourceType source_type = 9; 5768 5769 // The time from the startup source to the beginning of handling the startup event. 5770 // -1 means not available. 5771 optional int32 source_event_delay_millis = 10; 5772 5773 // Whether the app is installed on Incremental File System. 5774 optional bool is_incremental = 11; 5775 5776 // Whether the app is still being streamed. 5777 optional bool is_loading = 12; 5778 5779 // The hash value of the activity name. 5780 optional int32 activity_name_hash = 13; 5781 5782 // The timestamp(SystemClock#elapsedRealtime()) when starting activity. 5783 optional int64 activity_start_timestamp_millis = 14; 5784} 5785 5786/** 5787 * Logs when an app enters a different App Compat state. 5788 * 5789 * Logged from: 5790 * frameworks/base/services/core/java/com/android/server/wm/ActivityMetricsLogger.java 5791 */ 5792message AppCompatStateChanged { 5793 // UID of the package whose state changed. 5794 optional int32 uid = 1 [(state_field_option).primary_field = true, (is_uid) = true]; 5795 5796 enum State { 5797 UNKNOWN = 0; 5798 // The app is not visible or has been closed. 5799 NOT_VISIBLE = 1; 5800 // The app’s bounds aren’t letterboxed. 5801 NOT_LETTERBOXED = 2; 5802 // The app’s bounds are letterboxed because of size-compat-mode. 5803 LETTERBOXED_FOR_SIZE_COMPAT_MODE = 3; 5804 // The app’s bounds are letterboxed because of fixed orientation. 5805 LETTERBOXED_FOR_FIXED_ORIENTATION = 4; 5806 // The app’s bounds are letterboxed because of aspect ratio restrictions. 5807 LETTERBOXED_FOR_ASPECT_RATIO = 5; 5808 } 5809 5810 // Position of the letterbox 5811 enum Position { 5812 UNKNOWN_POSITION = 0; 5813 NOT_LETTERBOXED_POSITION = 1; 5814 CENTER = 2; 5815 LEFT = 3; 5816 RIGHT = 4; 5817 TOP = 5; 5818 BOTTOM = 6; 5819 } 5820 5821 // The state that was entered. 5822 optional State state = 2 [ 5823 (state_field_option).exclusive_state = true, 5824 (state_field_option).nested = false]; 5825 5826 optional Position letterbox_position = 3; 5827} 5828 5829/** 5830 * Logs when an app that is letterboxed changes position. 5831 * 5832 * Logged from: 5833 * frameworks/base/services/core/java/com/android/server/wm/ActivityMetricsLogger.java 5834 */ 5835 5836message LetterboxPositionChanged { 5837 // UID of the package that is letterboxed. 5838 optional int32 uid = 1 [(is_uid) = true]; 5839 5840 // The new position of the letterbox 5841 enum PositionChange { 5842 UNKNOWN = 0; 5843 CENTER_TO_LEFT = 1; 5844 LEFT_TO_CENTER = 2; 5845 CENTER_TO_RIGHT= 3; 5846 RIGHT_TO_CENTER = 4; 5847 CENTER_TO_TOP = 5; 5848 TOP_TO_CENTER = 6; 5849 CENTER_TO_BOTTOM = 7; 5850 BOTTOM_TO_CENTER = 8; 5851 } 5852 5853 optional PositionChange position_change = 2; 5854 5855} 5856 5857/** 5858 * Logs events reported for the Size Compat restart button of an app. 5859 * 5860 * Logged from: 5861 * frameworks/base/libs/WindowManager/Shell/src/com/android/wm/shell/ShellTaskOrganizer.java 5862 */ 5863message SizeCompatRestartButtonEventReported { 5864 // UID of the package that has the button. 5865 optional int32 uid = 1 [(is_uid) = true]; 5866 5867 enum Event { 5868 UNKNOWN = 0; 5869 APPEARED = 1; 5870 CLICKED = 2; 5871 } 5872 5873 // The event that was reported. 5874 optional Event event = 2; 5875} 5876 5877/** 5878 * Logs a picture-in-picture action 5879 * Logged from: 5880 * frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java 5881 * frameworks/base/services/core/java/com/android/server/am/ActivityStackSupervisor.java 5882 * frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java 5883 */ 5884message PictureInPictureStateChanged { 5885 // -1 if it is not available 5886 optional int32 uid = 1 [(is_uid) = true]; 5887 5888 optional string short_name = 2; 5889 5890 enum State { 5891 ENTERED = 1; 5892 EXPANDED_TO_FULL_SCREEN = 2; 5893 MINIMIZED = 3; 5894 DISMISSED = 4; 5895 } 5896 optional State state = 3; 5897} 5898 5899/** 5900 * Logs overlay action 5901 * Logged from: 5902 * services/core/java/com/android/server/wm/Session.java 5903 */ 5904message OverlayStateChanged { 5905 optional int32 uid = 1 [(state_field_option).primary_field = true, (is_uid) = true]; 5906 5907 optional string package_name = 2 [(state_field_option).primary_field = true]; 5908 5909 optional bool using_alert_window = 3; 5910 5911 enum State { 5912 ENTERED = 1; 5913 EXITED = 2; 5914 } 5915 optional State state = 4 5916 [(state_field_option).exclusive_state = true, (state_field_option).nested = false]; 5917} 5918 5919/** 5920 * Logs foreground service starts and stops. 5921 * Note that this is not when a service starts or stops, but when it is 5922 * considered foreground. 5923 * Logged from 5924 * frameworks/base/services/core/java/com/android/server/am/ActiveServices.java 5925 */ 5926message ForegroundServiceStateChanged { 5927 optional int32 uid = 1 [(is_uid) = true]; 5928 // package_name + "/" + class_name 5929 optional string short_name = 2; 5930 5931 enum State { 5932 UNKNOWN_STATE = 0; 5933 ENTER = 1; 5934 EXIT = 2; 5935 DENIED = 3; 5936 API_CALL = 4; // this event is to annotate API call. 5937 TIMED_OUT = 5; // time-restricted fgs type timed out. 5938 } 5939 optional State state = 3; 5940 5941 // Whether the fgs is allowed while-in-use permissions, i.e. is considered 'in-use' to the user. 5942 // (If the fgs was started while the app wasn't TOP it usually will be denied these permissions) 5943 optional bool allow_while_in_use_permission = 4; 5944 // the reason why FGS is allowed or denied to start. The reason code is defined as 5945 // PowerExemptionManager#ReasonCode. 5946 optional int32 fgs_start_reason_code = 5; 5947 // FGS service's targetSdkVersion. 5948 optional int32 target_sdk_version = 6; 5949 // uid of the app that start/bind this service. 5950 optional int32 calling_uid = 7 [(is_uid) = true]; 5951 // targetSdkVersion of the app that start/bind this service. 5952 optional int32 caller_target_sdk_version = 8; 5953 // uid of the app that set the temp-allowlist, INVALID_UID (-1) if not in any 5954 // temp-allowlist. 5955 optional int32 temp_allow_list_calling_uid = 9 [(is_uid) = true]; 5956 // FGS notification was deferred. 5957 optional bool fgs_notification_deferred = 10; 5958 // FGS notification was shown before the FGS finishes, or it wasn't deferred in the first place. 5959 optional bool fgs_notification_shown = 11; 5960 // The duration from state ENTER to state EXIT. Only meaningful when the state is EXIT. 5961 optional int32 fgs_duration_ms = 12; 5962 // Number of times startForeground() is called on this service. 5963 optional int32 fgs_start_count = 13; 5964 // SHA-1 hashed short_name combined with ANDROID_ID. 5965 optional int32 short_name_hash = 14; 5966 // Whether this FGS package had permission to notify the user. 5967 optional bool fgs_has_notification_permission = 15; 5968 5969 // Keep in sync with frameworks/base/core/java/android/content/pm/ServiceInfo.java 5970 enum ForegroundServiceType { 5971 FOREGROUND_SERVICE_TYPE_NONE = 0; 5972 FOREGROUND_SERVICE_TYPE_DATA_SYNC = 0x0001; // 1 << 0 5973 FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK = 0x0002; // 1 << 1 5974 FOREGROUND_SERVICE_TYPE_PHONE_CALL = 0x0004; //1 << 2 5975 FOREGROUND_SERVICE_TYPE_LOCATION = 0x0008; // 1 << 3 5976 FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE = 0x0010; // 1 << 4 5977 FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION = 0x0020; // 1 << 5 5978 FOREGROUND_SERVICE_TYPE_CAMERA = 0x0040; // 1 << 6 5979 FOREGROUND_SERVICE_TYPE_MICROPHONE = 0x0080; // 1 << 7 5980 FOREGROUND_SERVICE_TYPE_HEALTH = 0x0100; // 1 << 8 5981 FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING = 0x0200; // 1 << 9 5982 FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED = 0x0400; // 1 << 10 5983 FOREGROUND_SERVICE_TYPE_SHORT_SERVICE = 0x0800; // 1 << 11 5984 // 1 << 12 is being skipping since it was temporarily reserved for FILE_MANAGEMENT 5985 FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING = 0x2000; // 1 << 13 5986 FOREGROUND_SERVICE_TYPE_SPECIAL_USE = 0x40000000; // 1 << 30 5987 } 5988 5989 // The foreground service types, must be one or a combination of the types 5990 // in the ForegroundServiceType above. 5991 optional int32 fgs_types = 16; 5992 // The result check code for the fgs type enforcement. 5993 optional android.app.FgsTypePolicyCheckEnum fgs_type_check_code = 17; 5994 // If true, this FGS service is a delegate (instead of real FGS). 5995 optional bool is_delegate = 18; 5996 // The actual client app's uid. 5997 optional int32 delegate_client_uid = 19 [(is_uid) = true]; 5998 // The service module that start/stop the delegate, could be 5999 // MediaSessionService, VOIP, Camera, Audio, Location etc. 6000 // The enum is defined in interface 6001 // ForegroundServiceDelegationOptions.DelegationService 6002 optional int32 delegation_service = 20; 6003 6004 enum ApiJourneyState { 6005 UNKNOWN_JOURNEY_STATE = 0; 6006 ENTER_WITH_FGS = 1; 6007 EXIT_WITH_FGS = 2; 6008 EXIT_WITHOUT_FGS = 3; 6009 PAUSE = 4; 6010 RESUME = 5; 6011 } 6012 6013 optional ApiJourneyState api_state = 21; 6014 6015 enum ApiType { 6016 UNKNOWN_API_TYPE = 0; 6017 CAMERA = 1; 6018 BLUETOOTH = 2; 6019 LOCATION = 3; 6020 MEDIA_PLAYBACK = 4; 6021 AUDIO = 5; 6022 MICROPHONE = 6; 6023 PHONE_CALL = 7; 6024 USB = 8; 6025 CDM = 9; 6026 } 6027 6028 repeated ApiType api_type = 22; 6029 6030 repeated int64 api_timestamp = 23; 6031 6032 optional int64 api_before_fgs_start_duration_millis = 28; 6033 6034 optional int64 api_after_fgs_end_duration_millis = 29; 6035 6036 // Keep it in sync with ActivityManager.ProcessCapability. 6037 enum ProcessCapability { 6038 PROCESS_CAPABILITY_NONE = 0; 6039 PROCESS_CAPABILITY_FOREGROUND_LOCATION = 1; 6040 PROCESS_CAPABILITY_FOREGROUND_CAMERA = 2; 6041 PROCESS_CAPABILITY_FOREGROUND_MICROPHONE = 4; 6042 PROCESS_CAPABILITY_POWER_RESTRICTED_NETWORK = 8; 6043 PROCESS_CAPABILITY_BFSL = 16; 6044 PROCESS_CAPABILITY_USER_RESTRICTED_NETWORK = 32; 6045 } 6046 6047 optional android.app.ProcessStateEnum service_uid_state = 24 [default = PROCESS_STATE_UNKNOWN]; 6048 optional ProcessCapability service_uid_capabilities = 25; 6049 6050 optional android.app.ProcessStateEnum calling_uid_state = 26 [default = PROCESS_STATE_UNKNOWN]; 6051 optional ProcessCapability calling_uid_capabilities = 27; 6052 6053 optional int32 while_in_use_reason_code_no_binding = 30; 6054 optional int32 while_in_use_reason_code_in_bind_service = 31; 6055 optional int32 while_in_use_reason_code_by_bindings = 32; 6056 optional int32 fgs_start_reason_code_no_binding = 33; 6057 optional int32 fgs_start_reason_code_in_bind_service = 34; 6058 optional int32 fgs_start_reason_code_by_bindings = 35; 6059 6060 enum FgsStartApi { 6061 // Not available -- used in atoms that are unrelated to this selection. 6062 FGSSTARTAPI_NA = 0; 6063 // The FGS was not started. (likely it's bound.) 6064 FGSSTARTAPI_NONE = 1; 6065 // The FGS was started with Context.startService(). 6066 FGSSTARTAPI_START_SERVICE = 2; 6067 // The FGS was started with Context.startForegroundService(). 6068 FGSSTARTAPI_START_FOREGROUND_SERVICE = 3; 6069 // It's a delegate FGS. 6070 FGSSTARTAPI_DELEGATE = 4; 6071 6072 } 6073 optional FgsStartApi fgs_start_api = 36; 6074 6075 // Whether setFgsRestrictionLocked() was called in Service.startForeground(). 6076 optional bool fgs_restriction_recalculated = 37; 6077} 6078 6079/** 6080 * Logs the number of times a uid accesses a sensitive AppOp during a foreground service session. 6081 * A foreground service session is any continuous period during which the uid holds at least one 6082 * foreground service; the atom will be pushed when the uid no longer holds any foreground services. 6083 * Accesses initiated while the uid is in the TOP state are ignored. 6084 * Sessions with no attempted accesses are not logged. 6085 * Logged from 6086 * frameworks/base/services/core/java/com/android/server/am/ActiveServices.java 6087 */ 6088message ForegroundServiceAppOpSessionEnded { 6089 optional int32 uid = 1 [(is_uid) = true]; 6090 6091 // The operation's name. 6092 // Only following four ops are logged 6093 // COARSE_LOCATION = 0 6094 // FINE_LOCATION = 1 6095 // CAMERA = 26 6096 // RECORD_AUDIO = 27 6097 optional android.app.AppOpEnum app_op_name = 2 [default = APP_OP_NONE]; 6098 6099 // The uid's permission mode for accessing the AppOp during this fgs session. 6100 enum Mode { 6101 MODE_UNKNOWN = 0; 6102 MODE_ALLOWED = 1; // Always allowed 6103 MODE_IGNORED = 2; // Denied 6104 MODE_FOREGROUND = 3; // Allow-while-in-use (or allowed-one-time) 6105 } 6106 optional Mode app_op_mode = 3; 6107 6108 // Number of times this AppOp was requested and allowed. 6109 optional int32 count_ops_accepted = 4; 6110 // Number of times this AppOp was requested but denied. 6111 optional int32 count_ops_rejected = 5; 6112} 6113 6114/** 6115 * Logs creation or removal of an isolated uid. Isolated uid's are temporary uid's to sandbox risky 6116 * behavior in its own uid. However, the metrics of these isolated uid's almost always should be 6117 * attributed back to the parent (host) uid. One example is Chrome. 6118 * 6119 * Logged from: 6120 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java 6121 */ 6122message IsolatedUidChanged { 6123 // The host UID. Generally, we should attribute metrics from the isolated uid to the host uid. 6124 // This field is ignored when event == REMOVED. 6125 optional int32 parent_uid = 1 [(is_uid) = true]; 6126 6127 optional int32 isolated_uid = 2 [(is_uid) = true]; 6128 6129 // We expect an isolated uid to be removed before if it's used for another parent uid. 6130 enum Event { 6131 REMOVED = 0; 6132 CREATED = 1; 6133 } 6134 optional Event event = 3; 6135} 6136 6137/* 6138 * Logs the reception of an incoming network packet causing the main system to wake up for 6139 * processing that packet. These events are notified by the kernel via Netlink NFLOG to Netd 6140 * and processed by WakeupController.cpp. 6141 */ 6142message PacketWakeupOccurred { 6143 // The uid owning the socket into which the packet was delivered, or -1 if the packet was 6144 // delivered nowhere. 6145 optional int32 uid = 1 [(is_uid) = true]; 6146 // The interface name on which the packet was received. 6147 optional string iface = 2; 6148 // The ethertype value of the packet. 6149 optional int32 ethertype = 3; 6150 // String representation of the destination MAC address of the packet. 6151 optional string destination_hardware_address = 4; 6152 // String representation of the source address of the packet if this was an IP packet. 6153 optional string source_ip = 5; 6154 // String representation of the destination address of the packet if this was an IP packet. 6155 optional string destination_ip = 6; 6156 // The value of the protocol field if this was an IPv4 packet or the value of the Next Header 6157 // field if this was an IPv6 packet. The range of possible values is the same for both IP 6158 // families. 6159 optional int32 ip_next_header = 7; 6160 // The source port if this was a TCP or UDP packet. 6161 optional int32 source_port = 8; 6162 // The destination port if this was a TCP or UDP packet. 6163 optional int32 destination_port = 9; 6164} 6165 6166/* 6167 * Logs the memory stats for an app on startup. 6168 * Logged from: 6169 * frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java 6170 */ 6171message AppStartMemoryStateCaptured { 6172 // The uid if available. -1 means not available. 6173 optional int32 uid = 1 [(is_uid) = true]; 6174 6175 // The process name. 6176 optional string process_name = 2; 6177 6178 // The activity name. 6179 optional string activity_name = 3; 6180 6181 // # of page-faults 6182 optional int64 page_fault = 4; 6183 6184 // # of major page-faults 6185 optional int64 page_major_fault = 5; 6186 6187 // RSS 6188 optional int64 rss_in_bytes = 6; 6189 6190 // CACHE 6191 optional int64 cache_in_bytes = 7; 6192 6193 // SWAP 6194 optional int64 swap_in_bytes = 8; 6195} 6196 6197/* 6198 * Logs the event when Low Memory Killer Daemon (LMKD) kills a process to reduce memory pressure. 6199 * Logged from: 6200 * system/core/lmkd/lmkd.c 6201 */ 6202message LmkKillOccurred { 6203 enum Reason { 6204 UNKNOWN = 0; 6205 PRESSURE_AFTER_KILL = 1; 6206 NOT_RESPONDING = 2; 6207 LOW_SWAP_AND_THRASHING = 3; 6208 LOW_MEM_AND_SWAP = 4; 6209 LOW_MEM_AND_THRASHING = 5; 6210 DIRECT_RECL_AND_THRASHING = 6; 6211 LOW_MEM_AND_SWAP_UTIL = 7; 6212 LOW_FILECACHE_AFTER_THRASHING = 8; 6213 LOW_MEM = 9; 6214 DIRECT_RECL_STUCK = 10; 6215 } 6216 6217 // The uid if available. -1 means not available. 6218 optional int32 uid = 1 [(is_uid) = true]; 6219 6220 // The process name. 6221 optional string process_name = 2; 6222 6223 // oom adj score. 6224 optional int32 oom_adj_score = 3; 6225 6226 // # of page-faults 6227 optional int64 page_fault = 4; 6228 6229 // # of major page-faults 6230 optional int64 page_major_fault = 5; 6231 6232 // RSS 6233 optional int64 rss_in_bytes = 6; 6234 6235 // CACHE 6236 optional int64 cache_in_bytes = 7; 6237 6238 // SWAP 6239 optional int64 swap_in_bytes = 8; 6240 6241 // The elapsed real time of start of the process. 6242 optional int64 process_start_time_nanos = 9; 6243 6244 // Min oom adj score considered by lmkd. 6245 optional int32 min_oom_score = 10; 6246 6247 // Free physical memory on device at LMK time. 6248 optional int32 free_mem_kb = 11; 6249 6250 // Free swap on device at LMK time. 6251 optional int32 free_swap_kb = 12; 6252 6253 // What triggered the LMK event. 6254 optional Reason reason = 13; 6255 6256 // Current thrashing levels (workingset_refaults/filecache in %). 6257 optional int32 thrashing = 14; 6258 6259 // Max thrashing levels (workingset_refaults/filecache in %). 6260 optional int32 max_thrashing = 15; 6261 6262 // How many active foreground services across the system 6263 optional int32 total_foreground_services = 16; 6264 6265 // How many processes hosting foreground services 6266 optional int32 procs_with_foreground_services = 17; 6267} 6268 6269/* 6270 * Logs when the ActivityManagerService detects that an app died. 6271 * 6272 * Logged from: 6273 * frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java 6274 */ 6275message AppDied { 6276 // timestamp(elapsedRealtime) of record creation 6277 optional uint64 timestamp_millis = 1; 6278} 6279 6280/** 6281 * An atom for generic metrics logging. Available from Android Q. 6282 */ 6283message GenericAtom { 6284 // The uid of the application that sent this custom atom. 6285 optional int32 uid = 1 [(is_uid) = true]; 6286 6287 // An event_id indicates the type of event. 6288 optional android.stats.EventType event_id = 2; 6289} 6290 6291/** 6292 * Atom for simple logging of user interaction and impression events, such as "the user touched 6293 * this button" or "this dialog was displayed". 6294 * Keep the UI event stream clean: don't use for system or background events. 6295 * Log using the UiEventLogger wrapper - don't write with the StatsLog API directly. 6296 * 6297 * Logged from: 6298 * frameworks/base/services/core/java/com/android/server/ 6299 * frameworks/base/packages/SystemUI/src/com/android/systemui/ 6300 */ 6301message UiEventReported { 6302 // The event_id. 6303 optional int32 event_id = 1; 6304 // The event's source or target uid and package, if applicable. 6305 // For example, the package posting a notification, or the destination package of a share. 6306 optional int32 uid = 2 [(is_uid) = true]; 6307 optional string package_name = 3; 6308 // An identifier used to disambiguate which logs refer to a particular instance of some 6309 // UI element. Useful when there might be multiple instances simultaneously active. 6310 optional int32 instance_id = 4; 6311} 6312 6313/** 6314 * Atom for logging Dream user interaction and impression events. 6315 * 6316 * Logged from: 6317 * frameworks/base/services/core/java/com/android/server/ 6318 */ 6319message DreamUiEventReported { 6320 // The event's source or target uid, if applicable. 6321 optional int32 uid = 1 [(is_uid) = true]; 6322 // The event_id (as for UiEventReported). 6323 optional int32 event_id = 2; 6324 // An identifier used to disambiguate which logs refer to a particular instance of some 6325 // UI element. Useful when there might be multiple instances simultaneously active. 6326 optional int32 instance_id = 3; 6327 6328 // The name of the dream component, which identifies the type of the dream. 6329 optional string dream_component_name = 4; 6330} 6331 6332/** 6333 * Reports a notification was created or updated. 6334 * 6335 * Logged from: 6336 * frameworks/base/services/core/java/com/android/server/notification/ 6337 */ 6338message NotificationReported { 6339 // The event_id (as for UiEventReported). 6340 optional int32 event_id = 1; 6341 // The notifying app's uid and package. 6342 optional int32 uid = 2 [(is_uid) = true]; 6343 optional string package_name = 3; 6344 // A small system-assigned identifier for the notification. 6345 // Locally probably-unique, but expect collisions across users and/or days. 6346 optional int32 instance_id = 4; 6347 optional int32 notification_id_hash = 5; // Small hash of the app-assigned notif ID + tag 6348 optional int32 channel_id_hash = 6; // Small hash of app-assigned channel ID 6349 6350 // Grouping information 6351 optional int32 group_id_hash = 7; // Small hash of the group ID of the notification 6352 optional int32 group_instance_id = 8; // Instance_id of the group-summary notification 6353 optional bool is_group_summary = 9; // Tags the group-summary notification 6354 6355 // Attributes 6356 optional string category = 10; // App-assigned notification category (API-defined strings) 6357 optional int32 style = 11; // App-assigned notification style 6358 optional int32 num_people = 12; // Number of Person records attached to the notification 6359 6360 // Ordering, importance and interruptiveness 6361 6362 optional int32 position = 13; // Position in NotificationManager's list 6363 6364 optional android.stats.sysui.NotificationImportance importance = 14; 6365 optional int32 alerting = 15; // Bitfield, 1=buzz 2=beep 4=blink 6366 6367 enum NotificationImportanceExplanation { 6368 IMPORTANCE_EXPLANATION_UNKNOWN = 0; 6369 IMPORTANCE_EXPLANATION_APP = 1; // App-specified channel importance. 6370 IMPORTANCE_EXPLANATION_USER = 2; // User-specified channel importance. 6371 IMPORTANCE_EXPLANATION_ASST = 3; // Notification Assistant override. 6372 IMPORTANCE_EXPLANATION_SYSTEM = 4; // System override. 6373 // Like _APP, but based on pre-channels priority signal. 6374 IMPORTANCE_EXPLANATION_APP_PRE_CHANNELS = 5; 6375 } 6376 6377 optional NotificationImportanceExplanation importance_source = 16; 6378 optional android.stats.sysui.NotificationImportance importance_initial = 17; 6379 optional NotificationImportanceExplanation importance_initial_source = 18; 6380 optional android.stats.sysui.NotificationImportance importance_asst = 19; 6381 optional int32 assistant_hash = 20; 6382 optional float assistant_ranking_score = 21; 6383 6384 // Fields for tracking ongoing and foreground service notifications 6385 optional bool is_ongoing = 22; 6386 optional bool is_foreground_service = 23; 6387 // Fields to know about the timeout for notifications. 6388 optional int64 timeout_millis = 24; 6389 6390 // Field for tracking whether the notification is non-dismissible 6391 optional bool is_non_dismissible = 25; 6392 6393 // Time elapsed between the notify() API call and the NLSes being told about the notification. 6394 // Will be 0 for NotificationReported protos that do not correspond to a notify() call. 6395 optional int64 post_duration_millis = 26; 6396 6397 // State of the full screen intent posted with this notification. 6398 enum FsiState { 6399 // This notification was not posted with a full screen intent. 6400 NO_FSI = 0; 6401 // This notification was posted with a full screen intent and the FSI permission is granted. 6402 FSI_ALLOWED = 1; 6403 // This notification was posted with a full screen intent but the FSI permission is denied. 6404 FSI_DENIED = 2; 6405 } 6406 optional FsiState fsi_state = 27; 6407 6408 // True if the device was locked or showing unlocked AOD. 6409 optional bool is_locked = 28; 6410 6411 // Age of the notification in minutes. 6412 optional int32 age_in_minutes = 29; 6413 6414 // Whether the notification was promoted and whether it was promotable. 6415 optional bool is_promoted_ongoing = 30; 6416 optional bool has_promotable_characteristics = 31; 6417} 6418 6419/** 6420 * Reports a notification channel, or channel group, was created, updated, or deleted. 6421 * 6422 * Logged from: 6423 * frameworks/base/services/core/java/com/android/server/notification/ 6424 */ 6425message NotificationChannelModified { 6426 // The event_id (as for UiEventReported). 6427 optional int32 event_id = 1; 6428 // The notifying app's uid and package. 6429 optional int32 uid = 2 [(is_uid) = true]; 6430 optional string package_name = 3; 6431 // Hash of app-assigned notification channel ID or channel-group ID 6432 optional int32 channel_id_hash = 4; 6433 // Previous importance setting, if applicable 6434 optional android.stats.sysui.NotificationImportance old_importance = 5; 6435 // New importance setting 6436 optional android.stats.sysui.NotificationImportance importance = 6; 6437 // whether or not this channel represents a conversation 6438 optional bool is_conversation = 7; 6439 // Hash of app-assigned notification conversation id 6440 optional int32 conversation_id_hash = 8; 6441 // whether or not the user demoted this channel out of the conversation space 6442 optional bool is_conversation_demoted = 9; 6443 // whether this conversation is marked as being a priority 6444 optional bool is_conversation_priority = 10; 6445} 6446 6447/** 6448 * Logged when notification are dismissed. If multiple notifications are dismissed together, 6449 * this is only logged once per style per UID. 6450 * Logged from 6451 * frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging 6452 */ 6453message NotificationDismissed { 6454 // UID if the application (can be mapped to package and version) 6455 optional int32 uid = 1 [(is_uid) = true]; 6456 // Integer enum value showing aggregated notification style. 6457 optional android.stats.sysui.NotificationStyle style = 2; 6458 // Reason for dismissal, based on REASON_ constants in 6459 // frameworks/base/core/java/android/service/notification/NotificationListenerService.java 6460 optional int32 reason = 3; 6461 // Number of notifications dismissed. 6462 optional int32 count = 4; 6463 // Memory use of Notification object being dismissed, in KB. 6464 optional int32 notificationObjectMemoryUse = 5; 6465 // Memory use of Notification views being dismissed, in KB. 6466 optional int32 notificationViewMemoryUse = 6; 6467 // Current memory use of SystemUI, RSS Anon in KB. 6468 optional int32 systemUiMemoryUse = 7; 6469} 6470 6471/** 6472 * Logs when a biometric acquire event occurs. 6473 * 6474 * Logged from: 6475 * frameworks/base/services/core/java/com/android/server/biometrics 6476 */ 6477message BiometricAcquired { 6478 // Biometric modality that was acquired. 6479 optional android.hardware.biometrics.ModalityEnum modality = 1; 6480 // The associated user. Eg: 0 for owners, 10+ for others. Defined in android/os/UserHandle.java. 6481 optional int32 user = 2; 6482 // If this acquire is for a crypto operation. e.g. Secure purchases, unlock password storage. 6483 optional bool is_crypto = 3; 6484 // Action that the device is performing. Acquired messages are only expected for enroll and 6485 // authenticate. Other actions may indicate an error. 6486 optional android.hardware.biometrics.ActionEnum action = 4; 6487 // The client that this acquisition was received for. 6488 optional android.hardware.biometrics.ClientEnum client = 5; 6489 // Acquired constants, e.g. ACQUIRED_GOOD. See constants defined by <Biometric>Manager. 6490 optional int32 acquire_info = 6; 6491 // Vendor-specific acquire info. Valid only if acquire_info == ACQUIRED_VENDOR. 6492 optional int32 acquire_info_vendor = 7; 6493 // Dictates if this message should trigger additional debugging. 6494 optional bool debug = 8; 6495 // The ID of the biometric sensor associated with this action. 6496 optional int32 sensor_id = 9; 6497 // The ID of the session this event occurred in (if any) 6498 optional int32 session_id = 10; 6499 // The type of session (i.e. CUJ) 6500 optional android.hardware.biometrics.SessionTypeEnum session_type = 11; 6501 // If the AoD was on when this event occurred. 6502 optional bool is_aod = 12; 6503 // If the display is on when this event occurred. 6504 optional bool is_display_on = 13; 6505 // The dock state when this event occurred. 6506 optional android.server.DockStateEnum dock_state = 14; 6507 // The orientation of the device when this event occurred 6508 optional android.hardware.biometrics.OrientationEnum orientation = 15; 6509 // The fold state of the device when this event occurred 6510 optional android.hardware.biometrics.FoldStateEnum fold_state = 16; 6511 // The order this event was processed by the framework, if part of a session 6512 optional int32 session_order = 17; 6513 // An associated device wake up reason for this event, or UNKNOWN if the event was not triggered due to a wake up event. 6514 optional android.hardware.biometrics.WakeReasonEnum wake_reason = 18; 6515} 6516 6517/** 6518 * Logs when a biometric authentication event occurs. 6519 * 6520 * Logged from: 6521 * frameworks/base/services/core/java/com/android/server/biometrics 6522 */ 6523message BiometricAuthenticated { 6524 // Biometric modality that was used. 6525 optional android.hardware.biometrics.ModalityEnum modality = 1; 6526 // The associated user. Eg: 0 for owners, 10+ for others. Defined in android/os/UserHandle.java 6527 optional int32 user = 2; 6528 // If this authentication is for a crypto operation. e.g. Secure purchases, unlock password 6529 // storage. 6530 optional bool is_crypto = 3; 6531 // The client that this acquisition was received for. 6532 optional android.hardware.biometrics.ClientEnum client = 4; 6533 // If authentication requires user confirmation. See BiometricPrompt's 6534 // setRequireConfirmation(bool) method. 6535 optional bool require_confirmation = 5; 6536 6537 enum State { 6538 UNKNOWN = 0; 6539 REJECTED = 1; 6540 PENDING_CONFIRMATION = 2; 6541 CONFIRMED = 3; 6542 } 6543 6544 // State of the current auth attempt. 6545 optional State state = 6; 6546 // Time it took to authenticate. For BiometricPrompt where setRequireConfirmation(false) is 6547 // specified and supported by the biometric modality, this is from the first ACQUIRED_GOOD to 6548 // AUTHENTICATED. for setRequireConfirmation(true), this is from PENDING_CONFIRMATION to 6549 // CONFIRMED. 6550 optional int64 latency_millis = 7; 6551 // Dictates if this message should trigger additional debugging. 6552 optional bool debug = 8; 6553 // The ID of the biometric sensor associated with this action. 6554 optional int32 sensor_id = 9; 6555 // The ambient light lux when authenticated. 6556 optional float ambient_light_lux = 10; 6557 // The ID of the session this event occurred in (if any) 6558 optional int32 session_id = 11; 6559 // The type of session (i.e. CUJ) 6560 optional android.hardware.biometrics.SessionTypeEnum session_type = 12; 6561 // If the AoD was on when this event occurred. 6562 optional bool is_aod = 13; 6563 // If the display is on when this event occurred. 6564 optional bool is_display_on = 14; 6565 // The dock state when this event occurred. 6566 optional android.server.DockStateEnum dock_state = 15; 6567 // The orientation of the device when this event occurred 6568 optional android.hardware.biometrics.OrientationEnum orientation = 16; 6569 // The fold state of the device when this event occurred 6570 optional android.hardware.biometrics.FoldStateEnum fold_state = 17; 6571 // The order this event was processed by the framework, if part of a session 6572 optional int32 session_order = 18; 6573 // An associated device wake up reason for this event, or UNKNOWN if the event was not triggered due to a wake up event. 6574 optional android.hardware.biometrics.WakeReasonEnum wake_reason = 19; 6575 // Additional modality-specific details that caused a biometric to be activated (often associated with a device wake_reason). 6576 repeated android.hardware.biometrics.WakeReasonDetailsEnum wake_reason_details = 20; 6577 // If the authentication is due to identity check being enabled 6578 optional bool identity_check = 21; 6579} 6580 6581/** 6582 * Logs when a biometric error occurs. 6583 * 6584 * Logged from: 6585 * frameworks/base/services/core/java/com/android/server/biometrics 6586 */ 6587message BiometricErrorOccurred { 6588 // Biometric modality that was used. 6589 optional android.hardware.biometrics.ModalityEnum modality = 1; 6590 // The associated user. Eg: 0 for owners, 10+ for others. Defined in android/os/UserHandle.java 6591 optional int32 user = 2; 6592 // If this error is for a crypto operation. e.g. Secure purchases, unlock password storage. 6593 optional bool is_crypto = 3; 6594 // Action that the device is performing. 6595 optional android.hardware.biometrics.ActionEnum action = 4; 6596 // The client that this acquisition was received for. 6597 optional android.hardware.biometrics.ClientEnum client = 5; 6598 // Error constants. See constants defined by <Biometric>Manager. Enums won't work since errors 6599 // are unique to modality. 6600 optional int32 error_info = 6; 6601 // Vendor-specific error info. Valid only if acquire_info == ACQUIRED_VENDOR. These are defined 6602 // by the vendor and not specified by the HIDL interface. 6603 optional int32 error_info_vendor = 7; 6604 // Dictates if this message should trigger additional debugging. 6605 optional bool debug = 8; 6606 // Time spent during the authentication attempt. 6607 optional int64 latency_millis = 9; 6608 // The ID of the biometric sensor associated with this action. 6609 optional int32 sensor_id = 10; 6610 // The ID of the session this event occurred in (if any) 6611 optional int32 session_id = 11; 6612 // The type of session (i.e. CUJ) 6613 optional android.hardware.biometrics.SessionTypeEnum session_type = 12; 6614 // If the AoD was on when this event occurred. 6615 optional bool is_aod = 13; 6616 // If the display is on when this event occurred. 6617 optional bool is_display_on = 14; 6618 // The dock state when this event occurred. 6619 optional android.server.DockStateEnum dock_state = 15; 6620 // The orientation of the device when this event occurred 6621 optional android.hardware.biometrics.OrientationEnum orientation = 16; 6622 // The fold state of the device when this event occurred 6623 optional android.hardware.biometrics.FoldStateEnum fold_state = 17; 6624 // The order this event was processed by the framework, if part of a session 6625 optional int32 session_order = 18; 6626 // An associated device wake up reason for this event, or UNKNOWN if the event was not triggered due to a wake up event. 6627 optional android.hardware.biometrics.WakeReasonEnum wake_reason = 19; 6628 // Additional modality-specific details that caused a biometric to be activated (often associated with a device wake_reason). 6629 repeated android.hardware.biometrics.WakeReasonDetailsEnum wake_reason_details = 20; 6630 // If the authentication is due to identity check being enabled 6631 optional bool identity_check = 21; 6632} 6633 6634/** 6635 * Logs when a system health issue is detected. 6636 * Logged from: 6637 * frameworks/base/services/core/java/com/android/server/biometrics 6638 */ 6639message BiometricSystemHealthIssueDetected { 6640 // Biometric modality. 6641 optional android.hardware.biometrics.ModalityEnum modality = 1; 6642 // Type of issue detected. 6643 optional android.hardware.biometrics.IssueEnum issue = 2; 6644 // Dictates if this message should trigger additional debugging. 6645 optional bool debug = 3; 6646 // The ID of the biometric sensor associated with this action. 6647 optional int32 sensor_id = 4; 6648} 6649 6650/** 6651 * Logs when a biometric enrollment occurs. 6652 * 6653 * Logged from: 6654 * frameworks/base/services/core/java/com/android/server/biometrics 6655 */ 6656message BiometricEnrolled { 6657 // Biometric modality that was used. 6658 optional android.hardware.biometrics.ModalityEnum modality = 1; 6659 // The associated user. Eg: 0 for owners, 10+ for others. Defined in android/os/UserHandle.java 6660 optional int32 user = 2; 6661 // The amount of time the enrollment took in milliseconds. 6662 optional int64 latency_millis = 3; 6663 // Whether or not the enrollment was successful. 6664 optional bool success = 4; 6665 // The ID of the biometric sensor associated with this action. 6666 optional int32 sensor_id = 5; 6667 // The ambient light lux when the user enrolled. 6668 optional float ambient_light_lux = 6; 6669 // The source for where this enrollment came frame 6670 optional android.hardware.biometrics.EnrollmentSourceEnum enroll_source = 7; 6671 // Numerical ID for enrolled template that increments with every new enrollment. Eg: 1, 2... 6672 optional int32 template_id = 8; 6673} 6674 6675 6676/* 6677 * Logs when one of the BiometricPrompt#authenticate() method variants is called. 6678 * 6679 * Logged from: 6680 * frameworks/base/services/core/java/com/android/server/biometrics 6681 * 6682 */ 6683 message AuthPromptAuthenticateInvoked { 6684 // Whether an explicit CryptoObject was passed to the biometric prompt. 6685 optional bool is_crypto = 1; 6686 // The value passed to setConfirmationRequired(boolean), or true if not set. 6687 optional bool is_confirmation_required = 2; 6688 // The value passed to setDeviceCredentialAllowed(boolean), or false if not set. 6689 optional bool is_credential_allowed = 3; 6690 // Whether a value was passed to setAllowedAuthenticators(int). 6691 optional bool is_allowed_authenticators_set = 4; 6692 // The value passed to setAllowedAuthenticators(int), if any. 6693 optional int32 allowed_authenticators = 5; 6694} 6695 6696/* 6697 * Logs when one of the BiometricPrompt#canAuthenticate() method variants is called. 6698 * 6699 * Logged from: 6700 * frameworks/base/services/core/java/com/android/server/biometrics 6701 * 6702 */ 6703message AuthManagerCanAuthenticateInvoked { 6704 // Whether a bit field of allowed authenticator types was provided as an argument. 6705 optional bool is_allowed_authenticators_set = 1; 6706 // The bit field of allowed authenticator types provided, if any. 6707 optional int32 allowed_authenticators = 2; 6708 // The authentication status code that was returned. 6709 optional int32 result_code = 3; 6710} 6711 6712/* 6713 * Logs when Biometric enrollment is requested via the ACTION_BIOMETRIC_ENROLL intent action. 6714 * 6715 * Logged from: 6716 * frameworks/base/services/core/java/com/android/server/biometrics 6717 * 6718 */ 6719message AuthEnrollActionInvoked { 6720 // Whether a Class 3 (strong) biometric was previously enrolled on this device. 6721 optional bool is_strong_biometric_enrolled = 1; 6722 // Whether a Class 2 (weak) biometric was previously enrolled on this device. 6723 optional bool is_weak_biometric_enrolled = 2; 6724 // Whether a PIN/pattern/password was previously enrolled on this device. 6725 optional bool is_device_credential_enrolled = 3; 6726 // Whether a bit field of allowed authenticator types was provided as an extra. 6727 optional bool is_allowed_authenticators_set = 4; 6728 // The bit field of allowed authenticator types provided, if any. 6729 optional int32 allowed_authenticators = 5; 6730} 6731 6732/* 6733 * Logs when an application uses a deprecated biometric or authentication API feature. 6734 * 6735 * Logged from: 6736 * frameworks/base/services/core/java/com/android/server/biometrics 6737 */ 6738 message AuthDeprecatedAPIUsed { 6739 enum APIEnum { 6740 API_UNKNOWN = 0; 6741 // android.hardware.fingerprint.FingerprintManager#authenticate(CryptoObject, 6742 // CancellationSignal, int, AuthenticationCallback, Handler) 6743 API_FINGERPRINT_MANAGER_AUTHENTICATE = 1; 6744 // android.hardware.fingerprint.FingerprintManager#hasEnrolledFingerprints() 6745 API_FINGERPRINT_MANAGER_HAS_ENROLLED_FINGERPRINTS = 2; 6746 // android.hardware.fingerprint.FingerprintManager#isHardwareDetected() 6747 API_FINGERPRINT_MANAGER_IS_HARDWARE_DETECTED = 3; 6748 // android.hardware.biometrics.BiometricManager#canAuthenticate() 6749 API_BIOMETRIC_MANAGER_CAN_AUTHENTICATE = 4; 6750 } 6751 6752 // The deprecated API feature that was used. 6753 optional APIEnum deprecated_api = 1; 6754 // The UID of the application that used the deprecated API. 6755 optional int32 app_uid = 2 [(is_uid) = true]; 6756 // The target SDK version (API level) of the application that used the deprecated API. 6757 optional int32 target_sdk = 3; 6758 } 6759 6760/* 6761 * Logs when a flag flip update occurrs. Used for mainline modules that update via flag flips. 6762 */ 6763message FlagFlipUpdateOccurred { 6764 // If the event is from a flag config package, specify the package name. 6765 optional string flag_flip_package_name = 1; 6766 6767 // The order id of the package 6768 optional int64 order_id = 2; 6769} 6770 6771/** 6772 * Potential experiment ids that goes with a train install. 6773 * Should be kept in sync with experiment_ids.proto. 6774 */ 6775message TrainExperimentIds { 6776 repeated int64 experiment_id = 1; 6777} 6778 6779/* 6780 * Logs when a binary push state changes. 6781 * Logged by the installer via public api. 6782 */ 6783message BinaryPushStateChanged { 6784 // Name of the train. 6785 optional string train_name = 1; 6786 // Version code for a "train" of packages that need to be installed atomically 6787 optional int64 train_version_code = 2; 6788 // After installation of this package, device requires a restart. 6789 optional bool requires_staging = 3; 6790 // Rollback should be enabled for this install. 6791 optional bool rollback_enabled = 4; 6792 // Requires low latency monitoring if possible. 6793 optional bool requires_low_latency_monitor = 5; 6794 6795 enum State { 6796 UNKNOWN = 0; 6797 INSTALL_REQUESTED = 1; 6798 INSTALL_STARTED = 2; 6799 INSTALL_STAGED_NOT_READY = 3; 6800 INSTALL_STAGED_READY = 4; 6801 INSTALL_SUCCESS = 5; 6802 // Replaced by INSTALL_FAILURE_DOWNLOAD, INSTALL_FAILURE_STATE_MISMATCH, 6803 // and INSTALL_FAILURE_COMMIT. 6804 INSTALL_FAILURE = 6 [deprecated = true]; 6805 // This enum is for installs that are manually cancelled via the Manual Update UI. 6806 INSTALL_CANCELLED = 7; 6807 INSTALLER_ROLLBACK_REQUESTED = 8; 6808 INSTALLER_ROLLBACK_INITIATED = 9; 6809 INSTALLER_ROLLBACK_INITIATED_FAILURE = 10; 6810 INSTALLER_ROLLBACK_STAGED = 11; 6811 INSTALLER_ROLLBACK_STAGED_FAILURE = 12; 6812 INSTALLER_ROLLBACK_BOOT_TRIGGERED = 13; 6813 INSTALLER_ROLLBACK_BOOT_TRIGGERED_FAILURE = 14; 6814 INSTALLER_ROLLBACK_SUCCESS = 15; 6815 INSTALLER_ROLLBACK_FAILURE = 16; 6816 INSTALLER_ROLLBACK_STAGED_CANCEL_REQUESTED = 17; 6817 INSTALLER_ROLLBACK_STAGED_CANCEL_SUCCESS = 18; 6818 INSTALLER_ROLLBACK_STAGED_CANCEL_FAILURE = 19; 6819 INSTALL_STAGED_CANCEL_REQUESTED = 20; 6820 INSTALL_STAGED_CANCEL_SUCCESS = 21; 6821 INSTALL_STAGED_CANCEL_FAILURE = 22; 6822 INSTALL_FAILURE_DOWNLOAD = 23; 6823 INSTALL_FAILURE_STATE_MISMATCH = 24; 6824 INSTALL_FAILURE_COMMIT = 25; 6825 REBOOT_TRIGGERED = 26; 6826 // Logged after INSTALL_REQUESTED for devices installing a train that 6827 // contains no module requiring reboot. 6828 REBOOT_NOT_REQUIRED = 27; 6829 // Logged after INSTALL_REQUESTED for devices that are installing a train 6830 // which requires reboot and eligible for soft restart. 6831 SOFT_RESTART_ELIGIBLE = 28; 6832 // Logged after INSTALL_REQUESTED for devices that are installing a train 6833 // which requires reboot and eligible for notification restart. 6834 NOTIFICATION_RESTART_ELIGIBLE = 29; 6835 // Logged after INSTALL_REQUESTED for devices that are installing a train 6836 // which requires reboot and not eligible for any reboot promotion strategy 6837 // (e.g. soft restart, notification restart). 6838 NO_REBOOT_PROMOTION_STRATEGY_ELIGIBLE = 30; 6839 REBOOT_TRIGGER_FAILURE = 31; 6840 // Logged after INSTALL_REQUESTED for devices installing a train which 6841 // requires reboot and eligible for unattended reboot. 6842 UNATTENDED_REBOOT_ELIGIBLE = 32; 6843 // Logged when Phonesky trys to prepare LSKF. 6844 LSKF_PREPARATION_INITITATED = 33; 6845 // Logged when LSKF preparation succeeded. 6846 LSKF_PREPARATION_SUCCESS = 34; 6847 // Logged when LSKF preparation failed. 6848 LSKF_PREPARATION_FAILURE = 35; 6849 // Logged when Phonesky cannot schedule reboot job on a unattended reboot 6850 // eligible device. 6851 UNATTENDED_REBOOT_NOT_TRIGGERED = 36; 6852 // Logged when SIM PIN recovery preparation succeeded. 6853 SIM_PIN_PREPARATION_SUCCESS = 37; 6854 // Logged when SIM PIN recovery preparation failed. 6855 SIM_PIN_PREPARATION_FAILURE = 38 [deprecated = true]; 6856 // Logged when unattended reboot is aborted and falls back to organic 6857 // reboot. 6858 UNATTENDED_REBOOT_ABORT = 39; 6859 // Logged when Phonesky re-prepares LSKF. 6860 LSKF_PREPARATION_RETRY = 40; 6861 // Logged when the device doesn’t support checkpoint and cannot stage 6862 // multiple sessions. 6863 CHECKPOINT_NOT_SUPPORTED = 41; 6864 // Logged when Phonesky instructs Android platform to monitor reboot 6865 // readiness signal. 6866 PENDING_REBOOT_MARKED = 42; 6867 // Logged when Phonesky instructs Android platform to stop monitoring reboot 6868 // readiness signal. 6869 PENDING_REBOOT_CANCELLED = 43 [deprecated = true]; 6870 // Logged when Phonesky receives reboot readiness broadcast and the device 6871 // is ready to reboot. 6872 SIGNAL_READY_TO_REBOOT_RECEIVED = 44; 6873 // Logged when Phonesky receives reboot readiness broadcast and the device 6874 // is not ready to reboot. 6875 SIGNAL_NOT_READY_TO_REBOOT_RECEIVED = 45; 6876 // Logged when Phonesky cancels an untracked train. 6877 UNTRACKED_TRAIN_CANCELLED = 46; 6878 } 6879 optional State state = 6; 6880 // Possible experiment ids for monitoring this push. 6881 optional TrainExperimentIds experiment_ids = 7 [(log_mode) = MODE_BYTES]; 6882 // Index of the Android User. E.g. 0 for primary profile, 10, 11, 12 6883 // for guest and secondary profiles. Not PII. 6884 optional int32 user_id = 8; 6885 // Log additional info for a state when needed. 6886 // When state = REBOOT_TRIGGERED, this field logs the reboot type: 6887 // USERSPACE_REBOOT = 1. 6888 // FORCED_REBOOT = 2. 6889 // NOTIFICATION_RESTART_REBOOT = 3. 6890 // UNATTENDED_REBOOT_SECURED_AND_SIM_PIN = 4. 6891 // UNATTENDED_REBOOT_SECURED_NO_SIM_PIN = 5. 6892 // UNATTENDED_REBOOT_UNSECURED_AND_SIM_PIN = 6. 6893 // UNATTENDED_REBOOT_UNSECURED_NO_SIM_PIN = 7. 6894 // When state = INSTALL_FAILURE, this field logs the Install errors related 6895 // statusCode 6896 // When state = UNATTENDED_REBOOT_ABORT, this field logs the cancellation 6897 // reason: 6898 // LSKF_RETRY_EXCEED_MAXIMUM = 1. 6899 // SIM_PIN_NOT_PREPARED = 2. 6900 // When state = UNATTENDED_REBOOT_ELIGIBLE, this field logs the cancellation 6901 // reason: 6902 // UNATTENDED_REBOOT_SECURED_AND_SIM_PIN = 1. 6903 // UNATTENDED_REBOOT_SECURED_NO_SIM_PIN = 2. 6904 // UNATTENDED_REBOOT_UNSECURED_AND_SIM_PIN = 3. 6905 // UNATTENDED_REBOOT_UNSECURED_NO_SIM_PIN = 4. 6906 // When state = UNATTENDED_REBOOT_NOT_TRIGGERED, this field logs the 6907 // cancellation reason: 6908 // LSKF_NOT_PREPARED = 1. 6909 // REBOOT_NOT_READY = 2. 6910 // When state = PENDING_REBOOT_CANCELLED, this field logs the cancellation 6911 // reason: 6912 // LSKF_NOT_PREPARED = 1. 6913 // NO_STAGED_TRAIN = 2. 6914 // HAS_SIM_PIN_AND_SIM_PIN_STORAGE_DISABLED = 3. 6915 optional int32 reason = 9; 6916 // Whether or not this is a rollback event. 6917 optional bool is_rollback = 10; 6918} 6919 6920/* Test atom, is not logged anywhere */ 6921message TestAtomReported { 6922 repeated AttributionNode attribution_node = 1; 6923 optional int32 int_field = 2; 6924 optional int64 long_field = 3; 6925 optional float float_field = 4; 6926 optional string string_field = 5; 6927 optional bool boolean_field = 6; 6928 enum State { 6929 UNKNOWN = 0; 6930 OFF = 1; 6931 ON = 2; 6932 } 6933 optional State state = 7; 6934 optional TrainExperimentIds bytes_field = 8 [(android.os.statsd.log_mode) = MODE_BYTES]; 6935 repeated int32 repeated_int_field = 9; 6936 repeated int64 repeated_long_field = 10; 6937 repeated float repeated_float_field = 11; 6938 repeated string repeated_string_field = 12; 6939 repeated bool repeated_boolean_field = 13; 6940 repeated State repeated_enum_field = 14; 6941} 6942 6943/** Represents USB port overheat event. */ 6944message UsbPortOverheatEvent { 6945 /* Temperature of USB port at USB plug event, in 1/10ths of degree C. */ 6946 optional int32 plug_temperature_deci_c = 1; 6947 6948 /* Maximum temperature of USB port during overheat event, in 1/10ths of degree C. */ 6949 optional int32 max_temperature_deci_c = 2; 6950 6951 /* Time between USB plug event and overheat threshold trip, in seconds. */ 6952 optional int32 time_to_overheat_secs = 3; 6953 6954 /* Time between overheat threshold trip and hysteresis, in seconds. */ 6955 optional int32 time_to_hysteresis_secs = 4; 6956 6957 /* Time between hysteresis and active mitigation ending, in seconds. */ 6958 optional int32 time_to_inactive_secs = 5; 6959}; 6960 6961/** 6962 * Logs total effective full charge and discharge cycles on a battery. 6963 * Here are some examples of one effective cycle: 6964 * 1) the battery charges from 0% to 100% and drains back to 0%, 6965 * 2) charging from 50% to 100% and draining back to 50% twice. 6966 * Pulled from: 6967 * frameworks/base/cmds/statsd/src/external/ResourceHealthManagerPuller.cpp 6968 */ 6969message BatteryCycleCount { 6970 /* Number of total charge and discharge cycles on the system battery. */ 6971 optional int32 cycle_count = 1; 6972} 6973 6974/** 6975 * Logs that external storage is mounted and information about it, the storage type (sd card/usb/ 6976 * others), its type (public or private) and the size in bytes. 6977 * Pulled from: 6978 * StatsCompanionService 6979 */ 6980 6981message ExternalStorageInfo { 6982 6983 enum VolumeType { 6984 UNKNOWN = 0; 6985 PUBLIC = 1; 6986 PRIVATE = 2; 6987 OTHER = 3; 6988 } 6989 6990 // The type of external storage. 6991 optional android.stats.storage.ExternalStorageType storage_type = 1; 6992 // Type of the volume: TYPE_PUBLIC if portable and TYPE_PRIVATE if internal. 6993 optional VolumeType volume_type = 2; 6994 // Total size of the sd card in bytes. 6995 optional int64 size_bytes = 3; 6996} 6997 6998/* 6999 * Logs when a connection becomes available and lost. 7000 * Logged in StatsCompanionService.java 7001 */ 7002message ConnectivityStateChanged { 7003 // Id of the network. 7004 optional int32 net_id = 1; 7005 7006 enum State { 7007 UNKNOWN = 0; 7008 CONNECTED = 1; 7009 DISCONNECTED = 2; 7010 } 7011 // Connected state of a network. 7012 optional State state = 2; 7013} 7014 7015/** 7016 * Logs when a service starts and stops. 7017 * Logged from: 7018 * services/core/java/com/android/server/am/ActiveServices.java 7019 */ 7020message ServiceStateChanged { 7021 7022 optional int32 uid = 1 [(is_uid) = true]; 7023 7024 optional string package_name = 2; 7025 7026 optional string service_name = 3; 7027 7028 enum State { 7029 START = 1; 7030 STOP = 2; 7031 } 7032 7033 optional State state = 4; 7034} 7035 7036/** 7037 * Logs when a service is launched. 7038 * Logged from: 7039 * services/core/java/com/android/server/am/ActiveServices.java 7040 */ 7041message ServiceLaunchReported { 7042 7043 optional int32 uid = 1 [(is_uid) = true]; 7044 7045 optional string package_name = 2; 7046 7047 optional string service_name = 3; 7048} 7049 7050/** 7051 * The type of process start. It's the same as ProcessStartTime.StartType but we 7052 * can't re-type that for background compatibility. 7053 */ 7054enum ProcessStartType { 7055 PROCESS_START_TYPE_UNKNOWN = 0; 7056 PROCESS_START_TYPE_WARM = 1; 7057 PROCESS_START_TYPE_HOT = 2; 7058 PROCESS_START_TYPE_COLD = 3; 7059} 7060 7061/** 7062 * The stopped state of a package. 7063 */ 7064enum PackageStoppedState { 7065 PACKAGE_STATE_UNKNOWN = 0; 7066 PACKAGE_STATE_NORMAL = 1; // The package is not in any stopped state 7067 PACKAGE_STATE_STOPPED = 2; // ApplicationInfo.FLAG_STOPPED 7068} 7069 7070/** 7071 * Logs when a service request is made. 7072 * Logged from: 7073 * services/core/java/com/android/server/am/ActiveServices.java 7074 */ 7075message ServiceRequestEventReported { 7076 /** The package uid of the service host. */ 7077 optional int32 uid = 1 [(is_uid) = true]; 7078 7079 /** The package uid of the service launch request. */ 7080 optional int32 requester_uid = 2 [(is_uid) = true]; 7081 7082 /** The action name of the service request. */ 7083 optional string action_name = 3; 7084 7085 /** 7086 * The types of the requests to the service. 7087 */ 7088 enum RequestType { 7089 UNKNOWN = 0; 7090 START = 1; 7091 BIND = 2; 7092 } 7093 7094 /** The type of the current request to the service.*/ 7095 optional RequestType request_type = 4; 7096 7097 /** Whether or not it's requested to start as a foreground service. */ 7098 optional bool fg_required = 5; 7099 7100 /** The start type of the host process. */ 7101 optional ProcessStartType proc_start_type = 6; 7102 7103 /** The process name who requests the service launch */ 7104 optional string request_process_name = 7; 7105 7106 /** The service component name, here consists of the class name part only */ 7107 optional string service_component_name = 8; 7108 7109 /** The state the package was in when the service was requested */ 7110 optional PackageStoppedState package_stopped_state = 9; 7111 7112 /** The package name of the service host */ 7113 optional string package_name = 10; 7114 7115 /** The package name of the service lunch request */ 7116 optional string requester_package_name = 11; 7117 7118 /** The process state of the requester */ 7119 optional android.app.ProcessStateEnum requester_process_state = 12; 7120 7121 /** The process state of the service host before this service request */ 7122 optional android.app.ProcessStateEnum service_process_state = 13; 7123 7124 /** Whether this is the first launch of the app since install */ 7125 optional bool first_launch = 14; 7126 7127 // How long since this package was stopped, if it was in 7128 // package_stopped_state == PACKAGE_STATE_STOPPED 7129 optional int64 millis_since_stopped = 15; 7130} 7131 7132/** 7133 * Logs indicating a broadcast is being delivered to a receiver. 7134 * 7135 * Logged from: 7136 * frameworks/base/services/core/java/com/android/server/am/BroadcastQueue.java 7137 */ 7138message BroadcastDeliveryEventReported { 7139 /** The package uid of the broadcast receiver. */ 7140 optional int32 uid = 1 [(is_uid) = true]; 7141 7142 /** The package uid of the broadcast sender. */ 7143 optional int32 sender_uid = 2 [(is_uid) = true]; 7144 7145 /** The action name of the broadcast. */ 7146 optional string action_name = 3; 7147 7148 /** 7149 * The types of the broadcast receivers. 7150 */ 7151 enum ReceiverType { 7152 UNKNOWN = 0; 7153 RUNTIME = 1; 7154 MANIFEST = 2; 7155 } 7156 7157 /** The type of the current broadcast receiver. */ 7158 optional ReceiverType receiver_type = 4; 7159 7160 /** The start type of the host process. */ 7161 optional ProcessStartType proc_start_type = 5; 7162 7163 /** The delay in ms from enqueue to dispatch of this intent to the set of receivers. */ 7164 optional int64 dispatch_delay = 6; 7165 7166 /** The delay in ms from beginning of dispatch to this specific receiver. */ 7167 optional int64 receive_delay = 7; 7168 7169 /** The delay in ms from dispatch to finish the handling of this intent. */ 7170 optional int64 finish_delay = 8; 7171 7172 /** The stopped state (if any) the package was in before the broadcast was delivered */ 7173 optional PackageStoppedState package_stopped_state = 9; 7174 7175 /** The package name of the broadcast receiver */ 7176 optional string package_name = 10; 7177 7178 /** The package name of the broadcast sender */ 7179 optional string sender_package_name = 11; 7180 7181 /** The type of the broadcast */ 7182 optional int32 broadcast_type = 12; 7183 7184 /** Delivery group policy set for the broadcast */ 7185 optional android.app.BroadcastDeliveryGroupPolicy delivery_group_policy = 13; 7186 7187 /** Flags set in the broadcast intent */ 7188 optional int32 intent_flags = 14; 7189 7190 /** The intent filter priority of the broadcast receiver */ 7191 optional int32 filter_priority = 15; 7192 7193 /** The procstate of the broadcast sender */ 7194 optional android.app.ProcessStateEnum sender_proc_state = 16; 7195 7196 /** The procstate of the broadcast receiver before receiving this broadcast */ 7197 optional android.app.ProcessStateEnum receiver_process_state = 17; 7198 7199 /** Whether this is the first launch of the app since install */ 7200 optional bool first_launch = 18; 7201 7202 // How long since this package was stopped, if it was in 7203 // package_stopped_state == PACKAGE_STATE_STOPPED 7204 optional int64 millis_since_stopped = 19; 7205} 7206 7207/** 7208 * Logs indicating a client is requesting to acquire a provider, 7209 * this doesn't include the case where the provider has been installed in the 7210 * client's process space and it's just increasing a ref count. 7211 * 7212 * Logged from: 7213 * frameworks/base/services/core/java/com/android/server/am/ContentProviderHelper.java 7214 */ 7215message ProviderAcquisitionEventReported { 7216 /** The package uid of the content provider host. */ 7217 optional int32 uid = 1 [(is_uid) = true]; 7218 7219 /** The package uid of the content provider client who makes the request. */ 7220 optional int32 client_uid = 2 [(is_uid) = true]; 7221 7222 /** The start type of the host process. */ 7223 optional ProcessStartType proc_start_type = 3; 7224 7225 /** The stopped state (if any) the package was in when acquiring the provider */ 7226 optional PackageStoppedState package_stopped_state = 4; 7227 7228 /** The package name of the content provider host. */ 7229 optional string package_name = 5; 7230 7231 /** The package name of the content provider client who makes the request. */ 7232 optional string client_package_name = 6; 7233 7234 /** The process state of the client */ 7235 optional android.app.ProcessStateEnum client_process_state = 7; 7236 7237 /** The process state of the content provider host before being acquired */ 7238 optional android.app.ProcessStateEnum provider_process_state = 8; 7239 7240 /** Whether this is the first launch of the app since install */ 7241 optional bool first_launch = 9; 7242 7243 // How long since this package was stopped, if it was in 7244 // package_stopped_state == PACKAGE_STATE_STOPPED 7245 optional int64 millis_since_stopped = 10; 7246} 7247 7248/** 7249 * Logs when a hidden API is used. 7250 * 7251 * Logged from: 7252 * libcore/libart/src/main/java/dalvik/system/VMRuntime.java 7253 */ 7254message HiddenApiUsed { 7255 // The uid of the app making the hidden access. 7256 optional int32 uid = 1 [(is_uid) = true]; 7257 7258 // Signature of the method or field accessed. 7259 optional string signature = 2; 7260 7261 enum AccessMethod { 7262 NONE = 0; 7263 REFLECTION = 1; 7264 JNI = 2; 7265 LINKING = 3; 7266 } 7267 7268 // Type of access. 7269 optional AccessMethod access_method = 3; 7270 7271 // Whether the access was prevented or not. 7272 optional bool access_denied = 4; 7273} 7274 7275/** 7276 * Logs user interaction with the Privacy Indicators added in Q. In particular: 7277 * - When user sees privacy chip 7278 * - When user clicks privacy chip 7279 * - How does the user exit the Privacy Dialog 7280 * Logged from: 7281 * packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java 7282 */ 7283message PrivacyIndicatorsInteracted { 7284 7285 enum Type { 7286 UNKNOWN = 0; 7287 CHIP_VIEWED = 1; 7288 CHIP_CLICKED = 2; 7289 reserved 3; // Used only in beta builds, never shipped 7290 DIALOG_DISMISS = 4; 7291 DIALOG_LINE_ITEM = 5; 7292 } 7293 7294 optional Type type = 1 [ 7295 (state_field_option).exclusive_state = true, 7296 (state_field_option).nested = false 7297 ]; 7298} 7299 7300/** 7301 * Logs information about a package that is moved from the internal to external storage and vice 7302 * versa. 7303 * It logs the package name, the type of the external storage where the package is installed 7304 * (if moved to external storage, or UNKNOWN if moved to internal storage), 7305 * and the move type: if it's from internal to external or the other way around. 7306 * 7307 * Logged from: 7308 frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java 7309 */ 7310message AppMovedStorageReported { 7311 enum MoveType { 7312 UNKNOWN = 0; 7313 TO_EXTERNAL = 1; 7314 TO_INTERNAL = 2; 7315 } 7316 // The type of the external storage. 7317 optional android.stats.storage.ExternalStorageType external_storage_type = 1; 7318 // The type of move. 7319 optional MoveType move_type = 2; 7320 // The name of the package that was moved. 7321 optional string package_name = 3; 7322} 7323 7324/** 7325 * Logs when system server watchdog occurs. 7326 * Logged from: 7327 * frameworks/base/services/core/java/com/android/server/Watchdog.java 7328 */ 7329message SystemServerWatchdogOccurred { 7330 optional string subject = 1; 7331} 7332 7333/** 7334 * Logs when system server pre-watchdog occurs. 7335 * Logged from: 7336 * frameworks/base/services/core/java/com/android/server/Watchdog.java 7337 */ 7338message SystemServerPreWatchdogOccurred { 7339} 7340 7341/** 7342 * Logs when new file added to tombstones. 7343 * Logged from: 7344 * frameworks/base/core/java/com/android/server/BootReceiver.java 7345 */ 7346message TombStoneOccurred { 7347} 7348 7349/* 7350 * Information about a role request 7351 * 7352 * Logged from: 7353 * packages/apps/PermissionController/src/com/android/packageinstaller/role/ui/RequestRoleFragment.java 7354 */ 7355message RoleRequestResultReported { 7356 // UID of application requesting the role 7357 optional int32 requesting_uid = 1 [(is_uid) = true]; 7358 7359 // Package name of application requesting the role 7360 optional string requesting_package_name = 2; 7361 7362 // The role to be granted 7363 optional string role_name = 3; 7364 7365 // The count of applications qualifying for the role 7366 optional int32 qualifying_count = 4; 7367 7368 // UID of application current granted the role 7369 optional int32 current_uid = 5 [(is_uid) = true]; 7370 7371 // Package name of application current granted the role 7372 optional string current_package_name = 6; 7373 7374 // UID of another application that user chose to grant the role to, instead of the requesting 7375 // application 7376 optional int32 granted_another_uid = 7 [(is_uid) = true]; 7377 7378 // Package name of another application that user chose to grant the role to, instead of the 7379 // requesting application 7380 optional string granted_another_package_name = 8; 7381 7382 enum Result { 7383 UNDEFINED = 0; 7384 // role request was ignored 7385 IGNORED = 1; 7386 // role request was ignored because it's already granted 7387 IGNORED_ALREADY_GRANTED = 2; 7388 // role request was ignored because the application isn't qualified 7389 IGNORED_NOT_QUALIFIED = 3; 7390 // role request was ignored because user said it should be always denied 7391 IGNORED_USER_ALWAYS_DENIED = 4; 7392 // role was granted by user action 7393 USER_GRANTED = 5; 7394 // role was denied by user action 7395 USER_DENIED = 6; 7396 // role was denied by user granting another application the role 7397 USER_DENIED_GRANTED_ANOTHER = 7; 7398 // role was denied and set to be always denied by the user 7399 USER_DENIED_WITH_ALWAYS = 8; 7400 // role request was ignored because the user is blocked from changing 7401 // roles via DISALLOW_CONFIG_DEFAULT_APPS user restriction 7402 IGNORED_USER_RESTRICTION = 9; 7403 // role request was ignored when the package is enhanced confiramtion 7404 // restricted 7405 IGNORED_ENHANCED_CONFIRMATION_RESTRICTION = 10; 7406 } 7407 // The result of the role request 7408 optional Result result = 9; 7409} 7410 7411/** 7412 * Logs when a Vehicle Maps Service client's connection state has changed 7413 * 7414 * Logged from: 7415 * packages/services/Car/service/src/com/android/car/stats/VmsClientLog.java 7416 */ 7417message VmsClientConnectionStateChanged { 7418 // The UID of the VMS client app 7419 optional int32 uid = 1 [(is_uid) = true]; 7420 7421 enum State { 7422 UNKNOWN = 0; 7423 // Attempting to connect to the client 7424 CONNECTING = 1; 7425 // Client connection established 7426 CONNECTED = 2; 7427 // Client connection closed unexpectedly 7428 DISCONNECTED = 3; 7429 // Client connection closed by VMS 7430 TERMINATED = 4; 7431 // Error establishing the client connection 7432 CONNECTION_ERROR = 5; 7433 } 7434 7435 optional State state = 2; 7436} 7437 7438message MimeTypes { 7439 repeated string mime_types = 1; 7440} 7441 7442/** 7443 * Logs statistics regarding accesses to external storage. 7444 * All stats are normalized for one day period. 7445 * 7446 * Logged from: 7447 * packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java 7448 */ 7449message GeneralExternalStorageAccessStats { 7450 optional int32 uid = 1 [(is_uid) = true]; 7451 // Total number of accesses like creation, open, delete and rename/update. 7452 // Includes file path and ContentResolver accesses 7453 optional uint32 total_accesses = 2; 7454 // Number of file path accesses, as opposed to file path and ContentResolver. 7455 optional uint32 file_path_accesses = 3; 7456 // Number of accesses on secondary volumes like SD cards. 7457 // Includes file path and ContentResolver accesses 7458 optional uint32 secondary_storage_accesses = 4; 7459 // Comma-separated list of mime types that were accessed. 7460 optional MimeTypes mime_types_accessed = 5 [(log_mode) = MODE_BYTES]; 7461} 7462 7463/** 7464 * Logs when MediaProvider has successfully finished scanning a storage volume. 7465 * 7466 * Logged from: 7467 * packages/providers/MediaProvider/src/com/android/providers/media/scan/ModernMediaScanner.java 7468 */ 7469message MediaProviderScanOccurred { 7470 enum Reason { 7471 // Scan triggered due to unknown reason 7472 UNKNOWN = 0; 7473 // Scan triggered due to storage volume being mounted 7474 MOUNTED = 1; 7475 // Scan triggered due to explicit user action or app request 7476 DEMAND = 2; 7477 // Scan triggered due to idle maintenance 7478 IDLE = 3; 7479 } 7480 7481 // Volume type that this event pertains to 7482 optional android.stats.mediaprovider.VolumeType volume_type = 1; 7483 // Reason why this scan was triggered 7484 optional Reason reason = 2; 7485 // Total number of files scanned 7486 optional int64 item_count = 3; 7487 // Duration of scan, normalized per file 7488 optional float normalized_duration_millis = 4; 7489 // Number of database inserts, normalized per file 7490 optional float normalized_insert_count = 5; 7491 // Number of database updates, normalized per file 7492 optional float normalized_update_count = 6; 7493 // Number of database deletes, normalized per file 7494 optional float normalized_delete_count = 7; 7495} 7496 7497/** 7498 * Logs when an app has asked MediaProvider to delete media belonging to the user. 7499 * 7500 * Logged from: 7501 * packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java 7502 */ 7503message MediaContentDeleted { 7504 // Volume type that this event pertains to 7505 optional android.stats.mediaprovider.VolumeType volume_type = 1; 7506 // UID of app that requested deletion 7507 optional int32 uid = 2 [(is_uid) = true]; 7508 // Number of items that were deleted 7509 optional int32 item_count = 3; 7510} 7511 7512/** 7513 * Logs when an app has asked MediaProvider to grant them access to media belonging to the user. 7514 * 7515 * Logged from: 7516 * packages/providers/MediaProvider/src/com/android/providers/media/PermissionActivity.java 7517 */ 7518message MediaProviderPermissionRequested { 7519 enum Result { 7520 UNKNOWN = 0; 7521 USER_GRANTED = 1; 7522 AUTO_GRANTED = 2; 7523 USER_DENIED = 3; 7524 USER_DENIED_WITH_PREJUDICE = 4; 7525 AUTO_DENIED = 5; 7526 } 7527 7528 // Volume type that this event pertains to 7529 optional android.stats.mediaprovider.VolumeType volume_type = 1; 7530 // UID of app that requested permission 7531 optional int32 uid = 2 [(is_uid) = true]; 7532 // Number of items that were requested 7533 optional int32 item_count = 3; 7534 // Result of this request 7535 optional Result result = 4; 7536} 7537 7538/** 7539 * Logs when MediaProvider has finished upgrading or downgrading its database schema. 7540 * 7541 * Logged from: 7542 * packages/providers/MediaProvider/src/com/android/providers/media/DatabaseHelper.java 7543 */ 7544message MediaProviderSchemaChanged { 7545 // Volume type that this event pertains to 7546 optional android.stats.mediaprovider.VolumeType volume_type = 1; 7547 // Old database version code 7548 optional int32 version_from = 2; 7549 // New database version code 7550 optional int32 version_to = 3; 7551 // Total number of files in database 7552 optional int64 item_count = 4; 7553 // Duration of schema change, normalized per file 7554 optional float normalized_duration_millis = 5; 7555} 7556 7557/** 7558 * Logs when MediaProvider has finished an idle maintenance job. 7559 * 7560 * Logged from: 7561 * packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java 7562 */ 7563message MediaProviderIdleMaintenanceFinished { 7564 // Volume type that this event pertains to 7565 optional android.stats.mediaprovider.VolumeType volume_type = 1; 7566 7567 // Total number of files in database 7568 optional int64 item_count = 2; 7569 // Duration of idle maintenance, normalized per file 7570 optional float normalized_duration_millis = 3; 7571 // Number of thumbnails found to be stale, normalized per file 7572 optional float normalized_stale_thumbnails = 4; 7573 // Number of items found to be expired, normalized per file 7574 optional float normalized_expired_media = 5; 7575} 7576 7577/** 7578 * Represents boot time event with duration in ms. 7579 * 7580 * Logged from: bootstat and various system server components. Check each enums for details. 7581 */ 7582message BootTimeEventDuration { 7583 enum DurationEvent { 7584 UNKNOWN = 0; 7585 // Bootloader time excluding BOOTLOADER_UI_WAIT + boot complete time. Logged from bootstat. 7586 ABSOLUTE_BOOT_TIME = 1; 7587 // Bootloader's 1st stage execution time. 7588 // Logged from bootstat. 7589 BOOTLOADER_FIRST_STAGE_EXEC = 2; 7590 // Bootloader's 1st stage loading time. 7591 // Logged from bootstat. 7592 BOOTLOADER_FIRST_STAGE_LOAD = 3; 7593 // Bootloader's kernel loading time. 7594 // Logged from bootstat. 7595 BOOTLOADER_KERNEL_LOAD = 4; 7596 // Bootloader's 2nd stage execution time. 7597 // Logged from bootstat. 7598 BOOTLOADER_SECOND_STAGE_EXEC = 5; 7599 // Bootloader's 2nd stage loading time. 7600 // Logged from bootstat. 7601 BOOTLOADER_SECOND_STAGE_LOAD = 6; 7602 // Duration for Bootloader to show unlocked device's warning UI. This should not happen 7603 // for locked device. 7604 // Logged from bootstat. 7605 BOOTLOADER_UI_WAIT = 7; 7606 // Total time spend in bootloader. This is the sum of all BOOTLOADER_* listed above. 7607 // Logged from bootstat. 7608 BOOTLOADER_TOTAL = 8; 7609 // Shutdown duration inside init for the reboot before the current boot up. 7610 // Logged from f/b/services/.../BootReceiver.java. 7611 SHUTDOWN_DURATION = 9; 7612 // Total time for mounting of disk devices during bootup. 7613 // Logged from f/b/services/.../BootReceiver.java. 7614 MOUNT_DEFAULT_DURATION = 10; 7615 // Total time for early stage mounting of disk devices during bootup. 7616 // Logged from f/b/services/.../BootReceiver.java. 7617 MOUNT_EARLY_DURATION = 11; 7618 // Total time for late stage mounting of disk devices during bootup. 7619 // Logged from f/b/services/.../BootReceiver.java. 7620 MOUNT_LATE_DURATION = 12; 7621 // Average time to scan non-system app after OTA 7622 // Logged from f/b/services/.../PackageManagerService.java 7623 OTA_PACKAGE_MANAGER_INIT_TIME = 13; 7624 // Time to initialize Package manager after OTA 7625 // Logged from f/b/services/.../PackageManagerService.java 7626 OTA_PACKAGE_MANAGER_DATA_APP_AVG_SCAN_TIME = 14; 7627 // Time to scan all system app from Package manager after OTA 7628 // Logged from f/b/services/.../PackageManagerService.java 7629 OTA_PACKAGE_MANAGER_SYSTEM_APP_AVG_SCAN_TIME = 15; 7630 // Init's total time for cold boot stage. 7631 // Logged from bootstat. 7632 COLDBOOT_WAIT = 16; 7633 // Init's total time for initializing selinux. 7634 // Logged from bootstat. 7635 SELINUX_INIT = 17; 7636 // Time since last factory reset. 7637 // Logged from bootstat. 7638 FACTORY_RESET_TIME_SINCE_RESET = 18; 7639 // Init's total time spent for completing the 1st stage. 7640 // Logged from bootstat. 7641 ANDROID_INIT_STAGE_1 = 19; 7642 } 7643 7644 // Type of the event. 7645 optional DurationEvent event = 1; 7646 // Duration of the event in ms. 7647 optional int64 duration_millis = 2; 7648} 7649 7650/** 7651 * Represents the start of specific boot time event during bootup in ms. This is usually a time 7652 * since boot-up. 7653 * 7654 * Logged from: bootstat and various system server components. Check each enums for details. 7655 */ 7656message BootTimeEventElapsedTime { 7657 enum ElapsedTimeEvent { 7658 UNKNOWN = 0; 7659 // Time when init starts 1st stage. Logged from bootstat. 7660 ANDROID_INIT_STAGE_1 = 1; 7661 // Time when sys.boot_completed prop is set. 7662 // Logged from bootstat. 7663 BOOT_COMPLETE = 2; 7664 // BOOT_COMPLETE for a device that uses full-disk encryption. Note that 7665 // no devices running Android 13 or later use full-disk encryption, as 7666 // it has been replaced by file-based encryption. 7667 BOOT_COMPLETE_ENCRYPTION = 3; 7668 // BOOT_COMPLETE for a device that doesn't use full-disk encryption. 7669 BOOT_COMPLETE_NO_ENCRYPTION = 4; 7670 // Adjusted BOOT_COMPLETE for a device that uses full-disk encryption, 7671 // omitting the decryption time. 7672 BOOT_COMPLETE_POST_DECRYPT = 5; 7673 // BOOT_COMPLETE after factory reset. 7674 FACTORY_RESET_BOOT_COMPLETE = 6; 7675 // BOOT_COMPLETE_NO_ENCRYPTION after factory reset. 7676 FACTORY_RESET_BOOT_COMPLETE_NO_ENCRYPTION = 7; 7677 // BOOT_COMPLETE_POST_DECRYPT after factory reset. 7678 FACTORY_RESET_BOOT_COMPLETE_POST_DECRYPT = 8; 7679 // BOOT_COMPLETE after OTA. 7680 OTA_BOOT_COMPLETE = 9; 7681 // BOOT_COMPLETE_NO_ENCRYPTION after OTA. 7682 OTA_BOOT_COMPLETE_NO_ENCRYPTION = 10; 7683 // BOOT_COMPLETE_POST_DECRYPT after OTA. 7684 OTA_BOOT_COMPLETE_POST_DECRYPT = 11; 7685 // Time when the system starts sending LOCKED_BOOT_COMPLETED broadcast. 7686 // Logged from f/b/services/.../UserController.java 7687 FRAMEWORK_LOCKED_BOOT_COMPLETED = 12; 7688 // Time when the system starts sending BOOT_COMPLETED broadcast. 7689 // Logged from f/b/services/.../UserController.java 7690 FRAMEWORK_BOOT_COMPLETED = 13; 7691 // Time when the package manager starts init. 7692 // Logged from f/b/services/.../SystemServer.java 7693 PACKAGE_MANAGER_INIT_START = 14; 7694 // Time when package manager is ready 7695 // Logged from f/b/services/.../SystemServer.java 7696 PACKAGE_MANAGER_INIT_READY = 15; 7697 // Represents the time when user has entered unlock credential for system with user pin. 7698 // Logged from bootstat. 7699 POST_DECRYPT = 16; 7700 // Represents the start of zygote's init. 7701 // Logged from zygote itself. 7702 ZYGOTE_INIT_START = 17; 7703 // Represents the start of secondary zygote's init. 7704 // TODO: add logging to zygote 7705 SECONDARY_ZYGOTE_INIT_START = 18; 7706 // Represents the start of system server's init. 7707 // Logged from f/b/services/.../SystemServer.java 7708 SYSTEM_SERVER_INIT_START = 19; 7709 // Represents the completion of system server's init. 7710 // Logged from f/b/services/.../SystemServer.java 7711 SYSTEM_SERVER_READY = 20; 7712 // Represents the start of launcher during boot-up. 7713 // TODO: add logging 7714 LAUNCHER_START = 21; 7715 // Represents the completion of launcher's initial rendering. User can use other apps from 7716 // launcher from this point. 7717 // TODO: add logging 7718 LAUNCHER_SHOWN = 22; 7719 } 7720 7721 // Type of the event. 7722 optional ElapsedTimeEvent event = 1; 7723 // Time since bootup for the event. 7724 // It should be acquired from SystemClock elapsedRealtime() call or equivalent. 7725 optional int64 time_millis = 2; 7726} 7727 7728/** 7729 * Boot time events with UTC time. 7730 * 7731 * Logged from: bootstat and various system server components. Check each enums for details. 7732 */ 7733message BootTimeEventUtcTime { 7734 enum UtcTimeEvent { 7735 UNKNOWN = 0; 7736 // Time of the bootstat's marking of 1st boot after the last factory reset. 7737 // Logged from bootstat. 7738 FACTORY_RESET_RESET_TIME = 1; 7739 // The time when bootstat records FACTORY_RESET_* events. This is close to 7740 // BOOT_COMPLETE time for the current bootup. 7741 // Logged from bootstat. 7742 FACTORY_RESET_CURRENT_TIME = 2; 7743 // DUplicate of FACTORY_RESET_RESET_TIME added for debugging purpose. 7744 // Logged from bootstat. 7745 FACTORY_RESET_RECORD_VALUE = 3; 7746 } 7747 7748 // Type of the event. 7749 optional UtcTimeEvent event = 1; 7750 // UTC time for the event. 7751 optional int64 utc_time_secs = 2; 7752} 7753 7754/** 7755 * Boot time events representing specific error code during bootup. 7756 * Meaning of error code can be different per each event type. 7757 * 7758 * Logged from: bootstat and various system server components. Check each enums for details. 7759 */ 7760message BootTimeEventErrorCode { 7761 enum ErrorCodeEvent { 7762 UNKNOWN = 0; 7763 // Linux error code for time() call to get the current UTC time. 7764 // Logged from bootstat. 7765 FACTORY_RESET_CURRENT_TIME_FAILURE = 1; 7766 // Represents UmountStat before the reboot for the current boot up. Error codes defined 7767 // as UMOUNT_STAT_* from init/reboot.cpp. 7768 // Logged from f/b/services/.../BootReceiver.java. 7769 SHUTDOWN_UMOUNT_STAT = 2; 7770 // Reprepsents fie system mounting error code of /data partition for the current boot. 7771 // Error codes defined as combination of FsStatFlags from system/core/fs_mgr/fs_mgr.cpp. 7772 // Logged from f/b/services/.../BootReceiver.java. 7773 FS_MGR_FS_STAT_DATA_PARTITION = 3; 7774 } 7775 7776 // Type of the event. 7777 optional ErrorCodeEvent event = 1; 7778 // error code defined per each event type. 7779 // For example, this can have a value of FsStatFlags.FS_STAT_FULL_MOUNT_FAILED for the event of 7780 // FS_MGR_FS_STAT. 7781 optional int32 error_code = 2; 7782} 7783 7784/** 7785 * Collects Virtual A/B statistics related to the use of dm-snapshot performed 7786 * after an OTA. 7787 * 7788 * Logged from: 7789 * - system/update_engine/cleanup_previous_update_action.cc 7790 */ 7791message SnapshotMergeReported { 7792 // Keep in sync with 7793 // system/core/fs_mgr/libsnapshot/android/snapshot/snapshot.proto 7794 enum UpdateState { 7795 // No update or merge is in progress. 7796 NONE = 0; 7797 // An update is applying; snapshots may already exist. 7798 INITIATED = 1; 7799 // An update is pending, but has not been successfully booted yet. 7800 UNVERIFIED = 2; 7801 // The kernel is merging in the background. 7802 MERGING = 3; 7803 // Post-merge cleanup steps could not be completed due to a transient 7804 // error, but the next reboot will finish any pending operations. 7805 MERGE_NEEDS_REBOOT = 4; 7806 // Merging is complete, and needs to be acknowledged. 7807 MERGE_COMPLETED = 5; 7808 // Merging failed due to an unrecoverable error. 7809 MERGE_FAILED = 6; 7810 // The update was implicitly cancelled, either by a rollback or a flash 7811 // operation via fastboot. This state can only be returned by WaitForMerge. 7812 CANCELLED = 7; 7813 }; 7814 7815 // Status codes correspond to specific failure conditions in 7816 // system/core/fs_mgr/libsnapshot/android/snapshot/snapshot.cpp 7817 // 7818 // Keep in sync with 7819 // system/core/fs_mgr/libsnapshot/android/snapshot/snapshot.proto 7820 enum MergeFailureCode { 7821 OK = 0; 7822 READ_STATUS = 1; 7823 GET_TABLE_INFO = 2; 7824 UNKNOWN_TABLE = 3; 7825 GET_TABLE_PARAMS = 4; 7826 ACTIVATE_NEW_TABLE = 5; 7827 ACQUIRE_LOCK = 6; 7828 LIST_SNAPSHOTS = 7; 7829 WRITE_STATUS = 8; 7830 UNKNOWN_TARGET_TYPE = 9; 7831 QUERY_SNAPSHOT_STATUS = 10; 7832 EXPECTED_MERGE_TARGET = 11; 7833 UNMERGED_SECTORS_AFTER_COMPLETION = 12; 7834 UNEXPECTED_MERGE_STATE = 13; 7835 GET_COW_PATH_CONSISTENCY_CHECK = 14; 7836 OPEN_COW_CONSISTENCY_CHECK = 15; 7837 PARSE_COW_CONSISTENCY_CHECK = 16; 7838 OPEN_COW_DIRECT_CONSISTENCY_CHECK = 17; 7839 MEM_ALIGN_CONSISTENCY_CHECK = 18; 7840 DIRECT_READ_CONSISTENCY_CHECK = 19; 7841 WRONG_MERGE_COUNT_CONSISTENCY_CHECK = 20; 7842 }; 7843 7844 // Status of the update after the merge attempts. 7845 optional UpdateState final_state = 1; 7846 7847 // Time to complete a merge operation in milliseconds. 7848 // A negative value corresponds to the case in which the merge operation 7849 // was interrupted and resumed (e.g. in case of a system reboot during the 7850 // merge). 7851 optional int64 duration_millis = 2; 7852 7853 // Number of reboots that occurred after issuing and before completing the 7854 // merge of all the snapshot devices. 7855 optional int32 intermediate_reboots = 3; 7856 7857 // The device has been upgraded to Virtual A/B. 7858 optional bool is_vab_retrofit = 4; 7859 7860 // Space that has been temporarily allocated in the /data partition 7861 // containing the dm-snapshot's copy-on-write data generated during a 7862 // Virtual A/B update. 7863 optional int64 cow_file_size_bytes = 5; 7864 7865 // Whether the device enables Virtual A/B compression. 7866 optional bool vab_compression_enabled = 6; 7867 7868 // Whether this update attempt uses Virtual A/B compression. 7869 optional bool vab_compression_used = 7; 7870 7871 // Total size used by COWs, including /data and the super partition. 7872 optional int64 total_cow_size_bytes = 8; 7873 7874 // Sum of the estimated COW fields in the OTA manifest. 7875 optional int64 estimated_cow_size_bytes = 9; 7876 7877 // Time from boot to sys.boot_completed, in milliseconds. 7878 optional int32 boot_complete_time_millis = 10; 7879 7880 // Time from sys.boot_completed to merge start, in milliseconds. 7881 optional int32 boot_complete_to_merge_start_time_millis = 11; 7882 7883 optional MergeFailureCode merge_failure_code = 12; 7884 7885 // Build fingerprint at the time the OTA was downloaded. 7886 optional string source_build_fingerprint = 13; 7887 7888 // Build fingerprint at the time the merge was initiated. 7889 optional string target_build_fingerprint = 14; 7890 7891 // Whether the device enabled userspace snapshots. 7892 optional bool userspace_snapshots_enabled = 15; 7893 7894 // Whether this update attempt used userspace snapshots. 7895 optional bool userspace_snapshots_used = 16; 7896 7897 // Whether the device enabled XOR compression. 7898 optional bool xor_compression_enabled = 17; 7899 7900 // Whether this update attempt used XOR compression. 7901 optional bool xor_compression_used = 18; 7902 7903 // Whether this update attempt used io_uring. 7904 optional bool iouring_used = 19; 7905} 7906 7907/** 7908 * Event representing when BlobStoreManager.Session#commit() is called 7909 * 7910 * Logged from: 7911 * frameworks/base/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java 7912 */ 7913message BlobCommitted { 7914 // Uid of the Blob committer 7915 optional int32 uid = 1 [(is_uid) = true]; 7916 7917 // Id of the Blob committed 7918 optional int64 blob_id = 2; 7919 7920 // Size of the Blob 7921 optional int64 size = 3; 7922 7923 enum Result { 7924 UNKNOWN = 0; 7925 // Commit Succeeded 7926 SUCCESS = 1; 7927 // Commit Failed: Error occurred during commit 7928 ERROR_DURING_COMMIT = 2; 7929 // Commit Failed: Digest of the data did not match Blob digest 7930 DIGEST_MISMATCH = 3; 7931 // Commit Failed: Allowed count limit exceeded 7932 COUNT_LIMIT_EXCEEDED = 4; 7933 } 7934 optional Result result = 4; 7935} 7936 7937/** 7938 * Event representing when BlobStoreManager#acquireLease() is called 7939 * 7940 * Logged from: 7941 * frameworks/base/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java 7942 */ 7943message BlobLeased{ 7944 // Uid of the Blob leasee 7945 optional int32 uid = 1 [(is_uid) = true]; 7946 7947 // Id of the Blob leased or 0 if the Blob does not exist 7948 optional int64 blob_id = 2; 7949 7950 // Size of the Blob or 0 if the Blob does not exist 7951 optional int64 size = 3; 7952 7953 enum Result { 7954 UNKNOWN = 0; 7955 // Lease Succeeded 7956 SUCCESS = 1; 7957 // Lease Failed: Blob does not exist 7958 BLOB_DNE = 2; 7959 // Lease Failed: Leasee does not have access to the Blob 7960 ACCESS_NOT_ALLOWED = 3; 7961 // Lease Failed: Leasee requested an invalid expiry duration 7962 LEASE_EXPIRY_INVALID = 4; 7963 // Lease Failed: Leasee has exceeded the total data lease limit 7964 DATA_SIZE_LIMIT_EXCEEDED = 5; 7965 // Leasee Failed: Allowed count limit exceeded 7966 COUNT_LIMIT_EXCEEDED = 6; 7967 } 7968 optional Result result = 4; 7969} 7970 7971/** 7972 * Event representing when BlobStoreManager#openBlob() is called 7973 * 7974 * Logged from: 7975 * frameworks/base/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java 7976 */ 7977message BlobOpened{ 7978 // Uid of the Blob opener 7979 optional int32 uid = 1 [(is_uid) = true]; 7980 7981 // Id of the Blob opened or 0 if the Blob does not exist 7982 optional int64 blob_id = 2; 7983 7984 // Size of the Blob or 0 if the Blob does not exist 7985 optional int64 size = 3; 7986 7987 enum Result { 7988 UNKNOWN = 0; 7989 // Open Succeeded 7990 SUCCESS = 1; 7991 // Open Failed: Blob does not exist 7992 BLOB_DNE = 2; 7993 // Open Failed: Opener does not have access to the Blob 7994 ACCESS_NOT_ALLOWED = 3; 7995 } 7996 optional Result result = 4; 7997} 7998 7999/** 8000 * Event to track Jank for various system interactions. 8001 * 8002 * Logged from: 8003 * frameworks/base/core/java/com/android/internal/jank/FrameTracker.java 8004 * 8005 * Next Tag: 10 8006 */ 8007message UIInteractionFrameInfoReported { 8008 optional android.jank.InteractionType interaction_type = 1; 8009 8010 optional android.jank.DisplayResolution display_resolution = 8; 8011 8012 optional android.jank.DisplayRefreshRate display_refresh_rate = 9; 8013 8014 // Number of frames rendered during the interaction. 8015 optional int64 total_frames = 2; 8016 8017 // Number of frames that were skipped in rendering during the interaction. 8018 optional int64 missed_frames = 3; 8019 8020 // Number of frames that were missed in Surface Flinger during the interaction. 8021 optional int64 sf_missed_frames = 5; 8022 8023 // Number of frames that were missed in the app during the interaction. 8024 optional int64 app_missed_frames = 6; 8025 8026 // Maximum time it took to render a single frame during the interaction. 8027 optional int64 max_frame_time_nanos = 4; 8028 8029 // Maximum number of successive frames missed. 8030 optional int64 max_successive_missed_frames = 7; 8031} 8032 8033/** 8034 * Event to track various latencies in SystemUI. 8035 * 8036 * Logged from: 8037 * frameworks/base/core/java/com/android/internal/util/LatencyTracker.java 8038 */ 8039message UIActionLatencyReported { 8040 optional android.jank.ActionType action = 1; 8041 8042 optional int64 latency_millis = 2; 8043} 8044 8045////////////////////////////////////////////////////////////////////// 8046// Pulled atoms below this line // 8047////////////////////////////////////////////////////////////////////// 8048 8049/** 8050 * Pulls bytes transferred via wifi (Sum of foreground and background usage). 8051 * 8052 * Pulled from: 8053 * StatsCompanionService (using BatteryStats to get which interfaces are wifi) 8054 */ 8055message WifiBytesTransfer { 8056 optional int32 uid = 1 [(is_uid) = true]; 8057 8058 optional int64 rx_bytes = 2; 8059 8060 optional int64 rx_packets = 3; 8061 8062 optional int64 tx_bytes = 4; 8063 8064 optional int64 tx_packets = 5; 8065} 8066 8067/** 8068 * Pulls bytes transferred via wifi (separated by foreground and background usage). 8069 * 8070 * Pulled from: 8071 * StatsCompanionService (using BatteryStats to get which interfaces are wifi) 8072 */ 8073message WifiBytesTransferByFgBg { 8074 optional int32 uid = 1 [(is_uid) = true]; 8075 8076 // 1 denotes foreground and 0 denotes background. This is called Set in NetworkStats. 8077 optional bool is_foreground = 2; 8078 8079 optional int64 rx_bytes = 3; 8080 8081 optional int64 rx_packets = 4; 8082 8083 optional int64 tx_bytes = 5; 8084 8085 optional int64 tx_packets = 6; 8086} 8087 8088/** 8089 * Pulls bytes transferred via mobile networks (Sum of foreground and background usage). 8090 * 8091 * Pulled from: 8092 * StatsCompanionService (using BatteryStats to get which interfaces are mobile data) 8093 */ 8094message MobileBytesTransfer { 8095 optional int32 uid = 1 [(is_uid) = true]; 8096 8097 optional int64 rx_bytes = 2; 8098 8099 optional int64 rx_packets = 3; 8100 8101 optional int64 tx_bytes = 4; 8102 8103 optional int64 tx_packets = 5; 8104} 8105 8106/** 8107 * Pulls bytes transferred via mobile networks (separated by foreground and background usage). 8108 * 8109 * Pulled from: 8110 * StatsCompanionService (using BatteryStats to get which interfaces are mobile data) 8111 */ 8112message MobileBytesTransferByFgBg { 8113 optional int32 uid = 1 [(is_uid) = true]; 8114 8115 // 1 denotes foreground and 0 denotes background. This is called Set in 8116 // NetworkStats. 8117 optional bool is_foreground = 2; 8118 8119 optional int64 rx_bytes = 3; 8120 8121 optional int64 rx_packets = 4; 8122 8123 optional int64 tx_bytes = 5; 8124 8125 optional int64 tx_packets = 6; 8126} 8127 8128/** 8129 * Used for pull network statistics via mobile|wifi networks, and sliced by interesting dimensions. 8130 * Note that the data is expected to be sliced into more dimensions in future. In other words, 8131 * the caller must not assume any row of data is one full report when filtering with a set of 8132 * matching conditions, because future data may represent with multiple rows what is currently 8133 * represented by one. 8134 * To avoid being broken by future slicing, callers must take care to aggregate rows even if they 8135 * query all the existing columns. 8136 * 8137 * Pulled from: 8138 * StatsPullAtomService (using NetworkStatsService to get NetworkStats) 8139 */ 8140message DataUsageBytesTransfer { 8141 // State of this record. Should be NetworkStats#SET_DEFAULT or NetworkStats#SET_FOREGROUND to 8142 // indicate the foreground state, or NetworkStats#SET_ALL to indicate the record is for all 8143 // states combined, not including debug states. See NetworkStats#SET_*. 8144 optional int32 state = 1; 8145 8146 optional int64 rx_bytes = 2; 8147 8148 optional int64 rx_packets = 3; 8149 8150 optional int64 tx_bytes = 4; 8151 8152 optional int64 tx_packets = 5; 8153 8154 // Radio Access Technology (RAT) type of this record, should be one of 8155 // TelephonyManager#NETWORK_TYPE_* constants, or NetworkTemplate#NETWORK_TYPE_ALL to indicate 8156 // the record is for all rat types combined. 8157 optional int32 rat_type = 6; 8158 8159 // Mcc/Mnc read from sim if the record is for a specific subscription, null indicates the 8160 // record is combined across subscriptions. 8161 optional string sim_mcc = 7; 8162 optional string sim_mnc = 8; 8163 8164 // Allows mobile virtual network operators (MVNOs) to be identified with individual IDs. 8165 // See TelephonyManager#getSimCarrierId. 8166 optional int32 carrier_id = 9; 8167 8168 // Enumeration of opportunistic states with an additional ALL state indicates the record is 8169 // combined regardless of the boolean value in its field. 8170 enum DataSubscriptionState { 8171 UNKNOWN = 0; // For server side backward compatibility. 8172 ALL = 1; 8173 OPPORTUNISTIC = 2; 8174 NOT_OPPORTUNISTIC = 3; 8175 } 8176 // Mark whether the subscription is an opportunistic data subscription, and ALL indicates the 8177 // record is combined across opportunistic data subscriptions. 8178 // See {@link SubscriptionManager#setOpportunistic}. 8179 optional DataSubscriptionState opportunistic_data_sub = 10; 8180 8181 // Indicate whether NR is connected, server side could use this with RAT type to determine if 8182 // the record is for 5G NSA (Non Stand Alone) mode, where the primary cell is still LTE and 8183 // network allocates a secondary 5G cell so telephony reports RAT = LTE along with NR state as 8184 // connected. 8185 optional bool is_nr_connected = 11; 8186} 8187 8188/** 8189 * Note: This is a copy from DataUsageBytesTransfer and add a metered field. 8190 * TODO: DataUsageBytesTransfer should be eventually replaced with DataUsageBytesTransferV2. 8191 * 8192 * Used for pull network statistics via mobile|wifi networks, and sliced by interesting dimensions. 8193 * Note that the data is expected to be sliced into more dimensions in future. In other words, 8194 * the caller must not assume any row of data is one full report when filtering with a set of 8195 * matching conditions, because future data may represent with multiple rows what is currently 8196 * represented by one. 8197 * To avoid being broken by future slicing, callers must take care to aggregate rows even if they 8198 * query all the existing columns. 8199 * 8200 * Pulled from: 8201 * StatsPullAtomService (using NetworkStatsService to get NetworkStats) 8202 */ 8203message DataUsageBytesTransferV2 { 8204 // State of this record. Should be NetworkStats#SET_DEFAULT or NetworkStats#SET_FOREGROUND to 8205 // indicate the foreground state, or NetworkStats#SET_ALL to indicate the record is for all 8206 // states combined, not including debug states. See NetworkStats#SET_*. 8207 optional int32 state = 1; 8208 8209 optional int64 rx_bytes = 2; 8210 8211 optional int64 rx_packets = 3; 8212 8213 optional int64 tx_bytes = 4; 8214 8215 optional int64 tx_packets = 5; 8216 8217 // Radio Access Technology (RAT) type of this record, should be one of 8218 // TelephonyManager#NETWORK_TYPE_* constants, or NetworkTemplate#NETWORK_TYPE_ALL to indicate 8219 // the record is for all rat types combined. 8220 optional int32 rat_type = 6; 8221 8222 // Mcc/Mnc read from sim if the record is for a specific subscription, null indicates the 8223 // record is combined across subscriptions. 8224 optional string sim_mcc = 7; 8225 optional string sim_mnc = 8; 8226 8227 // Allows mobile virtual network operators (MVNOs) to be identified with individual IDs. 8228 // See TelephonyManager#getSimCarrierId. 8229 optional int32 carrier_id = 9; 8230 8231 // Enumeration of opportunistic states with an additional DSS_ALL state indicates the record is 8232 // combined regardless of the boolean value in its field. 8233 enum DataSubscriptionState { 8234 DSS_UNKNOWN = 0; // For server side backward compatibility. 8235 DSS_ALL = 1; 8236 DSS_OPPORTUNISTIC = 2; 8237 DSS_NOT_OPPORTUNISTIC = 3; 8238 } 8239 // Mark whether the subscription is an opportunistic data subscription, and ALL indicates the 8240 // record is combined across opportunistic data subscriptions. 8241 // See {@link SubscriptionManager#setOpportunistic}. 8242 optional DataSubscriptionState opportunistic_data_sub = 10; 8243 8244 // Indicate whether NR is connected, server side could use this with RAT type to determine if 8245 // the record is for 5G NSA (Non Stand Alone) mode, where the primary cell is still LTE and 8246 // network allocates a secondary 5G cell so telephony reports RAT = LTE along with NR state as 8247 // connected. 8248 optional bool is_nr_connected = 11; 8249 8250 // Enumeration of metered states. 8251 enum MeteredState { 8252 METERED_UNKNOWN = 0; 8253 METERED_ALL = 1; 8254 METERED_NO = 2; 8255 METERED_YES = 3; 8256 } 8257 // Mark the reported data is metered or non-metered, and METERED_ALL indicates the record is 8258 // combined across metered data. 8259 optional MeteredState metered = 12; 8260} 8261 8262/** 8263 * Pulls bytes transferred via OEM managed networks. Data is split up by which 8264 * type of OEM managed network it is, what transport it went over, and if it was 8265 * in the foreground or background. 8266 * 8267 * Pulled from: 8268 * StatsPullAtomService 8269 */ 8270 message OemManagedBytesTransfer { 8271 optional int32 uid = 1 [(is_uid) = true]; 8272 8273 // 1 denotes foreground and 0 denotes background. This is called Set in 8274 // NetworkStats. 8275 optional bool is_foreground = 2; 8276 8277 // Corresponds to the type of OEM managed network, see 8278 // {@link NetworkTemplate#OEM_MANAGED_ANY} and {@code NetworkIdentity#OEM_*}. 8279 optional int32 oem_managed_type = 3; 8280 8281 // Corresponds to the type of transport the bytes were transferred over, see 8282 // {@link NetworkTemplate#transportToMatchRule} and 8283 // {@code NetworkCapabilities#TRANSPORT_*} 8284 optional int32 transport_type = 4; 8285 8286 optional int64 rx_bytes = 5; 8287 8288 optional int64 rx_packets = 6; 8289 8290 optional int64 tx_bytes = 7; 8291 8292 optional int64 tx_packets = 8; 8293 } 8294 8295/** 8296 * Pulls bytes transferred via bluetooth. It is pulled from Bluetooth controller. 8297 * 8298 * Pulled from: 8299 * StatsCompanionService 8300 */ 8301message BluetoothBytesTransfer { 8302 optional int32 uid = 1 [(is_uid) = true]; 8303 8304 optional int64 rx_bytes = 2; 8305 8306 optional int64 tx_bytes = 3; 8307} 8308 8309/** 8310 * Pulls the kernel wakelock durations. This atom is adapted from 8311 * android/internal/os/KernelWakelockStats.java 8312 * 8313 * Pulled from: 8314 * StatsCompanionService using KernelWakelockReader. 8315 */ 8316message KernelWakelock { 8317 optional string name = 1; 8318 8319 optional int32 count = 2; 8320 8321 optional int32 version = 3; 8322 8323 optional int64 time_micros = 4; 8324} 8325 8326/** 8327 * Pulls power state information. 8328 * Pulled from: 8329 * frameworks/base/services/core/java/com/android/server/powerstats/StatsPullAtomCallbackImpl.java 8330 */ 8331message SubsystemSleepState { 8332 // Subsystem name 8333 optional string subsystem_name = 1; 8334 // For PlatformLowPowerStats (hal 1.0), this is the voter name, which could be empty. 8335 // For SubsystemLowPowerStats (hal 1.1), this is the sleep state name. 8336 // For PowerEntityStateResidencyResult (hal power/stats/1.0) this is the 8337 // powerEntityStateName from the corresponding PowerEntityStateInfo. 8338 optional string subname = 2; 8339 // The number of times it entered, or voted for entering the sleep state 8340 optional uint64 count = 3; 8341 // The length of time spent in, or spent voting for, the sleep state 8342 optional uint64 time_millis = 4; 8343} 8344 8345/** 8346 * Pulls on-device power measurement information. 8347 * Pulled from: 8348 * frameworks/base/services/core/java/com/android/server/powerstats/StatsPullAtomCallbackImpl.java 8349 */ 8350message OnDevicePowerMeasurement { 8351 // Name of the subsystem (to which the rail belongs). 8352 optional string subsystem_name = 1; 8353 8354 // Rail name. The rail lies within the subsystem. 8355 optional string rail_name = 2; 8356 8357 // Time (in ms since boot) at which the rail energy value was measured. 8358 // This may differ slightly from the time that statsd logs this information. 8359 optional uint64 measurement_timestamp_millis = 3; 8360 8361 // Accumulated energy used via the rail since device boot in uWs. 8362 optional uint64 energy_microwatt_secs = 4; 8363} 8364 8365/** 8366 * Pulls Cpu time per cluster per frequency. 8367 * This is tracked by the timeInState eBPF program. 8368 */ 8369message CpuTimePerClusterFreq { 8370 optional uint32 cluster = 1; 8371 optional uint32 freq_khz = 2; 8372 // Time spent at this frequency excluding sleep since tracking started. 8373 optional uint64 time_millis = 3; 8374} 8375 8376/** 8377 * Pulls Cpu Time Per Uid. 8378 * Note that isolated process uid time should be attributed to host uids. 8379 */ 8380message CpuTimePerUid { 8381 optional int32 uid = 1 [(is_uid) = true]; 8382 optional uint64 user_time_micros = 2; 8383 optional uint64 sys_time_micros = 3; 8384} 8385 8386/** 8387 * Pulls Cpu Cycles Per Uid Per Cluster. 8388 * Note that uids are transformed to reduce the number of uploaded entries. Shared GIDs are 8389 * combined under single uid LAST_SHARED_APPLICATION_GID. Individual isolated uids are excluded 8390 * because they are recycled and removed from the underlying data source. All uids are normalized 8391 * to their base uids. 8392 */ 8393message CpuCyclesPerUidCluster { 8394 optional int32 uid = 1 [(is_uid) = true]; 8395 optional int32 cluster = 2; 8396 // Megacycles, i.e. millions of cycles. 8397 optional int64 mcycles = 3; 8398 // Time excluding sleep since tracking started. 8399 optional int64 time_millis = 4; 8400 // Power estimate: time * average power for frequency / 1000. 8401 optional int64 power_profile_estimate = 5; 8402} 8403 8404/** 8405 * Pulls Cpu Time Per Uid per frequency. 8406 * Note that uids are transformed to reduce the number of uploaded entries. Shared GIDs are 8407 * combined under single uid LAST_SHARED_APPLICATION_GID. Individual isolated uids are excluded 8408 * because they are recycled and removed from the underlying data source. All uids are normalized 8409 * to their base uids. 8410 */ 8411message CpuTimePerUidFreq { 8412 optional int32 uid = 1 [(is_uid) = true]; 8413 optional uint32 freq_index = 2; 8414 optional uint64 time_millis = 3; 8415} 8416 8417/** 8418 * Pulls Cpu Cycles Per ThreadGroup Per Cluster. 8419 * This is tracked by the timeInState eBPF program. 8420 */ 8421message CpuCyclesPerThreadGroupCluster { 8422 enum ThreadGroup { 8423 UNKNOWN_THREAD_GROUP = 0; 8424 8425 // System server threads serving Binder calls. 8426 SYSTEM_SERVER_BINDER = 1; 8427 8428 // All system server threads. 8429 SYSTEM_SERVER = 2; 8430 8431 // All surface flinger threads. 8432 SURFACE_FLINGER = 3; 8433 } 8434 optional ThreadGroup thread_group = 1; 8435 8436 optional int32 cluster = 2; 8437 8438 // Megacycles, i.e. millions of cycles. 8439 optional int64 mcycles = 3; 8440 // Time excluding sleep since tracking started. 8441 optional int64 time_millis = 4; 8442} 8443 8444/** 8445 * Pulls Wifi Controller Activity Energy Info 8446 */ 8447message WifiActivityInfo { 8448 // timestamp(wall clock) of record creation 8449 optional uint64 timestamp_millis = 1; 8450 // stack reported state 8451 // TODO: replace this with proto enum 8452 optional int32 stack_state = 2; 8453 // tx time in millis 8454 optional uint64 controller_tx_time_millis = 3; 8455 // rx time in millis 8456 optional uint64 controller_rx_time_millis = 4; 8457 // idle time in millis 8458 optional uint64 controller_idle_time_millis = 5; 8459 // product of current(mA), voltage(V) and time(ms) 8460 optional uint64 controller_energy_used = 6; 8461} 8462 8463/** 8464 * Pulls Modem Activity Energy Info 8465 */ 8466message ModemActivityInfo { 8467 // timestamp(wall clock) of record creation 8468 optional uint64 timestamp_millis = 1; 8469 // sleep time in millis. 8470 optional uint64 sleep_time_millis = 2; 8471 // idle time in millis 8472 optional uint64 controller_idle_time_millis = 3; 8473 /** 8474 * Tx power index 8475 * index 0 = tx_power < 0dBm 8476 * index 1 = 0dBm < tx_power < 5dBm 8477 * index 2 = 5dBm < tx_power < 15dBm 8478 * index 3 = 15dBm < tx_power < 20dBm 8479 * index 4 = tx_power > 20dBm 8480 */ 8481 // tx time in ms at power level 0 8482 optional uint64 controller_tx_time_pl0_millis = 4; 8483 // tx time in ms at power level 1 8484 optional uint64 controller_tx_time_pl1_millis = 5; 8485 // tx time in ms at power level 2 8486 optional uint64 controller_tx_time_pl2_millis = 6; 8487 // tx time in ms at power level 3 8488 optional uint64 controller_tx_time_pl3_millis = 7; 8489 // tx time in ms at power level 4 8490 optional uint64 controller_tx_time_pl4_millis = 8; 8491 // rx time in ms at power level 5 8492 optional uint64 controller_rx_time_millis = 9; 8493 // product of current(mA), voltage(V) and time(ms) 8494 optional uint64 energy_used = 10 [deprecated=true]; 8495} 8496 8497/** 8498 * Pulls Bluetooth Activity Energy Info 8499 * Note: BluetoothBytesTransfer is pulled at the same time from the controller. 8500 */ 8501message BluetoothActivityInfo { 8502 // timestamp(wall clock) of record creation 8503 optional uint64 timestamp_millis = 1; 8504 // bluetooth stack state 8505 optional int32 bluetooth_stack_state = 2; 8506 // tx time in millis 8507 optional uint64 controller_tx_time_millis = 3; 8508 // rx time in millis 8509 optional uint64 controller_rx_time_millis = 4; 8510 // idle time in millis 8511 optional uint64 controller_idle_time_millis = 5; 8512 // product of current(mA), voltage(V) and time(ms) 8513 optional uint64 energy_used = 6; 8514} 8515 8516/* 8517 * Logs the memory stats for a process. 8518 * 8519 * Pulled from StatsCompanionService for all managed processes (from ActivityManagerService). 8520 */ 8521message ProcessMemoryState { 8522 // The uid if available. -1 means not available. 8523 optional int32 uid = 1 [(is_uid) = true]; 8524 8525 // The process name. 8526 // Usually package name, "system" for system server. 8527 // Provided by ActivityManagerService. 8528 optional string process_name = 2; 8529 8530 // Current OOM score adjustment. Value read from ProcessRecord. 8531 optional int32 oom_adj_score = 3; 8532 8533 // # of page-faults 8534 optional int64 page_fault = 4; 8535 8536 // # of major page-faults 8537 optional int64 page_major_fault = 5; 8538 8539 // RSS 8540 // Value is read from memory.stat, field total_rss if per-app memory 8541 // cgroups are enabled. Otherwise, value from /proc/pid/stat. 8542 optional int64 rss_in_bytes = 6; 8543 8544 // CACHE 8545 // Value is read from memory.stat, field total_cache if per-app memory 8546 // cgroups are enabled. Otherwise, 0. 8547 optional int64 cache_in_bytes = 7; 8548 8549 // SWAP 8550 // Value is read from memory.stat, field total_swap if per-app memory 8551 // cgroups are enabled. Otherwise, 0. 8552 optional int64 swap_in_bytes = 8; 8553 8554 // Deprecated: use ProcessMemoryHighWaterMark atom instead. Always -1. 8555 optional int64 rss_high_watermark_in_bytes = 9 [deprecated = true]; 8556 8557 // Deprecated: use ProcessMemorySnapshot atom instead. Always -1. 8558 optional int64 start_time_nanos = 10 [deprecated = true]; 8559 8560 // Deprecated: use ProcessMemorySnapshot atom instead. Always -1. 8561 optional int32 anon_rss_and_swap_in_kilobytes = 11 [deprecated = true]; 8562} 8563 8564/* 8565 * Logs the memory high-water mark for a process. 8566 * 8567 * Pulled from StatsCompanionService for all managed processes (from ActivityManagerServie) 8568 * and for selected native processes. 8569 * 8570 * Pulling this atom resets high-water mark counters for all processes. 8571 */ 8572message ProcessMemoryHighWaterMark { 8573 // The uid if available. -1 means not available. 8574 optional int32 uid = 1 [(is_uid) = true]; 8575 8576 // The process name. 8577 // Usually package name or process cmdline. 8578 // Provided by ActivityManagerService or read from /proc/PID/cmdline. 8579 optional string process_name = 2; 8580 8581 // Deprecated: use rss_high_water_mark_in_kilobytes instead. This field is 8582 // computed by converting kilobytes to bytes. 8583 optional int64 rss_high_water_mark_in_bytes = 3 [deprecated = true]; 8584 8585 // RSS high-water mark. Peak RSS usage of the process. Read from the VmHWM field in 8586 // /proc/PID/status. 8587 optional int32 rss_high_water_mark_in_kilobytes = 4; 8588} 8589 8590/* 8591 * Logs the memory stats for a process. 8592 * 8593 * Pulled from StatsCompanionService for all managed processes (from ActivityManagerService) 8594 * and for selected native processes. 8595 */ 8596message ProcessMemorySnapshot { 8597 // The uid if available. -1 means not available. 8598 optional int32 uid = 1 [(is_uid) = true]; 8599 8600 // The process name. 8601 // Usually package name or process cmdline. 8602 // Provided by ActivityManagerService or read from /proc/PID/cmdline. 8603 optional string process_name = 2; 8604 8605 // The pid of the process. 8606 // Allows to disambiguate instances of the process. 8607 optional int32 pid = 3; 8608 8609 // The current OOM score adjustment value. 8610 // Read from ProcessRecord for managed processes. 8611 // Placeholder -1001 (OOM_SCORE_ADJ_MIN - 1, outside of allowed range) for native ones. 8612 optional int32 oom_score_adj = 4; 8613 8614 // The current RSS of the process. 8615 // VmRSS from /proc/pid/status. 8616 optional int32 rss_in_kilobytes = 5; 8617 8618 // The current anon RSS of the process. 8619 // RssAnon from /proc/pid/status. 8620 optional int32 anon_rss_in_kilobytes = 6; 8621 8622 // The current swap size of the process. 8623 // VmSwap from /proc/pid/status. 8624 optional int32 swap_in_kilobytes = 7; 8625 8626 // The sum of rss_in_kilobytes and swap_in_kilobytes. 8627 optional int32 anon_rss_and_swap_in_kilobytes = 8; 8628 8629 // GPU memory usage as measured by the kernel tracepoints 8630 // Equivalent to dumpsys gpu --gpumem 8631 optional int32 gpu_memory_kb = 9; 8632 8633 // Whether or not this process is hosting one or more foregound services. 8634 optional bool has_foreground_services = 10; 8635 8636 // The current rss memory in shared space. 8637 optional int32 shmem_kb = 11; 8638 8639 // The types of the components this process is hosting at the moment this 8640 // snapshot is taken. 8641 // See the available types in HostingComponentType in AppProtoEnums. 8642 optional int32 current_hosting_component_types = 12; 8643 8644 // The historical types of the components this process is or was hosting 8645 // since it's born. 8646 // See the available types in HostingComponentType in AppProtoEnums. 8647 optional int32 historical_hosting_component_types = 13; 8648} 8649 8650/* 8651 * Elapsed real time from SystemClock. 8652 */ 8653message SystemElapsedRealtime { 8654 optional uint64 time_millis = 1; 8655} 8656 8657/* 8658 * Up time from SystemClock. 8659 */ 8660message SystemUptime { 8661 // Milliseconds since the system was booted. 8662 // This clock stops when the system enters deep sleep (CPU off, display dark, device waiting 8663 // for external input). 8664 // It is not affected by clock scaling, idle, or other power saving mechanisms. 8665 optional uint64 uptime_millis = 1; 8666} 8667 8668/* 8669 * Reads from /proc/uid_concurrent_active_time which has the format: 8670 * active: X (X is # cores) 8671 * [uid0]: [time-0] [time-1] [time-2] ... (# entries = # cores) 8672 * [uid1]: [time-0] [time-1] [time-2] ... ... 8673 * ... 8674 * Time-N means the CPU time a UID spent running concurrently with N other processes. 8675 * The file contains a monotonically increasing count of time for a single boot. 8676 */ 8677message CpuActiveTime { 8678 optional int32 uid = 1 [(is_uid) = true]; 8679 optional uint64 time_millis = 2; 8680} 8681 8682/** 8683 * Reads from /proc/uid_concurrent_policy_time which has the format: 8684 * policy0: X policy4: Y (there are X cores on policy0, Y cores on policy4) 8685 * [uid0]: [time-0-0] [time-0-1] ... [time-1-0] [time-1-1] ... 8686 * [uid1]: [time-0-0] [time-0-1] ... [time-1-0] [time-1-1] ... 8687 * ... 8688 * Time-X-Y means the time a UID spent on clusterX running concurrently with Y other processes. 8689 * The file contains a monotonically increasing count of time for a single boot. 8690 */ 8691message CpuClusterTime { 8692 optional int32 uid = 1 [(is_uid) = true]; 8693 optional int32 cluster_index = 2; 8694 optional uint64 time_millis = 3; 8695} 8696 8697/* 8698 * Pulls free disk space, for data, system partition and temporary directory. 8699 */ 8700message DiskSpace { 8701 // available bytes in data partition 8702 optional uint64 data_available_bytes = 1; 8703 // available bytes in system partition 8704 optional uint64 system_available_bytes = 2; 8705 // available bytes in download cache or temp directories 8706 optional uint64 temp_available_bytes = 3; 8707} 8708 8709/** 8710 * Pulls battery coulomb counter, which is the remaining battery charge in uAh. 8711 * 8712 * Pulled from StatsCompanionService.java 8713 */ 8714message RemainingBatteryCapacity { 8715 optional int32 charge_micro_ampere_hour = 1; 8716} 8717 8718/** 8719 * Pulls battery capacity, which is the battery capacity when full in uAh. 8720 * Pulled from: 8721 * frameworks/base/cmds/statsd/src/external/ResourceHealthManagerPuller.cpp 8722 */ 8723message FullBatteryCapacity { 8724 optional int32 capacity_micro_ampere_hour = 1; 8725} 8726 8727/** 8728 * Pulls battery voltage. 8729 * Pulled from: 8730 * frameworks/base/cmds/statsd/src/external/ResourceHealthManagerPuller.cpp 8731 */ 8732message BatteryVoltage { 8733 // The voltage of the battery, in millivolts. 8734 optional int32 voltage_millivolt = 1; 8735} 8736 8737/** 8738 * Pulls battery level (percent full, from 0 to 100). 8739 * 8740 * Pulled from: 8741 * frameworks/base/cmds/statsd/src/external/ResourceHealthManagerPuller.cpp 8742 */ 8743message BatteryLevel { 8744 // Battery level. Should be in [0, 100]. 8745 optional int32 battery_level = 1; 8746} 8747 8748/** 8749 * Pulls the temperature of various parts of the device. 8750 * The units are tenths of a degree Celsius. Eg: 30.3C is reported as 303. 8751 * 8752 * Pulled from StatsCompanionService.java 8753 */ 8754message Temperature { 8755 // The type of temperature being reported. Eg. CPU, GPU, SKIN, BATTERY, BCL_. 8756 optional android.os.TemperatureTypeEnum sensor_location = 1; 8757 8758 // The name of the temperature source. Eg. CPU0 8759 optional string sensor_name = 2; 8760 8761 // Temperature in tenths of a degree C. 8762 // For BCL, it is decimillivolt, decimilliamps, and percentage * 10. 8763 optional int32 temperature_deci_celsius = 3; 8764 8765 // Relative severity of the throttling, see enum definition. 8766 optional android.os.ThrottlingSeverityEnum severity = 4; 8767} 8768 8769/** 8770 * Pulls the statistics of calls to Binder. 8771 * 8772 * Binder stats will be reset every time the data is pulled. It means it can only be pulled by one 8773 * config on the device. 8774 * 8775 * Next tag: 15 8776 */ 8777message BinderCalls { 8778 // UID of the process responsible for the binder transaction. It will be set if the process 8779 // executing the binder transaction attribute the transaction to another uid using 8780 // Binder.setThreadWorkSource(). 8781 // 8782 // If not set, the value will be -1. 8783 optional int32 uid = 1 [(is_uid) = true]; 8784 // UID of the process executing the binder transaction. 8785 optional int32 direct_caller_uid = 14 [(is_uid) = true]; 8786 // Fully qualified class name of the API call. 8787 // 8788 // This is a system server class name. 8789 // 8790 // TODO(gaillard): figure out if binder call stats includes data from isolated uids, if a uid 8791 // gets recycled and we have isolated uids, we might attribute the data incorrectly. 8792 // TODO(gaillard): there is a high dimensions cardinality, figure out if we should drop the less 8793 // commonly used APIs. 8794 optional string service_class_name = 2; 8795 // Method name of the API call. It can also be a transaction code if we cannot 8796 // resolve it to a name. See Binder#getTransactionName. 8797 // 8798 // This is a system server method name. 8799 optional string service_method_name = 3; 8800 // Total number of API calls. 8801 optional int64 call_count = 4; 8802 // True if the screen was interactive PowerManager#isInteractive at the end of the call. 8803 optional bool screen_interactive = 13; 8804 // Total number of API calls we have data recorded for. If we collected data for all the calls, 8805 // call_count will be equal to recorded_call_count. 8806 // 8807 // If recorded_call_count is different than call_count, it means data collection has been 8808 // sampled. All the fields below will be sampled in this case. 8809 optional int64 recorded_call_count = 12; 8810 // Number of exceptions thrown by the API. 8811 optional int64 recorded_exception_count = 5; 8812 // Total latency of all API calls. 8813 // Average can be computed using total_latency_micros / recorded_call_count. 8814 optional int64 recorded_total_latency_micros = 6; 8815 // Maximum latency of one API call. 8816 optional int64 recorded_max_latency_micros = 7; 8817 // Total CPU usage of all API calls. 8818 // Average can be computed using total_cpu_micros / recorded_call_count. 8819 // Total can be computed using total_cpu_micros / recorded_call_count * call_count. 8820 optional int64 recorded_total_cpu_micros = 8; 8821 // Maximum CPU usage of one API call. 8822 optional int64 recorded_max_cpu_micros = 9; 8823 // Maximum parcel reply size of one API call. 8824 optional int64 recorded_max_reply_size_bytes = 10; 8825 // Maximum parcel request size of one API call. 8826 optional int64 recorded_max_request_size_bytes = 11; 8827} 8828 8829/** 8830 * Pulls the statistics of exceptions during calls to Binder. 8831 * 8832 * Binder stats are cumulative from boot unless somebody reset the data using 8833 * > adb shell dumpsys binder_calls_stats --reset 8834 */ 8835message BinderCallsExceptions { 8836 // Exception class name, e.g. java.lang.IllegalArgumentException. 8837 // 8838 // This is an exception class name thrown by the system server. 8839 optional string exception_class_name = 1; 8840 // Total number of exceptions. 8841 optional int64 exception_count = 2; 8842} 8843 8844/** 8845 * Pulls the statistics of message dispatching on HandlerThreads. 8846 * 8847 * Looper stats will be reset every time the data is pulled. It means it can only be pulled by one 8848 * config on the device. 8849 * 8850 * Next tag: 11 8851 */ 8852message LooperStats { 8853 // The uid that made a call to the System Server and caused the message to be enqueued. 8854 optional int32 uid = 1 [(is_uid) = true]; 8855 8856 // Fully qualified class name of the handler target class. 8857 // 8858 // This field does not contain PII. This is a system server class name. 8859 optional string handler_class_name = 2; 8860 8861 // The name of the thread that runs the Looper. 8862 // 8863 // This field does not contain PII. This is a system server thread name. 8864 optional string looper_thread_name = 3; 8865 8866 // The name of the dispatched message. 8867 // 8868 // This field does not contain PII. This is a system server constant or class 8869 // name. 8870 optional string message_name = 4; 8871 8872 // Total number of successfully dispatched messages. 8873 optional int64 message_count = 5; 8874 8875 // Total number of messages that failed dispatching. 8876 optional int64 exception_count = 6; 8877 8878 // Total number of processed messages we have data recorded for. If we 8879 // collected data for all the messages, message_count will be equal to 8880 // recorded_message_count. 8881 // 8882 // If recorded_message_count is different than message_count, it means data 8883 // collection has been sampled. The fields below will be sampled in this case. 8884 optional int64 recorded_message_count = 7; 8885 8886 // Total latency of all processed messages. 8887 // Average can be computed using recorded_total_latency_micros / 8888 // recorded_message_count. 8889 optional int64 recorded_total_latency_micros = 8; 8890 8891 // Total CPU usage of all processed message. 8892 // Average can be computed using recorded_total_cpu_micros / 8893 // recorded_message_count. Total can be computed using 8894 // recorded_total_cpu_micros / recorded_message_count * message_count. 8895 optional int64 recorded_total_cpu_micros = 9; 8896 8897 // True if the screen was interactive PowerManager#isInteractive at the end of the call. 8898 optional bool screen_interactive = 10; 8899 8900 // Max recorded CPU usage of all processed messages. 8901 optional int64 recorded_max_cpu_micros = 11; 8902 8903 // Max recorded latency of all processed messages. 8904 optional int64 recorded_max_latency_micros = 12; 8905 8906 // Total number of messages we tracked the dispatching delay for. If we 8907 // collected data for all the messages, message_count will be equal to 8908 // recorded_delay_message_count. 8909 // 8910 // If recorded_delay_message_count is different than message_count, it means data 8911 // collection has been sampled or/and not all messages specified the target dispatch time. 8912 // The fields below will be sampled in this case. 8913 optional int64 recorded_delay_message_count = 13; 8914 8915 // Total dispatching delay of all processed messages. 8916 // Calculated as a difference between the target dispatching time (Message.when) 8917 // and the actual dispatching time. 8918 // Average can be computed using recorded_total_delay_millis / recorded_delay_message_count. 8919 optional int64 recorded_total_delay_millis = 14; 8920 8921 // Max dispatching delay of all processed messages. 8922 // Calculated as a difference between the target dispatching time (Message.when) 8923 // and the actual dispatching time. 8924 optional int64 recorded_max_delay_millis = 15; 8925} 8926 8927/** 8928 * Pulls disk information, such as write speed and latency. 8929 */ 8930message DiskStats { 8931 // Time taken to open, write 512B to, and close a file. 8932 // -1 if error performing the check. 8933 optional int64 data_write_latency_millis = 1; 8934 8935 optional bool file_based_encryption = 2; 8936 8937 // Recent disk write speed in kB/s. 8938 // -1 if error querying storageed. 8939 // 0 if data is unavailable. 8940 optional int32 recent_disk_write_speed = 3; 8941} 8942 8943 8944/** 8945 * Free and total bytes of the Data, Cache, System, and Metadata partitions. 8946 */ 8947message DirectoryUsage { 8948 enum Directory { 8949 UNKNOWN = 0; 8950 DATA = 1; 8951 CACHE = 2; 8952 SYSTEM = 3; 8953 METADATA = 4; 8954 } 8955 optional Directory directory = 1; 8956 optional int64 free_bytes = 2; 8957 optional int64 total_bytes = 3; 8958} 8959 8960 8961/** 8962 * Size of an application: apk size, data size, and cache size. 8963 * Reads from a cached file produced daily by DiskStatsLoggingService.java. 8964 * Information is only reported for apps with the primary user (user 0). 8965 * Sizes are aggregated by package name. 8966 */ 8967message AppSize { 8968 // Including uids will involve modifying diskstats logic. 8969 optional string package_name = 1; 8970 // App size in bytes. -1 if unavailable. 8971 optional int64 app_size_bytes = 2; 8972 // App data size in bytes. -1 if unavailable. 8973 optional int64 app_data_size_bytes = 3; 8974 // App cache size in bytes. -1 if unavailable. 8975 optional int64 app_cache_size_bytes = 4; 8976 // Time that the cache file was produced. 8977 // Uses System.currentTimeMillis(), which is wall clock time. 8978 optional int64 cache_time_millis = 5; 8979} 8980 8981 8982/** 8983 * Size of a particular category. Eg: photos, videos. 8984 * Reads from a cached file produced daily by DiskStatsLoggingService.java. 8985 */ 8986message CategorySize { 8987 enum Category { 8988 UNKNOWN = 0; 8989 APP_SIZE = 1; 8990 APP_DATA_SIZE = 2; 8991 APP_CACHE_SIZE = 3; 8992 PHOTOS = 4; 8993 VIDEOS = 5; 8994 AUDIO = 6; 8995 DOWNLOADS = 7; 8996 SYSTEM = 8; 8997 OTHER = 9; 8998 } 8999 optional Category category = 1; 9000 // Category size in bytes. 9001 optional int64 size_bytes = 2; 9002 // Time that the cache file was produced. 9003 // Uses System.currentTimeMillis(), which is wall clock time. 9004 optional int64 cache_time_millis = 3; 9005} 9006 9007/** 9008 * Pulls per uid I/O stats. The stats are cumulative since boot. 9009 * 9010 * Read/write bytes are I/O events from a storage device 9011 * Read/write chars are data requested by read/write syscalls, and can be 9012 * satisfied by caching. 9013 * 9014 * Pulled from StatsCompanionService, which reads proc/uid_io/stats. 9015 */ 9016message DiskIo { 9017 optional int32 uid = 1 [(is_uid) = true]; 9018 optional int64 fg_chars_read = 2; 9019 optional int64 fg_chars_write = 3; 9020 optional int64 fg_bytes_read = 4; 9021 optional int64 fg_bytes_write = 5; 9022 optional int64 bg_chars_read = 6; 9023 optional int64 bg_chars_write = 7; 9024 optional int64 bg_bytes_read = 8; 9025 optional int64 bg_bytes_write = 9; 9026 optional int64 fg_fsync = 10; 9027 optional int64 bg_fsync= 11; 9028} 9029 9030 9031/** 9032 * Pulls the number of fingerprints for each user. 9033 * 9034 * Pulled from StatsCompanionService, which queries <Biometric>Manager. 9035 */ 9036message NumFingerprintsEnrolled { 9037 // The associated user. Eg: 0 for owners, 10+ for others. 9038 // Defined in android/os/UserHandle.java 9039 optional int32 user = 1; 9040 // Number of fingerprints registered to that user. 9041 optional int32 num_fingerprints_enrolled = 2; 9042} 9043 9044/** 9045 * Pulls the number of faces for each user. 9046 * 9047 * Pulled from StatsCompanionService, which queries <Biometric>Manager. 9048 */ 9049message NumFacesEnrolled { 9050 // The associated user. Eg: 0 for owners, 10+ for others. 9051 // Defined in android/os/UserHandle.java 9052 optional int32 user = 1; 9053 // Number of faces registered to that user. 9054 optional int32 num_faces_enrolled = 2; 9055} 9056/** 9057 * A mapping of role holder -> role 9058 */ 9059message RoleHolder { 9060 // uid of the role holder 9061 optional int32 uid = 1 [(is_uid) = true]; 9062 9063 // package name of the role holder 9064 optional string package_name = 2; 9065 9066 // the role held 9067 optional string role = 3; 9068} 9069 9070message AggStats { 9071 // These are all in byte resolution. 9072 optional int64 min = 1 [deprecated = true]; 9073 optional int64 average = 2 [deprecated = true]; 9074 optional int64 max = 3 [deprecated = true]; 9075 9076 // These are all in kilobyte resolution. Can fit in int32, so smaller on the wire than the above 9077 // int64 fields. 9078 optional int32 mean_kb = 4; 9079 optional int32 max_kb = 5; 9080} 9081 9082// A reduced subset of process states; reducing the number of possible states allows more 9083// aggressive device-side aggregation of statistics and hence reduces metric upload size. 9084enum ProcessStateAggregated { 9085 PROCESS_STATE_UNKNOWN = 0; 9086 // Persistent system process. 9087 PROCESS_STATE_PERSISTENT = 1; 9088 // Top activity; actually any visible activity. 9089 PROCESS_STATE_TOP = 2; 9090 // Process binding to top or a foreground service. 9091 PROCESS_STATE_BOUND_TOP_OR_FGS = 3; 9092 // Processing running a foreground service. 9093 PROCESS_STATE_FGS = 4; 9094 // Important foreground process (ime, wallpaper, etc). 9095 PROCESS_STATE_IMPORTANT_FOREGROUND = 5; 9096 // Important background process. 9097 PROCESS_STATE_BACKGROUND = 6; 9098 // Process running a receiver. 9099 PROCESS_STATE_RECEIVER = 7; 9100 // All kinds of cached processes. 9101 PROCESS_STATE_CACHED = 8; 9102} 9103 9104// Next tag: 13 9105message ProcessStatsStateProto { 9106 optional android.service.procstats.ScreenState screen_state = 1; 9107 9108 optional android.service.procstats.MemoryState memory_state = 2 [deprecated = true]; 9109 9110 // this enum list is from frameworks/base/core/java/com/android/internal/app/procstats/ProcessStats.java 9111 // and not frameworks/base/core/java/android/app/ActivityManager.java 9112 optional android.service.procstats.ProcessState process_state = 3 [deprecated = true]; 9113 9114 optional ProcessStateAggregated process_state_aggregated = 10; 9115 9116 // Millisecond uptime duration spent in this state 9117 optional int64 duration_millis = 4 [deprecated = true]; 9118 // Same as above, but with minute resolution so it fits into an int32. 9119 optional int32 duration_minutes = 11; 9120 9121 // Millisecond elapsed realtime duration spent in this state 9122 optional int64 realtime_duration_millis = 9 [deprecated = true]; 9123 // Same as above, but with minute resolution so it fits into an int32. 9124 optional int32 realtime_duration_minutes = 12; 9125 9126 // # of samples taken 9127 optional int32 sample_size = 5; 9128 9129 // PSS is memory reserved for this process 9130 optional AggStats pss = 6 [deprecated = true]; 9131 9132 // USS is memory shared between processes, divided evenly for accounting 9133 optional AggStats uss = 7 [deprecated = true]; 9134 9135 // RSS is memory resident for this process 9136 optional AggStats rss = 8; 9137} 9138 9139// Next Tag: 8 9140message ProcessStatsProto { 9141 // Name of process. 9142 optional string process = 1; 9143 9144 // Uid of the process. 9145 optional int32 uid = 2 [(is_uid) = true]; 9146 9147 // Information about how often kills occurred 9148 message Kill { 9149 // Count of excessive CPU kills 9150 optional int32 cpu = 1; 9151 9152 // Count of kills when cached 9153 optional int32 cached = 2; 9154 9155 // PSS stats during cached kill 9156 optional AggStats cached_pss = 3; 9157 } 9158 optional Kill kill = 3 [deprecated = true]; 9159 9160 // Time and memory spent in various states. 9161 repeated ProcessStatsStateProto states = 5; 9162 9163 // Total time process has been running... screen_state, memory_state, and process_state 9164 // will not be set. 9165 optional ProcessStatsStateProto total_running_state = 6; 9166 9167 // Association data for this process in this state; 9168 // each entry here is one association. 9169 repeated ProcessStatsAssociationProto assocs = 7; 9170} 9171 9172// Next Tag: 6 9173message ProcessStatsAssociationProto { 9174 // Procss Name of the associated process (client process of service binding) 9175 optional string assoc_process_name = 1; 9176 9177 // Package Name of the associated package (client package of service binding) 9178 optional string assoc_package_name = 2 [deprecated = true]; 9179 9180 // UID of the associated process/package (client package of service binding) 9181 optional int32 assoc_uid = 5 [(is_uid) = true]; 9182 9183 // Total count of the times this association (service binding) appeared. 9184 optional int32 total_count = 3; 9185 9186 // Uptime total duration in seconds this association (service binding) was around. 9187 optional int32 total_duration_secs = 4; 9188} 9189 9190message PackageServiceOperationStatsProto { 9191 // Operate enum: Started, Foreground, Bound, Executing 9192 optional android.service.procstats.ServiceOperationState operation = 1; 9193 9194 // Number of times the service was in this operation. 9195 optional int32 count = 2; 9196 9197 // Information about a state the service can be in. 9198 message StateStats { 9199 // Screen state enum. 9200 optional android.service.procstats.ScreenState screen_state = 1; 9201 // Memory state enum. 9202 optional android.service.procstats.MemoryState memory_state = 2; 9203 9204 // duration in milliseconds. 9205 optional int64 duration_millis = 3; 9206 // Millisecond elapsed realtime duration spent in this state 9207 optional int64 realtime_duration_millis = 4; 9208 } 9209 repeated StateStats state_stats = 3; 9210} 9211 9212message PackageServiceStatsProto { 9213 // Name of service component. 9214 optional string service_name = 1; 9215 9216 // The operation stats. 9217 // The package_name, package_uid, package_version, service_name will not be set to save space. 9218 repeated PackageServiceOperationStatsProto operation_stats = 2; 9219} 9220 9221message PackageAssociationSourceProcessStatsProto { 9222 // Uid of the process. 9223 optional int32 process_uid = 1; 9224 // Process name. 9225 optional string process_name = 2; 9226 // Package name. 9227 optional string package_name = 7; 9228 // Total count of the times this association appeared. 9229 optional int32 total_count = 3; 9230 9231 // Millisecond uptime total duration this association was around. 9232 optional int64 total_duration_millis = 4; 9233 9234 // Total count of the times this association became actively impacting its target process. 9235 optional int32 active_count = 5; 9236 9237 // Information on one source in this association. 9238 message StateStats { 9239 // Process state enum. 9240 optional android.service.procstats.ProcessState process_state = 1; 9241 // Millisecond uptime duration spent in this state 9242 optional int64 duration_millis = 2; 9243 // Millisecond elapsed realtime duration spent in this state 9244 optional int64 realtime_duration_mmillis = 3; 9245 } 9246 repeated StateStats active_state_stats = 6; 9247} 9248 9249message PackageAssociationProcessStatsProto { 9250 // Name of the target component. 9251 optional string component_name = 1; 9252 // Information on one source in this association. 9253 repeated PackageAssociationSourceProcessStatsProto sources = 2; 9254} 9255 9256 9257message ProcessStatsPackageProto { 9258 // Name of package. 9259 optional string package = 1; 9260 9261 // Uid of the package. 9262 optional int32 uid = 2; 9263 9264 // Version of the package. 9265 optional int64 version = 3; 9266 9267 // Stats for each process running with the package loaded in to it. 9268 repeated ProcessStatsProto process_stats = 4; 9269 9270 // Stats for each of the package's services. 9271 repeated PackageServiceStatsProto service_stats = 5; 9272 9273 // Stats for each association with the package. 9274 repeated PackageAssociationProcessStatsProto association_stats = 6; 9275} 9276 9277message ProcessStatsSectionProto { 9278 // Elapsed realtime at start of report. 9279 optional int64 start_realtime_millis = 1; 9280 9281 // Elapsed realtime at end of report. 9282 optional int64 end_realtime_millis = 2; 9283 9284 // CPU uptime at start of report. 9285 optional int64 start_uptime_millis = 3; 9286 9287 // CPU uptime at end of report. 9288 optional int64 end_uptime_millis = 4; 9289 9290 // System runtime library. e.g. "libdvm.so", "libart.so". 9291 optional string runtime = 5; 9292 9293 // whether kernel reports swapped pss. 9294 optional bool has_swapped_pss = 6; 9295 9296 // Data completeness. e.g. "complete", "partial", shutdown", or "sysprops". 9297 enum Status { 9298 STATUS_UNKNOWN = 0; 9299 STATUS_COMPLETE = 1; 9300 STATUS_PARTIAL = 2; 9301 STATUS_SHUTDOWN = 3; 9302 STATUS_SYSPROPS = 4; 9303 } 9304 repeated Status status = 7; 9305 9306 // Number of pages available of various types and sizes, representation fragmentation. 9307 repeated ProcessStatsAvailablePagesProto available_pages = 10; 9308 9309 // Stats for each process. 9310 repeated ProcessStatsProto process_stats = 8; 9311 9312 // Stats for each package. 9313 repeated ProcessStatsPackageProto package_stats = 9; 9314} 9315 9316message ProcessStatsAvailablePagesProto { 9317 // Node these pages are in (as per /proc/pagetypeinfo) 9318 optional int32 node = 1; 9319 9320 // Zone these pages are in (as per /proc/pagetypeinfo) 9321 optional string zone = 2; 9322 9323 // Label for the type of these pages (as per /proc/pagetypeinfo) 9324 optional string label = 3; 9325 9326 // Distribution of number of pages available by order size. First entry in array is 9327 // order 0, second is order 1, etc. Each order increase is a doubling of page size. 9328 repeated int32 pages_per_order = 4; 9329} 9330 9331/** 9332 * Pulled from ProcessStatsService.java 9333 */ 9334message ProcStats { 9335 optional ProcessStatsSectionProto proc_stats_section = 1 [(log_mode) = MODE_BYTES]; 9336 // Data pulled from device into this is sometimes sharded across multiple atoms to work around 9337 // a size limit. When this happens, this shard ID will contain an increasing 1-indexed integer 9338 // with the number of this shard. 9339 optional int32 shard_id = 2; 9340} 9341 9342/** 9343 * Pulled from ProcessStatsService.java 9344 */ 9345message ProcStatsPkgProc { 9346 optional ProcessStatsSectionProto proc_stats_section = 1 [(log_mode) = MODE_BYTES]; 9347} 9348 9349// Next Tag: 2 9350message PackageRemoteViewInfoProto { 9351 optional string package_name = 1; 9352 // add per-package additional info here (like channels) 9353} 9354 9355// Next Tag: 2 9356message NotificationRemoteViewsProto { 9357 repeated PackageRemoteViewInfoProto package_remote_view_info = 1; 9358} 9359 9360/** 9361 * Pulled from NotificationManagerService.java 9362 */ 9363message NotificationRemoteViews { 9364 optional NotificationRemoteViewsProto notification_remote_views = 1 [(log_mode) = MODE_BYTES]; 9365} 9366 9367/** 9368 * Atom that contains a list of a package's preferences, pulled from NotificationManagerService.java 9369 */ 9370message PackageNotificationPreferences { 9371 // Uid under which the package is installed. 9372 optional int32 uid = 1 [(is_uid) = true]; 9373 // Notification importance, which specifies when and how a notification is displayed. 9374 // Specified under core/java/android/app/NotificationManager.java. 9375 optional int32 importance = 2; 9376 // Lockscreen visibility as set by the user. 9377 optional int32 visibility = 3; 9378 // Bitfield mask indicating what fields were locked by the user (see LockableAppfields in 9379 // PreferencesHelper.java) 9380 optional int32 user_locked_fields = 4; 9381 // Indicates if the package importance was set by the user (rather than system default). 9382 optional bool user_set_importance = 5; 9383 // State of the full screen intent permission for this package. 9384 enum FsiState { 9385 // This package did not declare the full screen intent permission in its manifest. 9386 NOT_REQUESTED = 0; 9387 // This package has the full screen intent permission. 9388 GRANTED = 1; 9389 // This package does not have the full screen intent permission. 9390 DENIED = 2; 9391 } 9392 optional FsiState fsi_state = 6; 9393 // True if the current full screen intent permission state for this package was set by the user. 9394 // This is only set when the FSI permission is requested by the app. 9395 optional bool is_fsi_permission_user_set = 7; 9396 // Which types of bundles (groupings by category) are allowed for this package. Bundle types are 9397 // a limited set, so this repeated field will never be larger than the total number of bundle 9398 // types. 9399 repeated android.stats.notification.BundleTypes allowed_bundle_types = 8; 9400} 9401 9402/** 9403 * Atom that contains a list of a package's channel preferences, pulled from 9404 * NotificationManagerService.java. 9405 */ 9406message PackageNotificationChannelPreferences { 9407 // Uid under which the package is installed. 9408 optional int32 uid = 1 [(is_uid) = true]; 9409 // Channel's ID. Should always be available. 9410 optional string channel_id = 2; 9411 // Channel's name. Should always be available. 9412 optional string channel_name = 3; 9413 // Channel's description. Optionally set by the channel creator. 9414 optional string description = 4; 9415 // Notification importance, which specifies when and how a notification is displayed. Specified 9416 // under core/java/android/app/NotificationManager.java. 9417 optional int32 importance = 5; 9418 // Bitmask representing which fields have been set by the user. See field bitmask descriptions 9419 // at core/java/android/app/NotificationChannel.java 9420 optional int32 user_locked_fields = 6; 9421 // Indicates if the channel was deleted by the app. 9422 optional bool is_deleted = 7; 9423 // Indicates if the channel was marked as a conversation by the app. 9424 optional bool is_conversation = 8; 9425 // Indicates if the channel is a conversation that was demoted by the user. 9426 optional bool is_demoted_conversation = 9; 9427 // Indicates if the channel is a conversation that was marked as important by the user. 9428 optional bool is_important_conversation = 10; 9429} 9430 9431/** 9432 * Atom that contains a list of a package's channel group preferences, pulled from 9433 * NotificationManagerService.java. 9434 */ 9435message PackageNotificationChannelGroupPreferences { 9436 // Uid under which the package is installed. 9437 optional int32 uid = 1 [(is_uid) = true]; 9438 // Channel Group's ID. Should always be available. 9439 optional string group_id = 2; 9440 // Channel Group's name. Should always be available. 9441 optional string group_name = 3; 9442 // Channel Group's description. Optionally set by group creator. 9443 optional string description = 4; 9444 // Indicates if notifications from this channel group are blocked. 9445 optional bool is_blocked = 5; 9446 // Bitmask representing which fields have been set by the user. See field bitmask descriptions 9447 // at core/java/android/app/NotificationChannelGroup.java 9448 optional int32 user_locked_fields = 6; 9449} 9450 9451message PowerProfileProto { 9452 optional double cpu_suspend = 1; 9453 9454 optional double cpu_idle = 2; 9455 9456 optional double cpu_active = 3; 9457 9458 message CpuCluster { 9459 optional int32 id = 1; 9460 optional double cluster_power = 2; 9461 optional int32 cores = 3; 9462 repeated int64 speed = 4; 9463 repeated double core_power = 5; 9464 } 9465 9466 repeated CpuCluster cpu_cluster = 40; 9467 9468 optional double wifi_scan = 4; 9469 9470 optional double wifi_on = 5; 9471 9472 optional double wifi_active = 6; 9473 9474 optional double wifi_controller_idle = 7; 9475 9476 optional double wifi_controller_rx = 8; 9477 9478 optional double wifi_controller_tx = 9; 9479 9480 repeated double wifi_controller_tx_levels = 10; 9481 9482 optional double wifi_controller_operating_voltage = 11; 9483 9484 optional double bluetooth_controller_idle = 12; 9485 9486 optional double bluetooth_controller_rx = 13; 9487 9488 optional double bluetooth_controller_tx = 14; 9489 9490 optional double bluetooth_controller_operating_voltage = 15; 9491 9492 optional double modem_controller_sleep = 16; 9493 9494 optional double modem_controller_idle = 17; 9495 9496 optional double modem_controller_rx = 18; 9497 9498 repeated double modem_controller_tx = 19; 9499 9500 optional double modem_controller_operating_voltage = 20; 9501 9502 optional double gps_on = 21; 9503 9504 repeated double gps_signal_quality_based = 22; 9505 9506 optional double gps_operating_voltage = 23; 9507 9508 optional double bluetooth_on = 24; 9509 9510 optional double bluetooth_active = 25; 9511 9512 optional double bluetooth_at_cmd = 26; 9513 9514 optional double ambient_display = 27; 9515 9516 optional double screen_on = 28; 9517 9518 optional double radio_on = 29; 9519 9520 optional double radio_scanning = 30; 9521 9522 optional double radio_active = 31; 9523 9524 optional double screen_full = 32; 9525 9526 optional double audio = 33; 9527 9528 optional double video = 34; 9529 9530 optional double flashlight = 35; 9531 9532 optional double memory = 36; 9533 9534 optional double camera = 37; 9535 9536 optional double wifi_batched_scan = 38; 9537 9538 optional double battery_capacity = 39; 9539} 9540 9541/** 9542 * power_profile.xml and other constants for power model calculations. 9543 * Pulled from PowerProfile.java 9544 */ 9545message PowerProfile { 9546 optional PowerProfileProto power_profile = 1 [(log_mode) = MODE_BYTES]; 9547} 9548 9549/** 9550 * Logs when a user restriction was added or removed. 9551 * 9552 * Logged from: 9553 * frameworks/base/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java 9554 */ 9555message UserRestrictionChanged { 9556 // The raw string of the user restriction as defined in UserManager. 9557 // Allowed values are defined in UserRestrictionsUtils#USER_RESTRICTIONS. 9558 optional string restriction = 1; 9559 // Whether the restriction is enabled or disabled. 9560 optional bool enabled = 2; 9561} 9562 9563/** 9564 * Pulls process user time and system time. Puller takes a snapshot of all pids 9565 * in the system and returns cpu stats for those that are working at the time. 9566 * Dead pids will be dropped. Kernel processes are excluded. 9567 * Min cool-down is 5 sec. 9568 */ 9569message ProcessCpuTime { 9570 optional int32 uid = 1 [(is_uid) = true]; 9571 9572 optional string process_name = 2; 9573 // Process cpu time in user space, cumulative from boot/process start 9574 optional int64 user_time_millis = 3; 9575 // Process cpu time in system space, cumulative from boot/process start 9576 optional int64 system_time_millis = 4; 9577} 9578 9579/** 9580 * Pulls the CPU usage for each thread. 9581 * 9582 * Read from /proc/$PID/task/$TID/time_in_state files. 9583 * 9584 * TODO(mishaw): This is an experimental atom. Issues with big/little CPU frequencies, and 9585 * time_in_state files not being present on some phones, have not been addressed. These should be 9586 * considered before a public release. 9587 */ 9588message CpuTimePerThreadFreq { 9589 // UID that owns the process. 9590 optional int32 uid = 1 [(is_uid) = true]; 9591 // ID of the process. 9592 optional int32 process_id = 2; 9593 // ID of the thread. 9594 optional int32 thread_id = 3; 9595 // Name of the process taken from `/proc/$PID/cmdline`. 9596 optional string process_name = 4; 9597 // Name of the thread taken from `/proc/$PID/task/$TID/comm` 9598 optional string thread_name = 5; 9599 9600 // Report eight different frequencies, and how much time is spent in each frequency. Frequencies 9601 // are given in KHz, and time is given in milliseconds since the thread started. All eight 9602 // frequencies are given here as the alternative is sending eight separate atoms. This method 9603 // significantly reduces the amount of data created 9604 optional int32 frequency1_khz = 6; 9605 optional int32 time1_millis = 7; 9606 optional int32 frequency2_khz = 8; 9607 optional int32 time2_millis = 9; 9608 optional int32 frequency3_khz = 10; 9609 optional int32 time3_millis = 11; 9610 optional int32 frequency4_khz = 12; 9611 optional int32 time4_millis = 13; 9612 optional int32 frequency5_khz = 14; 9613 optional int32 time5_millis = 15; 9614 optional int32 frequency6_khz = 16; 9615 optional int32 time6_millis = 17; 9616 optional int32 frequency7_khz = 18; 9617 optional int32 time7_millis = 19; 9618 optional int32 frequency8_khz = 20; 9619 optional int32 time8_millis = 21; 9620} 9621 9622/** 9623 * Pulls information about the device's build. 9624 */ 9625message BuildInformation { 9626 // Build.FINGERPRINT. A string that uniquely identifies this build. Do not parse. 9627 // E.g. may be composed of the brand, product, device, release, id, incremental, type, and tags. 9628 optional string fingerprint = 1; 9629 9630 // Build.BRAND. The consumer-visible brand with which the product/hardware will be associated. 9631 optional string brand = 2; 9632 9633 // Build.PRODUCT. The name of the overall product. 9634 optional string product = 3; 9635 9636 // Build.DEVICE. The name of the industrial design. 9637 optional string device = 4; 9638 9639 // Build.VERSION.RELEASE. The user-visible version string. E.g., "1.0" or "3.4b5" or "bananas". 9640 optional string version_release = 5; 9641 9642 // Build.ID. E.g. a label like "M4-rc20". 9643 optional string id = 6; 9644 9645 // Build.VERSION.INCREMENTAL. The internal value used by the underlying source control to 9646 // represent this build. 9647 optional string version_incremental = 7; 9648 9649 // Build.TYPE. The type of build, like "user" or "eng". 9650 optional string type = 8; 9651 9652 // Build.TAGS. Comma-separated tags describing the build, like "unsigned,debug". 9653 optional string tags = 9; 9654} 9655 9656/** 9657 * Logs information about mismatched caller for content capture. 9658 * 9659 * Logged from: 9660 * frameworks/base/core/java/android/service/contentcapture/ContentCaptureService.java 9661 */ 9662message ContentCaptureCallerMismatchReported { 9663 optional string intended_package = 1; 9664 optional string calling_package = 2; 9665} 9666 9667/** 9668 * Logs information about content capture service events. 9669 * 9670 * Logged from: 9671 * frameworks/base/services/contentcapture/java/com/android/server/contentcapture/ContentCaptureMetricsLogger.java 9672 */ 9673message ContentCaptureServiceEvents { 9674 // The type of event. 9675 enum Event { 9676 UNKNOWN = 0; 9677 ON_CONNECTED = 1; 9678 ON_DISCONNECTED = 2; 9679 SET_WHITELIST = 3; 9680 SET_DISABLED = 4; 9681 ON_USER_DATA_REMOVED = 5; 9682 ON_DATA_SHARE_REQUEST = 6; 9683 ACCEPT_DATA_SHARE_REQUEST = 7; 9684 REJECT_DATA_SHARE_REQUEST = 8; 9685 DATA_SHARE_WRITE_FINISHED = 9; 9686 DATA_SHARE_ERROR_IOEXCEPTION = 10; 9687 DATA_SHARE_ERROR_EMPTY_DATA = 11; 9688 DATA_SHARE_ERROR_CLIENT_PIPE_FAIL = 12; 9689 DATA_SHARE_ERROR_SERVICE_PIPE_FAIL = 13; 9690 DATA_SHARE_ERROR_CONCURRENT_REQUEST = 14; 9691 DATA_SHARE_ERROR_TIMEOUT_INTERRUPTED = 15; 9692 ON_REMOTE_SERVICE_DIED = 16; 9693 } 9694 optional Event event = 1; 9695 // component/package of content capture service. 9696 optional string service_info = 2; 9697 // component/package of target. 9698 // it's a concatenated list of component/package for SET_WHITELIST event 9699 // separated by " ". 9700 // Deprecated: should not log app package 9701 optional string target_info = 3 [deprecated = true]; 9702 // The number of packages in the allow list 9703 optional int32 set_allowlist_package_count = 4; 9704 // The number of activities in the allow list 9705 optional int32 set_allowlist_activity_count = 5; 9706} 9707 9708/** 9709 * Logs information about content capture session events. 9710 * 9711 * Logged from: 9712 * frameworks/base/services/contentcapture/java/com/android/server/contentcapture/ContentCaptureMetricsLogger.java 9713 */ 9714message ContentCaptureSessionEvents { 9715 // The type of event. 9716 enum Event { 9717 UNKNOWN = 0; 9718 ON_SESSION_STARTED = 1; 9719 ON_SESSION_FINISHED = 2; 9720 SESSION_NOT_CREATED = 3; 9721 } 9722 optional int32 session_id = 1; 9723 optional Event event = 2; 9724 // (n/a on session finished) 9725 optional int32 state_flags = 3; 9726 // component/package of content capture service. 9727 optional string service_info = 4; 9728 // component/package of app. 9729 // (n/a on session finished) 9730 // Deprecated: should not log app package 9731 optional string app_info = 5 [deprecated = true]; 9732 optional bool is_child_session = 6; 9733} 9734 9735/** 9736 * Logs information about session being flushed. 9737 * 9738 * Logged from: 9739 * frameworks/base/services/contentcapture/java/com/android/server/contentcapture/ContentCaptureMetricsLogger.java 9740 */ 9741message ContentCaptureFlushed { 9742 optional int32 session_id = 1; 9743 // component/package of content capture service. 9744 optional string service_info = 2; 9745 // component/package of app. 9746 // Deprecated: should not log app package 9747 optional string app_info = 3 [deprecated = true]; 9748 // session start/finish events 9749 optional int32 child_session_started = 4; 9750 optional int32 child_session_finished = 5; 9751 // count of view events. 9752 optional int32 view_appeared_count = 6; 9753 optional int32 view_disappeared_count = 7; 9754 optional int32 view_text_changed_count = 8; 9755 9756 // Flush stats. 9757 optional int32 max_events = 9; 9758 optional int32 idle_flush_freq = 10; 9759 optional int32 text_flush_freq = 11; 9760 optional int32 flush_reason = 12; 9761} 9762 9763/** 9764 * Pulls on-device BatteryStats power use calculations for the overall device. 9765 */ 9766message DeviceCalculatedPowerUse { 9767 // Power used by the device in nAs (i.e. nanocoulombs (nC)), as computed by BatteryStats, since 9768 // BatteryStats last reset (i.e. roughly since device was last significantly charged). 9769 // Currently, this is from BatteryStatsHelper.getComputedPower() (not getTotalPower()). 9770 optional int64 computed_power_nano_amp_secs = 1; 9771} 9772 9773// Keep in sync with frameworks/base/core/proto/android/os/batteryusagestats.proto 9774/** 9775 * Represents a device's BatteryUsageStats, with power usage information about the device 9776 * and each app. 9777 */ 9778message BatteryUsageStatsAtomsProto { 9779 9780 // The session start timestamp in UTC milliseconds since January 1, 1970, per Date#getTime(). 9781 // All data is no older than this time. 9782 optional int64 session_start_millis = 1; 9783 9784 // The session end timestamp in UTC milliseconds since January 1, 1970, per Date#getTime(). 9785 // All data is no more recent than this time. 9786 optional int64 session_end_millis = 2; 9787 9788 // Length that the reported data covered. This usually will be equal to the entire session, 9789 // session_end_millis - session_start_millis, but may not be if some data during this time frame 9790 // is missing. 9791 optional int64 session_duration_millis = 3; 9792 9793 // Represents usage of a consumer, storing all of its power component usage. 9794 message BatteryConsumerData { 9795 // Total power consumed by this BatteryConsumer (including all of its PowerComponents). 9796 // May not equal the sum of the PowerComponentUsage due to under- or over-estimations. 9797 // Multiply by 1/36 to obtain mAh. 9798 optional int64 total_consumed_power_deci_coulombs = 1; 9799 9800 // Represents power and time usage of a particular power component. 9801 message PowerComponentUsage { 9802 // Holds android.os.PowerComponentEnum, or custom component value between 1000 and 9999. 9803 // Evidently, if one attempts to write an int to an enum field that is out of range, it 9804 // is treated as 0, so we must make this an int32. 9805 optional int32 component = 1; 9806 9807 // Power consumed by this component. Multiply by 1/36 to obtain mAh. 9808 optional int64 power_deci_coulombs = 2; 9809 9810 optional int64 duration_millis = 3; 9811 } 9812 repeated PowerComponentUsage power_components = 2; 9813 9814 // Represents a slice of power attribution, e.g. "cpu while in the background" 9815 // or "wifi when running a background service". Queries that care about 9816 // PowerComponentUsage slices need to be aware of all supported dimensions. 9817 // There are no roll-ups included in the slices - it is up to the clients 9818 // of this data to aggregate values as needed. 9819 message PowerComponentUsageSlice { 9820 optional PowerComponentUsage power_component = 1; 9821 9822 enum ProcessState { 9823 UNSPECIFIED = 0; 9824 FOREGROUND = 1; 9825 BACKGROUND = 2; 9826 FOREGROUND_SERVICE = 3; 9827 // Keep in sync with BatteryUsageStatsPerUid.ProcessState. 9828 } 9829 9830 optional ProcessState process_state = 2; 9831 } 9832 9833 repeated PowerComponentUsageSlice slices = 3; 9834 } 9835 9836 // Total power usage for the device during this session. 9837 optional BatteryConsumerData device_battery_consumer = 4; 9838 9839 // Power usage by a uid during this session. 9840 message UidBatteryConsumer { 9841 optional int32 uid = 1 [(is_uid) = true]; 9842 optional BatteryConsumerData battery_consumer_data = 2; 9843 // DEPRECATED Use time_in_state instead. 9844 optional int64 time_in_foreground_millis = 3 [deprecated = true]; 9845 // DEPRECATED Use time_in_state instead. 9846 optional int64 time_in_background_millis = 4 [deprecated = true]; 9847 9848 message TimeInState { 9849 enum ProcessState { 9850 UNSPECIFIED = 0; 9851 FOREGROUND = 1; 9852 BACKGROUND = 2; 9853 FOREGROUND_SERVICE = 3; 9854 // Keep in sync with BatteryUsageStatsPerUid.ProcessState. 9855 } 9856 9857 optional ProcessState process_state = 1; 9858 optional int64 time_in_state_millis = 2; 9859 } 9860 9861 repeated TimeInState time_in_state = 5; 9862 } 9863 repeated UidBatteryConsumer uid_battery_consumers = 5; 9864 9865 // Sum of all discharge percentage point drops during the reported session. 9866 optional int32 session_discharge_percentage = 6; 9867 9868 // Total amount of time battery was discharging during the reported session 9869 optional int64 discharge_duration_millis = 7; 9870 9871 // Notes the power model used for a power component. 9872 message PowerComponentModel { 9873 // Holds android.os.PowerComponentEnum, or custom component value between 1000 and 9999. 9874 optional int32 component = 1; 9875 9876 enum PowerModel { 9877 UNDEFINED = 0; 9878 POWER_PROFILE = 1; 9879 MEASURED_ENERGY = 2; 9880 } 9881 9882 optional PowerModel power_model = 2; 9883 } 9884 9885 // The power model used for each power component. 9886 repeated PowerComponentModel component_models = 8; 9887} 9888 9889/** 9890 * Pulls on-device BatteryStats on-battery power use calculations, in the form of BatteryUsageStats, 9891 * using the best data available. 9892 * 9893 * Includes the data since the last time statsd pulled this atom (i.e. since the 9894 * last-BatteryStats-reset-prior-to-last-statsd-pull) until the most recent BatteryStats reset. 9895 * 9896 * Does NOT include data after the most recent reset (use BatteryUsageStatsSinceReset too for that). 9897 * 9898 * Pulled from BatteryManager.getBatteryUsageStats(). 9899 */ 9900message BatteryUsageStatsBeforeReset { 9901 optional BatteryUsageStatsAtomsProto battery_usage_stats = 1 [(log_mode) = MODE_BYTES]; 9902} 9903 9904/** 9905 * Pulls on-device BatteryStats on-battery power use calculations, in the form of BatteryUsageStats, 9906 * using the best data available. 9907 * 9908 * Includes all data since the most recent BatteryStats reset event, but none prior to it. 9909 * 9910 * Pulled from BatteryManager.getBatteryUsageStats(). 9911 */ 9912message BatteryUsageStatsSinceReset { 9913 optional BatteryUsageStatsAtomsProto battery_usage_stats = 1 [(log_mode) = MODE_BYTES]; 9914} 9915 9916/** 9917 * Pulls on-device BatteryStats on-battery power use calculations, in the form of BatteryUsageStats, 9918 * using only PowerProfile Model data (even if better data is available). 9919 * 9920 * Includes all data since the most recent BatteryStats reset event, but none prior to it. 9921 * 9922 * @see android.os.BatteryUsageStatsQuery#FLAG_BATTERY_USAGE_STATS_POWER_PROFILE_MODEL 9923 * Pulled from BatteryManager.getBatteryUsageStats(). 9924 */ 9925message BatteryUsageStatsSinceResetUsingPowerProfileModel { 9926 optional BatteryUsageStatsAtomsProto battery_usage_stats = 1 [(log_mode) = MODE_BYTES]; 9927} 9928 9929/** 9930 * Logs device policy features. 9931 * 9932 * Logged from: 9933 * frameworks/base/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java 9934 * packages/apps/ManagedProvisioning/src/com/android/managedprovisioning/ 9935 */ 9936message DevicePolicyEvent { 9937 // The event id - unique for each event. 9938 optional android.stats.devicepolicy.EventId event_id = 1; 9939 // The admin package name. 9940 optional string admin_package_name = 2; 9941 // A generic integer parameter. 9942 optional int32 integer_value = 3; 9943 // A generic boolean parameter. 9944 optional bool boolean_value = 4; 9945 // A parameter specifying a time period in milliseconds. 9946 optional uint64 time_period_millis = 5; 9947 // A parameter specifying a list of package names, bundle extras or string parameters. 9948 optional android.stats.devicepolicy.StringList string_list_value = 6 [(log_mode) = MODE_BYTES]; 9949} 9950 9951/** 9952 * Logs when DocumentsUI is started, and how. Call this when DocumentsUI first starts up. 9953 * 9954 * Logged from: 9955 * package/app/DocumentsUI/src/com/android/documentsui/Metrics.java 9956 */ 9957message DocsUILaunchReported { 9958 optional android.stats.docsui.LaunchAction launch_action = 1; 9959 optional bool has_initial_uri = 2; 9960 optional android.stats.docsui.MimeType mime_type = 3; 9961 optional android.stats.docsui.Root initial_root = 4; 9962} 9963 9964/** 9965 * Logs root/app visited event in file managers/picker. Call this when the user 9966 * taps on root/app in hamburger menu. 9967 * 9968 * Logged from: 9969 * package/app/DocumentsUI/src/com/android/documentsui/Metrics.java 9970 */ 9971message DocsUIRootVisitedReported { 9972 optional android.stats.docsui.ContextScope scope = 1; 9973 optional android.stats.docsui.Root root = 2; 9974} 9975 9976/** 9977 * Logs file operation stats. Call this when a file operation has completed. 9978 * 9979 * Logged from: 9980 * package/app/DocumentsUI/src/com/android/documentsui/Metrics.java 9981 */ 9982message DocsUIFileOperationReported { 9983 optional android.stats.docsui.Provider provider = 1; 9984 optional android.stats.docsui.FileOperation file_op = 2; 9985} 9986 9987/** 9988 * Logs file operation stats. Call this when a copy/move operation has completed with a specific 9989 * mode. 9990 * 9991 * Logged from: 9992 * package/app/DocumentsUI/src/com/android/documentsui/Metrics.java 9993 */ 9994message DocsUIFileOperationCopyMoveModeReported { 9995 optional android.stats.docsui.FileOperation file_op = 1; 9996 optional android.stats.docsui.CopyMoveOpMode mode = 2; 9997} 9998 9999 10000/** 10001 * Logs file sub operation stats. Call this when a file operation has failed. 10002 * 10003 * Logged from: 10004 * package/app/DocumentsUI/src/com/android/documentsui/Metrics.java 10005 */ 10006message DocsUIFileOperationFailureReported { 10007 optional android.stats.docsui.Authority authority = 1; 10008 optional android.stats.docsui.SubFileOperation sub_op = 2; 10009} 10010 10011/** 10012* Logs the cancellation of a file operation. Call this when a job is canceled 10013* 10014* Logged from: 10015* package/app/DocumentsUI/src/com/android/documentsui/Metrics.java 10016*/ 10017message DocsUIFileOperationCanceledReported { 10018 optional android.stats.docsui.FileOperation file_op = 1; 10019} 10020 10021/** 10022 * Logs startup time in milliseconds. 10023 * 10024 * Logged from: 10025 * package/app/DocumentsUI/src/com/android/documentsui/Metrics.java 10026 */ 10027message DocsUIStartupMsReported { 10028 optional int32 startup_millis = 1; 10029} 10030 10031/** 10032 * Logs the action that was started by user. 10033 * 10034 * Logged from: 10035 * package/app/DocumentsUI/src/com/android/documentsui/Metrics.java 10036 */ 10037message DocsUIUserActionReported { 10038 optional android.stats.docsui.UserAction action = 1; 10039} 10040 10041/** 10042 * Logs the invalid type when invalid scoped access is requested. 10043 * 10044 * Logged from: 10045 * package/app/DocumentsUI/src/com/android/documentsui/ScopedAccessMetrics.java 10046 */ 10047message DocsUIInvalidScopedAccessRequestReported { 10048 optional android.stats.docsui.InvalidScopedAccess type = 1; 10049} 10050 10051/** 10052 * Logs the package name that launches docsui picker mode. 10053 * 10054 * Logged from: 10055 * package/app/DocumentsUI/src/com/android/documentsui/Metrics.java 10056 */ 10057message DocsUIPickerLaunchedFromReported { 10058 optional string package_name = 1; 10059} 10060 10061/** 10062 * Logs the search type. 10063 * 10064 * Logged from: 10065 * package/app/DocumentsUI/src/com/android/documentsui/Metrics.java 10066 */ 10067message DocsUISearchTypeReported { 10068 optional android.stats.docsui.SearchType search_type = 1; 10069} 10070 10071/** 10072 * Logs the search mode. 10073 * 10074 * Logged from: 10075 * package/app/DocumentsUI/src/com/android/documentsui/Metrics.java 10076 */ 10077message DocsUISearchModeReported { 10078 optional android.stats.docsui.SearchMode search_mode = 1; 10079} 10080 10081/** 10082 * Logs the pick result information. 10083 * 10084 * Logged from: 10085 * package/app/DocumentsUI/src/com/android/documentsui/Metrics.java 10086 */ 10087message DocsUIPickResultReported { 10088 optional int32 total_action_count = 1; 10089 optional int64 duration_millis = 2; 10090 optional int32 file_count= 3; 10091 optional bool is_searching = 4; 10092 optional android.stats.docsui.Root picked_from = 5; 10093 optional android.stats.docsui.MimeType mime_type = 6; 10094 optional int32 repeatedly_pick_times = 7; 10095} 10096 10097/** Logs the drag and drop of files. 10098 10099 * Logged from: 10100 * package/app/DocumentsUI/src/com/android/documentsui/Metrics.java 10101 */ 10102message DocsUIDragAndDropReported { 10103 optional bool drag_initiated_from_docsui = 1; 10104} 10105 10106/** 10107 * Logs when an app's memory is compacted. 10108 * 10109 * Logged from: 10110 * frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java 10111 */ 10112message AppCompacted { 10113 // The pid of the process being compacted. 10114 optional int32 pid = 1; 10115 10116 // The name of the process being compacted. 10117 optional string process_name = 2; 10118 10119 // The type of compaction. 10120 enum Action { 10121 UNKNOWN = 0; 10122 SOME = 1; 10123 FULL = 2; 10124 PERSISTENT = 3; 10125 BFGS = 4; 10126 } 10127 optional Action action = 3; 10128 10129 // Total RSS in kilobytes consumed by the process prior to compaction. 10130 optional int64 before_rss_total_kilobytes = 4; 10131 10132 // File RSS in kilobytes consumed by the process prior to compaction. 10133 optional int64 before_rss_file_kilobytes = 5; 10134 10135 // Anonymous RSS in kilobytes consumed by the process prior to compaction. 10136 optional int64 before_rss_anon_kilobytes = 6; 10137 10138 // Swap in kilobytes consumed by the process prior to compaction. 10139 optional int64 before_swap_kilobytes = 7; 10140 10141 // Total RSS in kilobytes consumed by the process after compaction. 10142 optional int64 after_rss_total_kilobytes = 8; 10143 10144 // File RSS in kilobytes consumed by the process after compaction. 10145 optional int64 after_rss_file_kilobytes = 9; 10146 10147 // Anonymous RSS in kilobytes consumed by the process after compaction. 10148 optional int64 after_rss_anon_kilobytes = 10; 10149 10150 // Swap in kilobytes consumed by the process after compaction. 10151 optional int64 after_swap_kilobytes = 11; 10152 10153 // The time taken to perform compaction in milliseconds. 10154 optional int64 time_to_compact_millis = 12; 10155 10156 // The last compaction action performed for this app. 10157 optional Action last_action = 13; 10158 10159 // The last time that compaction was attempted on this process in milliseconds 10160 // since boot, not including sleep (see SystemClock.uptimeMillis()). 10161 optional int64 last_compact_timestamp_ms_since_boot = 14; 10162 10163 // The "setAdj" (i.e. previous) oom_score_adj at the time of compaction. 10164 optional int32 oom_score_adj = 15; 10165 10166 // The process state at the time of compaction. 10167 optional android.app.ProcessStateEnum process_state = 16 [default = PROCESS_STATE_UNKNOWN]; 10168 10169 // Free ZRAM in kilobytes before compaction. 10170 optional int64 before_zram_free_kilobytes = 17; 10171 10172 // Free ZRAM in kilobytes after compaction. 10173 optional int64 after_zram_free_kilobytes = 18; 10174} 10175 10176message AppCompactedV2 { 10177 // UID of the process being compacted 10178 optional int32 uid = 1 [(is_uid) = true]; 10179 10180 // Process state for compacted process 10181 optional int32 proc_state = 2; 10182 10183 // Current OOM Adjust at the time of compaction, this would correspond to any newly set oom adj. 10184 optional int32 current_oom_adj = 3; 10185 10186 // Delta Anon RSS reduced with compaction computed as RSS Before - RSS After. 10187 optional int64 delta_anon_rss = 4; 10188 10189 // Physical ZRAM Consumed during compaction 10190 optional int64 zram_consumed = 5; 10191 10192 // CPU time spent compacting 10193 optional float compact_cpu_time = 6; 10194 10195 // Anon RSS of the process prior to being compacted 10196 optional int64 original_anon_rss = 7; 10197 10198 // Reason for the OOM adj change 10199 optional android.app.OomChangeReasonEnum oom_change_reason = 8; 10200} 10201 10202/** 10203 * Represents an event that logs information about a successful switch to an upstream network. 10204 */ 10205message UpstreamEvent { 10206 // Indicates the transport type of network. 10207 optional android.stats.connectivity.UpstreamType upstream_type = 1; 10208 10209 // The duration of network usage. 10210 optional int64 duration_millis = 2; 10211 10212 // The amount of data received from tethered clients. 10213 optional int64 tx_bytes = 3; 10214 10215 // The amount of data received from remote. 10216 optional int64 rx_bytes = 4; 10217} 10218 10219message UpstreamEvents { 10220 repeated UpstreamEvent upstream_event = 1; 10221} 10222 10223/** 10224 * Logs when a Tethering event occurs. 10225 * 10226 */ 10227message NetworkTetheringReported { 10228 // Tethering error code 10229 optional android.stats.connectivity.ErrorCode error_code = 1; 10230 10231 // Tethering downstream type 10232 optional android.stats.connectivity.DownstreamType downstream_type = 2; 10233 10234 // Transport type of upstream network 10235 optional android.stats.connectivity.UpstreamType upstream_type = 3 [deprecated = true]; 10236 10237 // The user type of switching tethering 10238 optional android.stats.connectivity.UserType user_type= 4; 10239 10240 // Log each transport type of upstream network event 10241 optional UpstreamEvents upstream_events = 5 [(log_mode) = MODE_BYTES]; 10242 10243 // A time period that a downstreams exists 10244 optional int64 duration_millis = 6; 10245} 10246 10247/** 10248 * Logs NSD(Network service discovery) client session 10249 * 10250 * Log from: 10251 * packages/modules/Connectivity/service-t/src/com/android/server/NsdService 10252 */ 10253message NetworkNsdReported { 10254 // Indicate if the device is using the legacy or the new implementation 10255 optional bool is_legacy = 1; 10256 10257 // It is a random number to represent different clients. Each client is an app on the device. 10258 optional int32 client_id = 2; 10259 10260 // It is a increment_number to represent different transactions. 10261 // Each transaction is a request from an app client. 10262 optional int32 transaction_id = 3; 10263 10264 // Indicate the service in resolution is a known service in the discovered services cache 10265 optional bool is_known_service = 4; 10266 10267 // Record each NSD session type 10268 optional android.stats.connectivity.NsdEventType type = 5; 10269 10270 // The process duration of the event in milli-second 10271 optional int64 event_duration_millisec = 6; 10272 10273 // Record each mdns query result 10274 optional android.stats.connectivity.MdnsQueryResult query_result = 7; 10275 10276 // Count of services in cache at the end of discovery 10277 optional int32 found_service_count = 8; 10278 10279 // Count of found callback when discovery is stopped 10280 optional int32 found_callback_count = 9; 10281 10282 // Count of lost callback when discovery is stopped 10283 optional int32 lost_callback_count = 10; 10284 10285 // Record query service count before unregistered service 10286 optional int32 replied_requests_count = 11; 10287 10288 // Record sent query count before stopped discovery 10289 optional int32 sent_query_count = 12; 10290 10291 // Record sent packet count before unregistered service 10292 optional int32 sent_packet_count = 13; 10293 10294 // Record number of conflict during probing 10295 optional int32 conflict_during_probing_count = 14; 10296 10297 // Record number of conflict after probing 10298 optional int32 conflict_after_probing_count = 15; 10299 10300 // The random number between 0 ~ 999 for sampling 10301 optional int32 random_number = 16; 10302} 10303 10304/** 10305 * Logs a DNS lookup operation initiated by the system resolver on behalf of an application 10306 * invoking native APIs such as getaddrinfo() or Java APIs such as Network#getAllByName(). 10307 * 10308 * The NetworkDnsEventReported message represents the entire lookup operation, which may 10309 * result one or more queries to the recursive DNS resolvers. Those are individually logged 10310 * in DnsQueryEvents to enable computing error rates and network latency and timeouts 10311 * broken up by query type, transport, network interface, etc. 10312 */ 10313message NetworkDnsEventReported { 10314 optional android.stats.dnsresolver.EventType event_type = 1; 10315 10316 optional android.stats.dnsresolver.ReturnCode return_code = 2; 10317 10318 // The latency in microseconds of the entire DNS lookup operation. 10319 optional int32 latency_micros = 3; 10320 10321 // Only valid for event_type = EVENT_GETADDRINFO. 10322 optional int32 hints_ai_flags = 4; 10323 10324 // Flags passed to android_res_nsend() defined in multinetwork.h 10325 // Only valid for event_type = EVENT_RESNSEND. 10326 optional int32 res_nsend_flags = 5; 10327 10328 optional android.stats.dnsresolver.NetworkType network_type = 6; 10329 10330 // The DNS over TLS mode on a specific netId. 10331 optional android.stats.dnsresolver.PrivateDnsModes private_dns_modes = 7; 10332 10333 // Additional pass-through fields opaque to statsd. 10334 // The DNS resolver Mainline module can add new fields here without requiring an OS update. 10335 optional android.stats.dnsresolver.DnsQueryEvents dns_query_events = 8 [(log_mode) = MODE_BYTES]; 10336 10337 // The sample rate of DNS stats (to statsd) is 1/sampling_rate_denom. 10338 optional int32 sampling_rate_denom = 9; 10339 10340 // UID sends the DNS query. 10341 optional int32 uid = 10 [(is_uid) = true]; 10342} 10343 10344/** 10345 * logs the number of DNS servers supported by the protocol 10346 */ 10347message NetworkDnsServerSupportReported { 10348 // The network type of the network 10349 optional android.stats.dnsresolver.NetworkType network_type = 1; 10350 10351 // The private DNS mode of the network 10352 optional android.stats.dnsresolver.PrivateDnsModes private_dns_modes = 2; 10353 10354 // Stores the state of all DNS servers for this network 10355 optional android.stats.dnsresolver.Servers servers = 3 [(log_mode) = MODE_BYTES]; 10356} 10357 10358/** 10359 * The NetworkDnsHandshakeReported message describes a DoT or DoH handshake operation along with 10360 * its result, cause, network latency, TLS version, etc. 10361 * 10362 */ 10363message NetworkDnsHandshakeReported { 10364 optional android.stats.dnsresolver.Protocol protocol = 1; 10365 10366 optional android.stats.dnsresolver.HandshakeResult result = 2; 10367 10368 optional android.stats.dnsresolver.HandshakeCause cause = 3; 10369 10370 optional android.stats.dnsresolver.NetworkType network_type = 4; 10371 10372 optional android.stats.dnsresolver.PrivateDnsModes private_dns_mode = 5; 10373 10374 // The latency in microseconds of the entire handshake operation. 10375 optional int32 latency_micros = 6; 10376 10377 // Number of bytes sent in a handshake. 10378 optional int32 bytes_sent = 7; 10379 10380 // Number of bytes received in a handshake. 10381 optional int32 bytes_received = 8; 10382 10383 // Number of round-trips. 10384 optional int32 round_trips = 9; 10385 10386 // True if TLS session cache hit. 10387 optional bool tls_session_cache_hit = 10; 10388 10389 // 2 = TLS 1.2, 3 = TLS 1.3 10390 optional int32 tls_version = 11; 10391 10392 // True if the handshake requires verifying the private DNS provider hostname. 10393 optional bool hostname_verification = 12; 10394 10395 // Only present when protocol = PROTO_DOH. 10396 optional int32 quic_version = 13; 10397 10398 optional int32 server_index = 14; 10399 10400 // The sampling-rate of this event is 1/sampling_rate_denom. 10401 optional int32 sampling_rate_denom = 15; 10402} 10403 10404/** 10405 * logs the CapportApiData info 10406 * Logged from: 10407 * packages/modules/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java 10408 */ 10409message CapportApiData { 10410 // The TTL of the network connection provided by captive portal 10411 optional int32 remaining_ttl_secs = 1; 10412 10413 // The limit traffic data of the network connection provided by captive portal 10414 optional int32 remaining_bytes = 2; 10415 10416 // Is portal url option included in the DHCP packet (Yes, No) 10417 optional bool has_portal_url = 3; 10418 10419 // Is venue info (e.g. store info, maps, flight status) included (Yes, No) 10420 optional bool has_venue_info = 4; 10421} 10422 10423/** 10424 * logs a network Probe Event 10425 * Logged from: 10426 * packages/modules/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java 10427 */ 10428message ProbeEvent { 10429 // The probe type (http or https, or captive portal API...) 10430 optional android.stats.connectivity.ProbeType probe_type = 1; 10431 10432 // The latency in microseconds of the probe event 10433 optional int32 latency_micros = 2; 10434 10435 // The result of the probe event 10436 optional android.stats.connectivity.ProbeResult probe_result = 3; 10437 10438 // The CaptivePortal API info 10439 optional CapportApiData capport_api_data = 4; 10440} 10441 10442/** 10443 * log each ProbeEvent in ProbeEvents 10444 * Logged from: 10445 * packages/modules/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java 10446 */ 10447message ProbeEvents { 10448 // Record probe event during the validation 10449 repeated ProbeEvent probe_event = 1; 10450} 10451 10452/** 10453 * The DHCP (Dynamic Host Configuration Protocol) session info 10454 * Logged from: 10455 * packages/modules/NetworkStack/src/android/net/dhcp/DhcpClient.java 10456 */ 10457message DhcpSession { 10458 // The DHCP Feature(s) enabled in this session 10459 repeated android.stats.connectivity.DhcpFeature used_features = 1; 10460 10461 // The discover packet (re)transmit count 10462 optional int32 discover_count = 2; 10463 10464 // The request packet (re)transmit count 10465 optional int32 request_count = 3; 10466 10467 // The IPv4 address conflict count 10468 // (only be meaningful when duplicate address detection is enabled) 10469 optional int32 conflict_count = 4; 10470 10471 // The DHCP packet parsing error code in this session 10472 // (defined in android.net.metrics.DhcpErrorEvent) 10473 repeated android.stats.connectivity.DhcpErrorCode error_code = 5; 10474 10475 // The result of DHCP hostname transliteration 10476 optional android.stats.connectivity.HostnameTransResult ht_result = 6; 10477} 10478 10479/** 10480 * Logs Network IP provisioning event 10481 * Logged from: 10482 * packages/modules/NetworkStack/src/com/android/networkstack/metrics/NetworkIpProvisioningMetrics.java 10483 */ 10484message NetworkIpProvisioningReported { 10485 // Transport type (WIFI, CELLULAR, BLUETOOTH, ..) 10486 optional android.stats.connectivity.TransportType transport_type = 1; 10487 10488 // The latency in microseconds of IP Provisioning over IPV4 10489 optional int32 ipv4_latency_micros = 2; 10490 10491 // The latency in microseconds of IP Provisioning over IPV6 10492 optional int32 ipv6_latency_micros = 3; 10493 10494 // The time duration between provisioning start and end (success or failure) 10495 optional int64 provisioning_duration_micros = 4; 10496 10497 // The specific disconnect reason for this IP provisioning 10498 optional android.stats.connectivity.DisconnectCode disconnect_code = 5; 10499 10500 // Log DHCP session info (Only valid for IPv4) 10501 optional DhcpSession dhcp_session = 6 [(log_mode) = MODE_BYTES]; 10502 10503 // The random number between 0 ~ 999 for sampling 10504 optional int32 random_number = 7; 10505 10506 // Check which IPv6 provisioning mode is used for current connection 10507 optional android.stats.connectivity.Ipv6ProvisioningMode ipv6_provisioning_mode = 8; 10508} 10509 10510/** 10511 * Logs Network DHCP Renew event 10512 * Logged from: 10513 * packages/modules/NetworkStack/src/android/net/dhcp/DhcpClient.java 10514 */ 10515message NetworkDhcpRenewReported { 10516 // Transport type (WIFI, CELLULAR, BLUETOOTH, ..) 10517 optional android.stats.connectivity.TransportType transport_type = 1; 10518 10519 // The request packet (re)transmit count 10520 optional int32 request_count = 2; 10521 10522 // The latency in microseconds of DHCP Renew 10523 optional int32 latency_micros = 3; 10524 10525 // The DHCP error code is defined in android.net.metrics.DhcpErrorEvent 10526 optional android.stats.connectivity.DhcpErrorCode error_code = 4; 10527 10528 // The result of DHCP renew 10529 optional android.stats.connectivity.DhcpRenewResult renew_result = 5; 10530 10531 // The random number between 0 ~ 999 for sampling 10532 optional int32 random_number = 6; 10533} 10534 10535/** 10536 * Logs Network Validation event 10537 * Logged from: 10538 * packages/modules/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java 10539 */ 10540message NetworkValidationReported { 10541 // Transport type (WIFI, CELLULAR, BLUETOOTH, ..) 10542 optional android.stats.connectivity.TransportType transport_type = 1; 10543 10544 // Record each probe event 10545 optional ProbeEvents probe_events = 2 [(log_mode) = MODE_BYTES]; 10546 10547 // The result of the network validation 10548 optional android.stats.connectivity.ValidationResult validation_result = 3; 10549 10550 // The latency in microseconds of network validation 10551 optional int32 latency_micros = 4; 10552 10553 // The validation index (the first validation attempt or second, third...) 10554 optional int32 validation_index = 5; 10555 10556 // The random number between 0 ~ 999 for sampling 10557 optional int32 random_number = 6; 10558} 10559 10560/** 10561 * Logs NetworkStack Quirk event 10562 * Logged from: 10563 * packages/modules/NetworkStack/src/com/android/networkstack/ 10564 */ 10565message NetworkStackQuirkReported { 10566 // Transport type (WIFI, CELLULAR, BLUETOOTH, ..) 10567 optional android.stats.connectivity.TransportType transport_type = 1; 10568 10569 // Record each Quirk event 10570 optional android.stats.connectivity.NetworkQuirkEvent event = 2; 10571} 10572 10573/** 10574 * Logs Neighbor Unreachability Detection event 10575 * Logged from: 10576 * packages/modules/NetworkStack/src/com/android/networkstack/metrics/NetworkIpReachabilityMonitorMetrics.java 10577 */ 10578message NetworkIpReachabilityMonitorReported { 10579 // Neighbor Unreachability Detection event. 10580 optional android.stats.connectivity.NudEventType event_type = 1; 10581 10582 // NUD probe based on IPv4 ARP or IPv6 ND packet. 10583 optional android.stats.connectivity.IpType ip_type = 2; 10584 10585 // NUD neighbor type, default gateway, DNS server or both. 10586 optional android.stats.connectivity.NudNeighborType neighbor_type = 3; 10587} 10588 10589/** 10590 * Logs when system default network changes. 10591 */ 10592message SystemDefaultNetworkChanged { 10593 // Active transport types encoded as a 32 bit integer. 10594 // The integer will have n-th bit set if there was an active transport type of value n. 10595 // See packages/modules/Connectivity/framework/src/android/net/NetworkCapabilities.java 10596 optional int32 transport_types = 1 [ 10597 (state_field_option).exclusive_state = true, 10598 (state_field_option).nested = false 10599 ]; 10600} 10601 10602/** 10603 * Logs when a data stall event occurs. 10604 * 10605 * Log from: 10606 * packages/modules/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java 10607 */ 10608message DataStallEvent { 10609 // Data stall evaluation type. 10610 // See packages/modules/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java 10611 // Refer to the definition of DATA_STALL_EVALUATION_TYPE_*. 10612 optional int32 evaluation_type = 1; 10613 // See definition in data_stall_event.proto. 10614 optional com.android.server.connectivity.ProbeResult validation_result = 2; 10615 // See definition in data_stall_event.proto. 10616 optional android.net.Transport network_type = 3; 10617 // See definition in data_stall_event.proto. 10618 optional com.android.server.connectivity.WifiData wifi_info = 4 [(log_mode) = MODE_BYTES]; 10619 // See definition in data_stall_event.proto. 10620 optional com.android.server.connectivity.CellularData cell_info = 5 [(log_mode) = MODE_BYTES]; 10621 // See definition in data_stall_event.proto. 10622 optional com.android.server.connectivity.DnsEvent dns_event = 6 [(log_mode) = MODE_BYTES]; 10623 // The tcp packets fail rate from the latest tcp polling. 10624 optional int32 tcp_fail_rate = 7; 10625 // Number of packets sent since the last received packet. 10626 optional int32 tcp_sent_since_last_recv = 8; 10627} 10628 10629/* 10630 * Logs when RescueParty resets some set of experiment flags. 10631 * 10632 * Logged from: 10633 * frameworks/base/services/core/java/com/android/server/RescueParty.java 10634 */ 10635message RescuePartyResetReported { 10636 // The rescue level of this reset. A value of 0 indicates missing or unknown level information. 10637 optional int32 rescue_level = 1; 10638 optional string rescue_level_string = 2; 10639} 10640 10641/** 10642 * Logs when signed config is received from an APK, and if that config was applied successfully. 10643 * Logged from: 10644 * frameworks/base/services/core/java/com/android/server/signedconfig/SignedConfigService.java 10645 */ 10646message SignedConfigReported { 10647 enum Type { 10648 UNKNOWN_TYPE = 0; 10649 GLOBAL_SETTINGS = 1; 10650 } 10651 optional Type type = 1; 10652 10653 // The final status of the signed config received. 10654 enum Status { 10655 UNKNOWN_STATUS = 0; 10656 APPLIED = 1; 10657 BASE64_FAILURE_CONFIG = 2; 10658 BASE64_FAILURE_SIGNATURE = 3; 10659 SECURITY_EXCEPTION = 4; 10660 INVALID_CONFIG = 5; 10661 OLD_CONFIG = 6; 10662 SIGNATURE_CHECK_FAILED = 7; 10663 NOT_APPLICABLE = 8; 10664 SIGNATURE_CHECK_FAILED_PROD_KEY_ABSENT = 9; 10665 } 10666 optional Status status = 2; 10667 10668 // The version of the signed config processed. 10669 optional int32 version = 3; 10670 10671 // The package name that the config was extracted from. 10672 optional string from_package = 4; 10673 10674 enum Key { 10675 NO_KEY = 0; 10676 DEBUG = 1; 10677 PRODUCTION = 2; 10678 } 10679 // Which key was used to verify the config. 10680 optional Key verified_with = 5; 10681} 10682 10683/* 10684 * Logs GNSS Network-Initiated (NI) location events. 10685 * 10686 * Logged from: 10687 * frameworks/base/services/core/java/com/android/server/location/GnssLocationProvider.java 10688 */ 10689message GnssNiEventReported { 10690 // The type of GnssNiEvent. 10691 enum EventType { 10692 UNKNOWN = 0; 10693 NI_REQUEST = 1; 10694 NI_RESPONSE = 2; 10695 } 10696 optional EventType event_type = 1; 10697 10698 // An ID generated by HAL to associate NI notifications and UI responses. 10699 optional int32 notification_id = 2; 10700 10701 // A type which distinguishes different categories of NI request, such as VOICE, UMTS_SUPL etc. 10702 optional android.server.location.GnssNiType ni_type = 3; 10703 10704 // NI requires notification. 10705 optional bool need_notify = 4; 10706 10707 // NI requires verification. 10708 optional bool need_verify = 5; 10709 10710 // NI requires privacy override, no notification/minimal trace. 10711 optional bool privacy_override = 6; 10712 10713 // Timeout period to wait for user response. Set to 0 for no timeout limit. Specified in 10714 // seconds. 10715 optional int32 timeout = 7; 10716 10717 // Default response when timeout. 10718 optional android.server.location.GnssUserResponseType default_response = 8; 10719 10720 // String representing the requester of the network inititated location request. 10721 optional string requestor_id = 9; 10722 10723 // Notification message text string representing the service(for eg. SUPL-service) who sent the 10724 // network initiated location request. 10725 optional string text = 10; 10726 10727 // requestorId decoding scheme. 10728 optional android.server.location.GnssNiEncodingType requestor_id_encoding = 11; 10729 10730 // Notification message text decoding scheme. 10731 optional android.server.location.GnssNiEncodingType text_encoding = 12; 10732 10733 // True if SUPL ES is enabled. 10734 optional bool is_supl_es_enabled = 13; 10735 10736 // True if GNSS location is enabled. 10737 optional bool is_location_enabled = 14; 10738 10739 // GNSS NI responses which define the response in NI structures. 10740 optional android.server.location.GnssUserResponseType user_response = 15; 10741} 10742 10743/** 10744 * Logs GNSS non-framework (NFW) location notification. 10745 * 10746 * Logged from: 10747 * frameworks/base/services/core/java/com/android/server/location/GnssLocationProvider.java 10748 */ 10749message GnssNfwNotificationReported { 10750 // Package name of the Android proxy application representing the non-framework entity that 10751 // requested location. Set to empty string if unknown. 10752 optional string proxy_app_package_name = 1; 10753 10754 // Protocol stack that initiated the non-framework location request. 10755 optional android.server.location.NfwProtocolStack protocol_stack = 2; 10756 10757 // Name of the protocol stack if protocol_stack field is set to OTHER_PROTOCOL_STACK. Otherwise, 10758 // set to empty string. This field is opaque to the framework and used for logging purposes. 10759 optional string other_protocol_stack_name = 3; 10760 10761 // Source initiating/receiving the location information. 10762 optional android.server.location.NfwRequestor requestor = 4; 10763 10764 // Identity of the endpoint receiving the location information. For example, carrier name, OEM 10765 // name, SUPL SLP/E-SLP FQDN, chipset vendor name, etc. This field is opaque to the framework 10766 // and used for logging purposes. 10767 optional string requestor_id = 5; 10768 10769 // Indicates whether location information was provided for this request. 10770 optional android.server.location.NfwResponseType response_type = 6; 10771 10772 // True if the device is in user initiated emergency session. 10773 optional bool in_emergency_mode = 7; 10774 10775 // True if cached location is provided. 10776 optional bool is_cached_location = 8; 10777 10778 // True if proxy app permission mismatch between framework and GNSS HAL. 10779 optional bool is_permission_mismatched = 9; 10780} 10781 10782/** 10783 * Logs GNSS configuration as defined in IGnssConfiguration.hal. 10784 * 10785 * Logged from: 10786 * frameworks/base/services/core/java/com/android/server/location/GnssConfiguration.java 10787 */ 10788message GnssConfigurationReported { 10789 // SUPL host name. 10790 optional string supl_host = 1; 10791 10792 // SUPL port number. 10793 optional int32 supl_port = 2; 10794 10795 // C2K host name. 10796 optional string c2k_host = 3; 10797 10798 // C2K port number. 10799 optional int32 c2k_port = 4; 10800 10801 // The SUPL version requested by Carrier. 10802 optional int32 supl_ver = 5; 10803 10804 // The SUPL mode. 10805 optional android.server.location.SuplMode supl_mode = 6; 10806 10807 // True if NI emergency SUPL restrictions is enabled. 10808 optional bool supl_es = 7; 10809 10810 // LTE Positioning Profile settings 10811 optional android.server.location.LppProfile lpp_profile = 8; 10812 10813 // Positioning protocol on A-Glonass system. 10814 optional android.server.location.GlonassPosProtocol a_glonass_pos_protocol_select = 9; 10815 10816 // True if emergency PDN is used. Otherwise, regular PDN is used. 10817 optional bool use_emergency_pdn_for_emergency_supl= 10; 10818 10819 // Configurations of how GPS functionalities should be locked when user turns off GPS On setting. 10820 optional android.server.location.GpsLock gps_lock = 11; 10821 10822 // Number of seconds to extend the emergency session duration post emergency call. 10823 optional int32 es_extension_sec = 12; 10824 10825 // The full list of package names of proxy Android applications representing the non-framework 10826 // location access entities (on/off the device) for which the framework user has granted 10827 // non-framework location access permission. The package names are concatenated in one string 10828 // with spaces as separators. 10829 optional string enabled_proxy_app_package_name_list = 13; 10830} 10831 10832/** 10833 * Logs GNSS PSDS downloads as defined in IGnssPsds.aidl. 10834 * 10835 * Logged from: 10836 * frameworks/base/services/core/java/com/android/server/location/gnss/GnssPsdsDownloader.java 10837 */ 10838message GnssPsdsDownloadReported { 10839 // PSDS type as defined in PsdsType.aidl 10840 optional int32 psds_type = 1; 10841} 10842 10843/** 10844 * Logs when a NFC device's error occurred. 10845 * Logged from: 10846 * packages/modules/Nfc/libnfc-nci/src/nfc/nfc/nfc_ncif.cc 10847 * packages/modules/Nfc/NfcNci/src/com/android/nfc/cardemulation/AidRoutingManager.java 10848 */ 10849message NfcErrorOccurred { 10850 enum Type { 10851 UNKNOWN = 0; 10852 CMD_TIMEOUT = 1; 10853 ERROR_NOTIFICATION = 2; 10854 AID_OVERFLOW = 3; 10855 // HCE stands for Host Card Emulation 10856 HCE_LATE_BINDING = 4; 10857 NFC_ACCESS_CHECK_ERROR = 5; 10858 SE_INCORRECT_FORMAT = 6; 10859 } 10860 optional Type type = 1; 10861 // If it's nci cmd timeout, log the timeout command. 10862 optional uint32 nci_cmd = 2; 10863 10864 optional uint32 error_ntf_status_code = 3; 10865} 10866 10867/** 10868 * Logs when a NFC device's state changed event 10869 * Logged from: 10870 * packages/modules/Nfc/NfcNci/src/com/android/nfc/NfcService.java 10871 */ 10872message NfcStateChanged { 10873 enum State { 10874 UNKNOWN = 0; 10875 OFF = 1; 10876 ON = 2; 10877 ON_LOCKED = 3; // Secure Nfc enabled. 10878 CRASH_RESTART = 4; // NfcService watchdog timeout restart. 10879 } 10880 optional State state = 1 [ 10881 (state_field_option).exclusive_state = true, 10882 (state_field_option).nested = false 10883 ]; 10884} 10885 10886/** 10887 * Logs when a NFC Beam Transaction occurred. 10888 * Logged from: 10889 * packages/modules/Nfc/NfcNci/src/com/android/nfc/P2pLinkManager.java 10890 */ 10891message NfcBeamOccurred { 10892 enum Operation { 10893 UNKNOWN = 0; 10894 SEND = 1; 10895 RECEIVE = 2; 10896 } 10897 optional Operation operation = 1; 10898} 10899 10900/** 10901 * Logs when a NFC Card Emulation Transaction occurred. 10902 * Logged from: 10903 * packages/modules/Nfc/NfcNci/src/com/android/nfc/cardemulation/HostEmulationManager.java 10904 * packages/modules/Nfc/NfcNci/src/com/android/nfc/cardemulation/HostNfcFEmulationManager.java 10905 */ 10906message NfcCardemulationOccurred { 10907 enum Category { 10908 UNKNOWN = 0; 10909 // HCE stands for Host Card Emulation 10910 HCE_PAYMENT = 1; 10911 HCE_OTHER = 2; 10912 OFFHOST = 3; 10913 OFFHOST_PAYMENT = 4; 10914 OFFHOST_OTHER = 5; 10915 FAILED_NO_ROUTING = 6; 10916 FAILED_HCE_PAYMENT_WRONG_SETTING = 7; 10917 FAILED_HCE_OTHER_WRONG_SETTING = 8; 10918 FAILED_HCE_PAYMENT_DISCONNECTED_BEFORE_BOUND = 9; 10919 FAILED_HCE_OTHER_DISCONNECTED_BEFORE_BOUND = 10; 10920 FAILED_HCE_PAYMENT_DISCONNECTED_BEFORE_RESPONSE = 11; 10921 FAILED_HCE_OTHER_DISCONNECTED_BEFORE_RESPONSE = 12; 10922 } 10923 // Transaction belongs to HCE payment or HCE other category, or offhost. 10924 optional Category category = 1; 10925 // SeName from transaction: SIMx, eSEx, HCE, HCEF. 10926 optional string se_name = 2; 10927 10928 optional int32 uid = 3 [(is_uid) = true]; 10929} 10930 10931/** 10932 * Logs when a NFC Tag event occurred. 10933 * Logged from: 10934 * packages/modules/Nfc/NfcNci/src/com/android/nfc/NfcDispatcher.java 10935 */ 10936message NfcTagOccurred { 10937 enum Type { 10938 UNKNOWN = 0; 10939 URL = 1; 10940 BT_PAIRING = 2; 10941 PROVISION = 3; 10942 WIFI_CONNECT = 4; 10943 // Successful App Launch 10944 APP_LAUNCH = 5; 10945 // No suitable action found 10946 OTHERS = 6; 10947 // Dispatch event when service is in foreground 10948 FOREGROUND_DISPATCH = 7; 10949 // App Launch mute from android.nfc.action.NDEF_DISCOVERED 10950 APP_LAUNCH_NDEF_MUTE = 8; 10951 // App Launch mute from android.nfc.action.TECH_DISCOVERED 10952 APP_LAUNCH_TECH_MUTE = 9; 10953 // App Launch mute from android.nfc.action.TAG_DISCOVERED 10954 APP_LAUNCH_TAG_MUTE = 10; 10955 } 10956 optional Type type = 1; 10957 10958 optional int32 uid = 2 [(is_uid) = true]; 10959 // Supported RF Technologies of the Tag 10960 repeated android.nfc.RFTechnologyType rf_types = 3; 10961 // Use for BT_PAIRING Type 10962 optional android.bluetooth.MajorClassEnum bt_device_type = 4; 10963 // Use for BT_PAIRING Type 10964 // Should be empty for HEALTH and UNKNOWN MajorClassEnum 10965 optional string bt_device_info = 5; 10966} 10967 10968/** 10969 * Logs NFC tag type when tag occurred 10970 * Logged from: 10971 * packages/modules/Nfc/NfcNci/nci/jni/NfcTag.cpp 10972 */ 10973message NfcTagTypeOccurred { 10974 optional android.nfc.NfcTagType type = 1; 10975} 10976 10977/** 10978 * Logs when Hce transaction triggered 10979 * Logged from: 10980 * packages/modules/Nfc/libnfc-nci/src/nfc/nfc/nfc_ncif.cc 10981 */ 10982message NfcHceTransactionOccurred { 10983 // The latency period(in microseconds) it took for the first HCE data 10984 // exchange. 10985 optional uint32 latency_micros = 1; 10986} 10987 10988/** 10989 * Logs when AID conflict occurred 10990 * Logged from: 10991 * packages/modules/Nfc/NfcNci/src/com/android/nfc/cardemulation/HostEmulationManager.java 10992*/ 10993message NfcAIDConflictOccurred { 10994 optional string conflicting_aid = 1; 10995} 10996 10997/** 10998 * Logs when reader app conflict occurred 10999 * Logged from: 11000 * packages/modules/Nfc/NfcNci/src/com/android/nfc/NfcDispatcher.java 11001*/ 11002message NfcReaderConflictOccurred { 11003} 11004 11005/** 11006 * Logs when user changed screen resolution 11007 * Logged from: 11008 * packages/apps/Settings/src/com/android/settings/display/ScreenResolutionFragment.java 11009*/ 11010message UserSelectedResolution { 11011 optional int32 display_id = 1; 11012 // display resolution 11013 optional int32 width = 2; 11014 optional int32 height = 3; 11015} 11016 11017/** 11018 * Logs when SecureElement state event changed 11019 * Logged from: 11020 * packages/apps/SecureElement/src/com/android/se/Terminal.java 11021 */ 11022message SeStateChanged { 11023 enum State { 11024 UNKNOWN = 0; 11025 INITIALIZED = 1; 11026 DISCONNECTED = 2; 11027 CONNECTED = 3; 11028 HALCRASH = 4; 11029 } 11030 optional State state = 1; 11031 11032 optional string state_change_reason = 2; 11033 // SIMx or eSEx. 11034 optional string terminal = 3; 11035} 11036 11037/** 11038 * Information about a permission grant request 11039 */ 11040message PermissionGrantRequestResultReported { 11041 // unique value identifying an API call. A API call might result in multiple of these atoms 11042 optional int64 request_id = 1; 11043 11044 // UID of package requesting the permission grant 11045 optional int32 uid = 2 [(is_uid) = true]; 11046 11047 // Name of package requesting the permission grant 11048 optional string package_name = 3; 11049 11050 // The permission to be granted 11051 optional string permission_name = 4; 11052 11053 // If the permission was explicitly requested via the API or added by the system 11054 optional bool is_implicit = 5; 11055 11056 enum Result { 11057 UNDEFINED = 0; 11058 // permission request was ignored 11059 IGNORED = 1; 11060 // permission request was ignored because it was user fixed 11061 IGNORED_USER_FIXED = 2; 11062 // permission request was ignored because it was policy fixed 11063 IGNORED_POLICY_FIXED = 3; 11064 // permission was granted by user action 11065 USER_GRANTED = 4; 11066 // permission was automatically granted 11067 AUTO_GRANTED = 5; 11068 // permission was denied by user action 11069 USER_DENIED = 6; 11070 // permission was denied with prejudice by the user 11071 USER_DENIED_WITH_PREJUDICE = 7; 11072 // permission was automatically denied 11073 AUTO_DENIED = 8; 11074 // permission request was ignored because permission is restricted 11075 IGNORED_RESTRICTED_PERMISSION = 9; 11076 // one time permission was granted by user action 11077 USER_GRANTED_ONE_TIME = 10; 11078 // user ignored request by leaving the request screen without choosing any option 11079 USER_IGNORED = 11; 11080 // user granted the permission after being linked to settings 11081 USER_GRANTED_IN_SETTINGS = 12; 11082 // user denied the permission after being linked to settings 11083 USER_DENIED_IN_SETTINGS = 13; 11084 // user denied the permission with prejudice after being linked to settings 11085 USER_DENIED_WITH_PREJUDICE_IN_SETTINGS = 14; 11086 // permission was automatically revoked after one-time permission expired 11087 AUTO_ONE_TIME_PERMISSION_REVOKED = 15; 11088 // permission was automatically revoked for unused app 11089 AUTO_UNUSED_APP_PERMISSION_REVOKED = 16; 11090 // the user selected media with the photo picker 11091 PHOTOS_SELECTED = 17; 11092 } 11093 // The result of the permission grant 11094 optional Result result = 6; 11095 11096 // Whether Permission Rationale was shown on grant dialog 11097 optional bool permission_rationale_shown = 7; 11098 11099 // Whether the package was restricted by ECM 11100 optional bool is_package_restricted_by_enhanced_confirmation = 8; 11101} 11102 11103/** 11104 * Logs when Omapi API used 11105 * Logged from: 11106 * packages/apps/SecureElement/src/com/android/se/Terminal.java 11107 */ 11108message SeOmapiReported { 11109 enum Operation { 11110 UNKNOWN = 0; 11111 OPEN_CHANNEL = 1; 11112 } 11113 optional Operation operation = 1; 11114 // SIMx or eSEx. 11115 optional string terminal = 2; 11116 11117 optional string package_name = 3; 11118} 11119 11120/** 11121 * Logs the dispatch latency of a broadcast during processing of BOOT_COMPLETED. 11122 * The dispatch latency is the dispatchClockTime - enqueueClockTime. 11123 * Logged from: 11124 * frameworks/base/services/core/java/com/android/server/am/BroadcastQueue.java 11125 */ 11126message BroadcastDispatchLatencyReported { 11127 optional int64 dispatch_latency_millis = 1; 11128} 11129 11130/** 11131 * Logs AttentionManagerService attention check result. 11132 * 11133 * Logged from: 11134 * frameworks/base/services/core/java/com/android/server/attention/AttentionManagerService.java 11135 */ 11136message AttentionManagerServiceResultReported { 11137 // See core/java/android/service/attention/AttentionService.java 11138 enum AttentionCheckResult { 11139 UNKNOWN = 20; 11140 ATTENTION_SUCCESS_ABSENT = 0; 11141 ATTENTION_SUCCESS_PRESENT = 1; 11142 ATTENTION_FAILURE_UNKNOWN = 2; 11143 ATTENTION_FAILURE_CANCELLED = 3; 11144 ATTENTION_FAILURE_PREEMPTED = 4; 11145 ATTENTION_FAILURE_TIMED_OUT = 5; 11146 ATTENTION_FAILURE_CAMERA_PERMISSION_ABSENT = 6; 11147 } 11148 optional AttentionCheckResult attention_check_result = 1 [default = UNKNOWN]; 11149} 11150 11151/** 11152 * Logs when an adb connection changes state. 11153 * 11154 * Logged from: 11155 * frameworks/base/services/core/java/com/android/server/adb/AdbDebuggingManager.java 11156 */ 11157message AdbConnectionChanged { 11158 // The last time this system connected via adb, or 0 if the 'always allow' option was not 11159 // previously selected for this system. 11160 optional int64 last_connection_time_millis = 1; 11161 11162 // The time in ms within which a subsequent connection from an 'always allow' system is allowed 11163 // to reconnect via adb without user interaction. 11164 optional int64 auth_window_millis = 2; 11165 11166 // The state of the adb connection from frameworks/proto_logging/stats/enums/debug/enums.proto. 11167 optional android.debug.AdbConnectionStateEnum state = 3; 11168 11169 // True if the 'always allow' option was selected for this system. 11170 optional bool always_allow = 4; 11171} 11172 11173/* 11174 * Logs the reported speech DSP status. 11175 * 11176 * Logged from: 11177 * Vendor audio implementation. 11178 */ 11179message SpeechDspStatReported { 11180 // The total Speech DSP uptime in milliseconds. 11181 optional int32 total_uptime_millis = 1; 11182 // The total Speech DSP downtime in milliseconds. 11183 optional int32 total_downtime_millis = 2; 11184 optional int32 total_crash_count = 3; 11185 optional int32 total_recover_count = 4; 11186} 11187 11188/** 11189 * Logs USB connector contaminant status. 11190 * 11191 * Logged from: USB Service. 11192 */ 11193message UsbContaminantReported { 11194 optional string id = 1; 11195 optional android.service.ContaminantPresenceStatus status = 2; 11196} 11197 11198/** 11199 * This atom is for debugging purpose. 11200 */ 11201message DebugElapsedClock { 11202 // Monotically increasing value for each pull. 11203 optional int64 pull_count = 1; 11204 // Time from System.elapsedRealtime. 11205 optional int64 elapsed_clock_millis = 2; 11206 // Time from System.elapsedRealtime. 11207 optional int64 same_elapsed_clock_millis = 3; 11208 // Diff between current elapsed time and elapsed time from previous pull. 11209 optional int64 elapsed_clock_diff_millis = 4; 11210 11211 enum Type { 11212 TYPE_UNKNOWN = 0; 11213 ALWAYS_PRESENT = 1; 11214 PRESENT_ON_ODD_PULLS = 2; 11215 } 11216 // Type of behavior for the pulled data. 11217 optional Type type = 5; 11218} 11219 11220/** 11221 * This atom is for debugging purpose. 11222 */ 11223message DebugFailingElapsedClock { 11224 // Monotically increasing value for each pull. 11225 optional int64 pull_count = 1; 11226 // Time from System.elapsedRealtime. 11227 optional int64 elapsed_clock_millis = 2; 11228 // Time from System.elapsedRealtime. 11229 optional int64 same_elapsed_clock_millis = 3; 11230 // Diff between current elapsed time and elapsed time from previous pull. 11231 optional int64 elapsed_clock_diff_millis = 4; 11232} 11233 11234/** Logs System UI bubbles event changed. 11235 * 11236 * Logged from: 11237 * frameworks/base/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen 11238 */ 11239message SplitscreenUIChanged { 11240 // User interactions with splitscreen 11241 enum Action { 11242 UNKNOWN_ACTION = 0; 11243 ENTER = 1; 11244 EXIT = 2; 11245 APP_CHANGE = 3; 11246 RESIZE = 4; 11247 SWAP = 5; 11248 } 11249 11250 // The physical side on the device of the split 11251 enum Position { 11252 UNKNOWN_POSITION = 0; 11253 LEFT = 1; 11254 RIGHT = 2; 11255 TOP = 3; 11256 BOTTOM = 4; 11257 } 11258 11259 // The reason for entering splitscreen 11260 enum EnterReason { 11261 UNKNOWN_ENTER = 0; 11262 OVERVIEW = 1; // Deprecated, use LAUNCHER 11263 DRAG_LEFT = 2; 11264 DRAG_TOP = 3; 11265 DRAG_RIGHT = 4; 11266 DRAG_BOTTOM = 5; 11267 LAUNCHER = 6; 11268 MULTI_INSTANCE = 7; 11269 NOTIFICATIONS = 8; 11270 } 11271 11272 // The reason for exiting splitscreen 11273 enum ExitReason { 11274 UNKNOWN_EXIT = 0; 11275 DRAG_DIVIDER = 1; 11276 RETURN_HOME = 2; 11277 SCREEN_LOCKED = 3; 11278 SCREEN_LOCKED_SHOW_ON_TOP = 4; 11279 DEVICE_FOLDED = 5; 11280 ROOT_TASK_VANISHED = 6; 11281 APP_FINISHED = 7; 11282 APP_DOES_NOT_SUPPORT_MULTIWINDOW = 8; 11283 CHILD_TASK_ENTER_PIP = 9; 11284 RECREATE_SPLIT = 10; 11285 FULLSCREEN_SHORTCUT = 11; 11286 DESKTOP_MODE = 12; 11287 FULLSCREEN_REQUEST = 13; 11288 } 11289 11290 // The event action 11291 optional Action action = 1; 11292 // What triggered splitscreen (if the action is ENTER) 11293 optional EnterReason enter_reason = 2; 11294 // What triggered leaving splitscreen (if the action is EXIT) 11295 optional ExitReason exit_reason = 3; 11296 // The ratio of split between the main/side stages 11297 optional float split_ratio = 4; 11298 // Data about the main stage in split 11299 optional Position main_stage_position = 5; 11300 optional int32 main_stage_uid = 6 [(is_uid) = true]; 11301 // Data about the side stage in split 11302 optional Position side_stage_position = 7; 11303 optional int32 side_stage_uid = 8 [(is_uid) = true]; 11304 // The drag session id (if the enter_trigger was DRAG) 11305 optional int32 drag_instance_id = 9; 11306 // An identifier used to identify a splitscreen session 11307 optional int32 instance_id = 10; 11308} 11309 11310/** Logs System UI bubbles event changed. 11311 * 11312 * Logged from: 11313 * frameworks/base/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles 11314 */ 11315message BubbleUIChanged { 11316 11317 // The app package that is posting the bubble. 11318 optional string package_name = 1; 11319 11320 // The notification channel that is posting the bubble. 11321 optional string notification_channel = 2; 11322 11323 // The notification id associated with the posted bubble. 11324 optional int32 notification_id = 3; 11325 11326 // The position of the bubble within the bubble stack. 11327 optional int32 position = 4; 11328 11329 // The total number of bubbles within the bubble stack. 11330 optional int32 total_number = 5; 11331 11332 // User interactions with the bubble. 11333 enum Action { 11334 UNKNOWN = 0; 11335 POSTED = 1; 11336 UPDATED = 2; 11337 EXPANDED = 3; 11338 COLLAPSED = 4; 11339 DISMISSED = 5; 11340 STACK_DISMISSED = 6; 11341 STACK_MOVED = 7; 11342 HEADER_GO_TO_APP = 8; 11343 HEADER_GO_TO_SETTINGS = 9; 11344 PERMISSION_OPT_IN = 10; 11345 PERMISSION_OPT_OUT = 11; 11346 PERMISSION_DIALOG_SHOWN = 12; 11347 SWIPE_LEFT = 13; 11348 SWIPE_RIGHT = 14; 11349 STACK_EXPANDED = 15; 11350 FLYOUT = 16; 11351 } 11352 optional Action action = 6; 11353 11354 // Normalized screen position of the bubble stack. The range is between 0 and 1. 11355 optional float normalized_x_position = 7; 11356 optional float normalized_y_position = 8; 11357 11358 // Whether the bubble is unread. If it is unread, a dot is shown in the bubble stack icon. 11359 optional bool is_unread = 9; 11360 11361 // Whether the bubble is an on-going one. 11362 optional bool is_ongoing = 10; 11363 11364 // Whether the bubble is produced by an app running in foreground. 11365 // This is deprecated and the value should be ignored. 11366 optional bool is_foreground = 11 [deprecated = true]; 11367} 11368 11369/** 11370 * Logs System UI bubbles developer errors. 11371 * 11372 * Logged from: 11373 * frameworks/base/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java 11374 */ 11375message BubbleDeveloperErrorReported { 11376 11377 // The app package that is posting the bubble. 11378 optional string package_name = 1; 11379 11380 // Bubble developer error type enums. 11381 enum Error { 11382 UNKNOWN = 0; 11383 ACTIVITY_INFO_MISSING = 1; 11384 ACTIVITY_INFO_NOT_RESIZABLE = 2; 11385 DOCUMENT_LAUNCH_NOT_ALWAYS = 3; 11386 } 11387 optional Error error = 2 [default = UNKNOWN]; 11388} 11389 11390/** 11391 * Logs that a job-specific constraint for a scheduled job has changed. 11392 * DeviceWideJobConstraintChanged will cover constraints that are normally the same for all jobs. 11393 * 11394 * Logged from: 11395 * frameworks/base/services/core/java/com/android/server/job/controllers/JobStatus.java 11396 */ 11397message ScheduledJobConstraintChanged { 11398 repeated AttributionNode attribution_node = 1; 11399 11400 // Name of the job. 11401 optional string job_name = 2; 11402 11403 optional com.android.server.job.ConstraintEnum constraint = 3; 11404 11405 enum State { 11406 UNKNOWN = 0; 11407 UNSATISFIED = 1; 11408 SATISFIED = 2; 11409 } 11410 optional State state = 4; 11411} 11412 11413/** 11414 * Logs that a device-state-level JobScheduler constraint has changed. This doesn't take individual 11415 * job or app characteristics into account. Individual jobs may have a different satisfaction value 11416 * based on special policies. Individual job constraints (eg. connectivity or prefetch) are not 11417 * logged in this atom. 11418 * 11419 * Logged from: 11420 * frameworks/base/services/core/java/com/android/server/job/controllers/<*>.java 11421 */ 11422message DeviceWideJobConstraintChanged { 11423 optional com.android.server.job.ConstraintEnum constraint = 1 [ 11424 (state_field_option).primary_field = true, 11425 (is_uid) = false 11426 ]; 11427 11428 enum State { 11429 UNKNOWN = 0; 11430 UNSATISFIED = 1; 11431 SATISFIED = 2; 11432 } 11433 optional State state = 2 [ 11434 (state_field_option).exclusive_state = true, 11435 (state_field_option).nested = false 11436 ]; 11437} 11438 11439/** 11440 * Logs PowerManagerService screen timeout resets (extensions) that happen when an attention check 11441 * returns true. 11442 * 11443 * Logged from: 11444 * frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java 11445 */ 11446message ScreenTimeoutExtensionReported { 11447 // Describes how many times in a row did the power manager reset the screen off timeout. 11448 optional uint32 consecutive_timeout_extended_count = 1; 11449} 11450 11451/* 11452* Logs number of milliseconds it takes to start a process. 11453* The definition of app process start time is from the app launch time to 11454* the time that Zygote finished forking the app process and loaded the 11455* application package's java classes. 11456 11457* This metric is different from AppStartOccurred which is for foreground 11458* activity only. 11459 11460* ProcessStartTime can report all processes (both foreground and background) 11461* start time. 11462* 11463* Logged from: 11464* frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java 11465*/ 11466message ProcessStartTime { 11467 // The uid of the ProcessRecord. 11468 optional int32 uid = 1 [(is_uid) = true]; 11469 11470 // The process pid. 11471 optional int32 pid = 2; 11472 11473 // The process name. 11474 // Usually package name, "system" for system server. 11475 // Provided by ActivityManagerService. 11476 // Do not fetch this field from device to save storage space, use uid field induced 11477 // package name as process name. 11478 optional string process_name = 3; 11479 11480 enum StartType { 11481 UNKNOWN = 0; 11482 WARM = 1; 11483 HOT = 2; 11484 COLD = 3; 11485 } 11486 11487 // The start type. 11488 optional StartType type = 4; 11489 11490 // The elapsed realtime at the start of the process. 11491 optional int64 process_start_time_millis = 5; 11492 11493 // Number of milliseconds it takes to reach bind application. 11494 optional int32 bind_application_delay_millis = 6; 11495 11496 // Number of milliseconds it takes to finish start of the process. 11497 optional int32 process_start_delay_millis = 7; 11498 11499 // hostingType field in ProcessRecord, the component type such as "activity", 11500 // "service", "content provider", "broadcast" or other strings. 11501 // deprecatd by enum type field hosting_type_id to reduce storage space usage by 11502 // string type. 11503 // Do not fetch this field from device to save storage space. 11504 optional string hosting_type = 8 [deprecated = true]; 11505 11506 // hostingNameStr field in ProcessRecord. The component class name that runs 11507 // in this process. 11508 // Do not fetch this field from device to save storage space. 11509 optional string hosting_name = 9; 11510 11511 // Broadcast action name. 11512 optional string broadcast_action_name = 10; 11513 11514 enum HostingTypeId { 11515 HOSTING_TYPE_UNKNOWN = 0; 11516 HOSTING_TYPE_ACTIVITY = 1; 11517 HOSTING_TYPE_ADDED_APPLICATION = 2; 11518 HOSTING_TYPE_BACKUP = 3; 11519 HOSTING_TYPE_BROADCAST = 4; 11520 HOSTING_TYPE_CONTENT_PROVIDER = 5; 11521 HOSTING_TYPE_LINK_FAIL = 6; 11522 HOSTING_TYPE_ON_HOLD = 7; 11523 HOSTING_TYPE_NEXT_ACTIVITY = 8; 11524 HOSTING_TYPE_NEXT_TOP_ACTIVITY = 9; 11525 HOSTING_TYPE_RESTART = 10; 11526 HOSTING_TYPE_SERVICE = 11; 11527 HOSTING_TYPE_SYSTEM = 12; 11528 HOSTING_TYPE_TOP_ACTIVITY = 13; 11529 HOSTING_TYPE_EMPTY = 14; 11530 } 11531 11532 optional HostingTypeId hosting_type_id = 11; 11533 11534 enum TriggerType { 11535 TRIGGER_TYPE_UNKNOWN = 0; 11536 TRIGGER_TYPE_ALARM = 1; 11537 TRIGGER_TYPE_PUSH_MESSAGE = 2; 11538 TRIGGER_TYPE_PUSH_MESSAGE_OVER_QUOTA = 3; 11539 TRIGGER_TYPE_JOB = 4; 11540 } 11541 11542 optional TriggerType trigger_type = 12; 11543} 11544 11545/** 11546 * Track Media Codec usage (nested proto version) 11547 * This atom is being deprecated in favor of MediaCodecReported which has a 11548 * flattened CodecData to enable field filtering. The data is identical 11549 * except MediaCodecReported also has the playback_duration field. 11550 * Logged from: 11551 * frameworks/av/media/libstagefright/MediaCodec.cpp 11552 * frameworks/av/services/mediaanalytics/statsd_codec.cpp 11553 */ 11554message MediametricsCodecReported { 11555 optional int64 timestamp_nanos = 1; 11556 optional string package_name = 2; 11557 optional int64 package_version_code = 3; 11558 optional int64 media_apex_version = 4; 11559 11560 optional android.stats.mediametrics_message.CodecData codec_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; 11561} 11562 11563/** 11564 * Track Media Codec usage 11565 * This atom is the new version of MediametricsCodecReported and has a 11566 * flattened CodecData to enable field filtering. The data is identical 11567 * except for the addition of the playback_duration field. 11568 * Logged from: 11569 * frameworks/av/media/libstagefright/MediaCodec.cpp 11570 * frameworks/av/services/mediaanalytics/statsd_codec.cpp 11571 * 11572 * Next Tag: 79 11573 */ 11574message MediaCodecReported { 11575 optional int64 timestamp_nanos = 1; 11576 // The inclusion of package name in a metric should be carefully analyzed to 11577 // determine if it is absolutely necessary for system health. It is strongly 11578 // discouraged to collect the package name along with other metrics (e.g. 11579 // playback duration). 11580 optional string package_name = 2; 11581 optional int64 package_version_code = 3; 11582 optional int64 media_apex_version = 4; 11583 // The name of the codec. 11584 // eg. `OMX.google.aac.decoder` 11585 optional string codec = 5; 11586 // The mime type. e.g. "audio/vorbis" 11587 optional string mime = 6; 11588 // The codec mode. i.e. video or audio. 11589 optional string mode = 7; 11590 // 1 if this is an encoder, 0 if this is a decoder. 11591 optional int32 encoder = 8; 11592 // 0, 1 11593 optional int32 secure = 9; 11594 // The video width in pixels. 11595 optional int32 width = 10; 11596 // The video height in pixels. 11597 optional int32 height = 11; 11598 // The rotation of the video in degrees 11599 // 0, 90, 180, 270 11600 optional int32 rotation = 12; 11601 // 1 if the codec uses crypto/drm, 0 otherwise. 11602 optional int32 crypto = 13; 11603 // The codec profile. The values are dependent on the codec type. 11604 // 0..n 11605 optional int32 profile = 14; 11606 // The coding level. The values are dependent on the codec type. 11607 // 0..n 11608 optional int32 level = 15; 11609 // The maximum allowed width during a particular codec session. 11610 // 0..n 11611 optional int32 max_width = 16; 11612 // The maximum allowed height during a particular codec session. 11613 // 0..n 11614 optional int32 max_height = 17; 11615 // Indicating which error condition caused the codec to reset to an 11616 // uninitialized state. 11617 optional int32 error_code = 18; 11618 // The error state. 11619 // The emitted values are descriptive: UNINITIALIZED, INITIALIZING, 11620 // INITIALIZED, CONFIGURING, CONFIGURED, STARTING, STARTED, FLUSHING, FLUSHED, 11621 // STOPPING, and RELEASING. 11622 // In the event of an internal codec error setting the state outside of these 11623 // values, the invalid value will be encoded as a string (e.g., “17”). 11624 optional string error_state = 19; 11625 // The max latency in us. 11626 // The latency is from the time when the MediaCodec sends the ‘raw’ frame to 11627 // the media codec service to when the decoded frame arrives back in 11628 // MediaCodec’s possession. 11629 optional int64 latency_max = 20; 11630 // The min latency in us. 11631 optional int64 latency_min = 21; 11632 // The average latency in us. 11633 optional int64 latency_avg = 22; 11634 // The number of buffers included in the avg/min/max calculation above. 11635 optional int64 latency_count = 23; 11636 // The number of packets received back from the code where a latency could not 11637 // be determined, and therefore they aren't included in the avg/min/max 11638 // calculations above. 11639 optional int64 latency_unknown = 24; 11640 // Error returned by queueInputBuffer. 11641 optional int32 queue_input_buffer_error = 25; 11642 // Error returned by queueSecureInputBuffer. 11643 optional int32 queue_secure_input_buffer_error = 26; 11644 // These modes are primarily for videos. 11645 // CQ = constant quality 11646 // CBR = constant bit rate 11647 // VBR = variable bitrate 11648 optional string bitrate_mode = 27; 11649 // The bitrate presented to the underlying codec, after any modifications by 11650 // the framework to ensure a minimum quality. 11651 // If the framework changed this, the app-requested bitrate is in 11652 // original_bitrate. 11653 optional int32 bitrate = 28; 11654 // 0..n 11655 optional int64 lifetime_millis = 29; 11656 optional int64 playback_duration_seconds = 30; 11657 optional string log_session_id = 31; 11658 optional int32 channel_count = 32; 11659 optional int32 sample_rate = 33; 11660 // Total bytes produced by an encoder. When divided by video_encode_duration_us 11661 // this yields the encoding's realized bitrate. 11662 optional int64 video_encode_bytes = 34; 11663 optional int64 video_encode_frames = 35; 11664 optional int64 video_input_bytes = 36; 11665 optional int64 video_input_frames = 37; 11666 // The duration of the encoded video; NOT the encoding process duration 11667 optional int64 video_encode_duration_us = 38; 11668 optional int32 color_format = 39; 11669 optional float frame_rate = 40; 11670 optional float capture_rate = 41; 11671 optional float operating_rate = 42; 11672 optional int32 priority = 43; 11673 optional int32 video_qp_i_min = 44; 11674 optional int32 video_qp_i_max = 45; 11675 optional int32 video_qp_p_min = 46; 11676 optional int32 video_qp_p_max = 47; 11677 optional int32 video_qp_b_min = 48; 11678 optional int32 video_qp_b_max = 49; 11679 // The app-requested bitrate, present only if the framework modified the 11680 // bitrate before passing it to the underlying codec. 11681 optional int32 original_bitrate = 50; 11682 optional int32 shaping_enhanced = 51; 11683 optional int32 original_video_qp_i_min = 52; 11684 optional int32 original_video_qp_i_max = 53; 11685 optional int32 original_video_qp_p_min = 54; 11686 optional int32 original_video_qp_p_max = 55; 11687 optional int32 original_video_qp_b_min = 56; 11688 optional int32 original_video_qp_b_max = 57; 11689 optional int32 config_color_standard = 58; 11690 optional int32 config_color_range = 59; 11691 optional int32 config_color_transfer = 60; 11692 optional int32 parsed_color_standard = 61; 11693 optional int32 parsed_color_range = 62; 11694 optional int32 parsed_color_transfer = 63; 11695 optional int32 hdr_static_info = 64; 11696 optional int32 hdr10_plus_info = 65; 11697 optional int32 hdr_format = 66; 11698 // Randomly generated Codec ID for: 11699 // - correlating MediaCodecStarted and MediaCodecStopped for 11700 // more codec configuration parameters. 11701 // @since U 11702 optional int64 codec_id = 67; 11703 optional int32 array_mode = 68; 11704 optional int32 operation_mode = 69; 11705 optional int32 output_surface = 70; 11706 optional int32 app_max_input_size = 71; 11707 optional int32 used_max_input_size = 72; 11708 optional int32 codec_max_input_size = 73; 11709 optional int32 flush_count = 74; 11710 optional int32 set_surface_count = 75; 11711 optional int32 resolution_change_count = 76; 11712 optional int32 component_color_format = 77; 11713 // caller_uid replaces packagename 11714 // @Since U-QPR2 11715 optional int32 caller_uid = 78 [(is_uid) = true]; 11716 optional int64 pixel_format = 79; 11717 // !!! WARNING 11718 // Keep synchronized with MediametricsCodecReported.CodecData in 11719 // mediametrics_message.proto. 11720 // Also keep AStatsEvent serialization synchronized in statsd_codec.cpp 11721 // !!! WARNING 11722} 11723 11724/** 11725 * Track Media Extractor (pulling video/audio streams out of containers) usage 11726 * Logged from: 11727 * frameworks/av/media/libstagefright/RemoteMediaExtractor.cpp 11728 * frameworks/av/services/mediaanalytics/statsd_extractor.cpp 11729 */ 11730message MediametricsExtractorReported { 11731 optional int64 timestamp_nanos = 1; 11732 optional string package_name = 2; 11733 optional int64 package_version_code = 3; 11734 optional int64 media_apex_version = 4; 11735 11736 optional android.stats.mediametrics_message.ExtractorData extractor_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; 11737} 11738 11739/** 11740 * Track MediaParser (parsing video/audio streams from containers) usage 11741 * Logged from: 11742 * 11743 * frameworks/av/services/mediametrics/statsd_mediaparser.cpp 11744 * frameworks/base/apex/media/framework/jni/android_media_MediaParserJNI.cpp 11745 */ 11746message MediametricsMediaParserReported { 11747 optional int64 timestamp_nanos = 1; 11748 optional string package_name = 2; 11749 optional int64 package_version_code = 3; 11750 11751 // MediaParser specific data. 11752 /** 11753 * The name of the parser selected for parsing the media, or an empty string 11754 * if no parser was selected. 11755 */ 11756 optional string parser_name = 4; 11757 /** 11758 * Whether the parser was created by name. 1 represents true, and 0 11759 * represents false. 11760 */ 11761 optional int32 created_by_name = 5; 11762 /** 11763 * The parser names in the sniffing pool separated by "|". 11764 */ 11765 optional string parser_pool = 6; 11766 /** 11767 * The fully qualified name of the last encountered exception, or an empty 11768 * string if no exception was encountered. 11769 */ 11770 optional string last_exception = 7; 11771 /** 11772 * The size of the parsed media in bytes, or -1 if unknown. Note this value 11773 * contains intentional random error to prevent media content 11774 * identification. 11775 */ 11776 optional int64 resource_byte_count = 8; 11777 /** 11778 * The duration of the media in milliseconds, or -1 if unknown. Note this 11779 * value contains intentional random error to prevent media content 11780 * identification. 11781 */ 11782 optional int64 duration_millis = 9; 11783 /** 11784 * The MIME types of the tracks separated by "|". 11785 */ 11786 optional string track_mime_types = 10; 11787 /** 11788 * The tracks' RFC 6381 codec strings separated by "|". 11789 */ 11790 optional string track_codecs = 11; 11791 /** 11792 * Concatenation of the parameters altered by the client, separated by "|". 11793 */ 11794 optional string altered_parameters = 12; 11795 /** 11796 * The video width in pixels, or -1 if unknown or not applicable. 11797 */ 11798 optional int32 video_width = 13; 11799 /** 11800 * The video height in pixels, or -1 if unknown or not applicable. 11801 */ 11802 optional int32 video_height = 14; 11803 /** 11804 * Session id for correlating playback metrics. 11805 */ 11806 optional string log_session_id = 15; 11807} 11808 11809/** 11810 * Track how we arbitrate between microphone/input requests. 11811 * Logged from 11812 * frameworks/av/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp 11813 * frameworks/av/services/mediaanalytics/statsd_audiopolicy.cpp 11814 */ 11815message MediametricsAudiopolicyReported { 11816 optional int64 timestamp_nanos = 1; 11817 optional string package_name = 2; 11818 optional int64 package_version_code = 3; 11819 optional int64 media_apex_version = 4; 11820 11821 optional android.stats.mediametrics_message.AudioPolicyData audiopolicy_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; 11822} 11823 11824/** 11825 * Track how we arbitrate between microphone requests. 11826 * Logged from 11827 * frameworks/av/media/libaudioclient/AudioRecord.cpp 11828 * frameworks/av/services/mediaanalytics/statsd_audiorecord.cpp 11829 */ 11830message MediametricsAudiorecordReported { 11831 optional int64 timestamp_nanos = 1; 11832 optional string package_name = 2; 11833 optional int64 package_version_code = 3; 11834 optional int64 media_apex_version = 4; 11835 11836 optional android.stats.mediametrics_message.AudioRecordData audiorecord_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; 11837 11838 // Android S 11839 // Metric log session id, a Base64Url encoded string of a randomly generated 128-bit integer. 11840 // An empty string means no session id is set. 11841 optional string log_session_id = 6; 11842} 11843 11844/** 11845 * Track how we arbitrate between microphone/input requests. 11846 * Logged from 11847 * frameworks/av/media/libnblog/ReportPerformance.cpp 11848 * frameworks/av/services/mediaanalytics/statsd_audiothread.cpp 11849 */ 11850message MediametricsAudiothreadReported { 11851 optional int64 timestamp_nanos = 1; 11852 optional string package_name = 2; 11853 optional int64 package_version_code = 3; 11854 optional int64 media_apex_version = 4; 11855 11856 optional android.stats.mediametrics_message.AudioThreadData audiothread_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; 11857} 11858 11859/** 11860 * Track how we arbitrate between microphone/input requests. 11861 * Logged from 11862 * frameworks/av/media/libaudioclient/AudioTrack.cpp 11863 * frameworks/av/services/mediaanalytics/statsd_audiotrack.cpp 11864 */ 11865message MediametricsAudiotrackReported { 11866 optional int64 timestamp_nanos = 1; 11867 optional string package_name = 2; 11868 optional int64 package_version_code = 3; 11869 optional int64 media_apex_version = 4; 11870 11871 optional android.stats.mediametrics_message.AudioTrackData audiotrack_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; 11872 11873 // Android S 11874 // Metric log session id, a Base64Url encoded string of a randomly generated 128-bit integer. 11875 // An empty string means no session id is set. 11876 optional string log_session_id = 6; 11877} 11878 11879/** 11880 * Track information about a MIDI Device. 11881 * This is logged when device connections close or devices are disconnected. 11882 * This is used to evaluate MIDI activity. 11883 * 11884 * Logged from 11885 * frameworks/av/services/mediametrics/AudioAnalytics.cpp 11886 */ 11887message MediametricsMidiDeviceCloseReported { 11888 // The UID of the app or service that disconnects the device 11889 optional int32 uid = 1 [(is_uid) = true]; 11890 // Device Id from MidiDeviceInfo. After a restart, this starts at 1 for the first device. 11891 // This increments each time a new MIDI device is added. 11892 // See Id in frameworks/base/media/java/android/media/midi/MidiDeviceInfo.java 11893 optional int32 midi_device_id = 2; 11894 // Input port count as defined in MidiDeviceInfo.java 11895 optional int32 input_port_count = 3; 11896 // Output port count as defined in MidiDeviceInfo.java 11897 optional int32 output_port_count = 4; 11898 // Type of device (USB, Virtual, Bluetooth) 11899 optional android.media.midi.MidiDeviceInfoType device_type = 5; 11900 // Whether the device is shared to other apps. Uses MidiDeviceInfo.isPrivate(). 11901 optional bool is_shared = 6; 11902 // Whether Universal MIDI Packets are used for this device by default. 11903 // Uses MidiDeviceInfo.getDefaultProtocol() 11904 optional bool supports_ump = 7; 11905 // Whether ALSA is used by this device. 11906 // Checks whether MidiDeviceInfo.getProperties() contains PROPERTY_ALSA_CARD. 11907 optional bool using_alsa = 8; 11908 // Duration in nanoseconds in which there was an open device connection. 11909 optional int64 duration_ns = 9; 11910 // Number of times this device had an add device connection attempt. 11911 optional int32 opened_count = 10; 11912 // Number of times this device had a remove device connection attempt. 11913 optional int32 closed_count = 11; 11914 // Whether the device has disconnected. 11915 optional bool device_disconnected = 12; 11916 // Number of bytes passed from the input ports of the device. 11917 optional int32 total_input_bytes = 13; 11918 // Number of bytes passed from the output ports of the device. 11919 optional int32 total_output_bytes = 14; 11920} 11921 11922/** 11923 * Track information about DRM framework performance 11924 * Logged from 11925 * frameworks/av/drm/libmediadrm/DrmHal.cpp 11926 * frameworks/av/services/mediaanalytics/statsd_drm.cpp 11927 */ 11928message MediametricsMediadrmReported { 11929 optional int64 timestamp_nanos = 1; 11930 optional string package_name = 2; 11931 optional int64 package_version_code = 3; 11932 optional int64 media_apex_version = 4; 11933 11934 // vendor+description tell about which DRM plugin is in use on this device 11935 optional string vendor = 5; 11936 optional string description = 6; 11937 // from frameworks/av/drm/libmediadrm/protos/metrics.proto 11938 optional bytes framework_stats = 7 [(android.os.statsd.log_mode) = MODE_BYTES]; 11939} 11940 11941/** 11942 * Track information about the widevine DRM plugin performance 11943 * Logged from 11944 * vendor/widevine/libwvdrmengine/cdm/metrics 11945 * frameworks/av/services/mediaanalytics/statsd_drm.cpp 11946 * 11947 * TODO b/182382094 -remove after migrated mediadrm metrics 11948 * reporting to statsd. 11949 */ 11950message MediametricsDrmWidevineReported { 11951 optional int64 timestamp_nanos = 1; 11952 optional string package_name = 2; 11953 optional int64 package_version_code = 3; 11954 optional int64 media_apex_version = 4; 11955 11956 optional bytes vendor_specific_stats = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; 11957} 11958 11959/** 11960 * Track information about recordings (e.g. camcorder) 11961 * Logged from 11962 * frameworks/av/media/libmediaplayerservice/StagefrightRecorder.cpp 11963 * frameworks/av/services/mediaanalytics/statsd_recorder.cpp 11964 */ 11965message MediametricsRecorderReported { 11966 optional int64 timestamp_nanos = 1; 11967 optional string package_name = 2; 11968 optional int64 package_version_code = 3; 11969 optional int64 media_apex_version = 4; 11970 11971 optional android.stats.mediametrics_message.RecorderData recorder_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; 11972} 11973 11974/** 11975 * Track Media Player usage 11976 * Logged from: 11977 * frameworks/av/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp 11978 * frameworks/av/services/mediaanalytics/statsd_nuplayer.cpp 11979 */ 11980message MediametricsNuPlayerReported { 11981 optional int64 timestamp_nanos = 1; 11982 optional string package_name = 2; 11983 optional int64 package_version_code = 3; 11984 optional int64 media_apex_version = 4; 11985 11986 optional android.stats.mediametrics_message.NuPlayerData nuplayer_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; 11987} 11988 11989/** 11990 * Track Legacy DRM usage 11991 * Logged from 11992 * frameworks/av/drm/drmserver/DrmManager.cpp 11993 */ 11994message MediametricsDrmManagerReported { 11995 optional int64 timestamp_nanos = 1; 11996 optional string package_name = 2; 11997 optional int64 package_version_code = 3; 11998 optional int64 media_apex_version = 4; 11999 12000 enum Method { 12001 METHOD_NOT_FOUND = -1; 12002 GET_CONSTRAINTS = 0; 12003 GET_METADATA = 1; 12004 CAN_HANDLE = 2; 12005 PROCESS_DRM_INFO = 3; 12006 ACQUIRE_DRM_INFO = 4; 12007 SAVE_RIGHTS = 5; 12008 GET_ORIGINAL_MIME_TYPE = 6; 12009 GET_DRM_OBJECT_TYPE = 7; 12010 CHECK_RIGHTS_STATUS = 8; 12011 REMOVE_RIGHTS = 9; 12012 REMOVE_ALL_RIGHTS = 10; 12013 OPEN_CONVERT_SESSION = 11; 12014 OPEN_DECRYPT_SESSION = 12; 12015 } 12016 12017 // plugin_id+description inform which Legacy DRM plugins are still in use on device 12018 optional string plugin_id = 5; 12019 optional string description = 6; 12020 optional Method method = 7; 12021 optional string mime_types = 8; 12022 12023 optional int64 get_constraints_count = 9; 12024 optional int64 get_metadata_count = 10; 12025 optional int64 can_handle_count = 11; 12026 optional int64 process_drm_info_count = 12; 12027 optional int64 acquire_drm_info_count = 13; 12028 optional int64 save_rights_count = 14; 12029 optional int64 get_original_mime_type_count = 15; 12030 optional int64 get_drm_object_type_count = 16; 12031 optional int64 check_rights_status_count = 17; 12032 optional int64 remove_rights_count = 18; 12033 optional int64 remove_all_rights_count = 19; 12034 optional int64 open_convert_session_count = 20; 12035 optional int64 open_decrypt_session_count = 21; 12036} 12037 12038/** 12039 * State of a all permission requested by a all package 12040 * Pulled from: StatsCompanionService 12041*/ 12042message DangerousPermissionState { 12043 // Name of the permission 12044 optional string permission_name = 1; 12045 12046 // Uid of the package 12047 optional int32 uid = 2 [(is_uid) = true]; 12048 12049 // Package requesting the permission 12050 optional string package_name = 3; 12051 12052 // If the permission is granted to the uid 12053 optional bool is_granted = 4; 12054 12055 // Permission flags as per android.content.pm.PermissionFlags 12056 optional int32 permission_flags = 5; 12057 12058 // Permission protection flags as per android.content.pm.PermissionInfo.ProtectionFlags 12059 optional int32 protection_flags = 6; 12060} 12061 12062/** 12063 * Logs when a package is denied access to a device identifier based on the new access requirements. 12064 * 12065 * Logged from: 12066 * frameworks/base/telephony/java/com/android/internal/telephony/TelephonyPermissions.java 12067 */ 12068message DeviceIdentifierAccessDenied { 12069 // The name of the package denied access to the requested device identifier. 12070 optional string package_name = 1; 12071 12072 // The name of the device identifier method the package attempted to invoke. 12073 optional string method_name = 2; 12074 12075 // True if the package is preinstalled. 12076 // Starting from Android 11, this boolean is not set and will always be false. 12077 optional bool is_preinstalled = 3 [deprecated = true]; 12078 12079 // True if the package is privileged. 12080 // Starting from Android 11, this boolean is not set and will always be false. 12081 optional bool is_priv_app = 4 [deprecated = true]; 12082} 12083 12084/** 12085 * Pulls the ongoing mainline install train version code. 12086 * Pulled from StatsCompanionService 12087 */ 12088message TrainInfo { 12089 optional int64 train_version_code = 1; 12090 12091 optional TrainExperimentIds train_experiment_id = 2 [(log_mode) = MODE_BYTES]; 12092 12093 optional string train_name = 3; 12094 12095 enum Status { 12096 UNKNOWN = 0; 12097 INSTALL_REQUESTED = 1; 12098 INSTALL_STARTED = 2; 12099 INSTALL_STAGED_NOT_READY = 3; 12100 INSTALL_STAGED_READY = 4; 12101 INSTALL_SUCCESS = 5; 12102 // Replaced by INSTALL_FAILURE_DOWNLOAD, INSTALL_FAILURE_STATE_MISMATCH, 12103 // and INSTALL_FAILURE_COMMIT. 12104 INSTALL_FAILURE = 6 [deprecated = true]; 12105 // This enum is for installs that are manually cancelled via the Manual Update UI. 12106 INSTALL_CANCELLED = 7; 12107 INSTALLER_ROLLBACK_REQUESTED = 8; 12108 INSTALLER_ROLLBACK_INITIATED = 9; 12109 INSTALLER_ROLLBACK_INITIATED_FAILURE = 10; 12110 INSTALLER_ROLLBACK_STAGED = 11; 12111 INSTALLER_ROLLBACK_STAGED_FAILURE = 12; 12112 INSTALLER_ROLLBACK_BOOT_TRIGGERED = 13; 12113 INSTALLER_ROLLBACK_BOOT_TRIGGERED_FAILURE = 14; 12114 INSTALLER_ROLLBACK_SUCCESS = 15; 12115 INSTALLER_ROLLBACK_FAILURE = 16; 12116 INSTALLER_ROLLBACK_STAGED_CANCEL_REQUESTED = 17; 12117 INSTALLER_ROLLBACK_STAGED_CANCEL_SUCCESS = 18; 12118 INSTALLER_ROLLBACK_STAGED_CANCEL_FAILURE = 19; 12119 INSTALL_STAGED_CANCEL_REQUESTED = 20; 12120 INSTALL_STAGED_CANCEL_SUCCESS = 21; 12121 INSTALL_STAGED_CANCEL_FAILURE = 22; 12122 INSTALL_FAILURE_DOWNLOAD = 23; 12123 INSTALL_FAILURE_STATE_MISMATCH = 24; 12124 INSTALL_FAILURE_COMMIT = 25; 12125 REBOOT_TRIGGERED = 26; 12126 } 12127 optional Status status = 4; 12128} 12129 12130/* 12131 * Information about the time zone data on a device. 12132 */ 12133message TimeZoneDataInfo { 12134 // A version identifier for the data set on device. e.g. "2018i" 12135 optional string tzdb_version = 1; 12136} 12137 12138/** 12139 * Logs the GPU stats global health information. 12140 * 12141 * Logged from: 12142 * frameworks/native/services/gpuservice/gpustats/ 12143 */ 12144message GpuStatsGlobalInfo { 12145 // Package name of the gpu driver. 12146 optional string driver_package_name = 1; 12147 12148 // Version name of the gpu driver. 12149 optional string driver_version_name = 2; 12150 12151 // Version code of the gpu driver. 12152 optional int64 driver_version_code = 3; 12153 12154 // Build time of the gpu driver in UTC as seconds since January 1, 1970. 12155 optional int64 driver_build_time = 4; 12156 12157 // Total count of the gl driver gets loaded. 12158 optional int64 gl_loading_count = 5; 12159 12160 // Total count of the gl driver fails to be loaded. 12161 optional int64 gl_loading_failure_count = 6; 12162 12163 // Total count of the Vulkan driver gets loaded. 12164 optional int64 vk_loading_count = 7; 12165 12166 // Total count of the Vulkan driver fails to be loaded. 12167 optional int64 vk_loading_failure_count = 8; 12168 12169 // Api version of the system Vulkan driver. 12170 optional int32 vulkan_version = 9; 12171 12172 // Api version of the system CPU Vulkan driver. 12173 optional int32 cpu_vulkan_version = 10; 12174 12175 // Api version of the system GLES driver. 12176 optional int32 gles_version = 11; 12177 12178 // Total count of the angle driver gets loaded. 12179 optional int64 angle_loading_count = 12; 12180 12181 // Total count of the angle driver fails to be loaded. 12182 optional int64 angle_loading_failure_count = 13; 12183} 12184 12185/** 12186 * GPU driver loading time info. 12187 */ 12188message GpuDriverLoadingTime { 12189 // List of all the driver loading times for this app. The list size is 12190 // capped at 16 (GpuStats::MAX_NUM_LOADING_TIMES). 12191 repeated int64 driver_loading_time = 1; 12192} 12193 12194/** 12195 * Logs the GPU stats per app health information. 12196 * 12197 * Logged from: 12198 * frameworks/native/services/gpuservice/gpustats/ 12199 */ 12200message GpuStatsAppInfo { 12201 // Package name of the application that loads the gpu driver. Total number 12202 // of different packages is capped at 100. 12203 optional string app_package_name = 1; 12204 12205 // Version code of the gpu driver this app loads. 12206 optional int64 driver_version_code = 2; 12207 12208 // gl driver loading time info. 12209 optional GpuDriverLoadingTime gl_driver_loading_time = 3 12210 [(android.os.statsd.log_mode) = MODE_BYTES]; 12211 12212 // Vulkan driver loading time info. 12213 optional GpuDriverLoadingTime vk_driver_loading_time = 4 12214 [(android.os.statsd.log_mode) = MODE_BYTES]; 12215 12216 // Angle driver loading time info. 12217 optional GpuDriverLoadingTime angle_driver_loading_time = 5 12218 [(android.os.statsd.log_mode) = MODE_BYTES]; 12219 12220 // CPU Vulkan implementation is in use. 12221 optional bool cpu_vulkan_in_use = 6; 12222 12223 // App is not doing pre-rotation correctly. 12224 optional bool false_prerotation = 7; 12225 12226 // App creates GLESv1 context. 12227 optional bool gles_1_in_use = 8; 12228 12229 // ANGLE in use for the app. 12230 optional bool angle_in_use = 9; 12231 12232 // App created a GLES context. 12233 // Introduced in Android 14. 12234 optional bool created_gles_context = 10; 12235 12236 // App created a Vulkan device. 12237 // Introduced in Android 14. 12238 optional bool created_vulkan_device = 11; 12239 12240 // App created a Vulkan swapchain. 12241 // Introduced in Android 14. 12242 optional bool created_vulkan_swapchain = 12; 12243 12244 // Vulkan API version information from applicationInfo. 12245 // Introduced in Android 14. 12246 optional int32 vulkan_api_version = 13; 12247 12248 // Bitmask of enabled features when creating Vulkan devices. 12249 // Introduced in Android 14. 12250 optional int64 vulkan_device_features_enabled = 14; 12251 12252 // Hash values of enabled Vulkan instance extensions. 12253 // The list size is capped at 100 (GpuStatsAppInfo::MAX_NUM_EXTENSIONS). 12254 // Introduced in Android 14. 12255 repeated int32 vulkan_instance_extensions_enabled = 15; 12256 12257 // Hash values of enabled Vulkan device extensions. 12258 // The list size is capped at 100 (GpuStatsAppInfo::MAX_NUM_EXTENSIONS). 12259 // Introduced in Android 14. 12260 repeated int32 vulkan_device_extensions_enabled = 16; 12261 12262 // Hash values of engine name from VkApplicationInfo 12263 repeated string vulkan_engine_names = 17; 12264} 12265 12266/* 12267 * Logs the size of the system ion heap. 12268 * 12269 * Pulled from StatsCompanionService. 12270 */ 12271message SystemIonHeapSize { 12272 // Deprecated due to limited support of ion stats in debugfs. 12273 // Use `IonHeapSize` instead. 12274 option deprecated = true; 12275 12276 // Size of the system ion heap in bytes. 12277 // Read from debugfs. 12278 optional int64 size_in_bytes = 1; 12279} 12280 12281/* 12282 * Logs the total size of the ion heap. 12283 * 12284 * Pulled from StatsCompanionService. 12285 */ 12286message IonHeapSize { 12287 // Total size of all ion heaps in kilobytes. 12288 // Read from: /sys/kernel/ion/total_heaps_kb. 12289 optional int32 total_size_kb = 1; 12290} 12291 12292/* 12293 * Logs the per-process size of the system ion heap. 12294 * 12295 * Pulled from StatsCompanionService. 12296 */ 12297message ProcessSystemIonHeapSize { 12298 // The uid if available. -1 means not available. 12299 optional int32 uid = 1 [(is_uid) = true]; 12300 12301 // The process name (from /proc/PID/cmdline). 12302 optional string process_name = 2; 12303 12304 // Sum of sizes of all allocations. 12305 optional int32 total_size_in_kilobytes = 3; 12306 12307 // Number of allocations. 12308 optional int32 allocation_count = 4; 12309 12310 // Size of the largest allocation. 12311 optional int32 max_size_in_kilobytes = 5; 12312} 12313 12314/* 12315 * Logs system-wide (primarily kernel) memory stats. Sourced from 12316 * /proc/meminfo unless explicitly stated otherwise. 12317 * 12318 * Pulled from StatsCompanionService. 12319 */ 12320message SystemMemory { 12321 // /proc/meminfo SUnreclaim 12322 optional int32 unreclaimable_slab_kb = 1; 12323 12324 // /proc/meminfo VmallocUsed 12325 optional int32 vmalloc_used_kb = 2; 12326 12327 // /proc/meminfo PageTables 12328 optional int32 page_tables_kb = 3; 12329 12330 // /proc/meminfo KernelStack 12331 optional int32 kernel_stack_kb = 4; 12332 12333 // Total unreclaimable ion. 12334 // Reported from os.Debug.getIonHeapsSizeKb (R+) 12335 optional int32 total_ion_kb = 5; 12336 12337 // Measures for the amount of memory we could not account for. 12338 // Essentially points to kernel allocations (as all userspace allocs are 12339 // already tracked). 12340 // Device-specific. 12341 optional int32 unaccounted_kb = 6; 12342 12343 // GPU kernel driver allocations. 12344 // Can overlap with ion memory. 12345 // Reported from os.Debug.getGpuTotalUsageKb (S+) 12346 optional int32 gpu_total_usage_kb = 7; 12347 12348 // GPU kernel driver private allocations. 12349 // Does not overlap with ion memory 12350 // Computed as total usage - Debug.getGpuDmaBufUsageKb() 12351 // Only available on supported kernel versions (5.4+) 12352 optional int32 gpu_private_usage_kb = 8; 12353 12354 // Total DMABUF memory allocations 12355 // Reported from os.Debug.getDmabufTotalExportedKb (S+) 12356 optional int32 dmabuf_total_exported_kb = 9; 12357 12358 // Total shmem allocations 12359 optional int32 shmem_kb = 10; 12360 12361 // Total usable memory 12362 optional int32 total_kb = 11; 12363 12364 // Memory not in use 12365 optional int32 free_kb = 12; 12366 12367 // Memory available for starting new applications without swapping 12368 optional int32 available_kb = 13; 12369 12370 // Memory in active use 12371 optional int32 active_kb = 14; 12372 12373 // Memory not in active use (swappable/reclaimable) 12374 optional int32 inactive_kb = 15; 12375 12376 // Anonymous memory in active use 12377 optional int32 active_anon_kb = 16; 12378 12379 // Anonymous memory not in active use 12380 optional int32 inactive_anon_kb = 17; 12381 12382 // Page cache memory in active use 12383 optional int32 active_file_kb = 18; 12384 12385 // Page cache memory not in active use 12386 optional int32 inactive_file_kb = 19; 12387 12388 // Total swap 12389 optional int32 swap_total_kb = 20; 12390 12391 // Free swap 12392 optional int32 swap_free_kb = 21; 12393 12394 // Total amount of CMA reserved for the kernel 12395 optional int32 cma_total_kb = 22; 12396 12397 // CMA free for the kernel to use 12398 optional int32 cma_free_kb = 23; 12399} 12400 12401/* 12402 * Log dmabuf memory retained by userspace processes. 12403 * Pulled from StatsPullAtomService. 12404 */ 12405 message ProcessDmabufMemory { 12406 // The uid if available. -1 means not available. 12407 optional int32 uid = 1 [(is_uid) = true]; 12408 12409 // The process name (from ActivityManager). 12410 optional string process_name = 2; 12411 12412 // OOM adj score. 12413 optional int32 oom_adj_score = 3; 12414 12415 // Size of dmabufs retained by the process. The buffers are either mapped, 12416 // retained via an fd, or both. 12417 // Only available on supported kernel versions (5.4+). When unavailable, set 12418 // to -1. 12419 optional int32 retained_dmabuf_kb = 4; 12420 12421 // Number of buffers retained by the process (mapped / fd). 12422 // Only available on supported kernel versions (5.4+). When unavailable, set 12423 // to -1. 12424 optional int32 retained_dmabuf_count = 5; 12425 12426 // Size of dmabufs mapped to the process address space. 12427 optional int32 mapped_dmabuf_kb = 6 [deprecated = true]; 12428 12429 // Number of dmabufs mapped to the process address space. 12430 optional int32 mapped_dmabuf_count = 7 [deprecated = true]; 12431 12432 // Size of dmabufs mapped to the process address space that are also 12433 // mapped to the SurfaceFlinger address space. This indicates memory 12434 // being used by graphics compositing layers. If this data row pertains 12435 // to SurfaceFlinger itself, then the below field holds the size of all 12436 // dmabuifs that are shared with any other process. The delta between 12437 // this field and retained_dmabuf_kb, above, is private dmabufs that 12438 // SurfaceFlinger is holding but are not shared with other processes. 12439 optional int32 surfaceflinger_shared_dmabuf_kb = 8; 12440 // As above, but total number of all dmabufs shared with SurfaceFlinger. 12441 optional int32 surfaceflinger_shared_dmabuf_count = 9; 12442} 12443 12444/** 12445 * Push network stack events. 12446 * 12447 * Log from: 12448 * frameworks/base/packages/NetworkStack/ 12449 */ 12450message NetworkStackReported { 12451 // The id that indicates the event reported from NetworkStack. 12452 optional int32 event_id = 1; 12453 // The data for the reported events. 12454 optional android.stats.connectivity.NetworkStackEventData network_stack_event = 2 [(log_mode) = MODE_BYTES]; 12455} 12456 12457/** 12458 * Logs the apps that are installed on the external storage. 12459 * Pulled from: 12460 * StatsCompanionService 12461 */ 12462message AppsOnExternalStorageInfo { 12463 // The type of the external storage. 12464 optional android.stats.storage.ExternalStorageType external_storage_type = 1; 12465 // The name of the package that is installed on the external storage. 12466 optional string package_name = 2; 12467} 12468 12469/** 12470 * Logs the settings related to Face. 12471 * Logged from: 12472 * frameworks/base/services/core/java/com/android/server/stats 12473 */ 12474message FaceSettings { 12475 // Whether or not face unlock is allowed on Keyguard. 12476 optional bool unlock_keyguard_enabled = 1; 12477 // Whether or not face unlock dismisses the Keyguard. 12478 optional bool unlock_dismisses_keyguard = 2; 12479 // Whether or not face unlock requires attention. 12480 optional bool unlock_attention_required = 3; 12481 // Whether or not face unlock is allowed for apps (through BiometricPrompt). 12482 optional bool unlock_app_enabled = 4; 12483 // Whether or not face unlock always requires user confirmation. 12484 optional bool unlock_always_require_confirmation = 5; 12485 // Whether or not a diverse set of poses are required during enrollment. 12486 optional bool unlock_diversity_required = 6; 12487} 12488 12489/** 12490 * Logs cooling devices maintained by the kernel. 12491 * 12492 * Pulled from StatsCompanionService.java 12493 */ 12494message CoolingDevice { 12495 // The type of cooling device being reported. Eg. CPU, GPU... 12496 optional android.os.CoolingTypeEnum device_location = 1; 12497 // The name of the cooling device source. Eg. CPU0 12498 optional string device_name = 2; 12499 // Current throttle state of the cooling device. The value can any unsigned 12500 // integer between 0 and max_state defined in its driver. 0 means device is 12501 // not in throttling, higher value means deeper throttling. 12502 optional int32 state = 3; 12503} 12504 12505/** 12506 * Intelligence has several counter-type events that don't warrant a 12507 * full separate atom. These are primarily API call counters but also include 12508 * counters for feature usage and specific failure modes. 12509 * 12510 * Logged from the Intelligence mainline module. 12511 */ 12512message IntelligenceEventReported { 12513 // The event type. 12514 optional android.stats.intelligence.EventType event_id = 1; 12515 // Success, failure. 12516 optional android.stats.intelligence.Status status = 2; 12517 // How many times the event occured (to report a batch of high frequency events). 12518 optional int32 count = 3; 12519 // How long the event took (sum of durations if count > 1) 12520 optional int64 duration_millis = 4; 12521} 12522 12523/** 12524 * Logs when Car Power state changed. 12525 * 12526 * Logged from: 12527 * packages/services/Car/service/src/com/android/car/CarStatsLog.java 12528 */ 12529message CarPowerStateChanged { 12530 // States come from CpmsState in CarPowerManagementService.java. 12531 enum State { 12532 WAIT_FOR_VHAL = 0; 12533 ON = 1; 12534 SHUTDOWN_PREPARE = 2; 12535 WAIT_FOR_FINISH = 3; 12536 SUSPEND = 4; 12537 SIMULATE_SLEEP = 5; 12538 SIMULATE_HIBERNATION = 6; 12539 } 12540 optional State state = 1; 12541} 12542 12543/** 12544 * Logs when Car User Hal is requested to switch/create/remove user. 12545 * 12546 * Logged from: 12547 * packages/services/Car/service/src/com/android/car/hal/UserHalService.java 12548 */ 12549message CarUserHalModifyUserRequestReported { 12550 // Request id for the request. 12551 optional int32 request_id = 1; 12552 // Request type. 12553 enum RequestType { 12554 UNKNOWN = 0; 12555 // Car user manager requested user switch. 12556 SWITCH_REQUEST_ANDROID = 1; 12557 // OEM requested User switch. 12558 SWITCH_REQUEST_OEM = 2; 12559 // Hal switch requested after android switch using activity manager. 12560 SWITCH_REQUEST_LEGACY = 3; 12561 // Create User 12562 CREATE_REQUEST = 4; 12563 // Remove User 12564 REMOVE_REQUEST = 5; 12565 } 12566 optional RequestType request_type = 2; 12567 // Android User id of the current user which can only be 0, 10, 11 and so on. 12568 // -1 if not available. 12569 optional int32 user_id = 3; 12570 // VHAL flags of the current user. (-1 if not available) 12571 optional int32 user_flags = 4; 12572 // Android User id of the target user for switch/create/remove. It can only 12573 // be 0, 10, 11 and so on. -1 if not available. 12574 optional int32 target_user_id = 5; 12575 // VHAL flags of the target user for switch/create/remove. (-1 if not available) 12576 optional int32 target_user_flags = 6; 12577 // Request timeout Milliseconds (-1 if not available) 12578 optional int32 timeout_millis = 7; 12579} 12580 12581/** 12582 * Logs when Car User Hal responds to switch/create user request. 12583 * 12584 * Logged from: 12585 * packages/services/Car/service/src/com/android/car/hal/UserHalService.java 12586 */ 12587message CarUserHalModifyUserResponseReported { 12588 // Request id of the request associated with the response. 12589 optional int32 request_id = 1; 12590 // Car user hal callback status. 12591 enum CallbackStatus { 12592 UNKNOWN = 0; 12593 // Hal response was invalid. 12594 INVALID = 1; 12595 // Hal response was ok. 12596 OK = 2; 12597 // Hal timeout during set call. 12598 HAL_SET_TIMEOUT = 3; 12599 // Hal response timeout. 12600 HAL_RESPONSE_TIMEOUT = 4; 12601 // Hal responded with wrong info. 12602 WRONG_HAL_RESPONSE = 5; 12603 // Hal is processing multiple requests simultaneously. 12604 CONCURRENT_OPERATION = 6; 12605 } 12606 optional CallbackStatus callback_status = 2; 12607 12608 // Hal request status for user switch/create/remove. 12609 enum HalRequestStatus { 12610 UNSPECIFIED = 0; 12611 // Hal request for user switch/create is successful. 12612 SUCCESS = 1; 12613 // Hal request for user switch/create failed. 12614 FAILURE = 2; 12615 } 12616 optional HalRequestStatus request_status = 3; 12617} 12618 12619/** 12620 * Logs when post switch response is posted to Car User Hal. 12621 * 12622 * Logged from: 12623 * packages/services/Car/service/src/com/android/car/hal/UserHalService.java 12624 */ 12625message CarUserHalPostSwitchResponseReported { 12626 // Request id. 12627 optional int32 request_id = 1; 12628 12629 // Android user switch status. 12630 enum UserSwitchStatus { 12631 UNKNOWN = 0; 12632 // Android user switch is successful. 12633 SUCCESS = 1; 12634 // Android user switch failed. 12635 FAILURE = 2; 12636 } 12637 optional UserSwitchStatus switch_status = 2; 12638} 12639 12640/** 12641 * Logs when initial user information is requested from Car User Hal. 12642 * 12643 * Logged from: 12644 * packages/services/Car/service/src/com/android/car/hal/UserHalService.java 12645 */ 12646message CarUserHalInitialUserInfoRequestReported { 12647 // Request id for the request. 12648 optional int32 request_id = 1; 12649 12650 // Request type for initial user information. 12651 enum InitialUserInfoRequestType { 12652 UNKNOWN = 0; 12653 // At the first time Android was booted (or after a factory reset). 12654 FIRST_BOOT = 1; 12655 // At the first time Android was booted after the system was updated. 12656 FIRST_BOOT_AFTER_OTA = 2; 12657 // When Android was booted "from scratch". 12658 COLD_BOOT = 3; 12659 // When Android was resumed after the system was suspended to memory. 12660 RESUME = 4; 12661 } 12662 optional InitialUserInfoRequestType request_type = 2; 12663 // Request timeout Milliseconds (-1 if not available) 12664 optional int32 timeout_millis = 3; 12665} 12666 12667/** 12668 * Logs when Car User Hal responds to initial user information requests. 12669 * 12670 * Logged from: 12671 * packages/services/Car/service/src/com/android/car/hal/UserHalService.java 12672 */ 12673message CarUserHalInitialUserInfoResponseReported { 12674 // Request id of the request associated with the response. 12675 optional int32 request_id = 1; 12676 // Car user hal callback status. 12677 enum CallbackStatus { 12678 UNKNOWN = 0; 12679 // Hal response was invalid. 12680 INVALID = 1; 12681 // Hal response was ok. 12682 OK = 2; 12683 // Hal timeout during set call. 12684 HAL_SET_TIMEOUT = 3; 12685 // Hal response timeout. 12686 HAL_RESPONSE_TIMEOUT = 4; 12687 // Hal responded with wrong info. 12688 WRONG_HAL_RESPONSE = 5; 12689 // Hal is processing multiple requests simultaneously. 12690 CONCURRENT_OPERATION = 6; 12691 } 12692 optional CallbackStatus callback_status = 2; 12693 // Response for initial user information request. 12694 enum InitialUserInfoResponseAction { 12695 UNSPECIFIED = 0; 12696 // Let the Android System decide what to do. 12697 DEFAULT = 1; 12698 // Switch to an existing Android user. 12699 SWITCH = 2; 12700 // Create a new Android user (and switch to it). 12701 CREATE = 3; 12702 } 12703 optional InitialUserInfoResponseAction response_action = 3; 12704 // Android User id of the target user which can only be 0, 10, 11 and so on. 12705 // -1 if not available. 12706 optional int32 target_user = 4; 12707 // VHAL flags of the current user. (-1 if not available) 12708 optional int32 target_user_flags = 5; 12709 // User locales 12710 optional string user_locales = 6; 12711} 12712 12713/** 12714 * Logs when set user association is requested from Car User Hal. 12715 * 12716 * Logged from: 12717 * packages/services/Car/service/src/com/android/car/hal/UserHalService.java 12718 */ 12719message CarUserHalUserAssociationRequestReported { 12720 // Request id for the request. 12721 optional int32 request_id = 1; 12722 // Request type. 12723 enum RequestType { 12724 UNKNOWN = 0; 12725 // For setting user association information. 12726 SET = 1; 12727 // For getting user association information. 12728 GET = 2; 12729 } 12730 optional RequestType request_type = 2; 12731 // Android User id of the current user which can only be 0, 10, 11 and so on. 12732 // -1 if not available. 12733 optional int32 current_user_id = 3; 12734 // VHAL flags of the current user. (-1 if not available) 12735 optional int32 current_user_flags = 4; 12736 // Number of the set associations requested. 12737 optional int32 number_associations = 5; 12738 // Concatenated string for the types from set associations request. 12739 // This is a string converted from an array of integers. 12740 optional string user_identification_association_types = 6; 12741 // Concatenated string for the values from set associations request. 12742 // This is a string converted from an array of integers. 12743 optional string user_identification_association_values = 7; 12744} 12745 12746/** 12747 * Logs when Car User Hal responds to set user association requests. 12748 * 12749 * Logged from: 12750 * packages/services/Car/service/src/com/android/car/hal/UserHalService.java 12751 */ 12752message CarUserHalSetUserAssociationResponseReported { 12753 // Request id of the request associated with the response. 12754 optional int32 request_id = 1; 12755 // Car user hal callback status. 12756 enum CallbackStatus { 12757 UNKNOWN = 0; 12758 // Hal response was invalid. 12759 INVALID = 1; 12760 // Hal response was ok. 12761 OK = 2; 12762 // Hal timeout during set call. 12763 HAL_SET_TIMEOUT = 3; 12764 // Hal response timeout. 12765 HAL_RESPONSE_TIMEOUT = 4; 12766 // Hal responded with wrong info. 12767 WRONG_HAL_RESPONSE = 5; 12768 // Hal is processing multiple requests simultaneously. 12769 CONCURRENT_OPERATION = 6; 12770 } 12771 optional CallbackStatus callback_status = 2; 12772 // Number of the set associations in the response. 12773 optional int32 number_associations = 3; 12774 // Concatenated string for the types from set associations request. 12775 // This is a string converted from an array of integers. 12776 optional string user_identification_association_types = 4; 12777 // Concatenated string for the values from set associations request. 12778 // This is a string converted from an array of integers. 12779 optional string user_identification_association_values = 5; 12780} 12781 12782/** 12783 * Logs whether GarageMode is entered. 12784 * 12785 * Logged from: 12786 * packages/services/Car/service/src/com/android/car/CarStatsLog.java 12787 */ 12788message GarageModeInfo { 12789 // Whether GarageMode is entered. 12790 optional bool is_garage_mode = 1; 12791} 12792 12793/** 12794 * Historical app ops data per package. 12795 */ 12796message AppOps { 12797 // Uid of the package requesting the op 12798 optional int32 uid = 1 [(is_uid) = true]; 12799 12800 // Name of the package performing the op 12801 optional string package_name = 2; 12802 12803 // operation id 12804 optional android.app.AppOpEnum op_id = 3 [default = APP_OP_NONE]; 12805 12806 // The number of times the op was granted while the app was in the 12807 // foreground (only for trusted requests) 12808 optional int64 trusted_foreground_granted_count = 4; 12809 12810 // The number of times the op was granted while the app was in the 12811 // background (only for trusted requests) 12812 optional int64 trusted_background_granted_count = 5; 12813 12814 // The number of times the op was rejected while the app was in the 12815 // foreground (only for trusted requests) 12816 optional int64 trusted_foreground_rejected_count = 6; 12817 12818 // The number of times the op was rejected while the app was in the 12819 // background (only for trusted requests) 12820 optional int64 trusted_background_rejected_count = 7; 12821 12822 // For long-running operations, total duration of the operation 12823 // while the app was in the foreground (only for trusted requests) 12824 optional int64 trusted_foreground_duration_millis = 8; 12825 12826 // For long-running operations, total duration of the operation 12827 // while the app was in the background (only for trusted requests) 12828 optional int64 trusted_background_duration_millis = 9; 12829 12830 // Whether AppOps is guarded by Runtime permission 12831 optional bool is_runtime_permission = 10; 12832} 12833 12834/** 12835 * Historical app ops data per package and attribution tag. 12836 */ 12837message AttributedAppOps { 12838 // Uid of the package requesting the op 12839 optional int32 uid = 1 [(is_uid) = true]; 12840 12841 // Name of the package performing the op 12842 optional string package_name = 2; 12843 12844 // tag; provided by developer when accessing related API, limited at 50 chars by API. 12845 // Attributions must be provided through manifest using <attribution> tag available in R and 12846 // above. 12847 optional string tag = 3; 12848 12849 // operation id 12850 optional android.app.AppOpEnum op = 4 [default = APP_OP_NONE]; 12851 12852 // The number of times the op was granted while the app was in the 12853 // foreground (only for trusted requests) 12854 optional int64 trusted_foreground_granted_count = 5; 12855 12856 // The number of times the op was granted while the app was in the 12857 // background (only for trusted requests) 12858 optional int64 trusted_background_granted_count = 6; 12859 12860 // The number of times the op was rejected while the app was in the 12861 // foreground (only for trusted requests) 12862 optional int64 trusted_foreground_rejected_count = 7; 12863 12864 // The number of times the op was rejected while the app was in the 12865 // background (only for trusted requests) 12866 optional int64 trusted_background_rejected_count = 8; 12867 12868 // For long-running operations, total duration of the operation 12869 // while the app was in the foreground (only for trusted requests) 12870 optional int64 trusted_foreground_duration_millis = 9; 12871 12872 // For long-running operations, total duration of the operation 12873 // while the app was in the background (only for trusted requests) 12874 optional int64 trusted_background_duration_millis = 10; 12875 12876 // Whether AppOps is guarded by Runtime permission 12877 optional bool is_runtime_permission = 11; 12878 12879 // Sampling rate used on device, from 0 to 100 12880 optional int32 sampling_rate = 12; 12881} 12882 12883/** 12884 * Location Manager API Usage information(e.g. API under usage, 12885 * API call's parameters). 12886 * Logged from: 12887 * frameworks/base/services/core/java/com/android/server/LocationManagerService.java 12888 */ 12889message LocationManagerApiUsageReported { 12890 12891 // Indicating if usage starts or usage ends. 12892 optional android.stats.location.UsageState state = 1; 12893 12894 // LocationManagerService's API in use. 12895 // We can identify which API from LocationManager is 12896 // invoking current LMS API by the combination of 12897 // API parameter(e.g. is_listener_null, is_intent_null, 12898 // is_location_request_null) 12899 optional android.stats.location.LocationManagerServiceApi api_in_use = 2; 12900 12901 // Name of the package calling the API. 12902 optional string calling_package_name = 3; 12903 12904 // Type of the location provider. 12905 optional android.stats.location.ProviderType provider = 4; 12906 12907 // Quality of the location request 12908 optional android.stats.location.LocationRequestQuality quality = 5; 12909 12910 // The desired interval for active location updates, in milliseconds. 12911 // Bucketized to reduce cardinality. 12912 optional android.stats.location.LocationRequestIntervalBucket bucketized_interval = 6; 12913 12914 // Minimum distance between location updates, in meters. 12915 // Bucketized to reduce cardinality. 12916 optional android.stats.location.SmallestDisplacementBucket 12917 bucketized_smallest_displacement = 7; 12918 12919 // The number of location updates. 12920 optional int64 num_updates = 8; 12921 12922 // The request expiration time, in millisecond since boot. 12923 // Bucketized to reduce cardinality. 12924 optional android.stats.location.ExpirationBucket 12925 bucketized_expire_in = 9; 12926 12927 // Type of Callback passed in for this API. 12928 optional android.stats.location.CallbackType callback_type = 10; 12929 12930 // The radius of the central point of the alert 12931 // region, in meters. Only for API REQUEST_GEOFENCE. 12932 // Bucketized to reduce cardinality. 12933 optional android.stats.location.GeofenceRadiusBucket bucketized_radius = 11; 12934 12935 // Activity Importance of API caller. 12936 // Categorized to 3 types that are interesting from location's perspective. 12937 optional android.stats.location.ActivityImportance activiy_importance = 12; 12938 12939 // Attribution tag passed to this API. 12940 optional string attribution_tag = 13; 12941} 12942 12943/** 12944 * Information about a permission grant or denial made by user inside ReviewPermissionsFragment 12945 */ 12946message ReviewPermissionsFragmentResultReported { 12947 // unique value identifying a permission group change. A permission group change might result 12948 // in multiple of these atoms 12949 optional int64 change_id = 1; 12950 12951 // UID of package the permission belongs to 12952 optional int32 uid = 2 [(is_uid) = true]; 12953 12954 // Name of package the permission belongs to 12955 optional string package_name = 3; 12956 12957 // The permission to be granted 12958 optional string permission_name = 4; 12959 12960 // The result of the permission grant 12961 optional bool permission_granted = 5; 12962} 12963 12964/** 12965* Information about results of permission upgrade by RuntimePermissionsUpgradeController 12966* Logged from: RuntimePermissionUpdgradeController 12967*/ 12968message RuntimePermissionsUpgradeResult { 12969 // Permission granted as result of upgrade 12970 optional string permission_name = 1; 12971 12972 // UID of package granted permission 12973 optional int32 uid = 2 [(is_uid) = true]; 12974 12975 // Name of package granted permission 12976 optional string package_name = 3; 12977} 12978 12979/** 12980* Information about a buttons presented in GrantPermissionsActivity and choice made by user 12981*/ 12982message GrantPermissionsActivityButtonActions { 12983 // Permission granted as result of upgrade 12984 optional string permission_group_name = 1; 12985 12986 // UID of package granted permission 12987 optional int32 uid = 2 [(is_uid) = true]; 12988 12989 // Name of package requesting permission 12990 optional string package_name = 3; 12991 12992 // Buttons presented in the dialog - bit flags, bit numbers are in accordance with 12993 // LABEL_ constants in GrantPermissionActivity.java 12994 optional int32 buttons_presented = 4; 12995 12996 // Button clicked by user - same as bit flags in buttons_presented with only single bit set 12997 optional int32 button_clicked = 5; 12998 12999 // id which identifies single session of user interacting with permission controller 13000 optional int64 session_id = 6; 13001 13002 // Target SDK of the package 13003 optional int32 target_sdk = 7; 13004 13005 // Selected precision of the location permission - bit flags indicate which 13006 // locations were chosen 13007 optional int32 selected_precision = 8; 13008 13009 // Whether Permission Rationale was shown on grant permission activity 13010 optional bool permission_rationale_shown = 9; 13011} 13012 13013/** 13014 * Information about LocationAccessCheck notification presented to user 13015 */ 13016message LocationAccessCheckNotificationAction { 13017 13018 // id which identifies single session of user interacting with permission controller 13019 optional int64 session_id = 1; 13020 13021 // Uid of package for which location access check is presented 13022 optional int32 package_uid = 2 [(is_uid) = true]; 13023 13024 // Name of package for which location access check is presented 13025 optional string package_name = 3; 13026 13027 enum Result { 13028 UNDEFINED = 0; 13029 // notification was presented to the user 13030 NOTIFICATION_PRESENTED = 1; 13031 // notification was declined by the user 13032 NOTIFICATION_DECLINED = 2; 13033 // notification was clicked by the user 13034 NOTIFICATION_CLICKED = 3; 13035 } 13036 13037 // View / interaction recorded 13038 optional Result result = 4; 13039} 13040 13041/** 13042 * Information about a permission grant or revoke made by user inside AppPermissionFragment 13043 */ 13044message AppPermissionFragmentActionReported { 13045 // id which identifies single session of user interacting with permission controller 13046 optional int64 session_id = 1; 13047 13048 // unique value identifying a permission group change. A permission group change might result 13049 // in multiple of these atoms 13050 optional int64 change_id = 2; 13051 13052 // UID of package the permission belongs to 13053 optional int32 uid = 3 [(is_uid) = true]; 13054 13055 // Name of package the permission belongs to 13056 optional string package_name = 4; 13057 13058 // The permission to be granted 13059 optional string permission_name = 5; 13060 13061 // The result of the permission grant 13062 optional bool permission_granted = 6; 13063 13064 // State of Permission Flags after grant as per android.content.pm.PermissionFlags 13065 optional int32 permission_flags = 7; 13066 13067 enum Button { 13068 UNDEFINED = 0; 13069 // Allow button 13070 ALLOW = 1; 13071 // Deny button 13072 DENY = 2; 13073 // Ask every time button 13074 ASK_EVERY_TIME = 3; 13075 // Allow all the time button 13076 ALLOW_ALWAYS = 4; 13077 // Allow only while using the app button 13078 ALLOW_FOREGROUND = 5; 13079 // Same is Deny button but shown in while in use dialog 13080 DENY_FOREGROUND = 6; 13081 // Switch button set to ON for location accuracy 13082 GRANT_FINE_LOCATION = 7; 13083 // Switch button set to OFF for location accuracy 13084 REVOKE_FINE_LOCATION = 8; 13085 // The user has selected photos/videos from the photo picker 13086 PHOTOS_SELECTED = 9; 13087 // User selects Permission Rationale label 13088 PERMISSION_RATIONALE = 10; 13089 } 13090 13091 // Button pressed in the dialog 13092 optional Button button_pressed = 8; 13093} 13094 13095/** 13096* Information about a AppPermissionFragment viewed by user 13097*/ 13098message AppPermissionFragmentViewed { 13099 // id which identifies single session of user interacting with permission controller 13100 optional int64 session_id = 1; 13101 13102 // UID of package for which permissions are viewed 13103 optional int32 uid = 2 [(is_uid) = true]; 13104 13105 // Name of package for which permissions are viewed 13106 optional string package_name = 3; 13107 13108 // Permission group viewed 13109 optional string permission_group_name = 4; 13110 13111 // Whether Permission Rationale was shown on app permission fragment 13112 optional bool permission_rationale_shown = 5; 13113} 13114 13115/** 13116* Information about a AppPermissionGroupsFragment viewed by user. Fragment has been renamed, but 13117* the log retains the old fragment name. 13118*/ 13119message AppPermissionsFragmentViewed { 13120 // id which identifies single session of user interacting with permission controller 13121 optional int64 session_id = 1; 13122 13123 // id which identifies single view as every view might have several logging records 13124 // with different package information attached 13125 optional int64 view_id = 2; 13126 13127 // Permission group viewed 13128 optional string permission_group_name = 3; 13129 13130 // UID of package for which permissions are viewed 13131 optional int32 uid = 4 [(is_uid) = true]; 13132 13133 // Name of package for which permissions are viewed 13134 optional string package_name = 5; 13135 13136 // Category in which permission is included 13137 enum Category { 13138 UNDEFINED = 0; 13139 ALLOWED = 1; 13140 ALLOWED_FOREGROUND = 2; 13141 DENIED = 3; 13142 } 13143 optional Category category = 6; 13144} 13145/** 13146* Information about a PermissionAppsFragment viewed by user. 13147* Logged from ui/handheld/PermissionAppsFragment.java 13148*/ 13149message PermissionAppsFragmentViewed { 13150 // id which identifies single session of user interacting with permission controller 13151 optional int64 session_id = 1; 13152 13153 // id which identifies single view as every view might have several logging records 13154 // with different package information attached 13155 optional int64 view_id = 2; 13156 13157 // Permission group viewed 13158 optional string permission_group_name = 3; 13159 13160 // UID of package for which permissions are viewed 13161 optional int32 uid = 4 [(is_uid) = true]; 13162 13163 // Name of package for which permissions are viewed 13164 optional string package_name = 5; 13165 13166 // Category in which app is included 13167 enum Category { 13168 UNDEFINED = 0; 13169 ALLOWED = 1; 13170 ALLOWED_FOREGROUND = 2; 13171 DENIED = 3; 13172 } 13173 optional Category category = 6; 13174} 13175 13176/** 13177* Log that the Auto Revoke notification has been clicked 13178* Logged from ui/ManagePermissionsActivity 13179*/ 13180message AutoRevokeNotificationClicked { 13181 // id which identifies single session of user interacting with permission controller 13182 optional int64 session_id = 1; 13183} 13184 13185/** 13186* Log that an app has been displayed on the auto revoke page, and lists one permission that was 13187* auto revoked for it. 13188* Logged from ui/handheld/AutoRevokeFragment 13189*/ 13190message AutoRevokeFragmentAppViewed { 13191 // id which identifies single session of user interacting with permission controller 13192 optional int64 session_id = 1; 13193 13194 // UID of package for which permissions are viewed 13195 optional int32 uid = 2 [(is_uid) = true]; 13196 13197 // Name of package for which permissions are viewed 13198 optional string package_name = 3; 13199 13200 // The name of a permission group that has been revoked 13201 optional string permission_group_name = 4; 13202 13203 // The age of the app- more than three months old, or more than six months 13204 enum Age { 13205 UNDEFINED = 0; 13206 NEWER_BUCKET = 1; 13207 OLDER_BUCKET = 2; 13208 } 13209 13210 // How long the app has been unused. Currently, newer bucket is 3 months, older is 6 months 13211 optional Age age = 5; 13212} 13213 13214/** 13215* Log that the user has interacted with an app on the auto revoke fragment 13216* Logged from ui/handheld/AutoRevokeFragment 13217*/ 13218message AutoRevokedAppInteraction { 13219 // id which identifies single session of user interacting with permission controller 13220 optional int64 session_id = 1; 13221 13222 // UID of package for which permissions are viewed 13223 optional int32 uid = 2 [(is_uid) = true]; 13224 13225 // Name of package for which permissions are viewed 13226 optional string package_name = 3; 13227 13228 enum Action { 13229 UNDEFINED = 0; 13230 REMOVE = 1; 13231 OPEN = 2; 13232 APP_INFO = 3; 13233 PERMISSIONS = 4; 13234 REMOVE_IN_SETTINGS = 5; 13235 OPEN_IN_SETTINGS = 6; 13236 } 13237 13238 // The action the user took to interact with the app 13239 optional Action action = 4; 13240} 13241 13242/** 13243* Log that the AppPermissionGroupsFragment has been interacted with for the possible purposes of 13244* auto revoke, or that the auto revoke switch has been changed 13245* Logged from ui/handheld/AppPermissionGroupsFragment 13246 */ 13247message AppPermissionGroupsFragmentAutoRevokeAction { 13248 // id which identifies single session of user interacting with permission controller 13249 optional int64 session_id = 1; 13250 13251 // UID of package for which permissions are viewed 13252 optional int32 uid = 2 [(is_uid) = true]; 13253 13254 // Name of package for which permissions are viewed 13255 optional string package_name = 3; 13256 13257 enum Action { 13258 UNDEFINED = 0; 13259 OPENED_FOR_AUTO_REVOKE = 1; 13260 OPENED_FROM_INTENT = 2; 13261 SWITCH_ENABLED = 3; 13262 SWITCH_DISABLED = 4; 13263 } 13264 13265 // The action the user took to interact with the fragment 13266 optional Action action = 4; 13267} 13268 13269/** 13270 * Logs when there is a smart selection related event. 13271 * See frameworks/base/core/java/android/view/textclassifier/TextClassifierEvent.java 13272 * Logged from: TextClassifierEventLogger.java 13273 */ 13274message TextSelectionEvent { 13275 // A session ID. 13276 optional string session_id = 1; 13277 13278 // Event type of this event. 13279 optional android.stats.textclassifier.EventType event_type = 2; 13280 13281 // Name of the annotator model that is involved in this event. 13282 optional string model_name = 3; 13283 13284 // Type of widget that was involved in triggering this event. 13285 optional android.stats.textclassifier.WidgetType widget_type = 4; 13286 13287 // Index of this event in a session. 13288 optional int32 event_index = 5; 13289 13290 // Entity type that is involved. 13291 optional string entity_type = 6; 13292 13293 // Relative word index of the start of the selection. 13294 optional int32 relative_word_start_index = 7; 13295 13296 // Relative word (exclusive) index of the end of the selection. 13297 optional int32 relative_word_end_index = 8; 13298 13299 // Relative word index of the start of the smart selection. 13300 optional int32 relative_suggested_word_start_index = 9; 13301 13302 // Relative word (exclusive) index of the end of the smart selection. 13303 optional int32 relative_suggested_word_end_index = 10; 13304 13305 // Name of source package. 13306 optional string package_name = 11; 13307 13308 // Name of the LangID model that is involved in this event. 13309 optional string langid_model_name = 12; 13310} 13311 13312/** 13313 * Logs when there is a smart linkify related event. 13314 * See frameworks/base/core/java/android/view/textclassifier/TextClassifierEvent.java 13315 * Logged from: TextClassifierEventLogger.java 13316 */ 13317message TextLinkifyEvent { 13318 // A session ID. 13319 optional string session_id = 1; 13320 13321 // Event type of this event. 13322 optional android.stats.textclassifier.EventType event_type = 2; 13323 13324 // Name of the annotator model that is involved in this event. 13325 optional string model_name = 3; 13326 13327 // Type of widget that was involved in triggering this event. 13328 optional android.stats.textclassifier.WidgetType widget_type = 4; 13329 13330 // Index of this event in a session. 13331 optional int32 event_index = 5; 13332 13333 // Entity type that is involved. 13334 optional string entity_type = 6; 13335 13336 // Number of links detected. 13337 optional int32 num_links = 7; 13338 13339 // The total length of all links. 13340 optional int32 linked_text_length = 8; 13341 13342 // Length of input text. 13343 optional int32 text_length = 9; 13344 13345 // Time spent on generating links in ms. 13346 optional int64 latency_millis = 10; 13347 13348 // Name of source package. 13349 optional string package_name = 11; 13350 13351 // Name of the LangID model that is involved in this event. 13352 optional string langid_model_name = 12; 13353} 13354 13355/** 13356 * Logs when there is a conversation actions related event. 13357 * See frameworks/base/core/java/android/view/textclassifier/TextClassifierEvent.java 13358 * Logged from: TextClassifierEventLogger.java 13359 */ 13360message ConversationActionsEvent { 13361 // A session ID. 13362 optional string session_id = 1; 13363 13364 // Event type of this event. 13365 optional android.stats.textclassifier.EventType event_type = 2; 13366 13367 // Name of the actions model that is involved in this event. 13368 optional string model_name = 3; 13369 13370 // Type of widget that was involved in triggering this event. 13371 optional android.stats.textclassifier.WidgetType widget_type = 4; 13372 13373 // The first entity type that is involved. 13374 optional string first_entity_type = 5; 13375 13376 // The second entity type that is involved. 13377 optional string second_entity_type = 6; 13378 13379 // The third entity type that is involved. 13380 optional string third_entity_type = 7; 13381 13382 // The score of the first entity type. 13383 optional float score = 8; 13384 13385 // Name of source package. 13386 optional string package_name = 9; 13387 13388 // Name of the annotator model that is involved in this event. 13389 optional string annotator_model_name = 10; 13390 13391 // Name of the LangID model that is involved in this event. 13392 optional string langid_model_name = 11; 13393} 13394 13395/** 13396 * Logs when there is a language detection related event. 13397 * See frameworks/base/core/java/android/view/textclassifier/TextClassifierEvent.java 13398 * Logged from: TextClassifierEventLogger.java 13399 */ 13400message LanguageDetectionEvent { 13401 // A session ID. 13402 optional string session_id = 1; 13403 13404 // Event type of this event. 13405 optional android.stats.textclassifier.EventType event_type = 2; 13406 13407 // Name of the language detection model that is involved in this event. 13408 optional string model_name = 3; 13409 13410 // Type of widget that was involved in triggering this event. 13411 optional android.stats.textclassifier.WidgetType widget_type = 4; 13412 13413 // Detected language. 13414 optional string language_tag = 5; 13415 13416 // Score of the detected language. 13417 optional float score = 6; 13418 13419 // Position of this action. 13420 optional int32 action_index = 7; 13421 13422 // Name of source package. 13423 optional string package_name = 8; 13424} 13425 13426/** 13427 * Information about an OTA update attempt by update_engine. 13428 * Logged from platform/system/update_engine/metrics_reporter_android.cc 13429 */ 13430message UpdateEngineUpdateAttemptReported { 13431 // The number of attempts for the update engine to apply a given payload. 13432 optional int32 attempt_number = 1; 13433 13434 optional android.stats.otaupdate.PayloadType payload_type = 2; 13435 13436 // The total time in minutes for the update engine to apply a given payload. 13437 // The time is calculated by calling clock_gettime() / CLOCK_BOOTTIME; and 13438 // it's increased when the system is sleeping. 13439 optional int32 duration_boottime_in_minutes = 3; 13440 13441 // The total time in minutes for the update engine to apply a given payload. 13442 // The time is calculated by calling clock_gettime() / CLOCK_MONOTONIC_RAW; 13443 // and it's not increased when the system is sleeping. 13444 optional int32 duration_monotonic_in_minutes = 4; 13445 13446 // The size of the payload in MiBs. 13447 optional int32 payload_size_mib = 5; 13448 13449 // The attempt result reported by the update engine for an OTA update. 13450 optional android.stats.otaupdate.AttemptResult attempt_result = 6; 13451 13452 // The error code reported by the update engine after an OTA update attempt 13453 // on A/B devices. 13454 optional android.stats.otaupdate.ErrorCode error_code = 7; 13455 13456 // The build fingerprint of the source system. The value is read from a 13457 // system property when the device takes the update. e.g. 13458 // Android/aosp_sailfish/sailfish:10/QP1A.190425.004/5507117:userdebug/test-keys 13459 optional string source_fingerprint = 8; 13460 13461 // Size of super partition. 13462 optional int64 super_partition_size_bytes = 9; 13463 13464 // Size of current slot within the super partition. 13465 optional int64 slot_size_bytes = 10; 13466 13467 // Free space available in the super partition. 13468 optional int64 super_free_space_bytes = 11; 13469 13470 // Whether the device enables Virtual A/B compression. 13471 optional bool vab_compression_enabled = 12; 13472 13473 // Whether this update attempt uses Virtual A/B compression. 13474 optional bool vab_compression_used = 13; 13475} 13476 13477/** 13478 * Information about all the attempts the device make before finishing the 13479 * successful update. 13480 * Logged from platform/system/update_engine/metrics_reporter_android.cc 13481 */ 13482message UpdateEngineSuccessfulUpdateReported { 13483 // The number of attempts for the update engine to apply the payload for a 13484 // successful update. 13485 optional int32 attempt_count = 1; 13486 13487 optional android.stats.otaupdate.PayloadType payload_type = 2; 13488 13489 optional int32 payload_size_mib = 3; 13490 13491 // The total number of bytes downloaded by update_engine since the last 13492 // successful update. 13493 optional int32 total_bytes_downloaded_mib = 4; 13494 13495 // The ratio in percentage of the over-downloaded bytes compared to the 13496 // total bytes needed to successfully install the update. e.g. 200 if we 13497 // download 200MiB in total for a 100MiB package. 13498 optional int32 download_overhead_percentage = 5; 13499 13500 // The total time in minutes for the update engine to apply the payload for a 13501 // successful update. 13502 optional int32 total_duration_minutes = 6; 13503 13504 // The number of reboot of the device during a successful update. 13505 optional int32 reboot_count = 7; 13506 13507 // Whether on device verity computation is enabled 13508 optional bool fec_enabled = 8; 13509 13510 // Whether on device hash tree computation is enabled 13511 optional bool hash_tree_enabled = 9; 13512 13513} 13514 13515/** 13516 * Reported when a client requests to prepare for resume on reboot. 13517 * 13518 * Logged from: 13519 * frameworks/base/services/core/java/com/android/server/recoverysystem/RecoverySystemService.java 13520 */ 13521message RebootEscrowPreparationReported { 13522 enum Result { 13523 ROR_NEED_PREPARATION = 0; 13524 ROR_SKIP_PREPARATION_AND_NOTIFY = 1; 13525 ROR_SKIP_PREPARATION_NOT_NOTIFY = 2; 13526 } 13527 13528 // The uid of the client who requests ror. 13529 optional int32 requesting_uid = 1 [(is_uid) = true]; 13530 13531 optional Result result = 2; 13532 13533 // The number of clients who has requested ror, including the current caller. 13534 optional int32 requested_client_count = 3; 13535} 13536 13537/** 13538 * Reported when the lock screen knowledge factor is captured, while there are clients of 13539 * resume on reboot to notify. 13540 * 13541 * Logged from: 13542 * frameworks/base/services/core/java/com/android/server/recoverysystem/RecoverySystemService.java 13543 */ 13544message RebootEscrowLskfCaptureReported { 13545 // The uid of the client to notify about the Lskf capture. 13546 optional int32 uid_to_notify = 1 [(is_uid) = true]; 13547 13548 // The total number of clients who have requested ror. 13549 optional int32 requested_client_count = 2; 13550 13551 // The duration between RoR request - current LSKF capture event. 13552 optional int32 duration_ror_requested_to_lskf_captured_seconds = 3; 13553} 13554 13555/* Reported when a client (e.g. gmscore) requests to reboot with Resume on Reboot. 13556 * 13557 * Logged from: 13558 * frameworks/base/services/core/java/com/android/server/recoverysystem/RecoverySystemService.java 13559 */ 13560message RebootEscrowRebootReported { 13561 optional int32 error_code = 1; 13562 13563 // The uid of clients who requested the reboot 13564 optional int32 request_uid = 2 [(is_uid) = true]; 13565 13566 // All clients that have prepared for RoR before this reboot 13567 optional int32 prepared_clients_count = 3; 13568 13569 // The RoR request count for the client who requests reboot. 13570 optional int32 request_count = 4; 13571 13572 // Whether the reboot request assumes a slot switch on a/b devices. 13573 optional bool slot_switch = 5; 13574 13575 // True if the DeviceConfig shows the device is using server based RoR. 13576 optional bool server_based = 6; 13577 13578 // The duration between last LSKF captured - reboot requests 13579 optional int32 duration_lskf_captured_to_reboot_seconds = 7; 13580 13581 // The count of LSKF captured since preparation 13582 optional int32 lskf_captured_counts = 8; 13583} 13584 13585/** 13586 * Logs stats for AppSearch function calls 13587 * 13588 * Next tag: 13 13589 */ 13590message AppSearchCallStatsReported { 13591 // The sampling interval for this specific type of stats 13592 // For example, sampling_interval=10 means that one out of every 10 stats was logged. 13593 optional int32 sampling_interval = 1; 13594 13595 // # of previous skipped sample for this specific type of stats 13596 // We can't push atoms too closely, so some samples might be skipped 13597 // In order to extrapolate the counts, we need to save the number of skipped stats and add it back 13598 // For example, the true count of an event could be estimated as: 13599 // SUM(sampling_interval * (num_skipped_sample + 1)) as est_count 13600 optional int32 num_skipped_sample = 2; 13601 13602 // Package UID of the application. 13603 optional int32 uid = 3 [(is_uid) = true]; 13604 13605 // Hash of the database name within AppSearch 13606 optional int32 database = 4; 13607 13608 // The status code for the call or internal state. 13609 // Needs to be sync with AppSearchResult#ResultCode in 13610 // frameworks/base/apex/appsearch/framework/java/android/app/appsearch/AppSearchResult.java 13611 optional int32 status_code = 5; 13612 13613 // Overall time used for the end-to-end function call in AppSearch. 13614 // It doesn't include binder latency 13615 optional int32 total_latency_millis = 6; 13616 13617 // Type of the function call value is in sync with 13618 // frameworks/base/apex/appsearch/service/java/com/android/server/appsearch/external/localstorage/stats/CallStats.java 13619 optional int32 call_type = 7; 13620 13621 // Estimated binder latency (estimated as single-trip time * 2) 13622 optional int32 estimated_binder_latency_millis = 8; 13623 13624 // Number of operations succeeded for batch operations. 13625 optional int32 num_operations_succeeded = 9; 13626 13627 // Number of operations failed for batch operations. 13628 optional int32 num_operations_failed = 10; 13629 13630 // Number of actual API calls reported in this atom. 13631 optional int32 num_reported_calls = 11; 13632 13633 // The bitmask for all enabled features on this device. Must be one or a combination of the 13634 // types AppSearchEnabledFeatures. 13635 optional int64 enabled_features = 12; 13636} 13637 13638/** 13639 * Logs detailed stats for putting a single document in AppSearch 13640 * 13641 * Next tag: 17 13642 */ 13643message AppSearchPutDocumentStatsReported { 13644 // The sampling interval for this specific type of stats 13645 // For example, sampling_interval=10 means that one out of every 10 stats was logged. 13646 optional int32 sampling_interval = 1; 13647 13648 // # of previous skipped sample for this specific type of stats 13649 // We can't push atoms too closely, so some samples might be skipped 13650 // In order to extrapolate the counts, we need to save the number of skipped stats and add it back 13651 // For example, the true count of an event could be estimated as: 13652 // SUM(sampling_interval * (num_skipped_sample + 1)) as est_count 13653 optional int32 num_skipped_sample = 2; 13654 13655 // Package UID of the application. 13656 optional int32 uid = 3 [(is_uid) = true]; 13657 13658 // Hash of the database name within AppSearch 13659 optional int32 database = 4; 13660 13661 // Needs to be sync with AppSearchResult#ResultCode in 13662 // frameworks/base/apex/appsearch/framework/java/android/app/appsearch/AppSearchResult.java 13663 optional int32 status_code = 5; 13664 13665 // Overall time used for a put_document 13666 optional int32 total_latency_millis = 6; 13667 13668 // Time used to generate a document proto from a Bundle. 13669 optional int32 generate_document_proto_latency_millis = 7; 13670 13671 // Time used to rewrite types and namespaces in the document. 13672 optional int32 rewrite_document_types_latency_millis = 8; 13673 13674 // Overall time used for the native function call. 13675 optional int32 native_latency_millis = 9; 13676 13677 // Time used to store the document. 13678 optional int32 native_document_store_latency_millis = 10; 13679 13680 // Time used to index the document. It doesn't include the time to 13681 // merge indices. 13682 optional int32 native_index_latency_millis = 11; 13683 13684 // Time used to merge the indices. 13685 optional int32 native_index_merge_latency_millis = 12; 13686 13687 // Document size in bytes. 13688 optional int32 native_document_size_bytes = 13; 13689 13690 // Number of tokens added to the index. 13691 optional int32 native_num_tokens_indexed = 14; 13692 13693 // Whether the max number of tokens exceeded. 13694 optional bool native_exceeded_max_num_tokens = 15; 13695 13696 // The bitmask for all enabled features on this device. Must be one or a combination of the 13697 // types AppSearchEnabledFeatures. 13698 optional int64 enabled_features = 16; 13699} 13700 13701/** 13702 * Logs detailed stats for AppSearch Initialize 13703 * 13704 * Next tag: 22 13705 */ 13706message AppSearchInitializeStatsReported { 13707 // The sampling interval for this specific type of stats 13708 // For example, sampling_interval=10 means that one out of every 10 stats was logged. 13709 optional int32 sampling_interval = 1; 13710 13711 // # of previous skipped sample for this specific type of stats 13712 // We can't push atoms too closely, so some samples might be skipped 13713 // In order to extrapolate the counts, we need to save the number of skipped stats and add it back 13714 // For example, the true count of an event could be estimated as: 13715 // SUM(sampling_interval * (num_skipped_sample + 1)) as est_count 13716 optional int32 num_skipped_sample = 2; 13717 13718 // Package UID of the application. 13719 optional int32 uid = 3 [(is_uid) = true]; 13720 13721 // Initialize status code 13722 // Needs to be sync with AppSearchResult#ResultCode in 13723 // frameworks/base/apex/appsearch/framework/java/android/app/appsearch/AppSearchResult.java 13724 optional int32 status_code = 4; 13725 13726 // Overall time used for initialization, not including binder latency. 13727 optional int32 total_latency_millis = 5; 13728 13729 // Whether the initialize() detects desyncs. 13730 // Desync happens if we lose the visibility doc. 13731 optional bool has_desync = 6; 13732 13733 // Time used to read and process the schema and namespaces. 13734 optional int32 prepare_schema_and_namespaces_latency_millis = 7; 13735 13736 // Time used to read and process the visibility file. 13737 optional int32 prepare_visibility_file_latency_millis = 8; 13738 13739 // Overall time used for the native function call. 13740 optional int32 native_latency_millis = 9; 13741 13742 // Needs to be sync with RecoveryCause in google3/third_party/icing/proto/logging.proto 13743 optional int32 native_document_store_recovery_cause = 10; 13744 13745 // Needs to be sync with RecoveryCause in google3/third_party/icing/proto/logging.proto 13746 optional int32 native_index_restoration_cause = 11; 13747 13748 // Needs to be sync with RecoveryCause in google3/third_party/icing/proto/logging.proto 13749 optional int32 native_schema_store_recovery_cause = 12; 13750 13751 // Time used to recover the document store. 13752 optional int32 native_document_store_recovery_latency_millis = 13; 13753 13754 // Time used to restore the index. 13755 optional int32 native_index_restoration_latency_millis = 14; 13756 13757 // Time used to recover the schema store. 13758 optional int32 native_schema_store_recovery_latency_millis = 15; 13759 13760 // Needs to be sync with DocumentStoreDataStatus in google3/third_party/icing/proto/logging.proto 13761 optional int32 native_document_store_data_status = 16; 13762 13763 // Number of documents currently in document store. Those may 13764 // include alive, deleted, and expired documents. 13765 optional int32 native_num_documents = 17; 13766 13767 // Number of schema types currently in the schema store. 13768 optional int32 native_num_schema_types = 18; 13769 13770 // Whether we had to reset the index, losing all data, during initialization. 13771 optional bool has_reset = 19; 13772 13773 // The status code of the reset operation if has_reset is true. 13774 // Needs to be sync with AppSearchResult#ResultCode in 13775 // frameworks/base/apex/appsearch/framework/java/android/app/appsearch/AppSearchResult.java 13776 optional int32 reset_status_code = 20; 13777 13778 // The bitmask for all enabled features on this device. Must be one or a combination of the 13779 // types AppSearchEnabledFeatures. 13780 optional int64 enabled_features = 21; 13781} 13782 13783/** 13784 * Logs detailed stats for querying in AppSearch 13785 * 13786 * Next tag: 35 13787 */ 13788message AppSearchQueryStatsReported { 13789 // The sampling interval for this specific type of stats 13790 // For example, sampling_interval=10 means that one out of every 10 stats was logged. 13791 optional int32 sampling_interval = 1; 13792 13793 // # of previous skipped sample for this specific type of stats 13794 // We can't push atoms too closely, so some samples might be skipped 13795 // In order to extrapolate the counts, we need to save the number of skipped stats and add it back 13796 // For example, the true count of an event could be estimated as: 13797 // SUM(sampling_interval * (num_skipped_sample + 1)) as est_count 13798 optional int32 num_skipped_sample = 2; 13799 13800 // Package UID of the application. 13801 optional int32 uid = 3 [(is_uid) = true]; 13802 13803 // Hash of the database name within AppSearch 13804 optional int32 database = 4; 13805 13806 // Needs to be sync with AppSearchResult#ResultCode in 13807 // frameworks/base/apex/appsearch/framework/java/android/app/appsearch/AppSearchResult.java 13808 optional int32 status_code = 5; 13809 13810 // Overall time used for query which doesn't include estimated binder latency 13811 optional int32 total_latency_millis = 6; 13812 13813 // Time used to rewrite the search spec. 13814 optional int32 rewrite_search_spec_latency_millis = 7; 13815 13816 // Time used to rewrite the search results. 13817 optional int32 rewrite_search_result_latency_millis = 8; 13818 13819 // Whether it is a global query. 13820 // Needs to be sync with QueryStats#VisibilityScope in 13821 // frameworks/base/apex/appsearch/service/java/com/android/server/appsearch/external/localstorage/stats/QueryStats.java 13822 optional int32 visibility_scope = 9; 13823 13824 // Overall time used for the native function call. 13825 optional int32 native_latency_millis = 10; 13826 13827 // Number of terms in the query string. 13828 optional int32 native_num_terms = 11; 13829 13830 // Length of the query string. 13831 optional int32 native_query_length = 12; 13832 13833 // Number of namespaces filtered. 13834 optional int32 native_num_namespaces_filtered = 13; 13835 13836 // Number of schema types filtered. 13837 optional int32 native_num_schema_types_filtered = 14; 13838 13839 // The requested number of results in one page. 13840 optional int32 native_requested_page_size = 15; 13841 13842 // The actual number of results returned in the current page. 13843 optional int32 native_num_results_returned_current_page = 16; 13844 13845 // Whether the function call is querying the first page. If it's 13846 // not, Icing will fetch the results from cache so that some steps 13847 // may be skipped. 13848 optional bool native_is_first_page = 17; 13849 13850 // Time used to parse the query, including 2 parts: tokenizing and 13851 // transforming tokens into an iterator tree. 13852 optional int32 native_parse_query_latency_millis = 18; 13853 13854 // Strategy of scoring and ranking. 13855 // Needs to be sync with RankingStrategy.Code in google3/third_party/icing/proto/scoring.proto 13856 optional int32 native_ranking_strategy = 19; 13857 13858 // Number of documents scored. 13859 optional int32 native_num_documents_scored = 20; 13860 13861 // Time used to score the raw results. 13862 optional int32 native_scoring_latency_millis = 21; 13863 13864 // Time used to rank the scored results. 13865 optional int32 native_ranking_latency_millis = 22; 13866 13867 // Time used to fetch the document protos. Note that it includes the 13868 // time to snippet if "native_num_results_with_snippets" is NOT zero. 13869 optional int32 native_document_retrieval_latency_millis = 23; 13870 13871 // How many snippets are calculated. 13872 optional int32 native_num_results_with_snippets = 24; 13873 13874 // Time passed while waiting to acquire the lock during Java function calls. 13875 optional int32 java_lock_acquisition_latency_millis = 25; 13876 13877 // Time spent on ACL checking. This is the time spent filtering namespaces 13878 // based on package permissions and Android permission access. 13879 optional int32 acl_check_latency_millis = 26; 13880 13881 // Time passed while waiting to acquire the lock during native function calls. 13882 optional int32 native_lock_acquisition_latency_millis = 27; 13883 13884 // Time used to send data across the JNI boundary from java to native side. 13885 optional int32 java_to_native_jni_latency_millis = 28; 13886 13887 // Time used to send data across the JNI boundary from native to java side. 13888 optional int32 native_to_java_jni_latency_millis = 29; 13889 13890 // The type of the join query. 13891 // 13892 // Needs to be sync with AppSearchSchema#JoinableValueType in 13893 // packages/modules/AppSearch/framework/java/external/android/app/appsearch/AppSearchSchema.java 13894 optional int32 join_type = 30; 13895 13896 // How many total documents were joined to the parent documents. 13897 optional int32 native_num_joined_results_current_page = 31; 13898 13899 // Time taken to join child documents to parent documents. 13900 optional int32 native_join_latency_millis = 32; 13901 13902 // The Hash of the tag to indicate the query source of this search 13903 optional int32 query_source_log_tag = 33; 13904 13905 // The bitmask for all enabled features on this device. Must be one or a combination of the 13906 // types AppSearchEnabledFeatures. 13907 optional int64 enabled_features = 34; 13908} 13909 13910/** 13911 * Logs detailed stats for remove in AppSearch 13912 * 13913 * Next tag: 10 13914 */ 13915message AppSearchRemoveStatsReported { 13916 // The sampling interval for this specific type of stats 13917 // For example, sampling_interval=10 means that one out of every 10 stats was logged. 13918 optional int32 sampling_interval = 1; 13919 13920 // # of previous skipped sample for this specific type of stats 13921 // We can't push atoms too closely, so some samples might be skipped 13922 // In order to extrapolate the counts, we need to save the number of skipped stats and add it back 13923 // For example, the true count of an event could be estimated as: 13924 // SUM(sampling_interval * (num_skipped_sample + 1)) as est_count 13925 optional int32 num_previous_skipped_sample = 2; 13926 13927 // Package UID of the application. 13928 optional int32 uid = 3 [(is_uid) = true]; 13929 13930 // Hash of the database name within AppSearch 13931 optional int32 database = 4; 13932 13933 // Needs to be sync with AppSearchResult#ResultCode in 13934 // frameworks/base/apex/appsearch/framework/java/android/app/appsearch/AppSearchResult.java 13935 optional int32 status_code = 5; 13936 13937 // Overall time used for remove including the binder latency 13938 optional int32 total_latency_millis = 6; 13939 13940 // Overall time used for the native function call. 13941 optional int32 native_latency_millis = 7; 13942 13943 // Used to indicate what kind of delete(namespace, schemaType etc) calls deleteByQuery here. 13944 // Needs to be sync with external/icing/proto/icing/proto/logging.proto#DeleteStatsProto 13945 optional int32 native_delete_type = 8; 13946 13947 // Number of documents deleted by this call. 13948 optional int32 native_num_documents_deleted = 9; 13949 13950 // The bitmask for all enabled features on this device. Must be one or a combination of the 13951 // types AppSearchEnabledFeatures. 13952 optional int64 enabled_features = 10; 13953} 13954 13955/** 13956 * Logs detailed stats for optimization in AppSearch. 13957 * 13958 * stats pushed from: 13959 * frameworks/base/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java 13960 * 13961 * Next tag: 15 13962 */ 13963message AppSearchOptimizeStatsReported { 13964 // The sampling interval for this specific type of stats 13965 // For example, sampling_interval=10 means that one out of every 10 stats was logged. 13966 optional int32 sampling_interval = 1; 13967 13968 // # of previous skipped sample for this specific type of stats 13969 // We can't push atoms too closely, so some samples might be skipped 13970 // In order to extrapolate the counts, we need to save the number of skipped stats and add it back 13971 // For example, the true count of an event could be estimated as: 13972 // SUM(sampling_interval * (num_skipped_sample + 1)) as est_count 13973 optional int32 num_previous_skipped_sample = 2; 13974 13975 // Needs to be sync with AppSearchResult#ResultCode in 13976 // frameworks/base/apex/appsearch/framework/java/android/app/appsearch/AppSearchResult.java 13977 optional int32 status_code = 3; 13978 13979 // Overall time used for remove including the binder latency 13980 optional int32 total_latency_millis = 4; 13981 13982 // Overall time used for the native function call. 13983 optional int32 native_latency_millis = 5; 13984 13985 // Time used to optimize the document store in millis. 13986 optional int32 native_document_store_optimize_latency_millis = 6; 13987 13988 // Time used to restore the index in millis. 13989 optional int32 native_index_restoration_latency_millis = 7; 13990 13991 // Number of documents before the optimization. 13992 optional int32 native_num_original_documents = 8; 13993 13994 // Number of documents deleted during the optimization. 13995 optional int32 native_num_deleted_documents = 9; 13996 13997 // Number of documents expired during the optimization. 13998 optional int32 native_num_expired_documents = 10; 13999 14000 // Size of storage in bytes before the optimization. 14001 optional int64 native_storage_size_before_bytes = 11; 14002 14003 // Size of storage in bytes after the optimization. 14004 optional int64 native_storage_size_after_bytes = 12; 14005 14006 // The amount of time in millis since the last optimization ran. 14007 optional int64 native_time_since_last_optimize_millis = 13; 14008 14009 // The bitmask for all enabled features on this device. Must be one or a combination of the 14010 // types AppSearchEnabledFeatures. 14011 optional int64 enabled_features = 14; 14012} 14013 14014// Reports information in external/icing/proto/icing/proto/storage.proto#DocumentStorageInfoProto 14015// Next tag: 15 14016message AppSearchDocumentStorageInfo { 14017 // Total number of alive documents. 14018 optional int32 num_alive_documents = 1; 14019 14020 // Total number of deleted documents. 14021 optional int32 num_deleted_documents = 2; 14022 14023 // Total number of expired documents. 14024 optional int32 num_expired_documents = 3; 14025 14026 // Total size of the document store in bytes. Will be set to -1 if an IO error 14027 // is encountered while calculating this field. 14028 optional int64 document_store_size_bytes = 4; 14029 14030 // Total size of the ground truth in bytes. The ground truth may 14031 // include deleted or expired documents. Will be set to -1 if an IO error is 14032 // encountered while calculating this field. 14033 optional int64 document_log_size_bytes = 5; 14034 14035 // Size of the key mapper in bytes. Will be set to -1 if an IO error is 14036 // encountered while calculating this field. 14037 optional int64 key_mapper_size_bytes = 6; 14038 14039 // Size of the document id mapper in bytes. Will be set to -1 if an IO error 14040 // is encountered while calculating this field. 14041 optional int64 document_id_mapper_size_bytes = 7; 14042 14043 // Size of the score cache in bytes. Will be set to -1 if an IO error is 14044 // encountered while calculating this field. 14045 optional int64 score_cache_size_bytes = 8; 14046 14047 // Size of the filter cache in bytes. Will be set to -1 if an IO error is 14048 // encountered while calculating this field. 14049 optional int64 filter_cache_size_bytes = 9; 14050 14051 // Size of the corpus mapper in bytes. Will be set to -1 if an IO error is 14052 // encountered while calculating this field. 14053 optional int64 corpus_mapper_size_bytes = 10; 14054 14055 // Size of the corpus score cache in bytes. Will be set to -1 if an IO error 14056 // is encountered while calculating this field. 14057 optional int64 corpus_score_cache_size_bytes = 11; 14058 14059 // Size of the namespace id mapper in bytes. Will be set to -1 if an IO error 14060 // is encountered while calculating this field. 14061 optional int64 namespace_id_mapper_size_bytes = 12; 14062 14063 // Number of namespaces seen from the current documents. 14064 optional int32 num_namespaces = 13; 14065 14066 // Storage information of each namespace is not included due to that it has string field. 14067 14068 reserved 14; 14069} 14070 14071// Reports information in external/icing/proto/icing/proto/storage.proto#SchemaStoreStorageInfoProto 14072// Next tag: 5 14073message AppSearchSchemaStoreStorageInfo { 14074 // Size of the schema store in bytes. Will be set to -1 if an IO error is 14075 // encountered while calculating this field. 14076 optional int64 schema_store_size_bytes = 1; 14077 14078 // Total number of schema types. 14079 optional int32 num_schema_types = 2; 14080 14081 // Total number of all sections across all types 14082 optional int32 num_total_sections = 3; 14083 14084 // Total number of types at the current section limit. 14085 optional int32 num_schema_types_sections_exhausted = 4; 14086} 14087 14088// Reports information in external/icing/proto/icing/proto/storage.proto#IndexStorageInfoProto 14089// Next tag: 9 14090message AppSearchIndexStorageInfo { 14091 // Total size of the index in bytes. Will be set to -1 if an IO error is 14092 // encountered while calculating this field. 14093 optional int64 index_size_bytes = 1; 14094 14095 // Size of the lite index lexicon in bytes. Will be set to -1 if an IO error 14096 // is encountered while calculating this field. 14097 optional int64 lite_index_lexicon_size_bytes = 2; 14098 14099 // Size of the lite index hit buffer in bytes. Will be set to -1 if an IO 14100 // error is encountered while calculating this field. 14101 optional int64 lite_index_hit_buffer_size_bytes = 3; 14102 14103 // Size of the main index lexicon in bytes. Will be set to -1 if an IO error 14104 // is encountered while calculating this field. 14105 optional int64 main_index_lexicon_size_bytes = 4; 14106 14107 // Size of the main index storage in bytes. Will be set to -1 if an IO error 14108 // is encountered while calculating this field. 14109 optional int64 main_index_storage_size_bytes = 5; 14110 14111 // Size of one main index block in bytes. 14112 optional int64 main_index_block_size_bytes = 6; 14113 14114 // Number of main index blocks. 14115 optional int32 num_blocks = 7; 14116 14117 // Percentage of the main index blocks that are free, assuming 14118 // allocated blocks are fully used. 14119 optional float min_free_fraction = 8; 14120} 14121 14122/** 14123 * Pulls information about storage information per user from AppSearch 14124 * 14125 * Pulled from: 14126 * frameworks/base/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java 14127 * 14128 * Next tag: 7 14129 */ 14130message AppSearchStorageInfo { 14131 // The associated user (for multi-user feature). Defined in android/os/UserHandle.java 14132 // This is mainly used as a dimension for the metric, but it can also tell us if 14133 // the StorageInfo is for a primary user or secondary user. 14134 optional int32 user = 1; 14135 14136 // Total size of Icing’s storage in bytes. Will be set to -1 if an IO error is 14137 // encountered while calculating this field. 14138 optional int64 total_storage_size_bytes = 2; 14139 14140 // Storage information of the document store. 14141 optional AppSearchDocumentStorageInfo document_storage_info = 3 14142 [(android.os.statsd.log_mode) = MODE_BYTES]; 14143 14144 // Storage information of the schema store. 14145 optional AppSearchSchemaStoreStorageInfo schema_store_storage_info = 4 14146 [(android.os.statsd.log_mode) = MODE_BYTES]; 14147 14148 // Storage information of the index. 14149 optional AppSearchIndexStorageInfo index_storage_info = 5 14150 [(android.os.statsd.log_mode) = MODE_BYTES]; 14151 14152 // The bitmask for all enabled features on this device. Must be one or a combination of the 14153 // types AppSearchEnabledFeatures. 14154 optional int64 enabled_features = 6; 14155} 14156 14157 14158/** 14159 * Reported when AppSearch Contacts Indexer syncs the contacts data from CP2 to AppSearch 14160 * 14161 * Reported from: 14162 * packages/modules/AppSearch/service/java/com/android/server/appsearch/contactsindexer/ContactsIndexerManagerService.java 14163 * 14164 * Next tag: 18 14165 */ 14166message ContactsIndexerUpdateStatsReported { 14167 enum UpdateType { 14168 UNKNOWN = 0; 14169 DELTA = 1; 14170 FULL = 2; 14171 } 14172 14173 // Type of the update 14174 optional UpdateType update_type = 1; 14175 14176 // Latency for the update in millis 14177 optional int32 total_latency_millis = 2; 14178 14179 // Status code to indicate whether the insert new contacts, or update 14180 // existing contacts succeeds, or fails and why 14181 // In case of success, it only contains OK. 14182 // In case of failures, it contains all the possible errors we get. 14183 repeated int32 update_status_codes = 3; 14184 14185 // Status code to indicate whether the delete succeeds, or fails and why 14186 // In case of success, it only contains OK. 14187 // In case of failures, it contains all the possible errors we get. 14188 repeated int32 delete_status_codes = 4; 14189 14190 // Number of new contacts to be updated. 14191 optional int32 number_of_new_contacts_to_be_updated = 5; 14192 14193 // Number of old and new contacts has been successfully updated. 14194 optional int32 number_of_contacts_update_succeeded = 6; 14195 14196 // Number of old contacts has been successfully deleted. 14197 optional int32 number_of_contacts_delete_succeeded = 7; 14198 14199 // Number of old contacts skipped during this update due to no 14200 // significant change. 14201 optional int32 number_of_contacts_update_skipped = 8; 14202 14203 // Number of old and new contacts failed to be updated 14204 optional int32 number_of_contacts_update_failed = 9; 14205 14206 // Number of old contacts failed to be deleted 14207 optional int32 number_of_contacts_delete_failed = 10; 14208 14209 // Number of old contacts to be deleted that were not found 14210 optional int32 number_of_contacts_delete_not_found = 11; 14211 14212 // Start timestamp of the update in millis 14213 optional int64 update_start_timestamp_millis = 12; 14214 14215 // Timestamp of the last full update in millis (not including this update) 14216 optional int64 last_full_update_timestamp_millis = 13; 14217 14218 // Timestamp of the last delta update in millis (not including this update) 14219 optional int64 last_delta_update_timestamp_millis = 14; 14220 14221 // Timestamp of the last contact to be updated from CP2 in millis 14222 optional int64 last_contact_updated_timestamp_millis = 15; 14223 14224 // Timestamp of the last contact to be deleted from CP2 in millis 14225 optional int64 last_contact_deleted_timestamp_millis = 16; 14226 14227 // The previous update's last_contact_updated_timestamp_millis 14228 // This field is only set for a full update and expected to match 14229 // last_contacted_update_timestamp_millis. If the fields do not match, then we 14230 // were unexpectedly not synced up with CP2 at the time of the update. 14231 optional int64 previous_last_contact_updated_timestamp_millis = 17; 14232} 14233 14234/** 14235 * Reported when the RebootEscrow HAL has attempted to recover the escrowed 14236 * key to indicate whether it was successful or not. 14237 * 14238 * Logged from: 14239 * frameworks/base/services/core/java/com/android/server/locksettings/RebootEscrowManager.java 14240 */ 14241message RebootEscrowRecoveryReported { 14242 // Type of the resume on reboot backend provider. 14243 enum ServiceType { 14244 UNKNOWN = 0; 14245 HAL = 1; 14246 SERVER_BASED = 2; 14247 } 14248 14249 // Whether the vbmeta digest of the current slot matches a precomputed value before reboot. 14250 enum VbmetaDigestStatus { 14251 MATCH_EXPECTED_SLOT = 0; 14252 MATCH_FALLBACK_SLOT = 1; 14253 MISMATCH = 2; 14254 } 14255 14256 optional bool successful = 1; 14257 // The error code for escrow data recovery failure 14258 optional int32 error_code = 2; 14259 14260 optional ServiceType type = 3; 14261 14262 // Number of retries to unwrap the escrow key asynchronously. 14263 optional int32 get_escrow_key_retry_count = 4; 14264 14265 // The duration between storing of reboot escrow key -> 14266 // use of reboot escrow key to unlock CE after reboot 14267 optional int32 duration_escrow_key_storage_to_unlock_seconds = 5; 14268 14269 optional VbmetaDigestStatus vbmeta_digest_status = 6; 14270 14271 // The duration between boot complete -> CE unlock 14272 optional int32 duration_boot_complete_to_unlock_seconds = 7; 14273} 14274 14275/** 14276 * Global display pipeline metrics reported by SurfaceFlinger. 14277 * Metrics exist beginning in Android 11. 14278 * There is a copy of this proto in timestats_atoms.proto in SurfaceFlinger. 14279 * That proto must be updated if this atom is updated. 14280 * 14281 * Pulled from: 14282 * frameworks/native/services/surfaceflinger/TimeStats/TimeStats.cpp 14283 */ 14284message SurfaceflingerStatsGlobalInfo { 14285 // Aggregated refresh rate buckets that layers were presenting at. Buckets 14286 // are defined in SurfaceFlinger and are tracked per device. 14287 // Introduced in Android 12. 14288 // This is intended to be used as a dimenstion in collecting per-refresh rate 14289 // jank statistics. 14290 optional int32 display_refresh_rate_bucket = 18; 14291 // Aggregated render rate buckets that layers were overridden to run at. 14292 // Buckets are defined in SurfaceFlinger and are tracked per device. 14293 // Introduced in Android 12. 14294 // This is intended to be used as a dimension in collecting per-render rate 14295 // jank statistics. 14296 optional int32 render_rate_bucket = 21; 14297 // Total number of frames presented during the tracing period 14298 // Note: This stat is not sliced by dimension. It will be duplicated for metrics 14299 // using render_rate_bucket as a dimension. 14300 optional int64 total_frames = 1; 14301 // Total number of frames missed 14302 // Note: This stat is not sliced by dimension. It will be duplicated for metrics 14303 // using render_rate_bucket as a dimension. 14304 optional int64 missed_frames = 2; 14305 // Total number of frames that fell back to client composition 14306 // Note: This stat is not sliced by dimension. It will be duplicated for metrics 14307 // using render_rate_bucket as a dimension. 14308 optional int64 client_composition_frames = 3; 14309 // Total time the display was turned on 14310 // Note: This stat is not sliced by dimension. It will be duplicated for metrics 14311 // using render_rate_bucket as a dimension. 14312 optional int64 display_on_millis = 4; 14313 // Total time that was spent performing animations. 14314 // This is derived from the present-to-present layer histogram. 14315 // Note: This stat is not sliced by dimension. It will be duplicated for metrics 14316 // using render_rate_bucket as a dimension. 14317 optional int64 animation_millis = 5; 14318 // Total number of event connections tracked by SurfaceFlinger at the time 14319 // of this pull. If this number grows prohibitively large, then this can 14320 // cause jank due to resource contention. 14321 // Note: This stat is not sliced by dimension. It will be duplicated for metrics 14322 // using render_rate_bucket as a dimension. 14323 optional int32 event_connection_count = 6; 14324 // Set of timings measured from when SurfaceFlinger began compositing a 14325 // frame, until the frame was requested to be presented to the display. This 14326 // measures SurfaceFlinger's total CPU walltime on the critical path per 14327 // frame. 14328 // Note: This stat is not sliced by dimension. It will be duplicated for metrics 14329 // using render_rate_bucket as a dimension. 14330 optional FrameTimingHistogram frame_duration = 7 14331 [(android.os.statsd.log_mode) = MODE_BYTES]; 14332 // Set of timings measured from when SurfaceFlinger first began using the 14333 // GPU to composite a frame, until the GPU has finished compositing that 14334 // frame. This measures the total additional time SurfaceFlinger needed to 14335 // perform due to falling back into GPU composition. 14336 // Note: This stat is not sliced by dimension. It will be duplicated for metrics 14337 // using render_rate_bucket as a dimension. 14338 optional FrameTimingHistogram render_engine_timing = 8 14339 [(android.os.statsd.log_mode) = MODE_BYTES]; 14340 // Number of frames where SF saw a frame, based on its frame timeline. 14341 // Frame timelines may include transactions without updating buffer contents. 14342 // Introduced in Android 12. 14343 optional int32 total_timeline_frames = 9; 14344 // Number of frames where SF saw a janky frame. 14345 // Introduced in Android 12. 14346 optional int32 total_janky_frames = 10; 14347 // Number of janky frames where SF spent a long time on the CPU. 14348 // Introduced in Android 12. 14349 optional int32 total_janky_frames_with_long_cpu = 11; 14350 // Number of janky frames where SF spent a long time on the GPU. 14351 // Introduced in Android 12. 14352 optional int32 total_janky_frames_with_long_gpu = 12; 14353 // Number of janky frames where SF missed the frame deadline, but there 14354 // was not an attributed reason (e.g., maybe HWC missed?) 14355 // Introduced in Android 12. 14356 optional int32 total_janky_frames_sf_unattributed = 13; 14357 // Number of janky frames where the app missed the frame deadline, but 14358 // there was not an attributed reason 14359 // Introduced in Android 12. 14360 optional int32 total_janky_frames_app_unattributed = 14; 14361 // Number of janky frames that were caused because of scheduling errors in 14362 // SF that resulted in early present (e.g., SF sending a buffer to the 14363 // composition engine earlier than expected, resulting in a present that is 14364 // one vsync early) 14365 // Introduced in Android 12. 14366 optional int32 total_janky_frames_sf_scheduling = 15; 14367 // Number of frames that were classified as jank because of possible drift in 14368 // vsync predictions. 14369 // Introduced in Android 12. 14370 optional int32 total_jank_frames_sf_prediction_error = 16; 14371 // Number of janky frames where the app was in a buffer stuffed state (more 14372 // than one buffer ready to be presented at the same vsync). Usually caused 14373 // when the first frame is unusually long, the following frames enter into a 14374 // stuffed state. 14375 // Introduced in Android 12. 14376 optional int32 total_jank_frames_app_buffer_stuffing = 17; 14377 // Buckets of timings in ms by which SurfaceFlinger's deadline was missed 14378 // while latching and presenting frames. 14379 // Introduced in Android 12. 14380 optional FrameTimingHistogram sf_deadline_misses = 19 14381 [(android.os.statsd.log_mode) = MODE_BYTES]; 14382 // Buckets of timings in ms by which the Vsync prediction drifted, when 14383 // compared to the actual hardware vsync. 14384 // Introduced in Android 12. 14385 optional FrameTimingHistogram sf_prediction_errors = 20 14386 [(android.os.statsd.log_mode) = MODE_BYTES]; 14387 14388 // Next ID: 22 14389} 14390 14391/** 14392 * Per-layer display pipeline metrics reported by SurfaceFlinger. 14393 * Metrics exist beginning in Android 11. 14394 * The number of layers uploaded may be restricted due to size limitations. 14395 * There is a copy of this proto in timestats_atoms.proto in SurfaceFlinger. 14396 * That proto must be updated if this atom is updated. 14397 * 14398 * Pulled from: 14399 * frameworks/native/services/surfaceflinger/TimeStats/TimeStats.cpp 14400 */ 14401message SurfaceflingerStatsLayerInfo { 14402 // UID of the application who submitted this layer for presentation 14403 // This is intended to be used as a dimension for surfacing rendering 14404 // statistics to applications. 14405 // Introduced in Android 12. 14406 optional int32 uid = 12 [(is_uid) = true]; 14407 // Refresh rate bucket that the layer was presenting at. Buckets are 14408 // defined in SurfaceFlinger and are tracked per device. 14409 // Introduced in Android 12. 14410 // This is intended to be used as a dimension in collecting per-refresh rate 14411 // jank statistics 14412 optional int32 display_refresh_rate_bucket = 22; 14413 // Render rate bucket that the layer was submitting frames at. Buckets are 14414 // defined in SurfaceFlinger and are tracked per device. 14415 // Introduced in Android 12. 14416 // This is intended to be used as a dimension in collecting per-render rate 14417 // jank statistics. 14418 optional int32 render_rate_bucket = 23; 14419 14420 // Game modes are used only for integrating with GameManager. 14421 enum GameMode { 14422 GAME_MODE_UNSPECIFIED = 0; 14423 GAME_MODE_UNSUPPORTED = 1; 14424 GAME_MODE_STANDARD = 2; 14425 GAME_MODE_PERFORMANCE = 3; 14426 GAME_MODE_BATTERY = 4; 14427 GAME_MODE_CUSTOM = 5; 14428 } 14429 14430 // Game mode that the layer was running at. Used to track user engagement 14431 // in different modes. The modes are defined in GameManager.java 14432 // All non-game layers will have this field set to UNSUPPORTED. 14433 // Introduced in Android 12 14434 // This is intended to be used as a dimension in collecting per-game mode 14435 // fps and frame related metrics. 14436 optional GameMode game_mode = 26; 14437 // The layer for this set of metrics 14438 // In many scenarios the package name is included in the layer name, e.g., 14439 // layers created by Window Manager. But this is not a guarantee - in the 14440 // general case layer names are arbitrary debug names. 14441 optional string layer_name = 1; 14442 // Total number of frames presented 14443 optional int64 total_frames = 2; 14444 // Total number of dropped frames while latching a buffer for this layer. 14445 optional int64 dropped_frames = 3; 14446 // Set of timings measured between successive presentation timestamps. 14447 optional FrameTimingHistogram present_to_present = 4 14448 [(android.os.statsd.log_mode) = MODE_BYTES]; 14449 // Variability histogram of present_to_present timings. 14450 optional FrameTimingHistogram present_to_present_delta = 27 14451 [(android.os.statsd.log_mode) = MODE_BYTES]; 14452 // Set of timings measured from when an app queued a buffer for 14453 // presentation, until the buffer was actually presented to the 14454 // display. 14455 optional FrameTimingHistogram post_to_present = 5 14456 [(android.os.statsd.log_mode) = MODE_BYTES]; 14457 // Set of timings measured from when a buffer is ready to be presented, 14458 // until the buffer was actually presented to the display. 14459 optional FrameTimingHistogram acquire_to_present = 6 14460 [(android.os.statsd.log_mode) = MODE_BYTES]; 14461 // Set of timings measured from when a buffer was latched by 14462 // SurfaceFlinger, until the buffer was presented to the display 14463 optional FrameTimingHistogram latch_to_present = 7 14464 [(android.os.statsd.log_mode) = MODE_BYTES]; 14465 // Set of timings measured from the desired presentation to the actual 14466 // presentation time 14467 optional FrameTimingHistogram desired_to_present = 8 14468 [(android.os.statsd.log_mode) = MODE_BYTES]; 14469 // Set of timings measured from when an app queued a buffer for 14470 // presentation, until the buffer was ready to be presented. 14471 optional FrameTimingHistogram post_to_acquire = 9 14472 [(android.os.statsd.log_mode) = MODE_BYTES]; 14473 // Frames missed latch because the acquire fence didn't fire 14474 optional int64 late_acquire_frames = 10; 14475 // Frames latched early because the desired present time was bad 14476 optional int64 bad_desired_present_frames = 11; 14477 // Number of frames where SF saw a frame, based on its frame timeline. 14478 // Frame timelines may include transactions without updating buffer contents. 14479 // Introduced in Android 12. 14480 optional int32 total_timeline_frames = 13; 14481 // Number of frames where SF saw a janky frame. 14482 // Introduced in Android 12. 14483 optional int32 total_janky_frames = 14; 14484 // Number of janky frames where SF spent a long time on the CPU. 14485 // Introduced in Android 12. 14486 optional int32 total_janky_frames_with_long_cpu = 15; 14487 // Number of janky frames where SF spent a long time on the GPU. 14488 // Introduced in Android 12. 14489 optional int32 total_janky_frames_with_long_gpu = 16; 14490 // Number of janky frames where SF missed the frame deadline, but there 14491 // was not an attributed reason (e.g., maybe HWC missed?) 14492 // Introduced in Android 12. 14493 optional int32 total_janky_frames_sf_unattributed = 17; 14494 // Number of janky frames where the app missed the frame deadline, but 14495 // there was not an attributed reason 14496 // Introduced in Android 12. 14497 optional int32 total_janky_frames_app_unattributed = 18; 14498 // Number of janky frames that were caused because of scheduling errors in 14499 // SF that resulted in early present (e.g., SF sending a buffer to the 14500 // composition engine earlier than expected, resulting in a present that is 14501 // one vsync early) 14502 // Introduced in Android 12. 14503 optional int32 total_janky_frames_sf_scheduling = 19; 14504 // Number of frames that were classified as jank because of possible drift in 14505 // vsync predictions. 14506 // Introduced in Android 12. 14507 optional int32 total_jank_frames_sf_prediction_error = 20; 14508 // Number of janky frames where the app was in a buffer stuffed state (more 14509 // than one buffer ready to be presented at the same vsync). Usually caused 14510 // when the first frame is unusually long, the following frames enter into a 14511 // stuffed state. 14512 // Introduced in Android 12. 14513 optional int32 total_jank_frames_app_buffer_stuffing = 21; 14514 14515 /** 14516 * Encapsulates the FrameRateVote information sent by the application while 14517 * calling setFrameRate. 14518 * Metrics exist beginning in Android 12. 14519 */ 14520 message SetFrameRateVote { 14521 // The desired frame rate the application wishes to run on. 14522 optional float frame_rate = 1; 14523 14524 enum FrameRateCompatibility { 14525 FRAME_RATE_UNDEFINED = 0; 14526 FRAME_RATE_DEFAULT = 1; 14527 FRAME_RATE_EXACT_OR_MULTIPLE = 2; 14528 } 14529 14530 // Specifies how to interpret the frame rate associated with the layer. 14531 // Defined in Layer.h 14532 optional FrameRateCompatibility frame_rate_compatibility = 2; 14533 14534 enum Seamlessness { 14535 SEAMLESS_UNDEFINED = 0; 14536 SEAMLESS_SHOULD_BE_SEAMLESS = 1; 14537 SEAMLESS_NOT_REQUIRED = 2; 14538 } 14539 // Indicates whether seamless refresh rate switch is required or not. 14540 optional Seamlessness seamlessness = 3; 14541 } 14542 14543 // The last frame rate vote set by the application. 14544 // Introduced in Android 12. 14545 optional SetFrameRateVote set_frame_rate_vote = 24 14546 [(android.os.statsd.log_mode) = MODE_BYTES]; 14547 // Buckets of timings in ms by which the app deadline was missed while 14548 // submitting work for a frame. 14549 // Introduced in Android 12. 14550 optional FrameTimingHistogram app_deadline_misses = 25 14551 [(android.os.statsd.log_mode) = MODE_BYTES]; 14552 14553 // Next ID: 28 14554} 14555 14556/** 14557 * Histogram of frame counts bucketed by time in milliseconds. 14558 * Because of size limitations, we hard-cap the number of buckets, with 14559 * buckets for corresponding to larger milliseconds being less precise. 14560 */ 14561message FrameTimingHistogram { 14562 // Timings in milliseconds that describes a set of histogram buckets 14563 repeated int32 time_millis_buckets = 1; 14564 // Number of frames that match to each time_millis, i.e. the bucket 14565 // contents 14566 // It's required that len(time_millis) == len(frame_count) 14567 repeated int64 frame_counts = 2; 14568} 14569 14570/** 14571 * Janky event as reported by SurfaceFlinger. 14572 * This event is intended to be consumed by a Perfetto subscriber for 14573 * automated trace collection. 14574 * 14575 * Logged from: 14576 * frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp 14577 */ 14578message DisplayJankReported { 14579 // Informational field for how long the janky event lasted in milliseconds 14580 optional int64 event_duration_millis = 1; 14581 // Number of frame deadlines missed, where SurfaceFlinger failed to update 14582 // the display on time. 14583 optional int32 present_deadlines_missed = 2; 14584} 14585 14586message CameraStreamProto { 14587 // The stream width (in pixels) 14588 optional int32 width = 1; 14589 // The stream height (in pixels) 14590 optional int32 height = 2; 14591 // The format of the stream 14592 optional int32 format = 3; 14593 // The dataspace of the stream 14594 optional int32 data_space = 4; 14595 // The usage flag of the stream 14596 optional int64 usage = 5; 14597 14598 // The number of requests for this stream 14599 optional int64 request_count = 6; 14600 // The number of buffer error for this stream 14601 optional int64 error_count = 7; 14602 // The capture latency of first request for this stream 14603 optional int32 first_capture_latency_millis = 8; 14604 14605 // The maximum number of hal buffers 14606 optional int32 max_hal_buffers = 9; 14607 // The maximum number of app buffers 14608 optional int32 max_app_buffers = 10; 14609 14610 // Type of stream histogram 14611 // 1: Capture latency: bin size in milliseconds 14612 enum HistogramType { 14613 UNKNOWN = 0; 14614 CAPTURE_LATENCY = 1; 14615 } 14616 optional HistogramType histogram_type = 11; 14617 // The boundary values between histogram bins 14618 // Expected number of fields: 9 14619 repeated float histogram_bins = 12; 14620 // The frame counts for each histogram bins 14621 // Expected number of fields: 10 14622 repeated int64 histogram_counts = 13; 14623 // The dynamic range profile of the stream 14624 optional int64 dynamic_range_profile = 14; 14625 // The stream use case 14626 optional int64 stream_use_case = 15; 14627 // The color space 14628 optional int32 color_space = 16; 14629} 14630 14631/** 14632 * Information about camera facing and API level usage. 14633 * Logged from: 14634 * frameworks/base/services/core/java/com/android/server/camera/CameraServiceProxy.java 14635 */ 14636message CameraActionEvent { 14637 // Camera session duration in milliseconds if action is SESSION. 14638 // 0 if action is OPEN or CLOSE. 14639 optional int64 duration_millis = 1; 14640 14641 // Camera API level used. 14642 // 1 for camera1 API, and 2 for camera2 API. 14643 optional int32 api_level = 2; 14644 14645 // Name of client package 14646 optional string package_name = 3; 14647 14648 // Camera facing 14649 enum Facing { 14650 UNKNOWN = 0; 14651 BACK = 1; 14652 FRONT = 2; 14653 EXTERNAL = 3; 14654 } 14655 optional Facing facing = 4; 14656 14657 // Camera ID 14658 optional string camera_id = 5; 14659 14660 // Camera action type 14661 enum Action { 14662 UNKNOWN_ACTION = 0; 14663 OPEN = 1; 14664 CLOSE = 2; 14665 SESSION = 3; 14666 } 14667 optional Action action = 6; 14668 14669 // Whether the client is accessing camera using ndk 14670 optional bool is_ndk = 7; 14671 14672 // Action OPEN: Open latency 14673 // Action CLOSE: Close latency 14674 // Action SESSION: Camera session creation duration. 14675 // If this entry is reusing an existing session, the value is -1. 14676 optional int32 latency_millis = 8; 14677 14678 // session type: 0 for normal mode, 1 for constrained high speed mode 14679 optional int32 operating_mode = 9; 14680 14681 // If actioh is SESSION: number of internal reconfigurations 14682 // Else: 0 14683 optional int32 internal_reconfig = 10; 14684 14685 // Number of requests for this capture session. Only applicable to SESSION 14686 // action. 14687 optional int64 request_count = 11; 14688 // Number of result errors. Only applicable to SESSION action. 14689 optional int64 result_error_count = 12; 14690 // Whether the device runs into error state. 14691 optional bool device_error = 13; 14692 14693 // If action is SESSION: Stream states 14694 // Else: stream_count = 0 14695 optional int32 stream_count = 14; 14696 optional CameraStreamProto stream_1 = 15 [(log_mode) = MODE_BYTES]; 14697 optional CameraStreamProto stream_2 = 16 [(log_mode) = MODE_BYTES]; 14698 optional CameraStreamProto stream_3 = 17 [(log_mode) = MODE_BYTES]; 14699 optional CameraStreamProto stream_4 = 18 [(log_mode) = MODE_BYTES]; 14700 optional CameraStreamProto stream_5 = 19 [(log_mode) = MODE_BYTES]; 14701 14702 // User tag string for this session 14703 optional string user_tag = 20; 14704 14705 // Video stabilization mode 14706 // Original type: uint8_t 14707 optional int32 video_stabilization_mode = 21 [default = -1]; 14708 14709 // Identifier to correlate different Action events to each other 14710 // Not unique. Must be used with build fingerprint to generate a 14711 // good enough identifier. 14712 optional int64 log_id = 22; 14713 14714 // 0 for OPEN and CLOSE 14715 // ordinal of the SESSION between OPEN and CLOSE 14716 optional int32 session_idx = 23; 14717 14718 // Start: Extension metrics. 14719 // These will only be set for SESSION which use camera2 extensions 14720 14721 // Should match CameraExtensionCharacteristics#EXTENSION_* 14722 enum ExtensionSessionType { 14723 EXTENSION_NONE = -1; 14724 EXTENSION_AUTOMATIC = 0; 14725 EXTENSION_FACE_RETOUCH = 1; 14726 EXTENSION_BOKEH = 2; 14727 EXTENSION_HDR = 3; 14728 EXTENSION_NIGHT = 4; 14729 14730 } 14731 14732 // Type of camera extension being used 14733 optional ExtensionSessionType ext_type = 24 [default = EXTENSION_NONE]; 14734 14735 // Whether advanced extensions session is being used 14736 optional bool ext_is_advanced = 25; 14737 // End: Extension Metrics 14738 14739 optional bool used_ultrawide = 26; 14740 14741 optional bool used_zoom_override = 27; 14742 14743 optional int32 most_requested_fps_range_min = 28; 14744 optional int32 most_requested_fps_range_max = 29; 14745 14746 // Extension metric 14747 optional int32 ext_capture_format = 30; 14748} 14749 14750/** 14751 * Logs when a compatibility change is affecting an app. 14752 * 14753 * Logged from: 14754 * frameworks/base/core/java/android/app/AppCompatCallbacks.java and 14755 * frameworks/base/services/core/java/com/android/server/compat/PlatformCompat.java 14756 */ 14757message AppCompatibilityChangeReported { 14758 // The UID of the app being affected by the compatibilty change. 14759 optional int32 uid = 1 [(is_uid) = true]; 14760 14761 // The ID of the change affecting the app. 14762 optional int64 change_id = 2; 14763 14764 enum State { 14765 UNKNOWN_STATE = 0; 14766 ENABLED = 1; 14767 DISABLED = 2; 14768 LOGGED = 3; 14769 } 14770 14771 // The state of the change - if logged from gating whether it was enabled or disabled, or just 14772 // logged otherwise. 14773 optional State state = 3; 14774 14775 enum Source { 14776 UNKNOWN_SOURCE = 0; 14777 APP_PROCESS = 1; 14778 SYSTEM_SERVER = 2; 14779 } 14780 14781 // Where it was logged from. 14782 optional Source source = 4; 14783 14784} 14785 14786/** 14787 * Logged from 14788 * external/perfetto/src/perfetto_cmd/perfetto_cmd.cc 14789 * external/perfetto/src/tracing/service/tracing_service_impl.cc 14790 */ 14791message PerfettoUploaded { 14792 // TODO(lalitm): many of the atoms below should be renamed to have a 14793 // "PERFETTO_CMD" prefix to make clear they are specific to perfetto_cmd. 14794 // This state exists because of legacy reasons (i.e. these values existed 14795 // before go/perfetto-monitoring was a thing). 14796 // Next id: 60. 14797 enum Event { 14798 PERFETTO_UNDEFINED = 0; 14799 14800 // Checkpoints inside perfetto_cmd before tracing is finished. 14801 PERFETTO_TRACE_BEGIN = 1; 14802 PERFETTO_BACKGROUND_TRACE_BEGIN = 2; 14803 PERFETTO_CMD_CLONE_TRACE_BEGIN = 55; 14804 PERFETTO_CMD_CLONE_TRIGGER_TRACE_BEGIN = 56; 14805 PERFETTO_ON_CONNECT = 3; 14806 PERFETTO_CMD_ON_SESSION_CLONE = 58; 14807 PERFETTO_CMD_ON_TRIGGER_CLONE = 59; 14808 14809 // Guardrails inside perfetto_cmd before tracing is finished. 14810 PERFETTO_ON_TIMEOUT = 16; 14811 PERFETTO_CMD_USER_BUILD_TRACING_NOT_ALLOWED = 43; 14812 14813 // Checkpoints inside traced. 14814 PERFETTO_TRACED_ENABLE_TRACING = 37; 14815 PERFETTO_TRACED_START_TRACING = 38; 14816 PERFETTO_TRACED_DISABLE_TRACING = 39; 14817 PERFETTO_TRACED_NOTIFY_TRACING_DISABLED = 40; 14818 14819 // Trigger checkpoints inside traced. 14820 // These atoms are special because, along with the UUID, 14821 // they log the trigger name. 14822 PERFETTO_TRACED_TRIGGER_START_TRACING = 41; 14823 PERFETTO_TRACED_TRIGGER_STOP_TRACING = 42; 14824 PERFETTO_TRACED_TRIGGER_CLONE_SNAPSHOT = 53; 14825 14826 // Guardrails inside traced. 14827 PERFETTO_TRACED_ENABLE_TRACING_EXISTING_TRACE_SESSION = 18; 14828 PERFETTO_TRACED_ENABLE_TRACING_TOO_LONG_TRACE = 19; 14829 PERFETTO_TRACED_ENABLE_TRACING_INVALID_TRIGGER_TIMEOUT = 20; 14830 PERFETTO_TRACED_ENABLE_TRACING_DURATION_WITH_TRIGGER = 21; 14831 PERFETTO_TRACED_ENABLE_TRACING_STOP_TRACING_WRITE_INTO_FILE = 22; 14832 PERFETTO_TRACED_ENABLE_TRACING_DUPLICATE_TRIGGER_NAME = 23; 14833 PERFETTO_TRACED_ENABLE_TRACING_INVALID_DEFERRED_START = 24; 14834 PERFETTO_TRACED_ENABLE_TRACING_INVALID_BUFFER_SIZE = 25; 14835 PERFETTO_TRACED_ENABLE_TRACING_BUFFER_SIZE_TOO_LARGE = 26; 14836 PERFETTO_TRACED_ENABLE_TRACING_TOO_MANY_BUFFERS = 27; 14837 PERFETTO_TRACED_ENABLE_TRACING_DUPLICATE_SESSION_NAME = 28; 14838 PERFETTO_TRACED_ENABLE_TRACING_SESSION_NAME_TOO_RECENT = 29; 14839 PERFETTO_TRACED_ENABLE_TRACING_TOO_MANY_SESSIONS_FOR_UID = 30; 14840 PERFETTO_TRACED_ENABLE_TRACING_TOO_MANY_CONCURRENT_SESSIONS = 31; 14841 PERFETTO_TRACED_ENABLE_TRACING_INVALID_FD_OUTPUT_FILE = 32; 14842 PERFETTO_TRACED_ENABLE_TRACING_FAILED_TO_CREATE_FILE = 33; 14843 PERFETTO_TRACED_ENABLE_TRACING_OOM = 34; 14844 PERFETTO_TRACED_ENABLE_TRACING_UNKNOWN_ERROR = 35; 14845 PERFETTO_TRACED_START_TRACING_INVALID_SESSION_STATE = 36; 14846 PERFETTO_TRACED_ENABLE_TRACING_INVALID_FILTER = 47; 14847 PERFETTO_TRACED_ENABLE_TRACING_OOB_TARGET_BUFFER = 48; 14848 PERFETTO_TRACED_ENABLE_TRACING_INVALID_TRIGGER_MODE = 52; 14849 PERFETTO_TRACED_ENABLE_TRACING_INVALID_BR_FILENAME = 54; 14850 PERFETTO_TRACED_ENABLE_TRACING_FAILED_SESSION_SEMAPHORE_CHECK = 57; 14851 14852 // Checkpoints inside perfetto_cmd after tracing has finished. 14853 PERFETTO_ON_TRACING_DISABLED = 4; 14854 PERFETTO_FINALIZE_TRACE_AND_EXIT = 11; 14855 PERFETTO_CMD_FW_REPORT_BEGIN = 49; 14856 // Will be removed once incidentd is no longer used. 14857 PERFETTO_UPLOAD_INCIDENT_BEGIN = 8; 14858 14859 // Guardrails inside perfetto_cmd after tracing has finished. 14860 PERFETTO_CMD_FW_REPORT_EMPTY_TRACE = 50; 14861 // Will be removed once incidentd is no longer used. 14862 PERFETTO_UPLOAD_INCIDENT_FAILURE = 10; 14863 PERFETTO_NOT_UPLOADING_EMPTY_TRACE = 17; 14864 14865 // "Successful" terminal states inside perfetto_cmd. 14866 PERFETTO_CMD_FW_REPORT_HANDOFF = 51; 14867 14868 // Deprecated as "success" is misleading; it simply means we were 14869 // able to communicate with incidentd. Will be removed once 14870 // incidentd is no longer used. 14871 PERFETTO_UPLOAD_INCIDENT_SUCCESS = 9 [deprecated = true]; 14872 14873 // Contained trigger begin/success/failure. Replaced by 14874 // |PerfettoTriggerAtom| to allow aggregation using a count metric 14875 // and reduce spam. 14876 reserved 12, 13, 14; 14877 14878 // Contained that a guardrail in perfetto_cmd was hit. Replaced with 14879 // kCmd* guardrails. 14880 reserved 15; 14881 14882 // Contained status of Dropbox uploads. Removed as Perfetto no 14883 // longer supports uploading traces using Dropbox. 14884 reserved 5, 6, 7; 14885 14886 // Contained status of guardrail state initialization and upload limit 14887 // in perfetto_cmd. Removed as perfetto no longer manages stateful 14888 // guardrails 14889 reserved 44, 45, 46; 14890 } 14891 14892 // Which stage of the pipeline we are reporting from. 14893 optional Event event = 1; 14894 14895 // UUID matching the one set inside the SystemInfo trace packet. 14896 optional int64 trace_uuid_lsb = 2; 14897 optional int64 trace_uuid_msb = 3; 14898 14899 // For trigger checkpoints inside traced, contains the trigger name 14900 // associated with this trace UUID. 14901 optional string trigger_name = 4; 14902} 14903 14904/** 14905 * Logged from 14906 * external/perfetto/src/tracing/service/tracing_service_impl.cc 14907 */ 14908message PerfettoTrigger { 14909 enum Event { 14910 PERFETTO_UNDEFINED = 0; 14911 14912 PERFETTO_TRACED_LIMIT_PROBABILITY = 5; 14913 PERFETTO_TRACED_LIMIT_MAX_PER_24_H = 6; 14914 14915 PERFETTO_TRACED_TRIGGER = 9; 14916 14917 // Contained events of logging triggers through perfetto_cmd, probes and 14918 // trigger_perfetto. Obsolete because of logging dirctly in traced instead. 14919 // Removed in W (Oct 2024) and replaced by |kTracedTrigger|. 14920 PERFETTO_CMD_TRIGGER = 1 [deprecated = true]; 14921 PERFETTO_CMD_TRIGGER_FAIL = 2 [deprecated = true]; 14922 14923 PERFETTO_TRIGGER_PERFETTO_TRIGGER = 3 [deprecated = true]; 14924 PERFETTO_TRIGGER_PERFETTO_TRIGGER_FAIL = 4 [deprecated = true]; 14925 14926 PERFETTO_PROBES_PRODUCER_TRIGGER = 7 [deprecated = true]; 14927 PERFETTO_PROBES_PRODUCER_TRIGGER_FAIL = 8 [deprecated = true]; 14928 } 14929 14930 // The event which fired. 14931 optional Event event = 1; 14932 14933 // The name of the trigger which fired. 14934 optional string trigger_name = 2; 14935} 14936 14937/** 14938 * Pulls client metrics on data transferred via Vehicle Maps Service. 14939 * Metrics are keyed by uid + layer. 14940 * 14941 * Pulled from: 14942 * packages/services/Car/service/src/com/android/car/stats/CarStatsService.java 14943 */ 14944message VmsClientStats { 14945 // UID of the VMS client app 14946 optional int32 uid = 1 [(is_uid) = true]; 14947 14948 // VMS layer definition 14949 optional int32 layer_type = 2; 14950 optional int32 layer_channel = 3; 14951 optional int32 layer_version = 4; 14952 14953 // Bytes and packets sent by the client for the layer 14954 optional int64 tx_bytes = 5; 14955 optional int64 tx_packets = 6; 14956 14957 // Bytes and packets received by the client for the layer 14958 optional int64 rx_bytes = 7; 14959 optional int64 rx_packets = 8; 14960 14961 // Bytes and packets dropped due to client error 14962 optional int64 dropped_bytes = 9; 14963 optional int64 dropped_packets = 10; 14964} 14965 14966/** 14967 * State of a all permission requested by a package - sampled 14968 * Pulled from: StatsCompanionService.java with data obtained from PackageManager API 14969*/ 14970message DangerousPermissionStateSampled { 14971 // Name of the permission 14972 optional string permission_name = 1; 14973 14974 // Uid of the package 14975 optional int32 uid = 2 [(is_uid) = true]; 14976 14977 // If the permission is granted to the uid 14978 optional bool is_granted = 3; 14979 14980 // Permission flags as per android.content.pm.PermissionFlags 14981 optional int32 permission_flags = 4; 14982 14983 // Permission protection flags as per android.content.pm.PermissionInfo.ProtectionFlags 14984 optional int32 protection_flags = 5; 14985} 14986 14987/** 14988 * HWUI stats for a given app. 14989 */ 14990message GraphicsStats { 14991 // The package name of the app 14992 optional string package_name = 1; 14993 14994 // The version code of the app 14995 optional int64 version_code = 2; 14996 14997 // The uid of the app 14998 optional int32 uid = 17 [(is_uid) = true]; 14999 15000 // The start & end timestamps in UTC as 15001 // milliseconds since January 1, 1970 15002 // Compatible with java.util.Date#setTime() 15003 optional int64 start_millis = 3; 15004 15005 optional int64 end_millis = 4; 15006 15007 // HWUI renders pipeline type: GL (1) or Vulkan (2). 15008 enum PipelineType { 15009 UNKNOWN = 0; 15010 GL = 1; 15011 VULKAN = 2; 15012 } 15013 15014 // HWUI renders pipeline type: GL or Vulkan. 15015 optional PipelineType pipeline = 5; 15016 15017 // Distinct frame count. 15018 optional int32 total_frames = 6; 15019 15020 // Number of "missed vsync" events. 15021 optional int32 missed_vsync_count = 7; 15022 15023 // Number of frames in triple-buffering scenario (high input latency) 15024 optional int32 high_input_latency_count = 8; 15025 15026 // Number of "slow UI thread" events. 15027 optional int32 slow_ui_thread_count = 9; 15028 15029 // Number of "slow bitmap upload" events. 15030 optional int32 slow_bitmap_upload_count = 10; 15031 15032 // Number of "slow draw" events. 15033 optional int32 slow_draw_count = 11; 15034 15035 // Number of frames that missed their deadline (aka, visibly janked) 15036 optional int32 missed_deadline_count = 12; 15037 15038 // The frame time histogram for the package 15039 optional FrameTimingHistogram cpu_histogram = 13 15040 [(android.os.statsd.log_mode) = MODE_BYTES]; 15041 15042 // The gpu frame time histogram for the package 15043 optional FrameTimingHistogram gpu_histogram = 14 15044 [(android.os.statsd.log_mode) = MODE_BYTES]; 15045 15046 // UI mainline module version. 15047 optional int64 version_ui_module = 15; 15048 15049 // If true, these are HWUI stats for up to a 24h period for a given app from today. 15050 // If false, these are HWUI stats for a 24h period for a given app from the last complete 15051 // day (yesterday). Stats from yesterday stay constant, while stats from today may change as 15052 // more apps are running / rendering. 15053 optional bool is_today = 16; 15054 15055 // next id = 18 15056} 15057 15058/** 15059 * Message related to dangerous (runtime) app ops access 15060 */ 15061message RuntimeAppOpAccess { 15062 // Uid of the package accessing app op 15063 optional int32 uid = 1 [(is_uid) = true]; 15064 15065 // Name of the package accessing app op 15066 optional string package_name = 2; 15067 15068 // deprecated - set to empty string 15069 optional string op_deprecated = 3 [deprecated = true]; 15070 15071 // attribution_tag; provided by developer when accessing related API, limited at 50 chars by 15072 // API. Attributions must be provided through manifest using <attribution> tag available in R 15073 // and above. 15074 optional string attribution_tag = 4; 15075 15076 // message related to app op access, limited to 600 chars by API 15077 optional string message = 5; 15078 15079 enum SamplingStrategy { 15080 DEFAULT = 0; 15081 UNIFORM = 1; 15082 RARELY_USED = 2; 15083 BOOT_TIME_SAMPLING = 3; 15084 UNIFORM_OPS = 4; 15085 } 15086 15087 // sampling strategy used to collect this message 15088 optional SamplingStrategy sampling_strategy = 6; 15089 15090 // operation id 15091 optional android.app.AppOpEnum op = 7 [default = APP_OP_NONE]; 15092} 15093 15094/* 15095 * Logs userspace reboot outcome and duration. 15096 * 15097 * Logged from: 15098 * frameworks/base/core/java/com/android/server/BootReceiver.java 15099 */ 15100message UserspaceRebootReported { 15101 // Possible outcomes of userspace reboot. 15102 enum Outcome { 15103 // Default value in case platform failed to determine the outcome. 15104 OUTCOME_UNKNOWN = 0; 15105 // Userspace reboot succeeded (i.e. boot completed without a fall back to hard reboot). 15106 SUCCESS = 1; 15107 // Userspace reboot shutdown sequence was aborted. 15108 FAILED_SHUTDOWN_SEQUENCE_ABORTED = 2; 15109 // Remounting userdata into checkpointing mode failed. 15110 FAILED_USERDATA_REMOUNT = 3; 15111 // Device didn't finish booting before timeout and userspace reboot watchdog issued a hard 15112 // reboot. 15113 FAILED_USERSPACE_REBOOT_WATCHDOG_TRIGGERED = 4; 15114 } 15115 // Outcome of userspace reboot. Always set. 15116 optional Outcome outcome = 1; 15117 // Duration of userspace reboot in case it has a successful outcome. 15118 // Duration is measured as time between userspace reboot was initiated and until boot completed 15119 // (e.g. sys.boot_completed=1). 15120 optional int64 duration_millis = 2; 15121 // State of primary user's (user0) credential encryption storage. 15122 enum UserEncryptionState { 15123 // Default value. 15124 USER_ENCRYPTION_STATE_UNKNOWN = 0; 15125 // Credential encrypted storage is unlocked. 15126 UNLOCKED = 1; 15127 // Credential encrypted storage is locked. 15128 LOCKED = 2; 15129 } 15130 // State of primary user's encryption storage at the moment boot completed. Always set. 15131 optional UserEncryptionState user_encryption_state = 3; 15132} 15133 15134/* 15135 * Logs integrity check information during each install. 15136 * 15137 * Logged from: 15138 * frameworks/base/services/core/java/com/android/server/integrity/AppIntegrityManagerServiceImpl.java 15139 */ 15140message IntegrityCheckResultReported { 15141 optional string package_name = 1; 15142 optional string app_certificate_hash = 2; 15143 optional int64 version_code = 3; 15144 optional string installer_package_name = 4; 15145 enum Response { 15146 UNKNOWN = 0; 15147 ALLOWED = 1; 15148 REJECTED = 2; 15149 FORCE_ALLOWED = 3; 15150 } 15151 optional Response response = 5; 15152 // An estimate on the cause of the response. This will only be populated for 15153 // REJECTED and FORCE_ALLOWED 15154 optional bool caused_by_app_cert_rule = 6; 15155 optional bool caused_by_installer_rule = 7; 15156} 15157 15158/** 15159 * Logs the information about the rules and the provider whenever rules are 15160 * pushed into AppIntegrityManager. 15161 * 15162 * Logged from: 15163 * frameworks/base/services/core/java/com/android/server/integrity/AppIntegrityManagerServiceImpl.java 15164 */ 15165message IntegrityRulesPushed { 15166 optional bool success = 1; 15167 // Package name of the app that pushed the rules. 15168 optional string rule_provider = 2; 15169 // Version string of arbitrary format provided by the rule provider to 15170 // identify the rules. 15171 optional string rule_version = 3; 15172} 15173 15174/** 15175 * Logs when a cell broadcast message is received on the device. 15176 * 15177 * Logged from Cell Broadcast module and platform: 15178 * packages/modules/CellBroadcastService/src/com/android/cellbroadcastservice/ 15179 * packages/apps/CellBroadcastReceiver/src/com/android/cellbroadcastreceiver/ 15180 * frameworks/opt/telephony/src/java/com/android/internal/telephony/CellBroadcastServiceManager.java 15181 */ 15182message CellBroadcastMessageReported { 15183 // The type of Cell Broadcast message 15184 enum CbType { 15185 UNKNOWN_TYPE = 0; 15186 GSM = 1; 15187 CDMA = 2; 15188 CDMA_SPC = 3; 15189 } 15190 15191 // The parts of the cell broadcast message pipeline 15192 enum ReportSource { 15193 UNKNOWN_SOURCE = 0; 15194 FRAMEWORK = 1; 15195 CB_SERVICE = 2; 15196 CB_RECEIVER_APP = 3; 15197 } 15198 15199 // GSM, CDMA, CDMA-SCP 15200 optional CbType type = 1; 15201 // The source of the report 15202 optional ReportSource source = 2; 15203 // The Message Identifier, as defined in 3GPP 23.041 clause 9.4.1.2.1 15204 optional int32 serial_number = 3 [ deprecated = true ]; 15205 // The Message Identifier, as defined in 3GPP 23.041 clause 9.4.1.2.2 15206 optional int32 message_id = 4; 15207 // The roaming case will show mcc value, if not empty string 15208 optional string roaming_mcc_mnc = 5; 15209 // The language indicator, as defined in ISO 639 language codes set 1 15210 optional string language_indicator = 6; 15211} 15212 15213/** 15214 * Logs when a cell broadcast message is filtered out, 15215 * or otherwise intentionally not sent to CBR, or not shown to users for reason 15216 * 15217 * Logged from Cell Broadcast module: 15218 * packages/modules/CellBroadcastService/src/com/android/cellbroadcastservice/ 15219 * packages/apps/CellBroadcastReceiver/src/com/android/cellbroadcastreceiver/ 15220 */ 15221message CellBroadcastMessageFiltered { 15222 enum FilterReason { 15223 // shown message to the user 15224 NOT_FILTERED = 0; 15225 // filtered message due to duplication (message body, service category, cross sim) 15226 DUPLICATE_MESSAGE = 1; 15227 // filtered message due to outside of coordinate range 15228 GEOFENCED_MESSAGE = 2; 15229 // filtered message due to not using for emergency alert but for update cell information on Setting Menu 15230 AREA_INFO_MESSAGE = 3; 15231 // filtered message due to OEM set config value ‘filtered message for duplication’ as ‘true’ 15232 DISABLED_BY_OEM = 4; 15233 // when in ECBM(Emergency CallBack Mode) status 15234 NOTSHOW_ECBM = 5; 15235 // when user turn off preference of channel 15236 NOTSHOW_USER_PREF = 6; 15237 // when Empty content or Unsupported charset 15238 NOTSHOW_EMPTY_BODY = 7; 15239 // when language code in message is not same with preference of second language 15240 NOTSHOW_MISMATCH_PREF_SECOND_LANG = 8; 15241 // when user turn off preference of second language 15242 NOTSHOW_PREF_SECONDLANG_OFF = 9; 15243 // when language code in message is not same with device language setting 15244 NOTSHOW_MISMATCH_DEVICE_LANG_SETTING = 10; 15245 // when channel has feature ‘testing_mode = true’ and device is not in cb test_mode 15246 NOTSHOW_MESSAGE_FOR_TESTMODE = 11; 15247 // when the message contains ‘filter’ string from properties 15248 NOTSHOW_FILTER_STRING = 12; 15249 } 15250 15251 // GSM, CDMA, CDMA-SCP 15252 optional CellBroadcastMessageReported.CbType type = 1; 15253 // The source of the report 15254 optional FilterReason filter = 2; 15255 // The Message Identifier, as defined in 3GPP 23.041 clause 9.4.1.2.1 15256 optional int32 serial_number = 3 [ deprecated = true ]; 15257 // The Message Identifier, as defined in 3GPP 23.041 clause 9.4.1.2.2 15258 optional int32 message_id = 4; 15259} 15260 15261/** 15262 * Logs when an error occurs while handling a cell broadcast message; 15263 * 15264 * Logged from CellBroadcastService module: 15265 * packages/modules/CellBroadcastService/src/com/android/cellbroadcastservice/ 15266 */ 15267message CellBroadcastMessageError { 15268 // The type of error raised when trying to handle a cell broadcast message 15269 enum ErrorType { 15270 UNKNOWN_TYPE = 0; 15271 CDMA_DECODING_ERROR = 1; 15272 CDMA_SCP_EMPTY = 2; 15273 CDMA_SCP_HANDLING_ERROR = 3; 15274 GSM_INVALID_HEADER_LENGTH = 4; 15275 GSM_UNSUPPORTED_HEADER_MESSAGE_TYPE = 5; 15276 GSM_UNSUPPORTED_HEADER_DATA_CODING_SCHEME = 6; 15277 GSM_INVALID_PDU = 7; 15278 GSM_INVALID_GEO_FENCING_DATA = 8; 15279 GSM_UMTS_INVALID_WAC = 9; 15280 FAILED_TO_INSERT_TO_DB = 10; 15281 UNEXPECTED_GEOMETRY_FROM_FWK = 11; 15282 UNEXPECTED_GSM_MESSAGE_TYPE_FROM_FWK = 12; 15283 UNEXPECTED_CDMA_MESSAGE_TYPE_FROM_FWK = 13; 15284 UNEXPECTED_CDMA_SCP_MESSAGE_TYPE_FROM_FWK = 14; 15285 NO_CONNECTION_TO_CB_SERVICE = 15; 15286 } 15287 15288 // What kind of error occurred 15289 optional ErrorType type = 1; 15290 // Exception message (or log message) associated with the error (max 1000 chars) 15291 optional string exception_message = 2; 15292} 15293 15294/** 15295 * CellBroadcast channel range 15296 * Refer from CellBroadcastConfigUpdated, CellBroadcastReceiverFeature 15297 * Logged from Cell Broadcast module: 15298 * packages/apps/CellBroadcastReceiver/src/com/android/cellbroadcastreceiver/ 15299 */ 15300message CellBroadcastChannelRange { 15301 optional int32 start = 1; 15302 optional int32 end = 2; 15303} 15304/** 15305 * CellBroadcast channel ranges 15306 * Nested field for repeated 15307 * Logged from Cell Broadcast module: 15308 * packages/apps/CellBroadcastReceiver/src/com/android/cellbroadcastreceiver/ 15309 */ 15310message CellBroadcastChannelRanges { 15311 repeated CellBroadcastChannelRange channel_ranges = 1; 15312} 15313 15314/** 15315 * Logs when an channel configuration is updated with mcc-mnc 15316 * 15317 * Logged from Cell Broadcast module: 15318 * packages/apps/CellBroadcastReceiver/src/com/android/cellbroadcastreceiver/ 15319 */ 15320message CellBroadcastConfigUpdated { 15321 // mcc_mnc value of Network operator for the roaming case 15322 optional string roaming_mcc_mnc = 1; 15323 // The channel ranges to be updated logged as bytes 15324 optional CellBroadcastChannelRanges channel_ranges = 2 [(log_mode) = MODE_BYTES]; 15325} 15326 15327/** 15328 * Logs when a cell broadcast message is activated with the feature below 15329 * or when channel configuration is changed with the feature below 15330 * 15331 * Logged from Cell Broadcast module: 15332 * packages/modules/CellBroadcastService/src/com/android/cellbroadcastservice 15333 */ 15334message CellBroadcastServiceFeatureChanged { 15335 // Not for mainline devices, but for android-go devices, OEM can register package names. 15336 // if there is a data then true otherwise false 15337 optional bool overlay_additional_cbr_packages = 1; 15338 // package name which will get area info message 15339 // if there is a data except “com.android.settings” then true, or false 15340 optional bool overlay_area_info_packages = 2; 15341 // Reset Area Info when device goes out of service 15342 optional bool reset_area_info = 3; 15343} 15344 15345/** 15346 * Logs when a cell broadcast message is activated with the feature below 15347 * or when channel configuration is changed with the feature below 15348 * 15349 * Logged from Cell Broadcast module: 15350 * packages/apps/CellBroadcastReceiver/src/com/android/cellbroadcastreceiver/ 15351 */ 15352message CellBroadcastReceiverFeatureChanged { 15353 // Whether to enable alert handling during active voice call 15354 optional bool alert_during_call = 1; 15355 // Play alert sound in full volume regardless DND is on 15356 // [none:0][all:Integer.MAX_VALUE][partial:4370 4380 50] 15357 optional CellBroadcastChannelRanges override_dnd = 2 [(log_mode) = MODE_BYTES]; 15358 // Whether to Support roaming for attached network operator 15359 optional bool roaming_support = 3; 15360 // Whether to save alerts to sms inbox database 15361 optional bool store_sms = 4; 15362 // whether the device is in test mode through *#*#CMAS#*#* 15363 optional bool testing_mode = 5; 15364 // whether Text To Speech is on/off 15365 optional bool tts_mode = 6; 15366 // whether the device is able to enter test mode even on user build 15367 optional bool testing_mode_on_user_build = 7; 15368} 15369 15370/** 15371 * Logs when exception is occurred in the device 15372 * 15373 * Logged from Cell Broadcast module: 15374 * packages/modules/CellBroadcastService/src/com/android/cellbroadcastservice/ 15375 * packages/apps/CellBroadcastReceiver/ 15376 */ 15377message CellBroadcastModuleErrorReported { 15378 enum ErrorType { 15379 ERROR_UNKNOWN = 0; 15380 ERROR_BAD_CONFIG = 1; 15381 ERROR_DB_MIGRATION = 2; 15382 ERROR_DEFAULT_RES = 3; 15383 ERROR_ENABLE_CHANNEL = 4; 15384 ERROR_GET_LOCATION = 5; 15385 ERROR_MISSING_RES = 6; 15386 ERROR_PLAY_FLASH = 7; 15387 ERROR_PLAY_SOUND = 8; 15388 ERROR_PLAY_TTS = 9; 15389 ERROR_PREF_MIGRATION = 10; 15390 ERROR_PROVIDER_INIT = 11; 15391 ERROR_RESET_CHANNEL_R = 12; 15392 ERROR_STATUS_BAR = 13; 15393 ERROR_REMINDER_INTERVAL = 14; 15394 ERROR_ICON_RESOURCE = 15; 15395 ERROR_CHANNEL_RANGE_PARSE = 16; 15396 ERROR_DB_INIT = 17; 15397 ERROR_NOT_FOUND_DEFAULT_CBR_PKGS = 18; 15398 ERROR_FOUND_MULTIPLE_CBR_PKGS = 19; 15399 } 15400 15401 // The source of the report 15402 optional CellBroadcastMessageReported.ReportSource source = 1; 15403 15404 // The error type 15405 optional ErrorType type = 2; 15406} 15407 15408/** 15409 * Logs when a TV Input Service Session changes tune state 15410 * This is atom ID 327. 15411 * 15412 * Logged from: 15413 * frameworks/base/services/core/java/com/android/server/tv/TvInputManagerService.java 15414 */ 15415message TifTuneStateChanged { 15416 15417 // Tv Input Service uid, TV Player uid 15418 repeated AttributionNode attribution_node = 1 [ 15419 (state_field_option).primary_field_first_uid = true 15420 ]; 15421 optional android.stats.tv.TifTuneState state = 2 [ 15422 (state_field_option).exclusive_state = true, 15423 (state_field_option).default_state_value = 0, 15424 (state_field_option).nested = false 15425 ]; 15426 // This a globally unique 128 bit random number created by TvInputManagerService when 15427 // android.media.tv.TvInputManager#createSession is called. 15428 // It is has no device or user association. 15429 // See android.media.tv.TvInputService.onCreateSession(java.lang.String, java.lang.String) 15430 // WARNING: Any changes to this field should be carefully reviewed for privacy. 15431 // Inspect the code at 15432 // framework/base/cmds/statsd/src/atoms.proto 15433 // TifTuneState 15434 // frameworks/base/services/core/java/com/android/server/tv/TvInputManagerService.java 15435 // logTuneStateChanged 15436 // BinderService.createSession 15437 // SessionState.sessionId 15438 optional string tif_session_id = 3 [(state_field_option).primary_field = true]; 15439 optional android.stats.tv.TifInputType type = 4; 15440 // The id of this TV Input, only unique to a given TV Input Service. 15441 // This is specifically NOT android.media.tv.TvInputInfo.getId() 15442 // which is a string that contains the package name of its TvInputService. 15443 optional int32 input_id = 5 [(state_field_option).primary_field = true]; 15444 // The HDMI port id 15445 // Only valid when type == HDMI 15446 optional int32 hdmi_port = 6 [(state_field_option).primary_field = true]; 15447} 15448 15449/** 15450 * Logs when a tune occurs through device's Frontend. 15451 * This is atom ID 276. 15452 * 15453 * Logged from: 15454 * frameworks/base/media/java/android/media/tv/tuner/Tuner.java 15455 */ 15456message TvTunerStateChanged { 15457 enum State { 15458 UNKNOWN = 0; 15459 TUNING = 1; // Signal is tuned 15460 LOCKED = 2; // the signal is locked 15461 NOT_LOCKED = 3; // the signal isn’t locked. 15462 SIGNAL_LOST = 4; // the signal was locked, but is lost now. 15463 SCANNING = 5; // the signal is scanned 15464 SCAN_STOPPED = 6; // the scan is stopped. 15465 } 15466 // The uid of the application that sent this custom atom. 15467 optional int32 uid = 1 [(is_uid) = true]; 15468 // new state 15469 optional State state = 2; 15470} 15471 15472/** 15473 * Logs the status of a dvr playback or record. 15474 * This is atom ID 279. 15475 * 15476 * Logged from: 15477 * frameworks/base/media/java/android/media/tv/tuner/dvr 15478 */ 15479message TvTunerDvrStatus { 15480 enum Type { 15481 UNKNOWN_TYPE = 0; 15482 PLAYBACK = 1; // is a playback 15483 RECORD = 2; // is a record 15484 } 15485 enum State { 15486 UNKNOWN_STATE = 0; 15487 STARTED = 1; // DVR is started 15488 STOPPED = 2; // DVR is stopped 15489 } 15490 // The uid of the application that sent this custom atom. 15491 optional int32 uid = 1 [(is_uid) = true]; 15492 // DVR type 15493 optional Type type = 2; 15494 // DVR state 15495 optional State state = 3; 15496 // Identify the segment of a record or playback 15497 optional int32 segment_id = 4; 15498 // indicate how many overflow or underflow happened between started to stopped 15499 optional int32 overflow_underflow_count = 5; 15500} 15501 15502/** 15503 * Logs when a cas session opened through MediaCas. 15504 * This is atom ID 280. 15505 * 15506 * Logged from: 15507 * frameworks/base/media/java/android/media/MediaCas.java 15508 */ 15509message TvCasSessionOpenStatus { 15510 enum State { 15511 UNKNOWN = 0; 15512 SUCCEEDED = 1; // indicate that the session is opened successfully. 15513 FAILED = 2; // indicate that the session isn’t opened successfully. 15514 } 15515 // The uid of the application that sent this custom atom. 15516 optional int32 uid = 1 [(is_uid) = true]; 15517 // Cas system Id 15518 optional int32 cas_system_id = 2; 15519 // State of the session 15520 optional State state = 3; 15521} 15522 15523/** 15524 * Logs for ContactsProvider general usage. 15525 * This is atom ID 301. 15526 * 15527 * Logged from: 15528 * packages/providers/ContactsProvider/src/com/android/providers/contacts/ContactsProvider2.java 15529 */ 15530message ContactsProviderStatusReported { 15531 enum ApiType { 15532 UNKNOWN_API = 0; 15533 QUERY = 1; 15534 // INSERT includes insert and bulkInsert, and inserts triggered by applyBatch. 15535 INSERT = 2; 15536 // UPDATE and DELETE includes update/delete and the ones triggered by applyBatch. 15537 UPDATE = 3; 15538 DELETE = 4; 15539 CALL = 5; 15540 15541 // Call from CP2 to a GAL provider. 15542 GAL_CALL = 6; 15543 } 15544 15545 // Method called for ApiType.CALL 15546 enum MethodCall { 15547 UNKNOWN_METHOD = 0; 15548 ADD_SIM_ACCOUNTS = 1; 15549 REMOVE_SIM_ACCOUNTS = 2; 15550 GET_SIM_ACCOUNTS = 3; 15551 SET_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS = 4; 15552 GET_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS = 5; 15553 MOVE_LOCAL_CONTACTS_TO_DEFAULT_ACCOUNT = 6; 15554 MOVE_SIM_CONTACTS_TO_DEFAULT_ACCOUNT = 7; 15555 GET_ELIGIBLE_CLOUD_ACCOUNTS = 8; 15556 } 15557 15558 enum ResultType { 15559 UNKNOWN_RESULT = 0; 15560 SUCCESS = 1; 15561 FAIL = 2; 15562 ILLEGAL_ARGUMENT = 3; 15563 UNSUPPORTED_OPERATION = 4; 15564 15565 // Operation is targeting an incorrect account. 15566 INCORRECT_ACCOUNT = 5; 15567 } 15568 15569 enum CallerType { 15570 UNSPECIFIED_CALLER_TYPE = 0; 15571 CALLER_IS_SYNC_ADAPTER = 1; 15572 CALLER_IS_NOT_SYNC_ADAPTER = 2; 15573 } 15574 15575 enum TaskType { 15576 UNKNOWN_TASK = 0; 15577 DANGLING_CONTACTS_CLEANUP_TASK = 1; 15578 } 15579 15580 optional ApiType api_type = 1; 15581 // Defined in 15582 // packages/providers/ContactsProvider/src/com/android/providers/contacts/ContactsProvider2.java 15583 optional int32 uri_type = 2; 15584 optional CallerType caller_type = 3; 15585 optional ResultType result_type = 4; 15586 optional int32 result_count = 5; 15587 optional int64 latency_micros = 6; 15588 optional TaskType task_type = 7; 15589 // Set when api_type == CALL 15590 optional MethodCall method_called = 8; 15591 15592 // Normally, it's the binder calling UID. (this could be CP2, for work profile or cloned 15593 // profile cases.) 15594 // For GAL_CALL, it's the GAL provider UID. 15595 optional int32 uid = 9 [(is_uid) = true]; 15596} 15597 15598/** 15599 * Logs when an app is frozen or unfrozen. 15600 * 15601 * Logged from: 15602 * frameworks/base/services/core/java/com/android/server/am/CachedAppOptimizer.java 15603 */ 15604message AppFreezeChanged { 15605 // The type of event. 15606 enum Action { 15607 UNKNOWN = 0; 15608 FREEZE_APP = 1; 15609 UNFREEZE_APP = 2; 15610 } 15611 optional Action action = 1; 15612 15613 // Pid of the process being frozen. 15614 optional int32 pid = 2; 15615 15616 // Name of the process being frozen. 15617 optional string process_name = 3; 15618 15619 // Time since last unfrozen. 15620 optional int64 time_unfrozen_millis = 4; 15621 15622 // The list of reason should be kept in sync with @OomAdjReason in OomAdjuster.java. 15623 enum OomAdjReason { 15624 NONE = 0; 15625 ACTIVITY = 1; 15626 FINISH_RECEIVER = 2; 15627 START_RECEIVER = 3; 15628 BIND_SERVICE = 4; 15629 UNBIND_SERVICE = 5; 15630 START_SERVICE = 6; 15631 GET_PROVIDER = 7; 15632 REMOVE_PROVIDER = 8; 15633 UI_VISIBILITY = 9; 15634 ALLOWLIST = 10; 15635 PROCESS_BEGIN = 11; 15636 PROCESS_END = 12; 15637 } 15638 15639 // Deprecated, use unfreeze_reason_v2. 15640 optional OomAdjReason unfreeze_reason = 5 [ deprecated = true ]; 15641 15642 // The list of reason should be kept in sync with @UnfreezeReason in CachedAppOptimizer.java. 15643 enum UnfreezeReason { 15644 UFR_NONE = 0; 15645 UFR_ACTIVITY = 1; 15646 UFR_FINISH_RECEIVER = 2; 15647 UFR_START_RECEIVER = 3; 15648 UFR_BIND_SERVICE = 4; 15649 UFR_UNBIND_SERVICE = 5; 15650 UFR_START_SERVICE = 6; 15651 UFR_GET_PROVIDER = 7; 15652 UFR_REMOVE_PROVIDER = 8; 15653 UFR_UI_VISIBILITY = 9; 15654 UFR_ALLOWLIST = 10; 15655 UFR_PROCESS_BEGIN = 11; 15656 UFR_PROCESS_END = 12; 15657 UFR_TRIM_MEMORY = 13; 15658 UFR_PING = 15; 15659 UFR_FILE_LOCKS = 16; 15660 UFR_FILE_LOCK_CHECK_FAILURE = 17; 15661 UFR_BINDER_TXNS = 18; 15662 UFR_FEATURE_FLAGS = 19; 15663 UFR_SHORT_FGS_TIMEOUT = 20; 15664 UFR_SYSTEM_INIT = 21; 15665 UFR_BACKUP = 22; 15666 UFR_SHELL = 23; 15667 UFR_REMOVE_TASK = 24; 15668 UFR_UID_IDLE = 25; 15669 UFR_STOP_SERVICE = 26; 15670 UFR_EXECUTING_SERVICE = 27; 15671 UFR_RESTRICTION_CHANGE = 28; 15672 UFR_COMPONENT_DISABLED = 29; 15673 UFR_OOM_ADJ_FOLLOW_UP = 30; 15674 UFR_OOM_ADJ_RECONFIGURATION = 31; 15675 } 15676 15677 optional UnfreezeReason unfreeze_reason_v2 = 6; 15678} 15679 15680/** 15681 * Pulls information for a single voice call. 15682 * 15683 * Each pull creates multiple atoms, one for each call. The sequence is randomized when pulled. 15684 * 15685 * Pulled from: 15686 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java 15687 */ 15688message VoiceCallSession { 15689 // Bearer (IMS or CS) when the call started. 15690 optional android.telephony.CallBearerEnum bearer_at_start = 1; 15691 15692 // Bearer (IMS or CS) when the call ended. 15693 // The bearer may change during the call, e.g. due to SRVCC. 15694 optional android.telephony.CallBearerEnum bearer_at_end = 2; 15695 15696 // Direction of the call (incoming or outgoing). 15697 optional android.telephony.CallDirectionEnum direction = 3; 15698 15699 // Deprecated by setup_duration_millis 15700 optional android.telephony.CallSetupDurationEnum setup_duration = 4 [ deprecated = true ]; 15701 15702 // Whether the call ended before the setup was completed. 15703 optional bool setup_failed = 5; 15704 15705 // IMS reason code or CS disconnect cause. 15706 // For IMS, see: frameworks/base/telephony/java/android/telephony/ims/ImsReasonInfo.java 15707 // For CS, see: frameworks/base/telephony/java/android/telephony/DisconnectCause.java 15708 optional int32 disconnect_reason_code = 6; 15709 15710 // IMS extra code or CS precise disconnect cause. 15711 // For IMS, this code is vendor-specific 15712 // For CS, see: frameworks/base/telephony/java/android/telephony/PreciseDisconnectCause.java 15713 optional int32 disconnect_extra_code = 7; 15714 15715 // IMS extra message or CS vendor cause. 15716 optional string disconnect_extra_message = 8; 15717 15718 // Radio access technology (RAT) used when call started. 15719 optional android.telephony.NetworkTypeEnum rat_at_start = 9; 15720 15721 // Radio access technology (RAT) used when call terminated. 15722 optional android.telephony.NetworkTypeEnum rat_at_end = 10; 15723 15724 // Number of times RAT changed during the call. 15725 optional int64 rat_switch_count = 11; 15726 15727 // A bitmask of all codecs used during the call. 15728 // See: frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/VoiceCallSessionStats.java 15729 optional int64 codec_bitmask = 12; 15730 15731 // Number of other calls going on during call setup, for the same SIM slot. 15732 optional int32 concurrent_call_count_at_start = 13; 15733 15734 // Number of other calls going on during call termination, for the same SIM slot. 15735 optional int32 concurrent_call_count_at_end = 14; 15736 15737 // Index of the SIM used, 0 for single-SIM devices. 15738 optional int32 sim_slot_index = 15; 15739 15740 // Whether the device was in multi-SIM mode (with multiple active SIM profiles). 15741 optional bool is_multi_sim = 16; 15742 15743 // Whether the call was made with an eSIM profile. 15744 optional bool is_esim = 17; 15745 15746 // Carrier ID of the SIM card. 15747 // See https://source.android.com/devices/tech/config/carrierid. 15748 optional int32 carrier_id = 18; 15749 15750 // Whether an SRVCC has been completed successfully for this call. 15751 optional bool srvcc_completed = 19; 15752 15753 // Number of SRVCC failures. 15754 optional int64 srvcc_failure_count = 20; 15755 15756 // Number of SRVCC cancellations. 15757 optional int64 srvcc_cancellation_count = 21; 15758 15759 // Whether the Real-Time Text (RTT) was ever used in the call (rather than whether RTT was 15760 // enabled in the dialer's settings). 15761 optional bool rtt_enabled = 22; 15762 15763 // Whether this was an emergency call. 15764 optional bool is_emergency = 23; 15765 15766 // Whether the call was performed while roaming. 15767 optional bool is_roaming = 24; 15768 15769 // A random number used as the dimension field to pull multiple atoms. 15770 optional int32 dimension = 25; 15771 15772 // Signal strength at the end of the call. This value is applicable to both cellular and WiFi. 15773 optional android.telephony.SignalStrengthEnum signal_strength_at_end = 26; 15774 15775 // Band at the end of the call. Value 0 is used if the band is unknown. 15776 // See GeranBands, UtranBands and EutranBands in IRadio interface, depending on the RAT at 15777 // the end of the call. 15778 optional int32 band_at_end = 27; 15779 15780 // Time spent setting up the call in milliseconds. 15781 // The time is measured from dial to ringing for outgoing calls, and from answer to connected 15782 // for incoming calls. 15783 optional int32 setup_duration_millis = 28; 15784 15785 // Main codec quality. The codec quality was equal to or greater than this value for at least 15786 // 70% of the call. 15787 optional android.telephony.CodecQuality main_codec_quality = 29; 15788 15789 // Whether video was enabled at any point during the call. 15790 optional bool video_enabled = 30; 15791 15792 // Radio access technology (RAT) used when call is connected. 15793 optional android.telephony.NetworkTypeEnum rat_at_connected = 31; 15794 15795 // Whether the call was a conference call (applicable only for calls over IMS). 15796 optional bool is_multiparty = 32; 15797 15798 // Duration after the call was connected. 15799 optional android.telephony.CallDuration call_duration = 33; 15800 15801 // Last known Radio access technology (RAT). 15802 optional android.telephony.NetworkTypeEnum last_known_rat = 34; 15803 15804 // Fold state of the device 15805 optional android.telephony.FoldState fold_state = 35; 15806 15807 // Number of times RAT changed after call connection 15808 optional int64 rat_switch_count_after_connected = 36; 15809 15810 // Handover state of the device 15811 optional bool handover_in_progress = 37; 15812 15813 // When the RAT is IWLAN, if it used cross-SIM calling when call started. 15814 optional bool is_iwlan_cross_sim_at_start = 38; 15815 15816 // When the RAT is IWLAN, if it used cross-SIM calling when call ended. 15817 optional bool is_iwlan_cross_sim_at_end = 39; 15818 15819 // When the RAT is IWLAN, if it used cross-SIM calling when call connected. 15820 optional bool is_iwlan_cross_sim_at_connected = 40; 15821 15822 // Whether Vonr is enabled 15823 optional bool vonr_enabled = 41; 15824 15825 // Whether the call is over non-terrestrial networks. 15826 optional bool is_ntn = 42; 15827 15828 // config supports_business_call_composer_bool which controls b2c feature 15829 optional bool supports_business_call_composer = 43; 15830 15831 // The user-set status for enriched calling with call composer 15832 optional android.telephony.CallComposerStatus call_composer_status = 44; 15833 15834 // The call state on call setup 15835 optional android.telephony.CallState call_state_on_setup = 45; 15836} 15837 15838/** 15839 * Pulls voice call radio access technology (RAT) usage. 15840 * 15841 * Each pull creates multiple atoms, one for each carrier/RAT, the order of which is irrelevant to 15842 * time. The atom will be skipped if not enough data is available. 15843 * 15844 * Pulled from: 15845 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java 15846 */ 15847message VoiceCallRatUsage { 15848 // Carrier ID (https://source.android.com/devices/tech/config/carrierid). 15849 optional int32 carrier_id = 1; 15850 15851 // Radio access technology. 15852 optional android.telephony.NetworkTypeEnum rat = 2; 15853 15854 // Total duration that voice calls spent on this carrier and RAT, rounded to 5 minutes. 15855 optional int64 total_duration_seconds = 3; 15856 15857 // Total number of calls using this carrier and RAT. 15858 // A call is counted once even if it used the RAT multiple times. 15859 optional int64 call_count = 4; 15860} 15861 15862/** 15863 * Pulls amount of time spend in each cellular service state. 15864 * 15865 * Each pull creates multiple atoms, one for each SIM slot/carrier/RAT(including ENDC), the order of 15866 * which is irrelevant to time. If multi SIM settings changes during the period, durations will be 15867 * counted separately before and after the change. Airplane mode does not count towards durations. 15868 * 15869 * Pulled from: 15870 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java 15871 */ 15872message CellularServiceState { 15873 // Radio access technology (RAT) for voice. 15874 // NETWORK_TYPE_UNKNOWN when the device is not in-service. 15875 // NETWORK_TYPE_IWLAN when the device is using VoWiFi. 15876 optional android.telephony.NetworkTypeEnum voice_rat = 1; 15877 15878 // Radio access technology (RAT) for data. 15879 // NETWORK_TYPE_UNKNOWN when the device is not in-service. 15880 // Only cellular RATs are valid and show where the device is camped. 15881 optional android.telephony.NetworkTypeEnum data_rat = 2; 15882 15883 // Whether the device was in roaming (domestic or international) for voice. 15884 optional android.telephony.RoamingTypeEnum voice_roaming_type = 3; 15885 15886 // Whether the device was in roaming (domestic or international) for data. 15887 optional android.telephony.RoamingTypeEnum data_roaming_type = 4; 15888 15889 // Whether the device is on LTE and has access to NR NSA, i.e. cell supports 5G (ENDC) and UE 15890 // registration (attach/TAU) indicates ENDC is not restricted. 15891 optional bool is_endc = 5; 15892 15893 // Index of the SIM used, 0 for single-SIM devices. 15894 optional int32 sim_slot_index = 6; 15895 15896 // Whether the device was in multi-SIM mode (with multiple active SIM profiles). 15897 optional bool is_multi_sim = 7; 15898 15899 // Carrier ID of the SIM card. 15900 // See https://source.android.com/devices/tech/config/carrierid. 15901 optional int32 carrier_id = 8; 15902 15903 // Total time spent in this service state, rounded to 5 minutes. 15904 optional int32 total_time_seconds = 9; 15905 15906 // Whether the device is in limited service (only emergency voice 15907 // call available). Voice and data RAT will be recorded as 15908 // NETWORK_TYPE_UNKNOWN in this case. 15909 optional bool is_emergency_only = 10; 15910 15911 // Whether internet pdn is up. 15912 optional bool is_internet_pdn_up = 11; 15913 15914 // Fold state of the device. 15915 optional android.telephony.FoldState fold_state = 12; 15916 15917 // Whether the voice service state is overridden by voice calling capability. 15918 optional bool override_voice_service = 13; 15919 15920 // Whether mobile data is enable. 15921 optional bool is_data_enabled = 14; 15922 15923 // When the voice RAT is NETWORK_TYPE_IWLAN, determines whether it is over 15924 // cross-SIM calling (WiFi calling over other SIM's cellular data). 15925 optional bool is_iwlan_cross_sim = 15; 15926 15927 // Whether the device is using non-terrestrial networks. 15928 optional bool is_ntn = 16; 15929 15930 // Whether the call is over Carrier Roaming NB-Iot NTN network. 15931 optional bool is_nb_iot_ntn = 17; 15932 15933 // Whether the subscription is an opportunistic (can change CBRS network when available). 15934 optional bool is_opportunistic = 18; 15935 } 15936 15937/** 15938 * Pulls the number of times cellular data service state switches. 15939 * 15940 * Each pull creates multiple atoms, one for each RAT combination, the order of which is irrelevant 15941 * to time. Switches for different SIM slots, carrier IDs, or multi-SIM settings are counted 15942 * separately. 15943 * 15944 * Pulled from: 15945 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java 15946 */ 15947message CellularDataServiceSwitch { 15948 // Cellular RAT of the DATA domain from where the switch occurred. 15949 optional android.telephony.NetworkTypeEnum rat_from = 1; 15950 15951 // Cellular RAT of the DATA domain to where the switch occurred. 15952 optional android.telephony.NetworkTypeEnum rat_to = 2; 15953 15954 // Index of the SIM used, 0 for single-SIM devices. 15955 optional int32 sim_slot_index = 3; 15956 15957 // Whether the device was in multi-SIM mode (with multiple active SIM profiles). 15958 optional bool is_multi_sim = 4; 15959 15960 // Carrier ID of the SIM card. 15961 // See https://source.android.com/devices/tech/config/carrierid. 15962 optional int32 carrier_id = 5; 15963 15964 // Number of switches from rat_from to rat_to. 15965 optional int32 switch_count = 6; 15966 15967 // // Whether the subscription is an opportunistic (can change CBRS network when available). 15968 optional bool is_opportunistic = 7; 15969} 15970 15971/** 15972 * Pulls the number of active SIM slots and SIMs/eSIM profiles. 15973 * 15974 * Pulled from: 15975 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java 15976 */ 15977message SimSlotState { 15978 // Number of active SIM slots (both physical and eSIM profiles) in the device. 15979 optional int32 active_slot_count = 1; 15980 15981 // Number of SIM cards (both physical and active eSIM profiles). 15982 // This number may be greater than the number of active SIM slots, if multiple profiles are 15983 // enabled on the same eUICC. 15984 optional int32 sim_count = 2; 15985 15986 // Number of active eSIM profiles. 15987 // This number is always equal to or less than the number of SIMs. 15988 optional int32 esim_count = 3; 15989 15990 // Number of active eSIM slots in the device. 15991 optional int32 active_esim_slot_count = 4; 15992 15993 // Number of active slots using Multiple Enabled Profiles in the device. 15994 optional int32 active_mep_slot_count = 5; 15995} 15996 15997/** 15998 * Pulls supported cellular radio access technologies. 15999 * 16000 * This atom reports the capabilities of the device, rather than the network it has access to. 16001 * 16002 * Pulled from: 16003 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java 16004 */ 16005message SupportedRadioAccessFamily { 16006 // A bitmask of supported radio technologies. 16007 // See android.telephony.TelephonyManager.NetworkTypeBitMask. 16008 optional int64 network_type_bitmask = 1; 16009} 16010 16011/** 16012 * Pulls the status of device-level telephony properties. 16013 * 16014 * Pulled from: 16015 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java 16016 */ 16017message DeviceTelephonyProperties { 16018 // True if the device adopts the data stack came out in T 16019 // Deprecated since U, where legacy stack has been removed 16020 optional bool using_t_data_stack = 1 [deprecated = true]; 16021 // True if auto data switch is enabled on the device 16022 optional bool auto_data_switch_enabled = 2; 16023 // Number of time the user toggled the data switch feature since the last collection 16024 optional int32 auto_data_switch_toggle_count = 3; 16025 // True if work profile is enabled on the device 16026 optional bool has_managed_profile_dedicated_sub = 4; 16027 // Number of SIM slots with support for Multiple Enabled Profiles on the device 16028 optional int32 mep_supported_slot_count = 5; 16029} 16030 16031/** 16032 * This atom is deprecated starting in T, use TelephonyNetworkRequestsV2 instead. 16033 * 16034 * Pulls information about network requests. 16035 * 16036 * Pulled from: 16037 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java 16038 */ 16039message TelephonyNetworkRequests { 16040 // Carrier ID of the SIM card. 16041 // See https://source.android.com/devices/tech/config/carrierid. 16042 optional int32 carrier_id = 1; 16043 // Number of times the enterprise capability was requested. 16044 optional int32 enterprise_request_count = 2; 16045 // Number of times the enterprise capability was released. 16046 optional int32 enterprise_release_count = 3; 16047} 16048 16049/** 16050 * Pulls information about network requests. 16051 * 16052 * Pulled from: 16053 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java 16054 */ 16055message TelephonyNetworkRequestsV2 { 16056 enum NetworkCapability { 16057 // Unknown capability was requested. 16058 UNKNOWN = 0; 16059 // Low latency capability (URLLC) was requested. 16060 PRIORITIZE_LATENCY = 1; 16061 // High bandwidth capability (EMBB) was requested. 16062 PRIORITIZE_BANDWIDTH = 2; 16063 // CBS (Carrier Branded Services) capability was requested. 16064 CBS = 3; 16065 // Enterprise capability was requested. 16066 ENTERPRISE = 4; 16067 //Satellite internet restricted capability was requested. 16068 SATELLITE_INTERNET_RESTRICTED = 5; 16069 //Satellite mms restricted capability was requested. 16070 SATELLITE_MMS_RESTRICTED = 6; 16071 //Satellite ims restricted capability was requested. 16072 SATELLITE_IMS_RESTRICTED = 7; 16073 //Satellite xcap restricted capability was requested. 16074 SATELLITE_XCAP_RESTRICTED = 8; 16075 //Satellite eims restricted capability was requested. 16076 SATELLITE_EIMS_RESTRICTED = 9; 16077 //Satellite supl restricted capability was requested. 16078 SATELLITE_SUPL_RESTRICTED =10; 16079 } 16080 // Carrier ID of the SIM card. 16081 // See https://source.android.com/devices/tech/config/carrierid. 16082 optional int32 carrier_id = 1; 16083 // The capability that was requested. 16084 optional NetworkCapability capability = 2; 16085 // Number of times the capability was requested. 16086 optional int32 request_count = 3; 16087} 16088 16089/** 16090 * Pulls information for a single incoming SMS. 16091 * 16092 * Each pull creates multiple atoms, one for each SMS. The sequence is randomized when pulled. 16093 * 16094 * Pulled from: 16095 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java 16096 */ 16097message IncomingSms { 16098 // Format of the SMS (3GPP or 3GPP2). 16099 optional android.telephony.SmsFormatEnum sms_format = 1; 16100 16101 // Technology of the SMS (CS or IMS). 16102 optional android.telephony.SmsTechEnum sms_tech = 2; 16103 16104 // Radio access technology (RAT) used for the SMS. It can be IWLAN in case of IMS. 16105 optional android.telephony.NetworkTypeEnum rat = 3; 16106 16107 // Type the SMS. 16108 optional android.telephony.SmsTypeEnum sms_type = 4; 16109 16110 // Number of total parts. 16111 optional int32 total_parts = 5; 16112 16113 // Number of received parts (if smaller than total parts, the SMS was dropped). 16114 optional int32 received_parts = 6; 16115 16116 // Indicates if the incoming SMS was blocked. 16117 optional bool blocked = 7; 16118 16119 // Indicate a specific error handling the SMS 16120 optional android.telephony.SmsIncomingErrorEnum error = 8; 16121 16122 // Whether the SMS was received while roaming. 16123 optional bool is_roaming = 9; 16124 16125 // Index of the SIM used, 0 for single-SIM devices. 16126 optional int32 sim_slot_index = 10; 16127 16128 // Whether the device was in multi-SIM mode (with multiple active SIM profiles). 16129 optional bool is_multi_sim = 11; 16130 16131 // Whether the message was received with an eSIM profile. 16132 optional bool is_esim = 12; 16133 16134 // Carrier ID of the SIM card used for the SMS. 16135 // See https://source.android.com/devices/tech/config/carrierid. 16136 optional int32 carrier_id = 13; 16137 16138 // Random message ID. 16139 // If the value of count is greater than 1, the message_id represents only one of the messages. 16140 optional int64 message_id = 14; 16141 16142 // Number of messages with the same properties (see message_id for exception) 16143 optional int32 count = 15; 16144 16145 // Whether the message was received with an enterprise profile. 16146 optional bool is_managed_profile = 16; 16147 16148 // Whether the message was received over non-terrestrial networks. 16149 optional bool is_ntn = 17; 16150 16151 // Whether the message is an emergency or not. 16152 optional bool is_emergency = 18; 16153 16154 // Whether the message was received over Carrier Roaming NB-Iot NTN network. 16155 optional bool is_nb_iot_ntn = 19; 16156} 16157 16158/** 16159 * Pulls information for a single outgoing SMS. 16160 * 16161 * Each pull creates multiple atoms, one for each SMS. The sequence is randomized when pulled. 16162 * 16163 * Pulled from: 16164 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java 16165 */ 16166message OutgoingSms { 16167 // Format of the SMS (3GPP or 3GPP2). 16168 optional android.telephony.SmsFormatEnum sms_format = 1; 16169 16170 // Technology of the SMS (CS or IMS). 16171 optional android.telephony.SmsTechEnum sms_tech = 2; 16172 16173 // Radio access technology (RAT) used for the SMS. It can be IWLAN in case of IMS. 16174 optional android.telephony.NetworkTypeEnum rat = 3; 16175 16176 // Result of the SMS sending. 16177 optional android.telephony.SmsSendResultEnum send_result = 4; 16178 16179 // Error code 16180 // For IMS technology, see @SmsManager.Result in 16181 // http://cs/android/frameworks/base/telephony/java/android/telephony/SmsManager.java 16182 // For CS technology: 16183 // - GSM format: see GsmSmsErrorCode (3GPP 27.005 clause 3.2.5) 16184 // - CDMA format: see CdmaSmsErrorCode (3GPP2 N.S0005 (IS-41-C) Table 171) 16185 // The field error_code is used for up-to-Android-13 devices. From Android 14, 16186 // network_error_code will be used. The field error_code will be deprecated when most devices 16187 // use Android 14 or higher versions. 16188 optional int32 error_code = 5; 16189 16190 // Whether the SMS was sent while roaming. 16191 optional bool is_roaming = 6; 16192 16193 // Whether the default SMS application generated the SMS (regardless of which application). 16194 optional bool is_from_default_app = 7; 16195 16196 // Index of the SIM used, 0 for single-SIM devices. 16197 optional int32 sim_slot_index = 8; 16198 16199 // Whether the device was in multi-SIM mode (with multiple active SIM profiles). 16200 optional bool is_multi_sim = 9; 16201 16202 // Whether the message was sent with an eSIM profile. 16203 optional bool is_esim = 10; 16204 16205 // Carrier ID of the SIM card used for the SMS. 16206 // See https://source.android.com/devices/tech/config/carrierid. 16207 optional int32 carrier_id = 11; 16208 16209 // Random message ID. 16210 // If the value of count is greater than 1, the message_id represents only one of the messages. 16211 optional int64 message_id = 12; 16212 16213 // Retry count: 0 for the first attempt and then increasing for each attempt. 16214 // If the value of count is greater than 1, the retry_id represents the value associated with 16215 // the message defined by message_id. 16216 optional int32 retry_id = 13; 16217 16218 // Time in milliseconds to complete the SMS send to the network. 16219 // If the value of count is greater than 1, this field measures the average time interval. 16220 optional int64 interval_millis = 14; 16221 16222 // Number of messages with the same properties (see message_id, retry_id and latency_millis for 16223 // exceptions) 16224 optional int32 count = 15; 16225 16226 // Internal send error code 16227 optional android.telephony.SmsSendErrorEnum send_error_code = 16; 16228 16229 // Network error code 16230 // - SMS_FORMAT_3GPP format: see GsmSmsErrorCode (3GPP 27.005 clause 3.2.5) 16231 // - SMS_FORMAT_3GPP2 format: see CdmaSmsErrorCode (3GPP2 N.S0005 (IS-41-C) Table 171) 16232 optional int32 network_error_code = 17; 16233 16234 // Whether the message was sent with an enterprise profile. 16235 optional bool is_managed_profile = 18; 16236 16237 // Whether the message is an emergency or not. 16238 optional bool is_emergency = 19; 16239 16240 // Whether the message was sent over non-terrestrial networks. 16241 optional bool is_ntn = 20; 16242 16243 // Whether the message is an MT SMS polling. 16244 optional bool is_mt_sms_polling = 21; 16245 16246 // Whether the message was sent over Carrier Roaming NB-Iot NTN network. 16247 optional bool is_nb_iot_ntn = 22; 16248} 16249 16250/** 16251 * Logs information about usage of airplane mode. 16252 * 16253 * Logged from: 16254 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/AirplaneModeStats.java 16255 */ 16256message AirplaneMode { 16257 // Status of airplane mode 16258 optional bool is_enabled = 1; 16259 16260 // When is_enabled is false, indicates if this was a very short airplane mode toggle 16261 // (i.e. airplane mode was disabled after less than 10 seconds from enablement). 16262 optional bool short_toggle = 2; 16263 16264 // Carrier ID of the SIM card. 16265 // See https://source.android.com/devices/tech/config/carrierid. 16266 optional int32 carrier_id = 3; 16267} 16268 16269/** 16270 * Logs information about modem restarts. 16271 * 16272 * Logged from: 16273 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/ModemRestartStats.java 16274 */ 16275message ModemRestart { 16276 // Software version of the modem, as provided by android.os.Build.getRadioVersion(). 16277 optional string baseband_version = 1; 16278 16279 // Reason of the modem restart, as provided in the modemReset indication of IRadio HAL. 16280 optional string reason = 2; 16281 16282 // Carrier ID of the first SIM card. 16283 // See https://source.android.com/devices/tech/config/carrierid. 16284 optional int32 carrier_id = 3; 16285} 16286 16287/** 16288 * Logs the SIM card details when the carrier ID match is not complete. 16289 * 16290 * The atom is pushed when a SIM card is initialized and the MCC/MNC is not present in the 16291 * carrier ID table, or the SIM card contains a GID1 value that is not present in the carrier ID 16292 * table. This atom is pushed only once for each type of SIM card. 16293 * 16294 * Logged from: 16295 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/CarrierIdMatchStats.java 16296 */ 16297message CarrierIdMismatchReported { 16298 // Matched carrier ID. The value -1 is used if no match is found. 16299 optional int32 carrier_id = 1; 16300 16301 // MCC/MNC of the SIM card. 16302 optional string mcc_mnc = 2; 16303 16304 // Group identifier (level 1) of the SIM card. 16305 optional string gid1 = 3; 16306 16307 // SPN value of the SIM card. 16308 optional string spn = 4; 16309 16310 // First record of the PNN in the SIM card. This field is populated only if the SPN is missing 16311 // or empty. 16312 optional string pnn = 5; 16313} 16314 16315/** 16316 * Logs the version of the carrier ID matching table at first power up and when it is updated. 16317 * 16318 * Logged from: 16319 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/CarrierIdMatchStats.java 16320 */ 16321message CarrierIdTableUpdated { 16322 // Version of the CarrierId matching table. 16323 optional int32 table_version = 1; 16324} 16325 16326/** 16327 * Pulls the version of the carrier ID matching table. 16328 * 16329 * Logged from: 16330 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java 16331 */ 16332message CarrierIdTableVersion { 16333 // Version of the CarrierId matching table. 16334 optional int32 table_version = 1; 16335} 16336 16337/** 16338 * Pulls information for a single data call session 16339 * 16340 * Each pull creates multiple atoms, one for each data call session. 16341 * The sequence is randomized when pulled. 16342 * 16343 * Pulled from: 16344 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java 16345 */ 16346message DataCallSession { 16347 // A random number to be used as dimension to capture multiple atoms 16348 optional int32 dimension = 1; 16349 16350 // Whether the device was in multi-SIM mode (with multiple active SIM profiles). 16351 optional bool is_multi_sim = 2; 16352 16353 // Whether the call was made with an eSIM profile. 16354 optional bool is_esim = 3; 16355 16356 // Data profile of this call (for what purpose this call was made) 16357 optional android.telephony.DataProfileEnum profile = 4 [deprecated = true]; 16358 16359 // APN type bitmask of the APN used: 16360 // @ApnType in frameworks/base/telephony/java/android/telephony/Annotation.java. 16361 optional int32 apn_type_bitmask = 5; 16362 16363 // Carrier ID of the SIM 16364 // See https://source.android.com/devices/tech/config/carrierid. 16365 optional int32 carrier_id = 6; 16366 16367 // Whether the subscription is roaming 16368 optional bool is_roaming = 7; 16369 16370 // Data RAT when the call ended, can be IWLAN for IMS/MMS, otherwise should be WWAN PS RAT. 16371 // In the case that the connection hasn't ended yet, this field holds the current RAT. 16372 // In the case the call ended due to Out Of Service (OOS), 16373 // this field should be the last known RAT. 16374 optional android.telephony.NetworkTypeEnum rat_at_end = 8; 16375 16376 // Was the data call ended due to OOS 16377 optional bool oos_at_end = 9; 16378 16379 // Number of RAT switches during the data call 16380 optional int64 rat_switch_count = 10; 16381 16382 // Whether the call is on an opportunistic subscription 16383 optional bool is_opportunistic = 11; 16384 16385 // Packet data protocol used 16386 optional android.telephony.ApnProtocolEnum ip_type = 12; 16387 16388 // Whether the data call terminated before being established 16389 optional bool setup_failed = 13; 16390 16391 // Reason why the data call terminated, as in RIL_DataCallFailCause from ril.h 16392 optional int32 failure_cause = 14; 16393 16394 // Suggested retry back-off timer value from RIL 16395 optional int32 suggested_retry_millis = 15; 16396 16397 // Why the data call was deactivated 16398 // Set by telephony for MO deactivations (unrelated to failure_cause) 16399 optional android.telephony.DataDeactivateReasonEnum deactivate_reason = 16; 16400 16401 // Duration of the data call, rounded into the closest 5 minutes. 16402 optional int64 duration_minutes = 17; 16403 16404 // Whether the data call is still connected when the atom is collected. 16405 optional bool ongoing = 18; 16406 16407 // Band at the end of the data call. Value 0 is used if the band is unknown. 16408 // See GeranBands, UtranBands and EutranBands in IRadio interface, depending 16409 // on the RAT at the end of the data call. 16410 optional int32 band_at_end = 19; 16411 16412 // Reason why the data call handover failed, as in RIL_DataCallFailCause from ril.h 16413 repeated int32 handover_failure_causes = 20; 16414 16415 // For each int32, the lower 16 bits represent the source RAT while the upper 16 bits indicate 16416 // the target RAT of the failed handover. 16417 repeated int32 handover_failure_rat = 21; 16418 16419 // Whether the call is for internet on nonDDS due to auto data switch feature 16420 optional bool is_non_dds = 22; 16421 16422 // When the 'rat_at_end' field is IWLAN, determines if the data call setup was 16423 // over cross-SIM calling (Wifi calling over cellular data). 16424 optional bool is_iwlan_cross_sim = 23; 16425 16426 // Whether the call is over non-terrestrial networks. 16427 optional bool is_ntn = 24; 16428 16429 // Determines if current data call was over satellite transport 16430 optional bool is_satellite_transport = 25; 16431 16432 // Determines if current data call was over provisioning profile or not 16433 optional bool is_provisioning_profile = 26; 16434 16435 // Whether the call is over Carrier Roaming NB-Iot NTN network. 16436 optional bool is_nb_iot_ntn = 27; 16437} 16438 16439/** 16440 * Logs data stall recovery event 16441 * 16442 * Logged from: 16443 * frameworks/opt/telephony/src/java/com/android/internal/telephony/data/ 16444 * DataStallRecoveryManager.java 16445 */ 16446message DataStallRecoveryReported { 16447 // Carrier ID of the SIM 16448 // See https://source.android.com/devices/tech/config/carrierid. 16449 optional int32 carrier_id = 1; 16450 16451 // Data RAT when the stall happened 16452 optional android.telephony.NetworkTypeEnum rat = 2; 16453 16454 // Signal strength when stall happened 16455 optional android.telephony.SignalStrengthEnum signal_strength = 3; 16456 16457 // Action taken to recover 16458 optional android.telephony.DataStallRecoveryActionEnum action = 4; 16459 16460 // Whether the subscription is opportunistic 16461 optional bool is_opportunistic = 5; 16462 16463 // Whether the device is in multi-SIM mode 16464 optional bool is_multi_sim = 6; 16465 16466 // Band used when the stall/recovery took place. 16467 // Value 0 is used if the band is unknown. 16468 // See GeranBands, UtranBands and EutranBands in IRadio interface, depending 16469 // on the RAT used at the time. 16470 optional int32 band = 7; 16471 16472 // Whether the data stall is recovered. 16473 optional bool recovered = 8; 16474 16475 // The elapsed time between start of the data stall and result of current action. 16476 optional int32 duration_millis = 9; 16477 16478 // The data stall recovered reason. Available from Android T. 16479 optional android.telephony.DataStallRecoveredReason reason = 10; 16480 16481 // Signal strength of the other phone if DSDS when stall happened. 16482 // SIGNAL_STRENGTH_NONE_OR_UNKNOWN(0) if single SIM. 16483 optional android.telephony.SignalStrengthEnum other_phone_signal_strength = 11; 16484 16485 // PS WWAN Network Registration state of the other phone if DSDS when stall happened. 16486 // REGISTRATION_STATE_NOT_REGISTERED_OR_SEARCHING(0) if single SIM. 16487 optional android.telephony.NetworkRegistrationState other_phone_reg_state = 12; 16488 16489 // PS WWAN Network Registration state of the default phone when data stall. 16490 optional android.telephony.NetworkRegistrationState phone_reg_state = 13; 16491 16492 // collect the first validation after recovery when data stall occurs. 16493 optional bool is_first_validation_after_recovery = 14; 16494 16495 // The phone id when doing the recovery action. 16496 optional int32 phone_id = 15; 16497 16498 // The elapsed time of current action. 16499 optional int32 duration_millis_of_current_action = 16; 16500 16501 // Link status of the data network. 16502 optional int32 link_status = 17; 16503 16504 // The link up bandwidth of the data network. 16505 optional int32 link_up_bandwidth = 18; 16506 16507 // The link down bandwidth of the data network. 16508 optional int32 link_down_bandwidth = 19; 16509} 16510 16511/** 16512 * Pulls IMS registration terminations. 16513 * 16514 * Each pull generates multiple atoms, one for each termination condition happened during the day. 16515 * 16516 * Pulled from: 16517 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java 16518 */ 16519message ImsRegistrationTermination { 16520 // Carrier ID of the SIM used for IMS registration. 16521 // See https://source.android.com/devices/tech/config/carrierid. 16522 optional int32 carrier_id = 1; 16523 16524 // Whether the device is in multi-SIM mode when the registration terminated. 16525 optional bool is_multi_sim = 2; 16526 16527 // Radio access technology (RAT) used by the registration when it terminated. 16528 // This can be IWLAN if IMS was registered over Wifi. 16529 optional android.telephony.NetworkTypeEnum rat_at_end = 3; 16530 16531 // Whether the IMS registration failed before it was established. 16532 optional bool setup_failed = 4; 16533 16534 // IMS reason code indicating the termination reason. 16535 // See: frameworks/base/telephony/java/android/telephony/ims/ImsReasonInfo.java 16536 optional int32 reason_code = 5; 16537 16538 // IMS extra code indicating the termination reason. 16539 optional int32 extra_code = 6; 16540 16541 // IMS extra message indicating the termination reason. 16542 // This string is truncated to 128 characters if its length exceeds the limit. 16543 optional string extra_message = 7; 16544 16545 // Total number of instances of registration termination that matches the above conditions. 16546 optional int32 count = 8; 16547 16548 // When the 'rat_at_end' field is IWLAN, indicates whether the ImsRegistrationTech is 16549 // REGISTRATION_TECH_CROSS_SIM. 16550 optional bool is_iwlan_cross_sim = 9; 16551} 16552 16553/** 16554 * Pulls IMS registration statistics. 16555 * 16556 * Each pull generates multiple atoms, one for each carrier, SIM slot, and radio access technology 16557 * (RAT) combination. Durations are aggregated from all registrations with matching criteria, 16558 * including ones that are currently active. 16559 * 16560 * Pulled from: 16561 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java 16562 */ 16563message ImsRegistrationStats { 16564 // Carrier ID of the SIM used for IMS registration. 16565 // See https://source.android.com/devices/tech/config/carrierid. 16566 optional int32 carrier_id = 1; 16567 16568 // Index of the SIM used, 0 for single-SIM devices. 16569 optional int32 sim_slot_index = 2; 16570 16571 // Radio access technology (RAT) used by the registration. 16572 // This can be IWLAN if IMS was registered over Wifi. 16573 optional android.telephony.NetworkTypeEnum rat = 3; 16574 16575 // Total time IMS was registered (connected time), rounded to 5 minutes. 16576 optional int32 registered_seconds = 4; 16577 16578 // Durations that each feature (Voice, Video, UT, SMS) is capable (supported/enabled by the 16579 // network/device) and available (registered and ready to use). 16580 // All durations are rounded to 5 minutes and should be equal to or shorter than 16581 // registered_seconds. 16582 optional int32 voice_capable_seconds = 5; 16583 optional int32 voice_available_seconds = 6; 16584 optional int32 sms_capable_seconds = 7; 16585 optional int32 sms_available_seconds = 8; 16586 optional int32 video_capable_seconds = 9; 16587 optional int32 video_available_seconds = 10; 16588 optional int32 ut_capable_seconds = 11; 16589 optional int32 ut_available_seconds = 12; 16590 16591 // Total time IMS was registering (connecting time), rounded to 5 minutes 16592 optional int32 registering_seconds = 13; 16593 // Total time IMS was unregistered (unconnected time), rounded to 5 minutes 16594 optional int32 unregistered_seconds = 14; 16595 16596 // When the 'rat' field is IWLAN, indicates whether the ImsRegistrationTech is 16597 // REGISTRATION_TECH_CROSS_SIM. 16598 optional bool is_iwlan_cross_sim = 15; 16599 16600 // How many times IMS is registered 16601 optional int32 registered_times = 16; 16602} 16603 16604/* 16605 * Logs information related to PIN storage and automatic PIN operations. 16606 * 16607 * Logged from: 16608 * frameworks/opt/telephony/src/java/com/android/internal/telephony/uicc/PinStorage.java 16609 */ 16610message PinStorageEvent { 16611 // The type of event. 16612 enum Event { 16613 UNKNOWN = 0; 16614 // The PIN was verified automatically successfully. 16615 PIN_VERIFICATION_SUCCESS = 1; 16616 // The PIN was verified automatically unsuccessfully. 16617 PIN_VERIFICATION_FAILURE = 2; 16618 // The PIN(s) was cached, but discarded after reboot (e.g. SIM not present after reboot). 16619 CACHED_PIN_DISCARDED = 3; 16620 // The PIN(s) was stored to be used after unattended reboot. 16621 PIN_STORED_FOR_VERIFICATION = 4; 16622 // The PIN(s) is not available for storage and will be required after unattended reboot. 16623 PIN_REQUIRED_AFTER_REBOOT = 5; 16624 // The PIN was not verified automatically because the SIM card did not match. 16625 PIN_VERIFICATION_SKIPPED_SIM_CARD_MISMATCH = 6; 16626 // The available PINs after reboot does not match the number of stored PINs before reboot. 16627 PIN_COUNT_NOT_MATCHING_AFTER_REBOOT = 7; 16628 // Error while decrypting the PIN 16629 PIN_DECRYPTION_ERROR = 8; 16630 // Error while encrypting the PIN 16631 PIN_ENCRYPTION_ERROR = 9; 16632 // Attempted to decrypt the PIN with a null/missing encryption key. 16633 PIN_ENCRYPTION_KEY_MISSING = 10; 16634 } 16635 optional Event event = 1; 16636 16637 // Number of PINs stored or discarded. 16638 optional int32 number_of_pins = 2; 16639 16640 // The caller package name 16641 optional string package_name = 3; 16642} 16643 16644/** 16645 * Logs flip to screen off events. 16646 * 16647 * Logged from: 16648 * frameworks/opt/telephony/src/java/com/android/server/power/FaceDownDetector.java 16649 */ 16650message FaceDownReported { 16651 enum Response{ 16652 UNKNOWN = 1; 16653 // The phone was flipped before the screen turns off. 16654 UNFLIP = 2; 16655 // User interacts with the screen after a face down is detected. 16656 USER_INTERACTION = 3; 16657 // A flip leads to screen turning off. This is the expected outcome. 16658 SCREEN_OFF = 4; 16659 } 16660 16661 // Logs the action that occurs from a flip event, whether by user or system 16662 // action. 16663 optional Response face_down_response = 1; 16664 16665 // After a flip is detected, how long until a system or user action occurs. 16666 optional int64 millis_since_flip = 2; 16667 16668 // Difference between the flip time and when the timeout would otherwise 16669 // occur. 16670 optional int64 millis_until_normal_timeout = 3; 16671 16672 // How quickly the user turns the screen back on after a flip event. 16673 // A low value may indicate a false negative. Logged only when Response is 16674 // SCREEN_OFF. 16675 optional int64 millis_until_next_screen_on = 4; 16676} 16677 16678/** 16679 * Logs timeout extended events which occur from consecutive undims. 16680 * 16681 * Logged from: 16682 * frameworks/opt/telephony/src/java/com/android/server/power/ScreenUndimDetector.java 16683 */ 16684message TimeoutAutoExtendedReported { 16685 enum Outcome { 16686 UNKNOWN = 0; 16687 POWER_BUTTON = 1; 16688 TIMEOUT = 2; 16689 } 16690 16691 // Logs the action that occurs after timeout is extended from undim. 16692 optional Outcome outcome = 1; 16693 // Time from timeout extension to the outcome. 16694 optional int64 time_to_outcome_millis = 2; 16695 // Time of first interaction after undim if an interaction occurs. 16696 // -1 if no interaction occurs before screen turns off. 16697 optional int64 time_to_first_interaction_millis = 3; 16698} 16699 16700/** 16701 * Logs gnss stats from location service provider 16702 * 16703 * Pulled from: 16704 * frameworks/base/location/java/com/android/internal/location/gnssmetrics/GnssMetrics.java 16705 */ 16706message GnssStats { 16707 // Number of location reports since boot 16708 optional int64 location_reports = 1; 16709 16710 // Total pulled reports of Location failures since boot 16711 optional int64 location_failure_reports = 2; 16712 16713 // Number of time to first fix reports since boot 16714 optional int64 time_to_first_fix_reports = 3; 16715 16716 // Total pulled reported time to first fix (in milli-seconds) since boot 16717 optional int64 time_to_first_fix_millis = 4; 16718 16719 // Number of position accuracy reports since boot 16720 optional int64 position_accuracy_reports = 5; 16721 16722 // Total pulled reported position accuracy (in meters) since boot 16723 optional int64 position_accuracy_meters = 6; 16724 16725 // Number of top 4 average CN0 reports since boot 16726 optional int64 top_four_average_cn0_reports = 7; 16727 16728 // Total pulled reported of top 4 average CN0 (dB-mHz) since boot 16729 optional int64 top_four_average_cn0_db_mhz = 8; 16730 16731 // Number of l5 top 4 average CN0 reports since boot 16732 optional int64 l5_top_four_average_cn0_reports = 9; 16733 16734 // Total pulled reported of l5 top 4 average CN0 (dB-mHz) since boot 16735 optional int64 l5_top_four_average_cn0_db_mhz = 10; 16736 16737 // Total number of sv status messages reports since boot 16738 optional int64 sv_status_reports = 11; 16739 16740 // Total number of sv status messages reports, where sv is used in fix since boot 16741 optional int64 sv_status_reports_used_in_fix = 12; 16742 16743 // Total number of L5 sv status messages reports since boot 16744 optional int64 l5_sv_status_reports = 13; 16745 16746 // Total number of L5 sv status messages reports, where sv is used in fix since boot 16747 optional int64 l5_sv_status_reports_used_in_fix = 14; 16748} 16749 16750/** 16751 * Logs power usage data from GNSS subsystem. 16752 * 16753 * Logged from: 16754 * /frameworks/base/location/java/com/android/internal/location/gnssmetrics/GnssMetrics.java 16755 */ 16756message GnssPowerStats { 16757 // Relative precision of the alignment of the reported power stats measurement. 16758 optional int64 elapsed_realtime_uncertainty_nanos = 1; 16759 16760 // Total GNSS energy consumption in micro-joules (or micro Watt-seconds). 16761 optional int64 total_energy_micro_joule = 2; 16762 16763 // Total energy consumption in micro-joules (or micro Watt-seconds) for which the GNSS engine is 16764 // tracking signals of a single frequency band. 16765 optional int64 singleband_tracking_mode_energy_micro_joule = 3; 16766 16767 // Total energy consumption in micro-joules (or micro Watt-seconds) for which the GNSS engine is 16768 // tracking signals of multiple frequency bands. 16769 optional int64 multiband_tracking_mode_energy_micro_joule = 4; 16770 16771 // Total energy consumption in micro-joules (or micro Watt-seconds) for which the GNSS engine is 16772 // acquiring signals of a single frequency band. 16773 optional int64 singleband_acquisition_mode_energy_micro_joule = 5; 16774 16775 // Total energy consumption in micro-joules (or micro Watt-seconds) for which the GNSS engine is 16776 // acquiring signals of multiple frequency bands. 16777 optional int64 multiband_acquisition_mode_energy_micro_joule = 6; 16778 16779 // Total energy consumption in micro-joules (microWatt-seconds) for which the GNSS engine is 16780 // operating in each of the vendor-specific power modes. (Index 0) 16781 optional int64 vendor_specific_power_modes_energy_micro_joule_0 = 7; 16782 16783 // Total energy consumption in micro-joules (microWatt-seconds) for which the GNSS engine is 16784 // operating in each of the vendor-specific power modes. (Index 1) 16785 optional int64 vendor_specific_power_modes_energy_micro_joule_1 = 8; 16786 16787 // Total energy consumption in micro-joules (microWatt-seconds) for which the GNSS engine is 16788 // operating in each of the vendor-specific power modes. (Index 2) 16789 optional int64 vendor_specific_power_modes_energy_micro_joule_2 = 9; 16790 16791 // Total energy consumption in micro-joules (microWatt-seconds) for which the GNSS engine is 16792 // operating in each of the vendor-specific power modes. (Index 3) 16793 optional int64 vendor_specific_power_modes_energy_micro_joule_3 = 10; 16794 16795 // Total energy consumption in micro-joules (microWatt-seconds) for which the GNSS engine is 16796 // operating in each of the vendor-specific power modes. (Index 4) 16797 optional int64 vendor_specific_power_modes_energy_micro_joule_4 = 11; 16798 16799 // Total energy consumption in micro-joules (microWatt-seconds) for which the GNSS engine is 16800 // operating in each of the vendor-specific power modes. (Index 5) 16801 optional int64 vendor_specific_power_modes_energy_micro_joule_5 = 12; 16802 16803 // Total energy consumption in micro-joules (microWatt-seconds) for which the GNSS engine is 16804 // operating in each of the vendor-specific power modes. (Index 6) 16805 optional int64 vendor_specific_power_modes_energy_micro_joule_6 = 13; 16806 16807 // Total energy consumption in micro-joules (microWatt-seconds) for which the GNSS engine is 16808 // operating in each of the vendor-specific power modes. (Index 7) 16809 optional int64 vendor_specific_power_modes_energy_micro_joule_7 = 14; 16810 16811 // Total energy consumption in micro-joules (microWatt-seconds) for which the GNSS engine is 16812 // operating in each of the vendor-specific power modes. (Index 8) 16813 optional int64 vendor_specific_power_modes_energy_micro_joule_8 = 15; 16814 16815 // Total energy consumption in micro-joules (microWatt-seconds) for which the GNSS engine is 16816 // operating in each of the vendor-specific power modes. (Index 9) 16817 optional int64 vendor_specific_power_modes_energy_micro_joule_9 = 16; 16818} 16819 16820/** 16821 * Logs when an app is moved to a different standby bucket. 16822 * 16823 * Logged from: 16824 * frameworks/base/apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java 16825 */ 16826message AppStandbyBucketChanged { 16827 optional string package_name = 1; 16828 16829 // Should be 0, 10, 11, 12, etc. where 0 is the owner. See UserHandle for more documentation. 16830 optional int32 user_id = 2; 16831 16832 // These enum values match the constants defined in UsageStatsManager.java. 16833 enum Bucket { 16834 BUCKET_UNKNOWN = 0; 16835 BUCKET_EXEMPTED = 5; 16836 BUCKET_ACTIVE = 10; 16837 BUCKET_WORKING_SET = 20; 16838 BUCKET_FREQUENT = 30; 16839 BUCKET_RARE = 40; 16840 BUCKET_RESTRICTED = 45; 16841 BUCKET_NEVER = 50; 16842 } 16843 optional Bucket bucket = 3; 16844 16845 enum MainReason { 16846 MAIN_UNKNOWN = 0; 16847 MAIN_DEFAULT = 0x0100; 16848 MAIN_TIMEOUT = 0x0200; 16849 MAIN_USAGE = 0x0300; 16850 MAIN_FORCED_BY_USER = 0x0400; 16851 MAIN_PREDICTED = 0x0500; 16852 MAIN_FORCED_BY_SYSTEM = 0x0600; 16853 } 16854 optional MainReason main_reason = 4; 16855 16856 // A more detailed reason for the standby bucket change. The sub reason name is dependent on 16857 // the main reason. Values are one of the REASON_SUB_XXX constants defined in 16858 // UsageStatsManager.java. 16859 optional int32 sub_reason = 5; 16860} 16861 16862/** 16863* Reports a started sharesheet transaction. 16864* 16865* Logged from: 16866* frameworks/base/core/java/com/android/internal/app/ChooserActivity.java 16867* packages/modules/IntentResolver/java/src/com/android/intentresolver/ChooserActivity.java 16868*/ 16869message SharesheetStarted { 16870 // The event_id (as for UiEventReported). 16871 optional int32 event_id = 1; 16872 // The calling app's package name. 16873 optional string package_name = 2; 16874 // An identifier to tie together multiple logs relating to the same share event 16875 optional int32 instance_id = 3; 16876 // The mime type of the share 16877 optional string mime_type = 4; 16878 // The number of direct targets the calling app is providing that will be shown. 16879 optional int32 num_app_provided_direct_targets = 5; 16880 // The number of app targets the calling app is providing that will be shown. 16881 optional int32 num_app_provided_app_targets = 6; 16882 // True if the share originates from the workprofile 16883 optional bool is_workprofile = 7; 16884 16885 enum SharesheetPreviewType { // Constants from ChooserActivity.java 16886 CONTENT_PREVIEW_TYPE_UNKNOWN = 0; // Default for proto 2 / 3 compatibility. 16887 CONTENT_PREVIEW_IMAGE = 1; // The preview shown in the sharesheet is an image. 16888 CONTENT_PREVIEW_FILE = 2; // The preview shown in the sharesheet is a file. 16889 CONTENT_PREVIEW_TEXT = 3; // The preview shown in the sharesheet is text. 16890 // Preview is toggleable media items (Shareousel): 16891 CONTENT_PREVIEW_TOGGLEABLE_MEDIA = 4; 16892 } 16893 // How the sharesheet preview is presented. 16894 optional SharesheetPreviewType preview_type = 8; 16895 16896 enum ResolverActivityIntent { // Intents handled by ResolverActivity.java 16897 INTENT_DEFAULT = 0; 16898 INTENT_ACTION_VIEW = 1; 16899 INTENT_ACTION_EDIT = 2; 16900 INTENT_ACTION_SEND = 3; 16901 INTENT_ACTION_SENDTO = 4; 16902 INTENT_ACTION_SEND_MULTIPLE = 5; 16903 INTENT_ACTION_IMAGE_CAPTURE = 6; 16904 INTENT_ACTION_MAIN = 7; 16905 } 16906 // The intent being processed (only SEND and SEND_MULTIPLE are system sharesheet) 16907 optional ResolverActivityIntent intent_type = 9; 16908 // The number of custom actions that the calling app has provided. 16909 optional int32 num_provided_custom_actions = 10; 16910 // True if the calling app has provided an action for share modification. 16911 optional bool modify_share_action_provided = 11; 16912} 16913 16914/** 16915 * Reports a ranking selection event. 16916 * 16917 * Logged from: 16918 * frameworks/base/core/java/com/android/internal/app/ChooserActivity.java (sharesheet) 16919 * packages/modules/IntentResolver/java/src/com/android/intentresolver/ChooserActivity.java 16920 */ 16921message RankingSelected { 16922 // The event_id (as for UiEventReported). 16923 optional int32 event_id = 1; 16924 // The relevant app's package name (can be source or picked package). 16925 optional string package_name = 2; 16926 // An identifier to tie together multiple logs relating to the same share event. 16927 optional int32 instance_id = 3; 16928 // Which of the ranked targets got picked, default starting position 0. 16929 optional int32 position_picked = 4; 16930 // Whether the selected target is pinned. 16931 optional bool is_pinned = 5; 16932} 16933 16934/** 16935 * Logs when TvSettings UI is interacted at. 16936 * 16937 * Logged from: packages/apps/TvSettings 16938 */ 16939message TvSettingsUIInteracted { 16940 16941 /** The UI action category */ 16942 optional android.app.tvsettings.Action action = 1; 16943 16944 /** The ID of the entry that the users actioned on */ 16945 optional android.app.tvsettings.ItemId item_id = 2; 16946} 16947 16948/** 16949 * Logs information about a package installation using package installer V2 APIs. 16950 * 16951 * Logged from: 16952 * frameworks/base/services/core/java/com/android/server/pm/PackageInstallerSession.java 16953 */ 16954message PackageInstallerV2Reported { 16955 // Whether this installation uses Incremental File System 16956 optional bool is_incremental = 1; 16957 // Name of the package that is intended to be installed 16958 optional string package_name = 2; 16959 // The duration between when the install was requested to when the install has completed 16960 optional int64 duration_millis = 3; 16961 // Installation result in final integer, which are SystemApi's. 16962 // Return_code 1 indicates success. 16963 // For full list, see frameworks/base/core/java/android/content/pm/PackageManager.java 16964 optional int32 return_code = 4; 16965 // Total size of the APKs installed for this package 16966 optional int64 apks_size_bytes = 5; 16967 // UID of the package. -1 if the installation failed. 16968 optional int32 uid = 6 [(is_uid) = true]; 16969} 16970 16971/** 16972 * Logs settings provider values. 16973 * 16974 * Use DeviceConfig.getProperties to get a list Setting key, query the data from content provider, 16975 * then write the value to proto. 16976 * 16977 */ 16978message SettingSnapshot { 16979 16980 // Setting key 16981 optional string name = 1; 16982 16983 enum SettingsValueType { 16984 NOTASSIGNED = 0; 16985 ASSIGNED_BOOL_TYPE = 1; 16986 ASSIGNED_INT_TYPE = 2; 16987 ASSIGNED_FLOAT_TYPE = 3; 16988 ASSIGNED_STRING_TYPE = 4; 16989 }; 16990 // Setting value type 16991 optional SettingsValueType type = 2; 16992 16993 optional bool bool_value = 3; 16994 16995 optional int32 int_value = 4; 16996 16997 optional float float_value = 5; 16998 16999 optional string str_value = 6; 17000 17001 // Android user index. 0 for primary user, 10, 11 for secondary or profile user 17002 optional int32 user_id = 7; 17003} 17004 17005/** 17006 * An event logged to indicate that a user journey is about to be performed. This atom includes 17007 * relevant information about the users involved in the journey. A UserLifecycleEventOccurred event 17008 * will immediately follow this atom which will describe the event(s) and its state. 17009 * 17010 * Logged from: 17011 * frameworks/base/services/core/java/com/android/server/am/UserController.java 17012 * frameworks/base/services/core/java/com/android/server/pm/UserManagerService.java 17013 */ 17014message UserLifecycleJourneyReported { 17015 // An identifier to track a chain of user lifecycle events occurring (referenced in the 17016 // UserLifecycleEventOccurred atom) 17017 optional int64 session_id = 1; 17018 17019 // Indicates what type of user journey this session is related to 17020 enum Journey { 17021 UNKNOWN = 0; // Undefined user lifecycle journey 17022 USER_SWITCH_UI = 1; // A user switch journey where a UI is shown 17023 USER_SWITCH_FG = 2; // A user switch journey without a UI shown 17024 USER_START = 3; // A user start journey 17025 USER_CREATE = 4; // A user creation journey 17026 USER_STOP = 5; // A user stop journey 17027 USER_REMOVE = 6; // A user removal journey 17028 GRANT_ADMIN = 7; // An admin grant journey 17029 REVOKE_ADMIN = 8; // An admin revocation journey 17030 USER_LIFECYCLE = 9; // User journey from creation to deletion 17031 } 17032 optional Journey journey = 2; 17033 // Which user the journey is originating from - could be -1 for certain phases (eg USER_CREATE) 17034 // This integer is a UserIdInt (eg 0 for the system user, 10 for secondary/guest) 17035 optional int32 origin_user = 3; 17036 // Which user the journey is targeting 17037 // This integer is a UserIdInt (eg 0 for the system user, 10 for secondary/guest) 17038 optional int32 target_user = 4; 17039 17040 // What is the user type of the target user 17041 // These should be in sync with USER_TYPE_* flags defined in UserManager.java 17042 enum UserType { 17043 TYPE_UNKNOWN = 0; 17044 FULL_SYSTEM = 1; 17045 FULL_SECONDARY = 2; 17046 FULL_GUEST = 3; 17047 FULL_DEMO = 4; 17048 FULL_RESTRICTED = 5; 17049 PROFILE_MANAGED = 6; 17050 SYSTEM_HEADLESS = 7; 17051 PROFILE_CLONE = 8; 17052 PROFILE_PRIVATE = 9; 17053 } 17054 optional UserType user_type = 5; 17055 // What are the flags attached to the target user 17056 optional int32 user_flags = 6; 17057 optional int32 error_code = 7; 17058 optional int64 elapsed_time = 8; 17059} 17060 17061/** 17062 * An event logged when a specific user lifecycle event is performed. These events should be 17063 * correlated with a UserLifecycleJourneyReported atom via the session_id. 17064 * Note: journeys can span over multiple events, hence some events may share a single session id. 17065 * 17066 * Logged from: 17067 * frameworks/base/services/core/java/com/android/server/am/UserController.java 17068 * frameworks/base/services/core/java/com/android/server/pm/UserManagerService.java 17069 */ 17070message UserLifecycleEventOccurred { 17071 // An id which links back to user details (reported in the UserLifecycleJourneyReported atom) 17072 optional int64 session_id = 1; 17073 // The target user for this event (same as target_user in the UserLifecycleJourneyReported atom) 17074 // This integer is a UserIdInt (eg 0 for the system user, 10 for secondary/guest) 17075 optional int32 user_id = 2; 17076 17077 enum Event { 17078 UNKNOWN = 0; // Indicates that the associated user journey timed-out or resulted in an error 17079 SWITCH_USER = 1; // Indicates that this is a user switch event 17080 START_USER = 2; // Indicates that this is a user start event 17081 CREATE_USER = 3; // Indicates that this is a user create event 17082 USER_RUNNING_LOCKED = 4; // Indicates that user is running in locked state 17083 UNLOCKING_USER = 5; // Indicates that this is a user unlocking event 17084 UNLOCKED_USER = 6; // Indicates that this is a user unlocked event 17085 STOP_USER = 7; // Indicates that this is a user stop event 17086 REMOVE_USER = 8; // Indicates that this is a user removal event 17087 GRANT_ADMIN = 9; // Indicates that this is an admin privileges grant event 17088 REVOKE_ADMIN = 10; // Indicates that this is an admin privileges revocation event 17089 } 17090 optional Event event = 3; 17091 17092 enum State { 17093 NONE = 0; // Indicates the associated event has no start/end defined 17094 BEGIN = 1; 17095 FINISH = 2; 17096 CANCEL = 3; 17097 ERROR = 4; 17098 } 17099 optional State state = 4; // Represents the state of an event (beginning/ending) 17100 optional int32 error_code = 5; 17101} 17102 17103/** 17104 * The UserInfo information about an Android user (as used in UserManager multiuser). 17105 * 17106 * Currently, we do not include information about user 0, since it is uninteresting. 17107 * 17108 * This will be pulled from 17109 * frameworks/base/services/core/java/com/android/server/pm/UserManagerService.java 17110 */ 17111message UserInfo { 17112 // The @UserIdInt userId of the user 17113 optional int32 user_id = 1; 17114 17115 // The type of user, if AOSP-defined, such as {@link UserManager#USER_TYPE_PROFILE_MANAGED} 17116 optional UserLifecycleJourneyReported.UserType user_type = 2; 17117 17118 // The type of user if not AOSP-defined. Will be empty if user_type is not TYPE_UNKNOWN. 17119 optional string user_type_custom = 3; 17120 17121 // The @UserInfoFlag UserInfo flags of user. 17122 optional int32 user_flags = 4; 17123 17124 // Wall-clock time in milliseconds when user was created, according to System.currentTimeMillis 17125 optional int64 creation_time_millis = 5; 17126 17127 // Wall-clock time in milliseconds when user last entered the state of STATE_RUNNING_UNLOCKED, 17128 // according to System.currentTimeMillis 17129 optional int64 last_logged_in_time_millis = 6; 17130 17131 // True if user is currently running and unlocked. 17132 // Note that this is NOT synonymous with being the 'current' user. Multiple users may be 17133 // running unlocked, with one in the foreground and others running in the background. 17134 optional bool is_user_running_unlocked = 7; 17135} 17136 17137 17138/** 17139 * The MultiUserInfo information about maximum supported users on the device. 17140 * 17141 * This will be pulled from 17142 * frameworks/base/services/core/java/com/android/server/pm/UserManagerService.java 17143 */ 17144message MultiUserInfo { 17145 // Maximum users supported on the device 17146 optional int32 max_supported_users = 1; 17147 // Whether multi user setting is on. 17148 optional bool multi_user_setting_on = 2; 17149 // Whether device supports multiuser and owner have no restriction in adding users. 17150 optional bool supports_adding_full_users = 3; 17151} 17152 17153/** 17154 * Logs when accessibility shortcut clicked. 17155 * 17156 * Logged from: 17157 * frameworks/base/services/accessibility/java/com/android/server/accessibility 17158 */ 17159message AccessibilityShortcutReported { 17160 // The accessibility feature(including installed a11y service, framework a11y feature, 17161 // and installed a11y activity) package name that is assigned to the accessibility shortcut. 17162 optional string package_name = 1; 17163 17164 // The definition of the accessibility shortcut. 17165 // From frameworks/proto_logging/stats/enums/stats/accessibility/accessibility_enums.proto. 17166 optional android.stats.accessibility.ShortcutType shortcut_type = 2; 17167 17168 // The definition of the service status. 17169 // From frameworks/proto_logging/stats/enums/stats/accessibility/accessibility_enums.proto. 17170 optional android.stats.accessibility.ServiceStatus service_status = 3; 17171} 17172 17173/** 17174 * Logs when accessibility service status changed. 17175 * 17176 * Logged from: 17177 * packages/apps/Settings/src/com/android/settings/accessibility 17178 */ 17179message AccessibilityServiceReported { 17180 // The accessibility service package name. 17181 optional string package_name = 1; 17182 17183 // The definition of the service status. 17184 // From frameworks/proto_logging/stats/enums/stats/accessibility/accessibility_enums.proto. 17185 optional android.stats.accessibility.ServiceStatus service_status = 2; 17186} 17187 17188/** 17189 * Pulls accessibility shortcuts status. 17190 * 17191 * Pulled from: 17192 * StatsPullAtomService 17193 */ 17194message AccessibilityShortcutStats { 17195 // The definition of the accessibility software shortcut. 17196 // From frameworks/proto_logging/stats/enums/stats/accessibility/accessibility_enums.proto. 17197 optional android.stats.accessibility.ShortcutType software_shortcut_type = 1; 17198 // Number of accessibility services in accessibility software shortcut. 17199 optional int32 software_shortcut_service_num = 2; 17200 17201 // The definition of the accessibility hardware shortcut. 17202 // From frameworks/proto_logging/stats/enums/stats/accessibility/accessibility_enums.proto. 17203 optional android.stats.accessibility.ShortcutType hardware_shortcut_type = 3; 17204 // Number of accessibility services in accessibility hardware shortcut. 17205 optional int32 hardware_shortcut_service_num = 4; 17206 17207 // The definition of the accessibility gesture shortcut. 17208 // From frameworks/proto_logging/stats/enums/stats/accessibility/accessibility_enums.proto. 17209 optional android.stats.accessibility.ShortcutType gesture_shortcut_type = 5; 17210 // Number of accessibility services in accessibility gesture shortcut. 17211 optional int32 gesture_shortcut_service_num = 6; 17212 17213 // The definition of the accessibility quick settings shortcut. 17214 // From frameworks/proto_logging/stats/enums/stats/accessibility/accessibility_enums.proto. 17215 optional android.stats.accessibility.ShortcutType qs_shortcut_type = 7; 17216 // Boolean indicating whether the user turns on qs shortcut for any 17217 // accessibility feature that support qs shortcut. 17218 optional bool use_qs_shortcut = 8; 17219} 17220 17221/** 17222 * Pulls accessibility floating menu status. 17223 * 17224 * Pulled from: 17225 * StatsPullAtomService 17226 */ 17227message AccessibilityFloatingMenuStats { 17228 // Size of the accessibility floating menu. 17229 optional int32 size = 1; 17230 // Icon shape of the accessibility floating menu. 17231 optional int32 icon_type = 2; 17232 // Whether the accessibility floating menu is enable auto fade ability. 17233 optional bool fade_enabled = 3; 17234 // Opacity of the accessibility floating menu. The range is between 0 and 1. 17235 optional float opacity = 4; 17236} 17237 17238/** 17239 * Logs when display wake up. 17240 * 17241 * Logged from: 17242 * services/core/java/com/android/server/power/Notifier.java 17243 */ 17244 17245message DisplayWakeReported { 17246 // Wake_up_reason code 17247 // If LOWORD(wake_up_reason) = 0 17248 // reference to HIWORD(wake_up_reason) PowerManager.WAKE_REASON_XXX 17249 // else reference wake_up_reason to 17250 // services/core/java/com/android/server/power/Notifier.java#onWakeUp 17251 optional int32 wake_up_reason = 1; 17252 // UID that caused the display to wake 17253 optional int32 uid = 2 [(is_uid) = true]; 17254} 17255 17256/** 17257 * Logs app usage events. 17258 * 17259 * Logged from: 17260 * frameworks/base/services/usage/java/com/android/server/usage/UsageStatsService.java 17261 */ 17262message AppUsageEventOccurred { 17263 optional int32 uid = 1 [(is_uid) = true]; 17264 optional string package_name = 2; 17265 optional string class_name = 3; 17266 17267 // Usage event types please refer to below file: 17268 // frameworks/base/core/java/android/app/usage/UsageEvents.java 17269 enum EventType { 17270 NONE = 0; 17271 MOVE_TO_FOREGROUND = 1; 17272 MOVE_TO_BACKGROUND = 2; 17273 USER_INTERACTION = 7; 17274 SHORTCUT_INVOCATION = 8; 17275 CHOOSER_ACTION = 9; 17276 STANDBY_BUCKET_CHANGED = 11; 17277 FOREGROUND_SERVICE_START = 19; 17278 FOREGROUND_SERVICE_STOP = 20; 17279 } 17280 optional EventType event_type = 4; 17281} 17282 17283/* 17284 * Quality metrics logged when EVS cameras are active. 17285 * 17286 * Logged from: 17287 * packages/services/Car/evs/manager/1.1/Enumerator.cpp 17288 */ 17289message EvsUsageStatsReported { 17290 17291 // Camera identifier to distinguish the source camera device. This is not 17292 // globally unique and therefore cannot be used to identify the user and/or 17293 // the device. 17294 optional int32 device_id = 1; 17295 17296 // Peak number of clients during the service 17297 optional int32 peak_num_clients = 2; 17298 17299 // Number of erroneous events during the service 17300 optional int32 num_errors = 3; 17301 17302 // Round trip latency of the very first frame 17303 optional int64 first_latency_millis = 4; 17304 17305 // Average frame round trip latency 17306 optional float avg_latency_millis = 5; 17307 17308 // Peak frame round trip latency 17309 optional int64 peak_latency_millis = 6; 17310 17311 // Total number of frames received 17312 optional int64 total_frames = 7; 17313 17314 // Number of frames ignored 17315 optional int64 ignored_frames = 8; 17316 17317 // Number of dropped frames to synchronize camera devices 17318 optional int64 dropped_frames_to_sync = 9; 17319 17320 // The duration of the service 17321 optional int64 duration_millis = 10; 17322} 17323 17324/** 17325 * Logs audio power usage stats. 17326 * 17327 * Pushed from: 17328 * frameworks/av/services/mediametrics/AudioPowerUsage.cpp 17329 */ 17330message AudioPowerUsageDataReported { 17331 /** 17332 * Device used for input/output 17333 * 17334 * All audio devices please refer to below file: 17335 * system/media/audio/include/system/audio-base.h 17336 * 17337 * Define our own enum values because we don't report all audio devices. 17338 * Currently, we only report built-in audio devices such as handset, speaker, 17339 * built-in mics, common audio devices such as wired headset, usb headset 17340 * and bluetooth devices. 17341 */ 17342 enum AudioDevice { 17343 OUTPUT_EARPIECE = 0x1; // handset 17344 OUTPUT_SPEAKER = 0x2; // dual speaker 17345 OUTPUT_WIRED_HEADSET = 0x4; // 3.5mm headset 17346 OUTPUT_USB_HEADSET = 0x8; // usb headset 17347 OUTPUT_BLUETOOTH_SCO = 0x10; // bluetooth sco 17348 OUTPUT_BLUETOOTH_A2DP = 0x20; // a2dp 17349 OUTPUT_SPEAKER_SAFE = 0x40; // bottom speaker 17350 OUTPUT_BLUETOOTH_BLE = 0x80; // ble 17351 OUTPUT_DOCK = 0x100; // dock 17352 OUTPUT_HDMI = 0x200; // hdmi 17353 17354 INPUT_DEVICE_BIT = 0x40000000; // non-negative positive int32. 17355 INPUT_BUILTIN_MIC = 0x40000001; // buildin mic 17356 INPUT_BUILTIN_BACK_MIC = 0x40000002; // buildin back mic 17357 INPUT_WIRED_HEADSET_MIC = 0x40000004; // 3.5mm headset mic 17358 INPUT_USB_HEADSET_MIC = 0x40000008; // usb headset mic 17359 INPUT_BLUETOOTH_SCO = 0x40000010; // bluetooth sco mic 17360 INPUT_BLUETOOTH_BLE = 0x40000020; // ble mic 17361 } 17362 optional AudioDevice audio_device = 1; 17363 17364 // Duration of the audio in seconds 17365 optional int32 duration_secs = 2; 17366 17367 // Average volume (0 ... 1.0) 17368 optional float average_volume = 3; 17369 17370 enum AudioType { 17371 UNKNOWN_TYPE = 0; 17372 VOICE_CALL_TYPE = 1; // voice call 17373 VOIP_CALL_TYPE = 2; // voip call, including uplink and downlink 17374 MEDIA_TYPE = 3; // music and system sound 17375 RINGTONE_NOTIFICATION_TYPE = 4; // ringtone and notification 17376 ALARM_TYPE = 5; // alarm type 17377 // record type 17378 CAMCORDER_TYPE = 6; // camcorder 17379 RECORD_TYPE = 7; // other recording 17380 } 17381 optional AudioType type = 4; 17382 17383 // Minimum volume duration of the audio in seconds 17384 optional int32 minimum_volume_duration_secs = 5; 17385 17386 // Minimum volume (0 ... 1.0) 17387 optional float minimum_volume = 6; 17388 17389 // Maximum volume duration of the audio in seconds 17390 optional int32 maximum_volume_duration_secs = 7; 17391 17392 // Maximum volume (0 ... 1.0) 17393 optional float maximum_volume = 8; 17394} 17395 17396/** 17397 * Logs the Spatializer capability when the Spatializer is created. 17398 * 17399 * We expect this to occur only once on a healthy system, 17400 * when audioserver is initialized. 17401 * 17402 * On devices that do not support spatialization, 17403 * SpatializerLevel returns SPATIALIZER_LEVEL_NONE only. 17404 * 17405 * Logged from: 17406 * frameworks/av/services/mediametrics/AudioAnalytics.cpp 17407 */ 17408message MediametricsSpatializerCapabilitiesReported { 17409 // Available head tracking modes 17410 repeated android.media.audio.HeadTrackingMode head_tracking_modes = 1; 17411 17412 // Available spatializer levels 17413 repeated android.media.audio.SpatializerLevel spatializer_levels = 2; 17414 17415 // Available spatializer modes 17416 repeated android.media.audio.SpatializerMode spatializer_modes = 3; 17417 17418 // Available channel masks, with each channel position bitwise ORed. 17419 // One or more bits from 17420 // system/media/audio/include/system/audio-hal-enums.h 17421 // audio_channel_mask_t, representing the channel configuration 17422 // of AudioTrack data. 17423 // 17424 // Generally the most populated channel_mask is selected for use. 17425 repeated int64 channel_masks = 4; 17426} 17427 17428/** 17429 * Logs when Spatializer is enabled or disabled for a device. 17430 * 17431 * The event field indicates the reason for enabling or disabling: 17432 * through the Settings UI, startup/boot, or new device detection. 17433 * 17434 * The presence of this message indicates that the audio device type 17435 * supports Spatialization; this is generally a fixed 17436 * property of the platform and depends if the device type is considered 17437 * BINAURAL or TRANSAURAL, and the Spatializer support for it. 17438 * 17439 * This logs existing saved state on BOOT and changes afterwards. 17440 * Due to rpc to the MediaMetrics service which generates the atom, 17441 * the timestamp of the atom may have a slight delay. 17442 * 17443 * Logged from: 17444 * frameworks/av/services/mediametrics/AudioAnalytics.cpp 17445 */ 17446message MediametricsSpatializerDeviceEnabledReported { 17447 // Device type enumeration, e.g. BUILTIN_SPEAKER, BT_A2DP, etc. 17448 optional android.media.audio.AudioDeviceInfoType type = 1; 17449 17450 // The event field indicates the reason for enabling or disabling: 17451 // NORMAL: from Settings UI. 17452 // BOOT: on startup/boot. 17453 // FIRST: on new device detection. 17454 optional android.media.audio.SpatializerSettingEvent event = 2; 17455 17456 // Whether the spatializer is enabled on that device. 17457 // This triggers only on a change of state. 17458 // If multiple devices share the same type (e.g. bluetooth headsets), 17459 // they will register separate messages. 17460 optional bool enabled = 3; 17461} 17462 17463/** 17464 * Logs whether the HeadTracker is enabled for a device. 17465 * 17466 * This only changes if there is a HeadTracker associated with the device. 17467 * 17468 * This logs existing saved state on BOOT and changes afterwards. 17469 * Due to rpc to the MediaMetrics service which generates the atom, 17470 * the timestamp of the atom may have a slight delay. 17471 * 17472 * Logged from: 17473 * frameworks/av/services/mediametrics/AudioAnalytics.cpp 17474 */ 17475message MediametricsHeadTrackerDeviceEnabledReported { 17476 // Device type enumeration, e.g. BUILTIN_SPEAKER, BT_A2DP, etc. 17477 optional android.media.audio.AudioDeviceInfoType type = 1; 17478 17479 // The event field indicates the reason for enabling or disabling: 17480 // NORMAL: from Settings UI. 17481 // BOOT: on startup/boot. 17482 // FIRST: on new device detection. 17483 optional android.media.audio.SpatializerSettingEvent event = 2; 17484 17485 // Whether the head tracker was enabled or disabled on that device. 17486 // This triggers only on a change of state. 17487 // If multiple devices share the same type (e.g. bluetooth headsets), 17488 // they will register separate messages. 17489 optional bool enabled = 3; 17490} 17491 17492/** 17493 * Logs whether the HeadTracker is supported for a device. 17494 * 17495 * Generally a fixed property of the device, but it is possible 17496 * that the HeadTracker sensor might be turned off 17497 * or be temporarily unavailable. 17498 * 17499 * This logs existing saved state on BOOT and changes afterwards. 17500 * Due to rpc to the MediaMetrics service which generates the atom, 17501 * the timestamp of the atom may have a slight delay. 17502 * 17503 * Logged from: 17504 * frameworks/av/services/mediametrics/AudioAnalytics.cpp 17505 */ 17506message MediametricsHeadTrackerDeviceSupportedReported { 17507 // Device type enumeration, e.g. BUILTIN_SPEAKER, BT_A2DP, etc. 17508 optional android.media.audio.AudioDeviceInfoType type = 1; 17509 17510 // The event field indicates the reason for enabling or disabling: 17511 // NORMAL: on sensor change. 17512 // BOOT: on startup/boot. 17513 // FIRST: on new device detection. 17514 optional android.media.audio.SpatializerSettingEvent event = 2; 17515 17516 // Whether the head tracker is supported on that device. 17517 // This triggers only on a change of state. 17518 // If multiple devices share the same type (e.g. bluetooth headsets), 17519 // they will register separate messages. 17520 optional bool supported = 3; 17521} 17522 17523/** 17524 * Pulls bytes transferred over WiFi and mobile networks sliced by uid, is_metered, and tag. 17525 * 17526 * Pulled from: 17527 * StatsPullAtomService, which uses NetworkStatsService to query NetworkStats. 17528 */ 17529message BytesTransferByTagAndMetered { 17530 optional int32 uid = 1 [(is_uid) = true]; 17531 17532 optional bool is_metered = 2; 17533 17534 optional int32 tag = 3; 17535 17536 optional int64 rx_bytes = 4; 17537 17538 optional int64 rx_packets = 5; 17539 17540 optional int64 tx_bytes = 6; 17541 17542 optional int64 tx_packets = 7; 17543 17544 // Radio Access Technology (RAT) type of this record, should be one of 17545 // TelephonyManager#NETWORK_TYPE_* constants, or 17546 // NetworkTemplate#NETWORK_TYPE_ALL to indicate the record is for all rat 17547 // types combined. 17548 optional int32 rat_type = 8; 17549} 17550 17551/** 17552 * Logs when the Assistant is invoked. 17553 * 17554 * Logged from: 17555 * frameworks/base/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java 17556 */ 17557message AssistantInvocationReported { 17558 17559 // The event_id (as for UiEventReported). 17560 optional int32 event_id = 1; 17561 17562 // The registered Assistant's uid and package (as for UiEventReported). 17563 optional int32 uid = 2 [(is_uid) = true]; 17564 optional string package_name = 3; 17565 17566 // An identifier used to disambiguate which logs refer to a particular invocation of the 17567 // Assistant (as for UiEventReported). 17568 optional int32 instance_id = 4; 17569 17570 // The state of the device at the time of invocation. 17571 enum DeviceState { 17572 UNKNOWN_DEVICE_STATE = 0; 17573 AOD1 = 1; 17574 AOD2 = 2; 17575 BOUNCER = 3; 17576 UNLOCKED_LOCKSCREEN = 4; 17577 LAUNCHER_HOME = 5; 17578 LAUNCHER_OVERVIEW = 6; 17579 LAUNCHER_ALL_APPS = 7; 17580 APP_DEFAULT = 8; 17581 APP_IMMERSIVE = 9; 17582 APP_FULLSCREEN = 10; 17583 } 17584 optional DeviceState device_state = 5; 17585 17586 // Whether the Assistant handles were showing at the time of invocation. 17587 optional bool assistant_handles_showing = 6; 17588} 17589 17590/** 17591 * Logs when an AudioRecord finishes running on an audio device 17592 * 17593 * Logged from: 17594 * frameworks/av/services/mediametrics/AudioAnalytics.cpp 17595 */ 17596message MediametricsAudioRecordDeviceUsageReported { 17597 // The devices connected to this AudioRecord. 17598 // A string OR of various input device categories, e.g. "DEVICE1|DEVICE2". 17599 // See lookup<INPUT_DEVICE>() in frameworks/av/services/mediametrics/AudioTypes.cpp 17600 // See audio_device_t in system/media/audio/include/system/audio-base.h 17601 optional string devices = 1; 17602 17603 // The name of the remote device attached to the device, typically available for USB or BT. 17604 // This may be empty for a fixed device, or separated by "|" if more than one. 17605 optional string device_names = 2; 17606 17607 // The amount of time spent in the device as measured by the active track in AudioFlinger. 17608 optional int64 device_time_nanos = 3; 17609 17610 // The audio data format used for encoding. 17611 // An enumeration from system/media/audio/include/system/audio-base.h audio_format_t 17612 optional string encoding = 4; 17613 17614 // The client-server buffer framecount. 17615 // The framecount is generally between 960 - 48000 for PCM encoding. 17616 // The framecount represents raw buffer size in bytes for non-PCM encoding. 17617 optional int32 frame_count = 5; 17618 17619 // The number of audio intervals (contiguous, continuous playbacks). 17620 optional int32 interval_count = 6; 17621 17622 // The sample rate of the AudioRecord. 17623 // A number generally between 8000-96000 (frames per second). 17624 optional int32 sample_rate = 7; 17625 17626 // The audio input flags used to construct the AudioRecord. 17627 // A string OR from system/media/audio/include/system/audio-base.h audio_input_flags_t 17628 optional string flags = 8; 17629 17630 // The santized package name of the audio client associated with the AudioRecord. 17631 // See getSanitizedPackageNameAndVersionCode() in 17632 // frameworks/av/services/mediametrics/MediaMetricsService.cpp 17633 optional string package_name = 9; 17634 17635 // The selected device id (nonzero if a non-default device is selected) 17636 optional int32 selected_device_id = 10; 17637 17638 // The caller of the AudioRecord. 17639 // See lookup<CALLER_NAME>() in frameworks/av/services/mediametrics/AudioTypes.cpp 17640 optional string caller = 11; 17641 17642 // The audio source for AudioRecord. 17643 // An enumeration from system/media/audio/include/system/audio-base.h audio_source_t 17644 optional string source = 12; 17645 17646 // Android S 17647 // Metric log session id, a Base64Url encoded string of a randomly generated 128-bit integer. 17648 // An empty string means no session id is set. 17649 optional string log_session_id = 13; 17650} 17651 17652/** 17653 * Logs when an AudioThread finishes running on an audio device 17654 * 17655 * Logged from: 17656 * frameworks/av/services/mediametrics/AudioAnalytics.cpp 17657 */ 17658message MediametricsAudioThreadDeviceUsageReported { 17659 // The devices connected to this audio thread. 17660 // A string OR of various input device categories, e.g. "DEVICE1|DEVICE2". 17661 // (for record threads): 17662 // See lookup<INPUT_DEVICE> in frameworks/av/services/mediametrics/AudioTypes.cpp 17663 // (for playback threads): 17664 // See lookup<OUTPUT_DEVICE>() in frameworks/av/services/mediametrics/AudioTypes.cpp 17665 // See audio_device_t in system/media/audio/include/system/audio-base.h 17666 optional string devices = 1; 17667 17668 // The name of the remote device attached to the device, typically available for USB or BT. 17669 // This may be empty for a fixed device, or separated by "|" if more than one. 17670 optional string device_names = 2; 17671 17672 // The amount of time spent in the device as measured by the active track in AudioFlinger. 17673 optional int64 device_time_nanos = 3; 17674 17675 // The audio data format used for encoding. 17676 // An enumeration from system/media/audio/include/system/audio-base.h audio_format_t 17677 optional string encoding = 4; 17678 17679 // The framecount of the buffer delivered to (or from) the HAL. 17680 // The framecount is generally ~960 for PCM encoding. 17681 // The framecount represents raw buffer size in bytes for non-PCM encoding. 17682 optional int32 frame_count = 5; 17683 17684 // The number of audio intervals (contiguous, continuous playbacks). 17685 optional int32 interval_count = 6; 17686 17687 // The sample rate of the audio thread. 17688 // A number generally between 8000-96000 (frames per second). 17689 optional int32 sample_rate = 7; 17690 17691 // The audio flags used to construct the thread 17692 // (for record threads): 17693 // A string OR from system/media/audio/include/system/audio-base.h audio_input_flags_t 17694 // (for playback threads): 17695 // A string OR from system/media/audio/include/system/audio-base.h audio_output_flags_t 17696 optional string flags = 8; 17697 17698 // The number of underruns encountered for a playback thread or the 17699 // number of overruns encountered for a capture thread. 17700 optional int32 xruns = 9; 17701 17702 // The type of thread 17703 // A thread type enumeration from 17704 // frameworks/av/mediametrics/services/Translate.h 17705 optional string type = 10; 17706} 17707 17708/** 17709 * Logs when an AudioTrack finishes running on an audio device 17710 * 17711 * Logged from: 17712 * frameworks/av/services/mediametrics/AudioAnalytics.cpp 17713 */ 17714message MediametricsAudioTrackDeviceUsageReported { 17715 // The output devices connected to this AudioTrack. 17716 // A string OR of various output device categories, e.g. "DEVICE1|DEVICE2". 17717 // See lookup<OUTPUT_DEVICE>() in frameworks/av/services/mediametrics/AudioTypes.cpp 17718 // See audio_device_t in system/media/audio/include/system/audio-base.h 17719 optional string devices = 1; 17720 17721 // The name of the remote device attached to the device, typically available for USB or BT. 17722 // This may be empty for a fixed device, or separated by "|" if more than one. 17723 optional string device_names = 2; 17724 17725 // The amount of time spent in the device as measured by the active track in AudioFlinger. 17726 optional int64 device_time_nanos = 3; 17727 17728 // The audio data format used for encoding. 17729 // An enumeration from system/media/audio/include/system/audio-base.h audio_format_t 17730 optional string encoding = 4; 17731 17732 // The client-server buffer framecount. 17733 // The framecount is generally between 960 - 48000 for PCM encoding. 17734 // The framecount represents raw buffer size in bytes for non-PCM encoding. 17735 // A static track (see traits) may have a very large framecount. 17736 optional int32 frame_count = 5; 17737 17738 // The number of audio intervals (contiguous, continuous playbacks). 17739 optional int32 interval_count = 6; 17740 17741 // The sample rate of the AudioTrack. 17742 // A number generally between 8000-96000 (frames per second). 17743 optional int32 sample_rate = 7; 17744 17745 // The audio flags used to construct the AudioTrack. 17746 // A string OR from system/media/audio/include/system/audio-base.h audio_output_flags_t 17747 optional string flags = 8; 17748 17749 // The number of underruns encountered. 17750 optional int32 xruns = 9; 17751 17752 // The santized package name of the audio client associated with the AudioTrack. 17753 // See getSanitizedPackageNameAndVersionCode() in 17754 // frameworks/av/services/mediametrics/MediaMetricsService.cpp 17755 optional string package_name = 10; 17756 17757 // The latency of the last sample in the buffer in milliseconds. 17758 optional float device_latency_millis = 11; 17759 17760 // The startup time in milliseconds from start() to sample played. 17761 optional float device_startup_millis = 12; 17762 17763 // The average volume of the track on the device [ 0.f - 1.f ] 17764 optional float device_volume = 13; 17765 17766 // The selected device id (nonzero if a non-default device is selected) 17767 optional int32 selected_device_id = 14; 17768 17769 // The stream_type category for the AudioTrack. 17770 // An enumeration from system/media/audio/include/system/audio-base.h audio_stream_type_t 17771 optional string stream_type = 15; 17772 17773 // The usage for the AudioTrack. 17774 // An enumeration from system/media/audio/include/system/audio-base.h audio_usage_t 17775 optional string usage = 16; 17776 17777 // The content type of the AudioTrack. 17778 // An enumeration from system/media/audio/include/system/audio-base.h audio_content_type_t 17779 optional string content_type = 17; 17780 17781 // The caller of the AudioTrack. 17782 // See lookup<CALLER_NAME>() in frameworks/av/services/mediametrics/AudioTypes.cpp 17783 optional string caller = 18; 17784 17785 // The traits of the AudioTrack. 17786 // A string OR of different traits, may be empty string. 17787 // Only "static" is supported for R. 17788 // See lookup<TRACK_TRAITS>() in frameworks/av/services/mediametrics/AudioTypes.cpp 17789 optional string traits = 19; 17790 17791 // Android S 17792 // Metric log session id, a Base64Url encoded string of a randomly generated 128-bit integer. 17793 // An empty string means no session id is set. 17794 optional string log_session_id = 20; 17795} 17796 17797/** 17798 * Logs the status of an audio device connection attempt. 17799 * 17800 * Logged from: 17801 * frameworks/av/services/mediametrics/AudioAnalytics.cpp 17802 */ 17803message MediametricsAudioDeviceConnectionReported { 17804 // The input devices represented by this report. 17805 // A string OR of various input device categories, e.g. "DEVICE1|DEVICE2". 17806 // See lookup<INPUT_DEVICE>() in frameworks/av/services/mediametrics/AudioTypes.cpp 17807 // See audio_device_t in system/media/audio/include/system/audio-base.h 17808 optional string input_devices = 1; 17809 17810 // The output devices represented by this report. 17811 // A string OR of various output device categories. 17812 // See lookup<OUTPUT_DEVICE>() in frameworks/av/services/mediametrics/AudioTypes.cpp 17813 // See audio_device_t in system/media/audio/include/system/audio-base.h 17814 optional string output_devices = 2; 17815 17816 // The name of the remote device attached to the device, typically available for USB or BT. 17817 // This may be empty for a fixed device, or separated by "|" if more than one. 17818 optional string device_names = 3; 17819 17820 // The result of the audio device connection. 17821 // 0 indicates success: connection verified. 17822 // 1 indicates unknown: connection not verified or not known if diverted properly. 17823 // Other values indicate specific status. 17824 // See DeviceConnectionResult in frameworks/av/services/mediametrics/AudioTypes.h 17825 optional int32 result = 4; 17826 17827 // Average milliseconds of time to connect 17828 optional float time_to_connect_millis = 5; 17829 17830 // Number of connections if aggregated statistics, otherwise 1. 17831 optional int32 connection_count = 6; 17832} 17833 17834/** 17835 * Logs the status of an AudioRecord operation. 17836 * 17837 * Logged from: 17838 * frameworks/av/services/mediametrics/AudioAnalytics.cpp 17839 */ 17840message MediametricsAudioRecordStatusReported { 17841 // General status code for categorization of status. 17842 optional android.media.Status status = 1; 17843 17844 // Status or error message, e.g. logcat. 17845 optional string debug_message = 2; 17846 17847 // Supplemental status subcode for AudioRecord. 17848 optional int32 status_subcode = 3; 17849 17850 // Uid associated with the AudioRecord. 17851 optional int32 uid = 4 [(is_uid) = true]; 17852 17853 // The AudioRecord event. 17854 optional android.media.audio.AudioRecordEvent event = 5; 17855 17856 // Requested AudioRecord flags, with each flag bitwise ORed. 17857 // One or more bits from system/media/audio/include/system/audio-hal-enums.h 17858 // audio_input_flags_t 17859 optional int32 input_flags = 6; 17860 17861 // An enumeration from system/media/audio/include/system/audio-hal-enums.h 17862 // audio_source_t, representing the input source for the AudioRecord. 17863 optional android.media.audio.Source source = 7; 17864 17865 // An enumeration from system/media/audio/include/system/audio-hal-enums.h 17866 // audio_format_t, representing the encoding of the AudioRecord data. 17867 optional android.media.audio.Encoding encoding = 8; 17868 17869 // Channel mask, with each channel position bitwise ORed. 17870 // One or more bits from system/media/audio/include/system/audio-hal-enums.h 17871 // audio_channel_mask_t, representing the input channel configuration 17872 // of AudioRecord data. 17873 optional int64 channel_mask = 9; 17874 17875 // The size of the AudioRecord buffer in frames. 17876 // If an error occurs during creation, this may be a small integer requested size 17877 // as AudioFlinger is entitled to increase this as required. 17878 optional int32 buffer_frame_count = 10; 17879 17880 // Sample rate in Hz. 17881 optional int32 sample_rate = 11; 17882} 17883 17884/** 17885 * Logs the status of an AudioTrack operation. 17886 * 17887 * Logged from: 17888 * frameworks/av/services/mediametrics/AudioAnalytics.cpp 17889 */ 17890message MediametricsAudioTrackStatusReported { 17891 // General status code for categorization of status. 17892 optional android.media.Status status = 1; 17893 17894 // Status or error message, e.g. logcat. 17895 optional string debug_message = 2; 17896 17897 // Supplemental status subcode for AudioTrack. 17898 optional int32 status_subcode = 3; 17899 17900 // Uid associated with track 17901 optional int32 uid = 4 [(is_uid) = true]; 17902 17903 // The AudioTrack event. 17904 optional android.media.audio.AudioTrackEvent event = 5; 17905 17906 // Requested AudioTrack flags, with each flag bitwise ORed. 17907 // One or more bits from system/media/audio/include/system/audio-hal-enums.h 17908 // audio_output_flags_t 17909 optional int32 output_flags = 6; 17910 17911 // An enumeration from system/media/audio/include/system/audio-hal-enums.h 17912 // audio_content_type_t, representing the content type of the AudioTrack. 17913 optional android.media.audio.ContentType content_type = 7; 17914 17915 // An enumeration from system/media/audio/include/system/audio-hal-enums.h 17916 // audio_usage_t, representing the use case for the AudioTrack. 17917 optional android.media.audio.Usage usage = 8; 17918 17919 // An enumeration from system/media/audio/include/system/audio-hal-enums.h 17920 // audio_format_t, representing the encoding of the AudioTrack data. 17921 optional android.media.audio.Encoding encoding = 9; 17922 17923 // Channel mask, with each channel position bitwise ORed. 17924 // One or more bits from system/media/audio/include/system/audio-hal-enums.h 17925 // audio_channel_mask_t, representing the channel configuration of AudioTrack data. 17926 optional int64 channel_mask = 10; 17927 17928 // The size of the AudioTrack buffer in frames. 17929 // If an error occurs during creation, this may be a small integer requested size 17930 // as AudioFlinger is entitled to increase this as required. 17931 optional int32 buffer_frame_count = 11; 17932 17933 // Sample rate in Hz. 17934 optional int32 sample_rate = 12; 17935 17936 // Playback speed, nominal 1.f representing 1x. 17937 optional float speed = 13; 17938 17939 // Playback pitch, nominal 1.f representing 1x. 17940 optional float pitch = 14; 17941} 17942 17943/** 17944 * Logs: i) creation of different types of cryptographic keys in the keystore, 17945 * ii) operations performed using the keys, 17946 * iii) attestation of the keys 17947 * Logged from: system/security/keystore/key_event_log_handler.cpp 17948 */ 17949message KeystoreKeyEventReported { 17950 17951 enum Algorithm { 17952 /** Asymmetric algorithms. */ 17953 RSA = 1; 17954 // 2 removed, do not reuse. 17955 EC = 3; 17956 /** Block cipher algorithms */ 17957 AES = 32; 17958 TRIPLE_DES = 33; 17959 /** MAC algorithms */ 17960 HMAC = 128; 17961 }; 17962 /** Algorithm associated with the key */ 17963 optional Algorithm algorithm = 1; 17964 17965 /** Size of the key */ 17966 optional int32 key_size = 2; 17967 17968 enum KeyOrigin { 17969 /** Generated in keymaster. Should not exist outside the TEE. */ 17970 GENERATED = 0; 17971 /** Derived inside keymaster. Likely exists off-device. */ 17972 DERIVED = 1; 17973 /** Imported into keymaster. Existed as cleartext in Android. */ 17974 IMPORTED = 2; 17975 /** Keymaster did not record origin. */ 17976 UNKNOWN = 3; 17977 /** Securely imported into Keymaster. */ 17978 SECURELY_IMPORTED = 4; 17979 }; 17980 /* Logs whether the key was generated, imported, securely imported, or derived.*/ 17981 optional KeyOrigin key_origin = 3; 17982 17983 enum HardwareAuthenticatorType { 17984 NONE = 0; 17985 PASSWORD = 1; 17986 FINGERPRINT = 2; 17987 // Additional entries must be powers of 2. 17988 }; 17989 /** 17990 * What auth types does this key require? If none, 17991 * then no auth required. 17992 */ 17993 optional HardwareAuthenticatorType user_auth_type = 4; 17994 17995 /** 17996 * If user authentication is required, is the requirement time based? If it 17997 * is not time based then this field will not be used and the key is per 17998 * operation. Per operation keys must be user authenticated on each usage. 17999 */ 18000 optional int32 user_auth_key_timeout_secs = 5; 18001 18002 /** 18003 * padding mode, digest, block_mode and purpose should ideally be repeated 18004 * fields. However, since statsd does not support repeated fields in 18005 * pushed atoms, they are represented using bitmaps. 18006 */ 18007 18008 /** Track which padding mode is being used.*/ 18009 optional int32 padding_mode_bitmap = 6; 18010 18011 /** Track which digest is being used. */ 18012 optional int32 digest_bitmap = 7; 18013 18014 /** Track what block mode is being used (for encryption). */ 18015 optional int32 block_mode_bitmap = 8; 18016 18017 /** Track what purpose is this key serving. */ 18018 optional int32 purpose_bitmap = 9; 18019 18020 enum EcCurve { 18021 P_224 = 0; 18022 P_256 = 1; 18023 P_384 = 2; 18024 P_521 = 3; 18025 }; 18026 /** Which ec curve was selected if elliptic curve cryptography is in use **/ 18027 optional EcCurve ec_curve = 10; 18028 18029 enum KeyBlobUsageRequirements { 18030 STANDALONE = 0; 18031 REQUIRES_FILE_SYSTEM = 1; 18032 }; 18033 /** Standalone or is a file system required */ 18034 optional KeyBlobUsageRequirements key_blob_usage_reqs = 11; 18035 18036 enum Type { 18037 key_operation = 0; 18038 key_creation = 1; 18039 key_attestation = 2; 18040 } 18041 /** Key creation event, operation event or attestation event? */ 18042 optional Type type = 12; 18043 18044 /** Was the key creation, operation, or attestation successful? */ 18045 optional bool was_successful = 13; 18046 18047 /** Response code or error code */ 18048 optional int32 error_code = 14; 18049} 18050 18051/** 18052 * Logs a key creation, with information about the parameters and outcome. 18053 * 18054 * Note that each key creation results in multiple atoms being emitted due 18055 * to the cardinality of the fields related to key creations that we are 18056 * interested in collecting. See the messages with names starting with 18057 * "Keystore2KeyCreation" for the others. 18058 * 18059 * Logged from: system/security/keystore2/metrics.rs 18060 */ 18061message Keystore2KeyCreationWithGeneralInfo { 18062 // Algorithm associated with the key. 18063 optional android.system.security.keystore2.Algorithm algorithm = 1; 18064 18065 // Size of the key in bits. Set to -1 if algorithm=EC. 18066 optional int32 key_size = 2; 18067 18068 // Mirror of 18069 // hardware/interfaces/security/keymint/aidl/android/hardware/security/keymint/EcCurve.aidl 18070 // except that an unspecified value with enum tag number 0 is added and the 18071 // enum tag numbers of all other values are incremented by 1. 18072 enum EcCurve { 18073 EC_CURVE_UNSPECIFIED = 0; 18074 P_224 = 1; 18075 P_256 = 2; 18076 P_384 = 3; 18077 P_521 = 4; 18078 CURVE_25519 = 5; 18079 }; 18080 // Elliptic curve (EC) used, if algorithm=EC. Otherwise, this is set to 18081 // EC_CURVE_UNSPECIFIED. 18082 optional EcCurve ec_curve = 3; 18083 18084 // Mirror of 18085 // hardware/interfaces/security/keymint/aidl/android/hardware/security/keymint/KeyOrigin.aidl 18086 // except that an unspecified value with enum tag number 0 is added and the 18087 // enum tag numbers of all other values are incremented by 1. 18088 enum KeyOrigin { 18089 ORIGIN_UNSPECIFIED = 0; 18090 GENERATED = 1; 18091 DERIVED = 2; 18092 IMPORTED = 3; 18093 RESERVED = 4; 18094 SECURELY_IMPORTED = 5; 18095 }; 18096 optional KeyOrigin key_origin = 4; 18097 18098 // Error code if key creation failed: 18099 // - Integers >1 indicate an error from Keystore (the error code is the 18100 // enum tag number from 18101 // system/hardware/interfaces/keystore2/aidl/android/system/keystore2/ResponseCode.aidl) 18102 // - Integers <=0 indicate an error from KeyMint (the error code is the 18103 // enum tag number from 18104 // hardware/interfaces/security/keymint/aidl/android/hardware/security/keymint/ErrorCode.aidl) 18105 // If key creation succeeded, this is set to 1. 18106 optional int32 error_code = 5; 18107 18108 // Indicates whether an attestation challenge was provided. 18109 optional bool attestation_requested = 6; 18110 18111 // Number of occurrences of a particular combination of all the other 18112 // fields in this proto message. 18113 optional int32 count = 7; 18114} 18115 18116/** 18117 * Logs a key creation, with information about the user authentication 18118 * constraints on the key's usage and the security level of the KeyMint 18119 * instance that created the key. 18120 * 18121 * Note that each key creation results in multiple atoms being emitted due 18122 * to the cardinality of the fields related to key creations that we are 18123 * interested in collecting. See the messages with names starting with 18124 * "Keystore2KeyCreation" for the others. 18125 * 18126 * Logged from: system/security/keystore2/metrics.rs 18127 */ 18128message Keystore2KeyCreationWithAuthInfo { 18129 // Mirror of 18130 // hardware/interfaces/security/keymint/aidl/android/hardware/security/keymint/HardwareAuthenticatorType.aidl 18131 // with some exceptions. See the metrics-specific variant of that AIDL enum in 18132 // system/security/keystore2/aidl/android/security/metrics/HardwareAuthenticatorType.aidl for 18133 // details. 18134 enum HardwareAuthenticatorType { 18135 AUTH_TYPE_UNSPECIFIED = 0; 18136 NONE = 1; 18137 PASSWORD = 2; 18138 FINGERPRINT = 3; 18139 PASSWORD_OR_FINGERPRINT = 4; 18140 ANY = 5; 18141 NO_AUTH_TYPE = 6; 18142 }; 18143 // How the user must authenticate themself (if at all) in order to use the 18144 // key. 18145 optional HardwareAuthenticatorType user_auth_type = 1; 18146 18147 // Base 10 logarithm of the user authentication timeout in seconds, or -1 18148 // if no timeout was specified. The logarithm is used to reduce the 18149 // cardinality. 18150 // The timeout is specified as an integral number of seconds during key 18151 // creation, so a value of 0 in this field indicates a timeout in the range 18152 // [0, 10), a value of 1 indicates a timeout in the range [10, 100), etc. A 18153 // timeout of 0 means that authentication is required each time the key is 18154 // used. 18155 optional int32 log_auth_timeout_seconds = 2; 18156 18157 // Security level of the KeyMint instance that created the key. 18158 optional android.system.security.keystore2.SecurityLevelEnum security_level = 3; 18159 18160 // Number of occurrences of a particular combination of all the other 18161 // fields in this proto message. 18162 optional int32 count = 4; 18163} 18164 18165/** 18166 * Logs a key creation, with information about the key's algorithm, purpose(s), 18167 * mode(s), and digest(s). 18168 * 18169 * Note that each key creation results in multiple atoms being emitted due 18170 * to the cardinality of the fields related to key creations that we are 18171 * interested in collecting. See the messages with names starting with 18172 * "Keystore2KeyCreation" for the others. 18173 * 18174 * Logged from: system/security/keystore2/metrics.rs 18175 */ 18176message Keystore2KeyCreationWithPurposeAndModesInfo { 18177 // Algorithm associated with the key. 18178 optional android.system.security.keystore2.Algorithm algorithm = 1; 18179 18180 // Bitmap of the key purpose(s) specified during key creation. 18181 // Bitmap composition is given by the KeyPurposeBitPosition enum defined in 18182 // system/security/keystore2/src/metrics_store.rs. 18183 optional int32 purpose_bitmap = 2; 18184 18185 // Bitmap of the padding mode(s) specified during key creation. 18186 // Bitmap composition is given by the PaddingModeBitPosition enum defined 18187 // in system/security/keystore2/src/metrics_store.rs. 18188 optional int32 padding_mode_bitmap = 3; 18189 18190 // Bitmap of the digest(s) specified during key creation. 18191 // Bitmap composition is given by the DigestBitPosition enum defined in 18192 // system/security/keystore2/src/metrics_store.rs. 18193 optional int32 digest_bitmap = 4; 18194 18195 // Bitmap of the block mode(s) specified during key creation. 18196 // Bitmap composition is given by the BlockModeBitPosition enum defined in 18197 // system/security/keystore2/src/metrics_store.rs. 18198 optional int32 block_mode_bitmap = 5; 18199 18200 // Number of occurrences of a particular combination of all the other 18201 // fields in this proto message. 18202 optional int32 count = 6; 18203} 18204 18205/** 18206 * Logs when an atom exceeds the maximum size for atoms stored in Keystore2's 18207 * in-memory store. 18208 * 18209 * The Keystore2 atoms are designed such that their expected cardinalities are 18210 * within statsd's limits. This atom is used to track cases where atoms stored 18211 * in Keystore2's in-memory store have a larger than expected cardinality and 18212 * exceed the maximum size per atom (defined by SINGLE_ATOM_STORE_MAX_SIZE in 18213 * system/security/keystore2/src/metrics_store.rs). This can happen if many 18214 * unexpected combinations of field values are emitted by devices in the field. 18215 * 18216 * Logged from: system/security/keystore2/metrics.rs 18217 */ 18218message Keystore2AtomWithOverflow { 18219 // Atom ID as defined in 18220 // system/security/keystore2/aidl/android/security/metrics/AtomID.aidl. 18221 optional int32 atom_id = 1; 18222 18223 // Number of occurrences of a particular combination of all the other 18224 // fields in this proto message. 18225 optional int32 count = 2; 18226} 18227 18228/** 18229 * Logs a key operation, with information about the purpose, mode(s), and 18230 * digest(s). 18231 * 18232 * Note that each key operation results in multiple atoms being emitted due 18233 * to the cardinality of the fields related to key operations that we are 18234 * interested in collecting. See the messages with names starting with 18235 * "Keystore2KeyOperation" for the others. 18236 * 18237 * Logged from: system/security/keystore2/metrics.rs 18238 */ 18239message Keystore2KeyOperationWithPurposeAndModesInfo { 18240 // Mirror of 18241 // hardware/interfaces/security/keymint/aidl/android/hardware/security/keymint/KeyPurpose.aidl 18242 // except that an unspecified value with enum tag number 0 is added and the 18243 // enum tag numbers of all other values are incremented by 1. 18244 enum KeyPurpose { 18245 KEY_PURPOSE_UNSPECIFIED = 0; 18246 ENCRYPT = 1; 18247 DECRYPT = 2; 18248 SIGN = 3; 18249 VERIFY = 4; 18250 // 5 is reserved 18251 WRAP_KEY = 6; 18252 AGREE_KEY = 7; 18253 ATTEST_KEY = 8; 18254 } 18255 // Purpose of the key operation. 18256 optional KeyPurpose purpose = 1; 18257 18258 // Bitmap of the padding mode(s) specified during the key operation's 18259 // lifecycle. 18260 // Bitmap composition is given by the PaddingModeBitPosition enum defined in 18261 // system/security/keystore2/src/metrics_store.rs. 18262 optional int32 padding_mode_bitmap = 2; 18263 18264 // Bitmap of the digest(s) specified during the key operation's lifecycle. 18265 // Bitmap composition is given by the DigestBitPosition enum defined in 18266 // system/security/keystore2/src/metrics_store.rs. 18267 optional int32 digest_bitmap = 3; 18268 18269 // Bitmap of the block mode(s) specified during the key operation's 18270 // lifecycle. 18271 // Bitmap composition is given by the BlockModeBitPosition enum defined in 18272 // system/security/keystore2/src/metrics_store.rs. 18273 optional int32 block_mode_bitmap = 4; 18274 18275 // Number of occurrences of a particular combination of all the other 18276 // fields in this proto message. 18277 optional int32 count = 5; 18278} 18279 18280/** 18281 * Logs a key operation, with information about the outcome, error code, 18282 * security level of the KeyMint instance performing the operation, and whether 18283 * the key is upgraded during the operation. 18284 * 18285 * Note that each key operation results in multiple atoms being emitted due 18286 * to the cardinality of the fields related to key operations that we are 18287 * interested in collecting. See the messages with names starting with 18288 * "Keystore2KeyOperation" for the others. 18289 * 18290 * Logged from: system/security/keystore2/metrics.rs 18291 */ 18292message Keystore2KeyOperationWithGeneralInfo { 18293 enum Outcome { 18294 OUTCOME_UNSPECIFIED = 0; 18295 DROPPED = 1; 18296 SUCCESS = 2; 18297 ABORT = 3; 18298 PRUNED = 4; 18299 ERROR = 5; 18300 } 18301 // Outcome of the key operation. 18302 optional Outcome outcome = 1; 18303 18304 // Error code if key creation failed: 18305 // - Integers >1 indicate an error from Keystore (the error code is the 18306 // enum tag number from 18307 // system/hardware/interfaces/keystore2/aidl/android/system/keystore2/ResponseCode.aidl) 18308 // - Integers <=0 indicate an error from KeyMint (the error code is the 18309 // enum tag number from 18310 // hardware/interfaces/security/keymint/aidl/android/hardware/security/keymint/ErrorCode.aidl) 18311 // If the key operation succeeded, this is set to 1. 18312 optional int32 error_code = 2; 18313 18314 // Indicates whether the key was upgraded during the operation. 18315 optional bool key_upgraded = 3; 18316 18317 // Security level of the KeyMint instance which performs the operation. 18318 optional android.system.security.keystore2.SecurityLevelEnum security_level = 4; 18319 18320 // Number of occurrences of a particular combination of all the other 18321 // fields in this proto message. 18322 optional int32 count = 5; 18323} 18324 18325/** 18326 * Logs Keystore2 storage statistics. 18327 * 18328 * Logged from: system/security/keystore2/src/metrics.rs 18329 */ 18330message Keystore2StorageStats { 18331 enum Storage { 18332 STORAGE_UNSPECIFIED = 0; 18333 KEY_ENTRY = 1; 18334 KEY_ENTRY_ID_INDEX = 2; 18335 KEY_ENTRY_DOMAIN_NAMESPACE_INDEX = 3; 18336 BLOB_ENTRY = 4; 18337 BLOB_ENTRY_KEY_ENTRY_ID_INDEX = 5; 18338 KEY_PARAMETER = 6; 18339 KEY_PARAMETER_KEY_ENTRY_ID_INDEX = 7; 18340 KEY_METADATA = 8; 18341 KEY_METADATA_KEY_ENTRY_ID_INDEX = 9; 18342 GRANT = 10; 18343 AUTH_TOKEN = 11; 18344 BLOB_METADATA = 12; 18345 BLOB_METADATA_BLOB_ENTRY_ID_INDEX = 13; 18346 METADATA = 14; 18347 DATABASE = 15; 18348 LEGACY_STORAGE = 16; 18349 } 18350 // Type of storage. 18351 optional Storage storage_type = 1; 18352 18353 // Storage size, in bytes. 18354 optional int64 size = 2; 18355 18356 // Unused space, in bytes. The total storage size may be larger, indicating 18357 // inefficiencies in the packing of data in the database. 18358 optional int64 unused_size = 3; 18359} 18360 18361/** 18362 * Logs Remote Key Provisioning (RKP) related error events. 18363 * Logged from: system/security/keystore2 18364 */ 18365message RkpErrorStats { 18366 18367 enum RkpError { 18368 RKP_ERROR_UNSPECIFIED = 0; 18369 // The key pool is out of keys. 18370 OUT_OF_KEYS = 1; 18371 // Falling back to factory provisioned keys during hybrid mode. 18372 FALL_BACK_DURING_HYBRID = 2; 18373 } 18374 // Type of the error event 18375 optional RkpError rkp_error = 1; 18376 18377 // Count of a particular error occurred. 18378 optional int32 count = 2; 18379 18380 /** 18381 * Security level of the IRemotelyProvisionedComponent. 18382 */ 18383 optional android.system.security.keystore2.SecurityLevelEnum security_level = 3; 18384} 18385 18386 18387/** 18388 * Deprecated in U. Use RkpdPoolStats instead. 18389 * 18390 * Logs: Status of the attestation key pool related to 18391 * Remote Key Provisioning (RKP). 18392 * Logged from: system/security/keystore2 18393 */ 18394message RkpPoolStats { 18395 /** 18396 * Security level of the Keymint instance associated with the 18397 * attestation pool status. 18398 */ 18399 optional android.system.security.keystore2.SecurityLevelEnum security_level = 1; 18400 18401 /** 18402 * The number of signed attestation certificate chains which are 18403 * expired. 18404 */ 18405 optional int32 expiring = 2; 18406 18407 /** 18408 * The number of signed attestation certificate chains which have 18409 * not yet been assigned to an app. 18410 */ 18411 optional int32 unassigned = 3; 18412 18413 /** 18414 * The number of signed attestation keys. 18415 */ 18416 optional int32 attested = 4; 18417 18418 /** 18419 * The total number of attestation keys. 18420 */ 18421 optional int32 total = 5; 18422} 18423 18424/** 18425 * Logs: Number of keystore2 crashes per-boot cycle. 18426 * Logged from: system/security/keystore2 18427 */ 18428message Keystore2CrashStats { 18429 optional int32 count_of_crash_events = 1; 18430} 18431 18432// Blob Committer stats 18433// Keep in sync between: 18434// frameworks/proto_logging/stats/enums/server/blobstoremanagerservice.proto 18435// frameworks/base/cmds/statsd/src/atoms.proto 18436message BlobCommitterProto { 18437 // Committer app's uid 18438 optional int32 uid = 1 [(is_uid) = true]; 18439 18440 // Unix epoch timestamp of the commit in milliseconds 18441 optional int64 commit_timestamp_millis = 2; 18442 18443 // Flags of what access types the committer has set for the Blob 18444 optional int32 access_mode = 3; 18445 18446 // Number of packages that have been whitelisted for ACCESS_TYPE_WHITELIST 18447 optional int32 num_whitelisted_package = 4; 18448} 18449 18450// Blob Leasee stats 18451// Keep in sync between: 18452// frameworks/proto_logging/stats/enums/server/blobstoremanagerservice.proto 18453// frameworks/base/cmds/statsd/src/atoms.proto 18454message BlobLeaseeProto { 18455 // Leasee app's uid 18456 optional int32 uid = 1 [(is_uid) = true]; 18457 18458 // Unix epoch timestamp for lease expiration in milliseconds 18459 optional int64 lease_expiry_timestamp_millis = 2; 18460} 18461 18462// List of Blob Committers 18463// Keep in sync between: 18464// frameworks/proto_logging/stats/enums/server/blobstoremanagerservice.proto 18465// frameworks/base/cmds/statsd/src/atoms.proto 18466message BlobCommitterListProto { 18467 repeated BlobCommitterProto committer = 1; 18468} 18469 18470// List of Blob Leasees 18471// Keep in sync between: 18472// frameworks/proto_logging/stats/enums/server/blobstoremanagerservice.proto 18473// frameworks/base/cmds/statsd/src/atoms.proto 18474message BlobLeaseeListProto { 18475 repeated BlobLeaseeProto leasee = 1; 18476} 18477 18478/** 18479 * Logs the current state of a Blob committed with BlobStoreManager 18480 * 18481 * Pulled from: 18482 * frameworks/base/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java 18483 */ 18484message BlobInfo { 18485 // Id of the Blob 18486 optional int64 blob_id = 1; 18487 18488 // Size of the Blob data 18489 optional int64 size = 2; 18490 18491 // Unix epoch timestamp of the Blob's expiration in milliseconds 18492 optional int64 expiry_timestamp_millis = 3; 18493 18494 // List of committers of this Blob 18495 optional BlobCommitterListProto committers = 4 [(log_mode) = MODE_BYTES]; 18496 18497 // List of leasees of this Blob 18498 optional BlobLeaseeListProto leasees = 5 [(log_mode) = MODE_BYTES]; 18499} 18500 18501/** 18502 * Logs when the HDMI CEC active source changes. 18503 * 18504 * Logged from: 18505 * frameworks/base/services/core/java/com/android/server/hdmi/HdmiCecAtomWriter.java 18506 */ 18507message HdmiCecActiveSourceChanged { 18508 // The logical address of the active source. 18509 optional android.stats.hdmi.LogicalAddress active_source_logical_address = 1; 18510 18511 // The physical address of the active source. Consists of four hexadecimal nibbles. 18512 // Examples: 0x1234, 0x0000 (root device). 0xFFFF represents an unknown or invalid address. 18513 // See section 8.7 in the HDMI 1.4b spec for details. 18514 optional int32 active_source_physical_address = 2; 18515 18516 // The relationship between this device and the active source. 18517 optional android.stats.hdmi.PathRelationship local_relationship = 3; 18518} 18519 18520/** 18521 * Logs when an HDMI CEC message is sent or received. 18522 * 18523 * Logged from: 18524 * frameworks/base/services/core/java/com/android/server/hdmi/HdmiCecAtomWriter.java 18525 */ 18526message HdmiCecMessageReported { 18527 // The calling uid of the application that caused this atom to be written. 18528 optional int32 uid = 1 [(is_uid) = true]; 18529 18530 // Whether a HDMI CEC message is sent from this device, to this device, or neither. 18531 optional android.stats.hdmi.MessageDirection direction = 2; 18532 18533 // The HDMI CEC logical address of the initiator. 18534 optional android.stats.hdmi.LogicalAddress initiator_logical_address = 3; 18535 18536 // The HDMI CEC logical address of the destination. 18537 optional android.stats.hdmi.LogicalAddress destination_logical_address = 4; 18538 18539 // The opcode of the message. Ranges from 0x00 to 0xFF. 18540 // For all values, see section "CEC 15 Message Descriptions" in the HDMI CEC 1.4b spec. 18541 optional int32 opcode = 5; 18542 18543 // The result of attempting to send the message on its final retransmission attempt. 18544 // Only applicable to outgoing messages; set to SEND_MESSAGE_RESULT_UNKNOWN otherwise. 18545 optional android.stats.hdmi.SendMessageResult send_message_result = 6; 18546 18547 // Fields specific to <User Control Pressed> messages 18548 18549 // The user control command that was received. 18550 optional android.stats.hdmi.UserControlPressedCommand user_control_pressed_command = 7; 18551 18552 // Fields specific to <Feature Abort> messages 18553 18554 // The opcode of the message that was feature aborted. 18555 // Set to 0x100 when unknown or not applicable. 18556 optional int32 feature_abort_opcode = 8; 18557 18558 // The reason for the feature abort. 18559 optional android.stats.hdmi.FeatureAbortReason feature_abort_reason = 9; 18560 18561 // The physical address in <Report Physical Address> messages. Consists of 18562 // four hexadecimal nibbles. Examples: 0x1234, 0x0000 (root device). 0xFFFF 18563 // represents an unknown or invalid address. 18564 // 18565 // Physical address is assigned to each device through a discovery process. 18566 // It indicates the connection hierarchy, for example, 1:2:0:0 is under 18567 // 1:0:0:0, which is under 0:0:0:0. 18568 // 18569 // See section 8.7 in the HDMI 1.4b spec for details. 18570 optional int32 physical_address = 10; 18571} 18572 18573/** 18574 * Logs when an auto rotate event occurs while smart auto rotate is enabled. 18575 */ 18576message AutoRotateReported { 18577 enum Orientation { 18578 UNKNOWN = 0; 18579 DEPRECATED = 1; 18580 ROTATION_0 = 2; 18581 ROTATION_90 = 3; 18582 ROTATION_180 = 4; 18583 ROTATION_270 = 5; 18584 DISABLED = 6; 18585 UNAVAILABLE = 7; 18586 FAILURE = 8; 18587 } 18588 18589 // Orientation of the device when a rotation was detected. 18590 optional Orientation current_orientation = 1; 18591 // The orientation of the phone after rotation before going through the recommendation service. 18592 optional Orientation proposed_orientation = 2; 18593 // Orientation recommended by the smart autorotate service component outside of the platform. It 18594 // may or may not match the proposed_orientation. Can be disabled or unavailable if the 18595 // recommendation service is disabled or unavailable. Will be unknown if the service failed. 18596 optional Orientation recommended_orientation = 3; 18597 // Time taken to calculate the rotation recommendation. 18598 optional int64 recommendation_process_duration_millis = 4; 18599} 18600 18601/** 18602 * Logs when sensors only autorotate is triggered. Associated event can be a rotation preindication, 18603 * actual event or a "data ready to be pulled" indication. More info: go/autorotate-logging. 18604 * 18605 * Logged from: 18606 * platform/vendor/unbundled_google/packages/SystemUIGoogle/src/com/google/android/systemui/autorotate/DataLogger.java 18607 */ 18608 18609message DeviceRotated { 18610 // Timestamp of the event in millis. We log the timestamp explicitly since 18611 // data logging will follow the event logging and all these 18612 // will be joined with other logs such as rotation button clicked. 18613 optional int64 timestamp_millis = 1; 18614 // Device orientation 18615 optional android.stats.wm.Orientation proposed_orientation = 2; 18616 18617 enum RotationEventType{ 18618 UNKNOWN = 0; 18619 // An early indication of device might be rotated. 18620 PREINDICATION = 1; 18621 // Device rotation is detected. 18622 ACTUAL_EVENT = 2; 18623 // Device rotated and the data associated with it is ready to be pulled. 18624 // This happens after the ACTUAL_EVENT since some data after the event is 18625 // also useful. 18626 DATA_READY = 3; 18627 } 18628 optional RotationEventType rotation_event_type = 3; 18629} 18630 18631/** 18632 * Records the raw sensor data published by the device orientation debug sensor. The pull will be 18633 * configured to be conditioned on the {@code DeviceRotated} atom. 18634 * 18635 * Logged from: 18636 * platform/vendor/unbundled_google/packages/SystemUIGoogle/src/com/google/android/systemui/autorotate/DataLogger.java 18637 */ 18638message DeviceRotatedData { 18639 // All the sensor data and timestamps used to calculate the orientation 18640 optional DeviceRotatedSensorData snapshot = 1 [(log_mode) = MODE_BYTES]; 18641 // Resulting orientation 18642 optional android.stats.wm.Orientation proposed_orientation = 2; 18643} 18644 18645message DeviceRotatedSensorData { 18646 optional DeviceRotatedSensorHeader header = 1 [(log_mode) = MODE_BYTES]; 18647 repeated DeviceRotatedSensorSample sample = 2 [(log_mode) = MODE_BYTES]; 18648} 18649 18650message DeviceRotatedSensorHeader { 18651 optional int64 timestamp_base_millis = 1; 18652} 18653 18654message DeviceRotatedSensorSample{ 18655 optional int32 timestamp_offset_millis = 1; 18656 enum SensorType { 18657 UNKNOWN = 0; 18658 ACCEL = 1; 18659 GYRO = 2; 18660 } 18661 optional SensorType sensor_type = 2; 18662 optional float x_value = 3; 18663 optional float y_value = 4; 18664 optional float z_value = 5; 18665} 18666 18667/** 18668 * Pushes TLS handshake counters from Conscrypt. 18669 * Pulled from: 18670 * external/conscrypt/common/src/main/java/org/conscrypt/ConscryptEngineSocket.java 18671 * external/conscrypt/common/src/main/java/org/conscrypt/ConscryptFileDescriptorSocket.java 18672 */ 18673message TlsHandshakeReported { 18674 optional bool success = 1; 18675 18676 optional android.stats.tls.Protocol protocol = 2; 18677 18678 optional android.stats.tls.CipherSuite cipher_suite = 3; 18679 18680 optional int32 handshake_duration_millis = 4; 18681 18682 optional android.stats.tls.Source source = 5; 18683 18684 repeated int32 uid = 6 [(is_uid) = true]; 18685} 18686 18687/** 18688 * Logs when a TextClassifier API is invoked. 18689 * 18690 * See frameworks/base/core/java/android/view/textclassifier/TextClassifier.java 18691 * Logged from: external/libtextclassifier/java/ 18692 */ 18693message TextClassifierApiUsageReported { 18694 enum ApiType { 18695 UNKNOWN_API = 0; 18696 SUGGEST_SELECTION = 1; 18697 CLASSIFY_TEXT = 2; 18698 GENERATE_LINKS = 3; 18699 DETECT_LANGUAGES = 4; 18700 SUGGEST_CONVERSATION_ACTIONS = 5; 18701 } 18702 optional ApiType api_type = 1; 18703 18704 enum ResultType { 18705 UNKNOWN_RESULT = 0; 18706 SUCCESS = 1; 18707 FAIL = 2; 18708 } 18709 optional ResultType result_type = 2; 18710 optional int64 latency_millis = 3; 18711 optional string session_id = 4; 18712} 18713 18714/** 18715 * Logs when TextClassifier Model Downloader finishes a download task. 18716 * 18717 * Currently we create a downlaod task for each new manifest to download. 18718 * 18719 * Logged from: external/libtextclassifier/java/ 18720 */ 18721message TextClassifierDownloadReported { 18722 // The model type to download 18723 enum ModelType { 18724 UNKNOWN_MODEL_TYPE = 0; 18725 ANNOTATOR = 1; 18726 LANG_ID = 2; 18727 ACTIONS_SUGGESTIONS = 3; 18728 } 18729 optional ModelType model_type = 1; 18730 // The file type to download 18731 enum FileType { 18732 UNKNOWN_FILE_TYPE = 0; 18733 MANIFEST = 1; 18734 MODEL = 2; 18735 } 18736 // Deprecated: now manifest and model files are downloaded together. 18737 optional FileType file_type = 2; 18738 // The status of the download 18739 enum DownloadStatus { 18740 UNKNOWN_STATUS = 0; 18741 SCHEDULED = 1; 18742 SUCCEEDED = 2; 18743 FAILED_AND_RETRY = 3; 18744 FAILED_AND_ABORT = 4; 18745 } 18746 optional DownloadStatus download_status = 3; 18747 // The public GStatic url we used to download the model. Contains locale info. 18748 optional string url_suffix = 4; 18749 // Failure reason, only set if this is for a failure status 18750 enum FailureReason { 18751 reserved 1, 8, 9; 18752 18753 UNKNOWN_FAILURE_REASON = 0; 18754 FAILED_TO_DOWNLOAD_SERVICE_CONN_BROKEN = 2; 18755 FAILED_TO_DOWNLOAD_404_ERROR = 3; 18756 FAILED_TO_DOWNLOAD_OTHER = 4; 18757 DOWNLOADED_FILE_MISSING = 5; 18758 FAILED_TO_PARSE_MANIFEST = 6; 18759 FAILED_TO_VALIDATE_MODEL = 7; 18760 } 18761 optional FailureReason failure_reason = 5; 18762 // How many attempts we have tried for the same task at a terminal status (i.e. SUCCEEDED or 18763 // FAILED_AND_ABORT). 18764 optional int32 run_attempt_count = 6; 18765 18766 // Custom failure code for downloader lib internal failures (E.g. 404 error). 18767 optional int32 downloader_lib_failure_code = 7; 18768 18769 // Time elapsed for the whole download task 18770 optional int64 download_duration_millis = 8; 18771 18772 // The id of the WorkManager work that launched this download. 18773 optional int64 work_id = 9; 18774} 18775 18776/** 18777 * Logs when TextClassifier Model Downloader schedules a WorkManager work. 18778 * 18779 * Logged from: external/libtextclassifier/java/ 18780 */ 18781message TextClassifierDownloadWorkScheduled { 18782 optional int64 work_id = 1; 18783 18784 enum ReasonToSchedule { 18785 UNKNOWN_REASON_TO_SCHEDULE = 0; 18786 TCS_STARTED = 1; 18787 LOCALE_SETTINGS_CHANGED = 2; 18788 DEVICE_CONFIG_UPDATED = 3; 18789 } 18790 optional ReasonToSchedule reason_to_schedule = 2; 18791 18792 optional bool failed_to_schedule = 3; 18793} 18794 18795/** 18796 * Logs when TextClassifier Model Downloader finishes a WorkManager work. 18797 * 18798 * A WorkManager work includes one or more downlad tasks. We log this atom when 18799 * all tasks finished. The work_id can be used to join work log and task logs. 18800 * 18801 * Logged from: external/libtextclassifier/java/ 18802 */ 18803message TextClassifierDownloadWorkCompleted { 18804 optional int64 work_id = 1; 18805 18806 enum WorkResult { 18807 UNKNOWN_WORK_RESULT = 0; 18808 SUCCESS_MODEL_DOWNLOADED = 1; 18809 SUCCESS_NO_UPDATE_AVAILABLE = 2; 18810 FAILURE_MODEL_DOWNLOADER_DISABLED = 3; 18811 FAILURE_MAX_RUN_ATTEMPT_REACHED = 4; 18812 RETRY_MODEL_DOWNLOAD_FAILED = 5; 18813 RETRY_RUNTIME_EXCEPTION = 6; 18814 RETRY_STOPPED_BY_OS = 7; 18815 } 18816 optional WorkResult work_result = 2; 18817 18818 // How many attempts we have tried for this work. 18819 optional int32 run_attempt_count = 3; 18820 18821 optional int64 work_scheduled_to_started_duration_millis = 4; 18822 optional int64 work_started_to_ended_duration_millis = 5; 18823} 18824 18825/** 18826 * Logs telemetry for Android Virtualization framework 18827 * 18828 * On CreateVM requests, an atom is pushed that records what hypervisor is being used. 18829 * the protected status of the new VM, and if the VM creation succeeded 18830 * Logged from: packages/modules/Virtualization/ 18831 */ 18832message VmCreationRequested { 18833 enum Hypervisor { 18834 UNKNOWN = 0; 18835 PKVM = 1; 18836 OTHER = 2; 18837 } 18838 18839 enum ConfigType { 18840 UNKNOWN_CONFIG = 0; 18841 VIRTUAL_MACHINE_APP_CONFIG = 1; 18842 VIRTUAL_MACHINE_RAW_CONFIG = 2; 18843 } 18844 18845 optional Hypervisor hypervisor = 1; 18846 // Is the VM started in protected mode? 18847 optional bool is_protected = 2; 18848 // Did the VM creation succeed 18849 optional bool creation_succeeded = 3; 18850 // Binder exception Code thrown by createVm request 18851 optional int32 binder_exception_code = 4; 18852 18853 optional int32 uid = 5 [(is_uid) = true]; 18854 optional string vm_identifier = 6; 18855 18856 optional ConfigType config_type = 7; 18857 optional int32 num_cpus = 8; 18858 optional string cpu_affinity = 9 [deprecated = true]; 18859 optional int32 memory_mib = 10; 18860 optional string apexes = 11; 18861 18862 // TODO(seungjaeyoo) Fill information about task_profile 18863 // TODO(seungjaeyoo) Fill information about disk_image for raw config 18864 18865} 18866 18867/** 18868 * Logs telemetry for Android Virtualization framework 18869 * 18870 * When VM is booted successfully, an atom is pushed that records information about VM. 18871 * Logged from: packages/modules/Virtualization/ 18872 */ 18873message VmBooted { 18874 optional int32 uid = 1 [(is_uid) = true]; 18875 optional string vm_identifier = 2; 18876 // Elapsed time between start and boot completion of a VM 18877 optional int64 elapsed_time_millis = 3; 18878} 18879 18880/** 18881 * Logs telemetry for Android Virtualization framework 18882 * 18883 * When VM is exited, an atom is pushed that records information about VM. 18884 * Logged from: packages/modules/Virtualization/ 18885 */ 18886message VmExited { 18887 enum DeathReason { 18888 UNKNOWN = 0; 18889 INFRASTRUCTURE_ERROR = 1; 18890 KILLED = 2; 18891 SHUTDOWN = 3; 18892 ERROR = 4; 18893 REBOOT = 5; 18894 CRASH = 6; 18895 PVM_FIRMWARE_PUBLIC_KEY_MISMATCH = 7; 18896 PVM_FIRMWARE_INSTANCE_IMAGE_CHANGED = 8; 18897 BOOTLOADER_PUBLIC_KEY_MISMATCH = 9; 18898 BOOTLOADER_INSTANCE_IMAGE_CHANGED = 10; 18899 MICRODROID_FAILED_TO_CONNECT_TO_VIRTUALIZATION_SERVICE = 11; 18900 MICRODROID_PAYLOAD_HAS_CHANGED = 12; 18901 MICRODROID_PAYLOAD_VERIFICATION_FAILED = 13; 18902 MICRODROID_INVALID_PAYLOAD_CONFIG = 14; 18903 MICRODROID_UNKNOWN_RUNTIME_ERROR = 15; 18904 HANGUP = 16; 18905 } 18906 optional int32 uid = 1 [(is_uid) = true]; 18907 optional string vm_identifier = 2; 18908 18909 optional DeathReason death_reason = 3; 18910 // Exit signal when VM was KILLED 18911 optional int32 exit_signal = 8; 18912 18913 // Elapsed time between start and termination of a VM 18914 optional int64 elapsed_time_millis = 4; 18915 18916 // Guest time for CPU usage 18917 optional int64 guest_time_millis = 5; 18918 18919 // RSS for memory usage 18920 optional int64 rss_vm_kb = 6; 18921 optional int64 rss_crosvm_kb = 7; 18922} 18923 18924/** 18925 * (Deprecated) 18926 * Logs telemetry for Android Virtualization framework 18927 * 18928 * For every second while VM is running, an atom is pushed that records CPU time information of VM. 18929 * Logged from: packages/modules/Virtualization/ 18930 */ 18931message VmCpuStatusReported { 18932 option deprecated = true; 18933 18934 optional int32 uid = 1 [(is_uid) = true]; 18935 optional string vm_identifier = 2; 18936 18937 optional int64 cpu_time_user_millis = 3; 18938 optional int64 cpu_time_nice_millis = 4; 18939 optional int64 cpu_time_sys_millis = 5; 18940 optional int64 cpu_time_idle_millis = 6; 18941} 18942 18943/** 18944 * (Deprecated) 18945 * Logs telemetry for Android Virtualization framework 18946 * 18947 * For every second while VM is running, an atom is pushed that records memory information of VM. 18948 * Logged from: packages/modules/Virtualization/ 18949 */ 18950message VmMemStatusReported { 18951 option deprecated = true; 18952 18953 optional int32 uid = 1 [(is_uid) = true]; 18954 optional string vm_identifier = 2; 18955 18956 optional int64 mem_total_kb = 3; 18957 optional int64 mem_free_kb = 4; 18958 optional int64 mem_available_kb = 5; 18959 optional int64 mem_buffer_kb = 6; 18960 optional int64 mem_cached_kb = 7; 18961} 18962 18963/** 18964 * Logs telemetry for Early boot CompOsArtifacts checks (done by odsign) 18965 * 18966 * odsign is a binary that runs during early boot. One of its responsibility is 18967 * to check if the device can use compOS and check if so, validate the compos 18968 * generated artifacts. An atom is pushed on each such check. Note: We only 18969 * push an atom from devices/configurations that can use compOs. 18970 */ 18971message EarlyBootCompOsArtifactsCheckReported { 18972 // Are the current Artifacts okay (This check is done by odrefresh). 18973 // (current_artifacts_ok == true) => compilationRequired is false 18974 optional bool current_artifacts_ok = 1; 18975 // Has CompOs generated any Artifacts 18976 optional bool comp_os_pending_artifacts_exists = 2; 18977 // The device will be using CompOs generated artifacts. Note: the value of 18978 // this is meaningless if current_artifacts_ok = true 18979 optional bool use_comp_os_generated_artifacts = 3; 18980} 18981 18982/** 18983 * Logs telemetry when Isolation compilation job is scheduled. 18984 * 18985 * The atoms are sent by IsolatedCompilationService (fragment of system_server) 18986 * when apex are staged and need compilation. 18987 */ 18988message IsolatedCompilationScheduled { 18989 enum Result { 18990 SCHEDULING_RESULT_UNKNOWN = 0; 18991 SCHEDULING_FAILURE = 1; 18992 SCHEDULING_SUCCESS = 2; 18993 } 18994 optional Result scheduling_result = 1; 18995} 18996 18997/** 18998 * Logs telemetry Isolation compilation completion. 18999 * 19000 * The atoms is sent by IsolatedCompilationService by compilation ends 19001 * and contain results/timings of compilation 19002 */ 19003message IsolatedCompilationEnded { 19004 enum Result { 19005 RESULT_UNKNOWN = 0; 19006 RESULT_SUCCESS = 1; 19007 RESULT_UNKNOWN_FAILURE = 2; 19008 RESULT_FAILED_TO_START = 3; 19009 RESULT_JOB_CANCELED = 4; 19010 RESULT_COMPILATION_FAILED = 5; 19011 RESULT_UNEXPECTED_COMPILATION_RESULT = 6; 19012 RESULT_COMPOSD_DIED = 7; 19013 RESULT_FAILED_TO_ENABLE_FSVERITY = 8; 19014 } 19015 // Time between compilation job starts to when it ends. 19016 // Note: this does not include the time between compilation job being scheduled (or when apex is staged) 19017 // and it actually starting 19018 optional int64 compilation_time_millis = 1; 19019 // Result of compilation 19020 optional Result compilation_result = 2; 19021 // In case the job scheduler cancels the job, this will be the reason code 19022 // Codes are used from https://source.corp.google.com/android/frameworks/base/apex/jobscheduler/framework/java/android/app/job/JobParameters.java 19023 // Note: this field only makes sense when compilation_result = RESULT_JOB_CANCELED 19024 optional int32 compilation_job_stop_reason = 3; 19025} 19026 19027/** 19028 * Logs the current state of an application/process before it is killed. 19029 * 19030 * Keep in sync with proto file at 19031 * packages/services/Car/service/src/com/android/car/watchdog/proto/atoms.proto 19032 * frameworks/opt/car/services/builtInServices/proto/src/atoms.proto 19033 * 19034 * Pushed from: 19035 * packages/services/Car/service/src/com/android/car/watchdog/WatchdogPerfHandler.java 19036 * frameworks/opt/car/services/builtInServices/src/com/android/internal/car/CarServiceHelperService.java 19037 */ 19038message CarWatchdogKillStatsReported { 19039 // Linux process uid for the package. 19040 optional int32 uid = 1 [(is_uid) = true]; 19041 19042 // State of the uid when it was killed. 19043 enum UidState { 19044 UNKNOWN_UID_STATE = 0; 19045 BACKGROUND_MODE = 1; 19046 FOREGROUND_MODE = 2; 19047 } 19048 optional UidState uid_state = 2; 19049 19050 // System state indicating whether the system was in normal mode or garage mode. 19051 enum SystemState { 19052 UNKNOWN_SYSTEM_STATE = 0; 19053 USER_INTERACTION_MODE = 1; 19054 USER_NO_INTERACTION_MODE = 2; 19055 GARAGE_MODE = 3; 19056 } 19057 optional SystemState system_state = 3; 19058 19059 // Reason for killing the application. 19060 // Keep in sync with proto file at packages/services/Car/cpp/watchdog/proto 19061 enum KillReason { 19062 UNKNOWN_KILL_REASON = 0; 19063 KILLED_ON_ANR = 1; 19064 KILLED_ON_IO_OVERUSE = 2; 19065 KILLED_ON_MEMORY_OVERUSE = 3; 19066 } 19067 optional KillReason kill_reason = 4; 19068 19069 // Stats of the processes owned by the application when the application was killed. 19070 // The process stack traces are not collected when the application was killed due to IO_OVERUSE. 19071 optional CarWatchdogProcessStats process_stats = 5 [(log_mode) = MODE_BYTES]; 19072 19073 // The application's I/O overuse stats logged only when the kill reason is KILLED_ON_IO_OVERUSE. 19074 optional CarWatchdogIoOveruseStats io_overuse_stats = 6 [(log_mode) = MODE_BYTES]; 19075} 19076 19077/** 19078 * Logs the I/O overuse stats for an application on detecting I/O overuse. 19079 * 19080 * Keep in sync with proto file at 19081 * packages/services/Car/service/src/com/android/car/watchdog/proto/atoms.proto 19082 * 19083 * Pushed from: 19084 * packages/services/Car/service/src/com/android/car/watchdog/WatchdogPerfHandler.java 19085 */ 19086message CarWatchdogIoOveruseStatsReported { 19087 // Linux process uid for the package. 19088 optional int32 uid = 1 [(is_uid) = true]; 19089 19090 // The application's I/O overuse stats. 19091 optional CarWatchdogIoOveruseStats io_overuse_stats = 2 [(log_mode) = MODE_BYTES]; 19092} 19093 19094/** 19095 * Logs I/O overuse stats for a package. 19096 * 19097 * Keep in sync with proto file at 19098 * packages/services/Car/service/src/com/android/car/watchdog/proto/atoms.proto 19099 * 19100 * Logged from: 19101 * packages/services/Car/service/src/com/android/car/watchdog/WatchdogPerfHandler.java 19102 */ 19103message CarWatchdogIoOveruseStats { 19104 enum Period { 19105 UNKNOWN_PERIOD = 0; 19106 DAILY = 1; 19107 WEEKLY = 2; 19108 } 19109 19110 // Threshold and usage stats period. 19111 optional Period period = 1; 19112 19113 // Threshold in-terms of write bytes defined for the package. 19114 optional CarWatchdogPerStateBytes threshold = 2; 19115 19116 // Number of write bytes in each state for the specified period. 19117 optional CarWatchdogPerStateBytes written_bytes = 3; 19118 19119 // Application or service uptime during the aforementioned period. 19120 optional uint64 uptime_millis = 4; 19121}; 19122 19123/** 19124 * Logs bytes attributed to each application and system states. 19125 * 19126 * Keep in sync with proto file at 19127 * packages/services/Car/service/src/com/android/car/watchdog/proto/atoms.proto 19128 * 19129 * Logged from: 19130 * packages/services/Car/service/src/com/android/car/watchdog/WatchdogPerfHandler.java 19131 */ 19132message CarWatchdogPerStateBytes { 19133 // Number of bytes attributed to the application foreground. 19134 optional int64 foreground_bytes = 1; 19135 19136 // Number of bytes attributed to the application background. 19137 optional int64 background_bytes = 2; 19138 19139 // Number of bytes attributed to the garage mode. 19140 optional int64 garage_mode_bytes = 3; 19141} 19142 19143/** 19144 * Logs each CarWatchdogProcessStat in CarWatchdogProcessStats. 19145 * 19146 * Keep in sync with proto file at 19147 * packages/services/Car/service/src/com/android/car/watchdog/proto/atoms.proto 19148 * 19149 * Logged from: 19150 * packages/services/Car/service/src/com/android/car/watchdog/WatchdogPerfHandler.java 19151 */ 19152message CarWatchdogProcessStats { 19153 // Records the stats of the processes owned by an application. 19154 repeated CarWatchdogProcessStat process_stat = 1; 19155} 19156 19157/** 19158 * Logs a process's stats. 19159 * 19160 * Keep in sync with proto file at 19161 * packages/services/Car/service/src/com/android/car/watchdog/proto/atoms.proto 19162 * 19163 * Logged from: 19164 * packages/services/Car/service/src/com/android/car/watchdog/WatchdogPerfHandler.java 19165 */ 19166message CarWatchdogProcessStat { 19167 // Command name of the process. 19168 optional string process_name = 1; 19169 19170 // Process uptime. 19171 optional uint64 uptime_millis = 2; 19172 19173 // Number of major page faults caused by the process and its children. 19174 optional uint64 major_page_faults = 3; 19175 19176 // Peak virtual memory size in kb. 19177 optional uint64 vm_peak_kb = 4; 19178 19179 // Virtual memory size in kb. 19180 optional uint64 vm_size_kb = 5; 19181 19182 // Peak resident set size (high water mark) in kb. 19183 optional uint64 vm_hwm_kb = 6; 19184 19185 // Resident set size in kb. 19186 optional uint64 vm_rss_kb = 7; 19187} 19188 19189/** 19190 * Logs total I/O usage summary for all applications and services running in the system. 19191 * 19192 * Keep in sync with proto file at 19193 * packages/services/Car/service/src/com/android/car/watchdog/proto/atoms.proto 19194 * 19195 * Pulled from: 19196 * packages/services/Car/service/src/com/android/car/watchdog/WatchdogPerfHandler.java 19197 */ 19198message CarWatchdogSystemIoUsageSummary { 19199 // I/O usage summary for the system. 19200 optional CarWatchdogIoUsageSummary io_usage_summary = 1 [(log_mode) = MODE_BYTES]; 19201 19202 // Start time of the event in milliseconds since epoch. 19203 // Note: This field must be a top-level field as it is used to slice the metrics. 19204 optional int64 start_time_millis = 2; 19205} 19206 19207/** 19208 * Logs I/O usage summary for an UID. 19209 * 19210 * Keep in sync with proto file at 19211 * packages/services/Car/service/src/com/android/car/watchdog/proto/atoms.proto 19212 * 19213 * Pulled from: 19214 * packages/services/Car/service/src/com/android/car/watchdog/WatchdogPerfHandler.java 19215 */ 19216message CarWatchdogUidIoUsageSummary { 19217 // UID of the application/service whose usage summary are recorded. 19218 optional int32 uid = 1 [(is_uid) = true]; 19219 19220 // I/O usage summary for the UID. 19221 optional CarWatchdogIoUsageSummary io_usage_summary = 2 [(log_mode) = MODE_BYTES]; 19222 19223 // Start time of the event in milliseconds since epoch. 19224 // Note: This field must be a top-level field as it is used to slice the metrics. 19225 optional int64 start_time_millis = 3; 19226} 19227 19228/** 19229 * Logs I/O usage summary for a time period. 19230 * 19231 * Keep in sync with proto file at 19232 * packages/services/Car/service/src/com/android/car/watchdog/proto/atoms.proto 19233 * 19234 * Pulled from: 19235 * packages/services/Car/service/src/com/android/car/watchdog/WatchdogPerfHandler.java 19236 */ 19237message CarWatchdogIoUsageSummary { 19238 // Summary event time period. 19239 optional CarWatchdogEventTimePeriod event_time_period = 1; 19240 19241 // Daily I/O usage summary for the period. Logs summary entries only for days with I/O usage. 19242 // The entries are ordered beginning from the event_time_period.start_time_millis. 19243 repeated CarWatchdogDailyIoUsageSummary daily_io_usage_summary = 2; 19244} 19245 19246/** 19247 * Logs a car watchdog event's time period. 19248 * 19249 * Keep in sync with proto file at 19250 * packages/services/Car/service/src/com/android/car/watchdog/proto/atoms.proto 19251 * 19252 * Pulled from: 19253 * packages/services/Car/service/src/com/android/car/watchdog/WatchdogPerfHandler.java 19254 */ 19255message CarWatchdogEventTimePeriod { 19256 enum Period { 19257 UNKNOWN_PERIOD = 0; 19258 WEEKLY = 1; 19259 BIWEEKLY = 2; 19260 MONTHLY = 3; 19261 } 19262 19263 // Deprecated field - Start time of the event in milliseconds since epoch. 19264 optional uint64 start_time_millis = 1 [deprecated = true]; 19265 19266 // Period for the event. 19267 optional Period period = 2; 19268} 19269 19270/** 19271 * Logs daily I/O usage summary. 19272 * 19273 * Keep in sync with proto file at 19274 * packages/services/Car/service/src/com/android/car/watchdog/proto/atoms.proto 19275 * 19276 * Pulled from: 19277 * packages/services/Car/service/src/com/android/car/watchdog/WatchdogPerfHandler.java 19278 */ 19279message CarWatchdogDailyIoUsageSummary { 19280 // Total bytes written to disk during a day. 19281 optional CarWatchdogPerStateBytes written_bytes = 1; 19282 19283 // Total uptime for the system or service or application during a day. 19284 optional uint64 uptime_millis = 2; 19285 19286 // Total disk I/O overuses during a day. 19287 optional int32 overuse_count = 3; 19288} 19289 19290/* 19291 * pushes Media playback information. 19292 * Logged from 19293 * frameworks/base/services/core/java/com/android/server/media/metrics/ 19294 * MediaMetricsManagerService.java 19295 */ 19296message MediametricsPlaybackReported { 19297 optional int32 uid = 1 [(is_uid) = true]; 19298 19299 // Randomly generated log session ID. A Base64 encoded hex string representing a 19300 // 128-bit integer. 19301 optional string log_session_id = 2; 19302 // The total length of the media in milliseconds. 0 for live contents. 19303 optional int64 media_duration_millis = 3; 19304 // Network, device, or mixed. 19305 optional android.stats.mediametrics.StreamSourceType stream_source = 4; 19306 // Stream type. DASH, HLS, etc 19307 optional android.stats.mediametrics.StreamType stream_type = 5; 19308 // Live, VOD, others 19309 optional android.stats.mediametrics.PlaybackType playback_type = 6; 19310 // DRM type 19311 optional android.stats.mediametrics.DrmType drm_type = 7; 19312 // Main, AD, others 19313 optional android.stats.mediametrics.ContentType content_type = 8; 19314 // Player name. E.g. ExoPlayer 19315 optional string player_name = 9; 19316 // Player version. E.g. 1.10.3e 19317 optional string player_version = 10; 19318 // Player related experiment IDs 19319 optional Experiments experiment_ids = 11 [(log_mode) = MODE_BYTES]; 19320 // Number of frames played. Dropped frames are not included. -1 means unknown. 19321 optional int32 video_frames_played = 12; 19322 // Number of frames dropped. -1 means unknown. 19323 optional int32 video_frames_dropped = 13; 19324 // Number of audio underruns. -1 means unknown. 19325 optional int32 audio_underrun_count = 14; 19326 // Total number of bytes read from the network 19327 optional int64 network_bytes_read = 15; 19328 // Total number of bytes read from on-device sources 19329 optional int64 local_bytes_read = 16; 19330 // Total transfer spent reading from the network in ms. 19331 // For parallel requests, the overlapping time intervals are counted only once. 19332 optional int64 network_transfer_duration_millis = 17; 19333 // A session ID generated from DRM to distinguish different DRM sessions. 19334 optional string drm_session_id = 18; 19335} 19336 19337message MediaNetworkInfoChanged { 19338 // Randomly generated log session ID. A Base64 encoded hex string representing a 19339 // 128-bit integer. 19340 optional string log_session_id = 1; 19341 // New network type 19342 optional android.stats.mediametrics.NetworkType type = 2; 19343 // When the network info change occurred relative to playback creation 19344 // time in milliseconds. 19345 // It is in absolute time (e.g. always ticks even if the playback is paused). 19346 optional int64 time_since_playback_created_millis = 3; 19347} 19348 19349message MediaPlaybackStateChanged { 19350 // Randomly generated log session ID. A Base64 encoded hex string representing a 19351 // 128-bit integer. 19352 optional string log_session_id = 1; 19353 // New playback state 19354 optional android.stats.mediametrics.PlaybackState playback_state = 2; 19355 // When the state change occurred relative to playback creation time in 19356 // milliseconds. 19357 // It is in absolute time (e.g. always ticks even if the playback is paused). 19358 optional int64 time_since_playback_created_millis = 3; 19359} 19360 19361message MediaPlaybackErrorReported { 19362 // Randomly generated log session ID. A Base64 encoded hex string representing a 19363 // 128-bit integer. 19364 optional string log_session_id = 1; 19365 // A shortened call stack of the error 19366 optional string exception_stack = 2; 19367 // Error code 19368 optional android.stats.mediametrics.PlaybackErrorCode error_code = 3; 19369 // Sub-code of error type specified by the error code. 19370 optional int32 sub_error_code = 4; 19371 // When the error occurred relative to playback creation time in millisecond. 19372 // It is in absolute time (e.g. always ticks even if the playback is paused). 19373 optional int64 time_since_playback_created_millis = 5; 19374} 19375 19376message MediaPlaybackTrackChanged { 19377 // Randomly generated log session ID. A Base64 encoded hex string representing a 19378 // 128-bit integer. 19379 optional string log_session_id = 1; 19380 // The track is on or off after the change 19381 optional android.stats.mediametrics.TrackState state = 2; 19382 // The reason of the track change 19383 optional android.stats.mediametrics.TrackChangeReason reason = 3; 19384 // The MIME type of the container. E.g. video/mp4 19385 optional string container_mime_type = 4; 19386 // The sample MIME type of the track. E.g. video/avc 19387 optional string sample_mime_type = 5; 19388 19389 // Codec name 19390 optional string codec_name = 6; 19391 // Bits per second. 0 means unknown. 19392 optional int32 bitrate = 7; 19393 19394 // When the track change occurred, relative to playback creation time in 19395 // millisecond. 19396 // It is in absolute time (e.g. always ticks even if the playback is paused). 19397 optional int64 time_since_playback_created_millis = 8; 19398 19399 // Track type. Audio, Video, Text 19400 optional android.stats.mediametrics.TrackType type = 9; 19401 // 2-letter ISO 639-1 language code. 19402 optional string language = 10; 19403 // IETF BCP 47 optional language region subtag based on a two-letter country code 19404 optional string language_region = 11; 19405 // Number of channels 19406 optional int32 channel_count = 12; 19407 // Samples per second 19408 optional int32 sample_rate = 13; 19409 // The width of the video in pixels. 19410 optional int32 width = 14; 19411 // The height of the video in pixels. 19412 optional int32 height = 15; 19413 // Video frame rate in frames per second. 19414 optional float video_frame_rate = 16; 19415} 19416 19417message Experiments { 19418 // Experiment IDs sent by the player. 19419 repeated int64 experiments = 1; 19420} 19421 19422/** 19423 * Logs when a Wifi network scan happens. 19424 * 19425 * Logged from: 19426 * frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiMetrics.java 19427 */ 19428message WifiScanReported { 19429 enum Type { 19430 TYPE_UNKNOWN = 0; 19431 19432 // Single scan. 19433 TYPE_SINGLE = 1; 19434 19435 // Background scan (deprecated, should not happen). 19436 TYPE_BACKGROUND = 2; 19437 } 19438 19439 enum Result { 19440 RESULT_UNKNOWN = 0; 19441 19442 // Failed to start scan. 19443 RESULT_FAILED_TO_START = 1; 19444 19445 // The HAL reported a scan failure after the scan was started. 19446 RESULT_FAILED_TO_SCAN = 2; 19447 19448 // Scan succeeded. 19449 RESULT_SUCCESS = 3; 19450 } 19451 19452 enum Source { 19453 SOURCE_UNKNOWN = 0; 19454 19455 // No work source set - not possible to determine the origin. 19456 SOURCE_NO_WORK_SOURCE = 1; 19457 19458 // The Wifi stack. 19459 SOURCE_WIFI_STACK = 2; 19460 19461 // GMS on behalf of some other app. 19462 SOURCE_GMS = 3; 19463 19464 // Settings app. 19465 SOURCE_SETTINGS_APP = 4; 19466 19467 // Other app directly. 19468 SOURCE_OTHER_APP = 5; 19469 } 19470 19471 enum Importance { 19472 IMPORTANCE_UNKNOWN = 0; 19473 19474 // Foreground app. Corresponds to the value of 19475 // ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND or less. 19476 IMPORTANCE_FOREGROUND = 1; 19477 19478 // Foreground service. Corresponds to the value of 19479 // ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND_SERVICE 19480 IMPORTANCE_FOREGROUND_SERVICE = 2; 19481 19482 // Everything else. 19483 IMPORTANCE_BACKGROUND = 3; 19484 } 19485 19486 // Scan type 19487 optional Type type = 1; 19488 19489 // Outcome: success/failure 19490 optional Result result = 2; 19491 19492 // What initiated a scan. 19493 optional Source source = 3; 19494 19495 // Process importance of the initiator. 19496 // This is only available for non-system calls. 19497 optional Importance importance = 4; 19498 19499 // Time taken for the scan. 19500 optional int32 scan_duration_millis = 5; 19501 19502 // Count of found networks. 19503 optional int32 count_networks_found = 6; 19504} 19505 19506/** 19507 * Logs when a Wifi PNO (Preferred Network Offload) scan happens. 19508 * 19509 * Logged from: 19510 * frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiMetrics.java 19511 */ 19512message WifiPnoScanReported { 19513 enum State { 19514 UNKNOWN = 0; 19515 19516 // Scan started. 19517 STARTED = 1; 19518 19519 // Scan failed to start (e.g. bad request, unsupported by hardware, etc). 19520 FAILED_TO_START = 2; 19521 19522 // Scan completed and a network was found. 19523 // Note - due to implementation constraints, nothing is reported when a scan completes but 19524 // doesn't find any networks. 19525 FINISHED_NETWORKS_FOUND = 3; 19526 19527 // Scan failed. 19528 FAILED = 4; 19529 } 19530 19531 optional State state = 1; 19532} 19533 19534/** 19535 * Logs when an airplane mode session happens. 19536 * 19537 * Logged from: 19538 * packages/modules/Wifi/service/java/com/android/server/wifi/WifiMetrics.java 19539 * packages/modules/Bluetooth/service/java/com/android/server/bluetooth/BluetoothAirplaneModeListener.java 19540 */ 19541message AirplaneModeSessionReported { 19542 enum PackageName { 19543 WIFI = 0; 19544 BLUETOOTH = 1; 19545 } 19546 // Module recording the airplane mode session 19547 optional PackageName package_name = 1; 19548 // State of the module before entering airplane mode 19549 // False - module off 19550 // True - module on 19551 optional bool previous_state = 2; 19552 // State of the module at the beginning of airplane mode 19553 optional bool entering_state = 3; 19554 // State of the module at the end of airplane mode 19555 optional bool exiting_state = 4; 19556 // Whether the user has activated the feature by 19557 // toggling the module in airplane mode 19558 optional bool feature_active = 5; 19559 // Whether the user toggled the module during current airplane mode 19560 optional bool user_toggled = 6; 19561 // Whether the user toggled the module within one minute 19562 optional bool user_toggled_within_minute = 7; 19563 // Whether media profile was connected before entering airplane mode 19564 // Only applicable to the Bluetooth module 19565 optional bool media_profile_connected = 8; 19566} 19567 19568/** 19569 * Logs when a package installation session happens. 19570 * 19571 * Logged from: 19572 * frameworks/base/services/core/java/com/android/server/pm/InstallPackageHelper.java 19573 */ 19574message PackageInstallationSessionReported { 19575 // Used to correlate with Play logging metrics 19576 optional int32 session_id = 1; 19577 // Only logged for failed installations 19578 optional string package_name = 2; 19579 19580 // UID of the app that is successfully installed 19581 optional int32 uid = 3 [(is_uid) = true]; 19582 // Users that will have this package installed 19583 repeated int32 user_ids = 4; 19584 // User types for the users listed above 19585 repeated int32 user_types = 5; 19586 // Users that originally had this package installed if it already exists 19587 repeated int32 original_user_ids = 6; 19588 // User types for original users 19589 repeated int32 original_user_types = 7; 19590 // PackageManager.INSTALL_FAILED_* error codes 19591 optional int32 public_return_code = 8; 19592 // Internal error codes that indicate detailed installation failures 19593 optional int32 internal_error_code = 9; 19594 // Total size of the new APKs in the current session 19595 optional int64 apks_size_bytes = 10; 19596 // Version code of the app 19597 optional int64 version_code = 11; 19598 19599 // List of install steps defined in 19600 // frameworks/base/services/core/java/com/android/server/pm/PackageMetrics.java 19601 repeated int32 install_steps = 12; 19602 // Duration of each step in the installation; order must match install_steps 19603 repeated int64 step_duration_millis = 13; 19604 // Total duration can be greater than zero even if install failed 19605 optional int64 total_duration_millis = 14; 19606 // Installation flags including DONT_KILL 19607 optional int32 install_flags = 15; 19608 // UID of the package that initiates the installation 19609 optional int32 installer_package_uid = 16 [(is_uid) = true]; 19610 // UID of the package that previously installed the app 19611 optional int32 original_installer_package_uid = 17 [(is_uid) = true]; 19612 // {@see android.content.pm.DataLoaderType} 19613 optional int32 data_loader_type = 18; 19614 // {@see android.content.pm.UserActionRequirement} 19615 optional int32 user_action_required_type = 19; 19616 19617 // Install types might overlap, therefore using booleans for each type 19618 // A regular new app install has every field as false. 19619 optional bool is_instant = 20; 19620 optional bool is_replace = 21; 19621 optional bool is_system = 22; 19622 optional bool is_inherit = 23; 19623 optional bool is_installing_existing_as_user = 24; 19624 optional bool is_move_install = 25; 19625 // Whether this is a staged installation 19626 optional bool is_staged = 26; 19627 19628 // Set when this session was configured to automatically install any missing dependencies. 19629 optional bool is_install_dependencies_enabled = 27; 19630 // Number of dependencies that are missing and are required for this install to be successful. 19631 // Provided when is_install_dependencies_enabled is set. 19632 optional int32 missing_dependencies_count = 28; 19633} 19634 19635message PackageUninstallationReported { 19636 // UID of the package being uninstalled 19637 optional int32 uid = 1 [(is_uid) = true]; 19638 // Users on which the package (or system app update) is uninstalled from 19639 // If uninstall for all users, list all the user ids 19640 repeated int32 user_ids = 2; 19641 // Types of the users listed above. Order must match above. 19642 repeated int32 user_types = 3; 19643 // Users that originally had this package (or system app update) installed 19644 repeated int32 original_user_ids = 4; 19645 repeated int32 original_user_types = 5; 19646 // Flags of uninstallation, including KEEP_DATA 19647 optional int32 uninstall_flags = 6; 19648 // PackageManager.DELETE_SUCCEEDED or PackageManager.DELETE_FAILED_* 19649 optional int32 return_code = 7; 19650 // Special uninstall types might overlap, therefore booleans 19651 // An uninstall of a non-system app on all users should have all fields false 19652 optional bool is_system = 8; 19653 // When this is true, user_ids != original_user_ids 19654 optional bool is_uninstall_for_users = 9; 19655} 19656 19657/** 19658 * Logs when the entitlement configuration of an IMS service is queried/updated. 19659 * 19660 * Logged from: ImsServiceEntitlement app 19661 */ 19662message ImsServiceEntitlementUpdated { 19663 // The purpose of entitlement query/update 19664 enum Purpose { 19665 UNKNOWN_PURPOSE = 0; 19666 19667 // Initial service activation in foreground 19668 ACTIVATION = 1; 19669 19670 // Updating service configuration in foreground 19671 UPDATE = 2; 19672 19673 // Background polling for querying service entitlement 19674 POLLING = 3; 19675 } 19676 19677 // The IMS services 19678 enum ServiceType { 19679 UNKNOWN_SERVICE = 0; 19680 VOWIFI = 1; 19681 VOLTE = 2; 19682 SMSOIP = 3; 19683 } 19684 19685 // The result of activation 19686 enum AppResult { 19687 UNKNOWN_RESULT = 0; 19688 ENABLED = 1; 19689 DISABLED = 2; 19690 INCOMPATIBLE = 3; 19691 PROVISIONING = 4; 19692 SUCCESSFUL = 5; 19693 FAILED = 6; 19694 CANCELED = 7; 19695 TIMEOUT = 8; 19696 UNEXPECTED_RESULT = 9; 19697 } 19698 19699 // The Android carrier ID for the carrier providing the IMS service. 19700 // This may not be the actual carrier of the device, e.g. a MVNO 19701 // may use the IMS service of its MNO. 19702 optional int64 carrier_id = 1; 19703 19704 // The Android carrier ID of the actual carrier. 19705 // E.g. a MVNO may use its MNO's IMS service. In this case, 19706 // actual_carrier_id is the MVNO and carrier_id is the MNO. 19707 optional int64 actual_carrier_id = 2; 19708 19709 // The purpose of this query/update. 19710 optional Purpose purpose = 3; 19711 19712 // Which IMS service's entitlement status were queried/updated. 19713 optional ServiceType service_type = 4; 19714 19715 // Result of this query/update. 19716 optional AppResult app_result = 5; 19717 19718 // How long (in milliseconds) this query/update took. 19719 optional int64 duration_millis = 6; 19720} 19721 19722/** 19723 * Logged when a SIM-specific settings restore was attempted. 19724 * 19725 * Logged from: 19726 * packages/providers/TelephonyProvider/src/com/android/providers/telephony/TelephonyProvider.java 19727 */ 19728message SimSpecificSettingsRestored { 19729 optional android.telephony.SimSpecfifcSettingsRestoreResult result = 1; 19730 19731 // Indicates which restore flow was followed. 19732 optional android.telephony.SimSpecificSettingsRestoreCase restored_from_suw = 2; 19733 19734 // Indicates which criteria was used to match the inserted SIM to backed up 19735 // SIM. Only relevant when result is SUCCESS 19736 optional android.telephony.SimSpecificSettingsRestoreMatchingCriteria matching_criteria = 3; 19737} 19738 19739/** 19740 * The latency of Binder calls broken down by calling API and method name. 19741 * This is different from BinderCalls as it collects a histogram of the 19742 * latencies (to get more detailed data) not just the count, sum, and maximum. 19743 * 19744 * Logged from: 19745 * frameworks/base/core/java/com/android/internal/os/BinderLatencyObserver.java 19746 */ 19747message BinderLatencyReported { 19748 message Dims { 19749 enum ProcessSource { 19750 UNKNOWN_PROCESS_SOURCE = 0; 19751 SYSTEM_SERVER = 1; 19752 TELEPHONY = 2; 19753 BLUETOOTH = 3; 19754 WIFI = 4; 19755 } 19756 enum ServiceClassName { 19757 UNKNOWN_CLASS = 0; 19758 } 19759 enum ServiceMethodName { 19760 UNKNOWN_METHOD = 0; 19761 } 19762 19763 // Required. 19764 optional ProcessSource process_source = 1; 19765 19766 // The class name of the API making the call to Binder. Enum value 19767 // is preferred as uses much less data to store. 19768 // This field does not contain PII. 19769 oneof service_class { 19770 ServiceClassName service_class_name_as_enum = 2; 19771 string service_class_name = 3; 19772 } 19773 19774 // Method name of the API call. It can also be a transaction code if we 19775 // cannot resolve it to a name. See Binder#getTransactionName. Enum value 19776 // is preferred as uses much less data to store. 19777 // This field does not contain PII. 19778 oneof service_method { 19779 ServiceMethodName service_method_name_as_enum = 4; 19780 string service_method_name = 5; 19781 } 19782 } 19783 19784 message ApiStats { 19785 // required. 19786 optional Dims dims = 1; 19787 19788 // Indicates the first bucket that had any data. Allows omitting any empty 19789 // buckets at the start of the bucket list and thus save on data size. 19790 optional int32 first_bucket_index = 2; 19791 // Stores the count of samples for each bucket. The number of buckets and 19792 // their sizes are controlled server side with a flag. 19793 repeated int32 buckets = 3; 19794 } 19795 19796 message RepeatedApiStats { 19797 repeated ApiStats api_stats = 1; 19798 } 19799 19800 // The binder latency data broken down by the dimensions specified above. 19801 // The message wrapper is used for the repeated field as top level repeated 19802 // fields are not allowed. 19803 // MODE_BYTES is used as nested messages are not allowed otherwise. 19804 // Required. 19805 optional RepeatedApiStats repeated_api_stats = 1 [(android.os.statsd.log_mode) = MODE_BYTES]; 19806 19807 // The fraction of samples that are recorded in the histogram. 19808 // Required. 19809 optional float sampling_rate = 2; 19810 19811 // Indicates how many shards the APIs are divided in - e.g. for 3 every 19812 // 3rd API will be included in the data for this shard. 19813 // Required. 19814 optional int32 sharding_modulo = 3; 19815 19816 // Params for histogram buckets. 19817 // The number of buckets the histogram should have. 19818 optional int32 bucket_count = 4; 19819 19820 // The size (upper bound) of the first bucket (used to avoid creating an 19821 // excessive amount of small buckets). E.g. for first_bucket_size of 5, the 19822 // first bucket will be [0, 5) and the second will be [5, 5 * scaleFactor). 19823 optional int32 first_bucket_size = 5; 19824 19825 // The rate in which each consecutive bucket increases (before rounding). 19826 // Implemented in: com.android.internal.os.BinderLatencyBuckets. 19827 optional float scale_factor = 6; 19828} 19829 19830/** 19831 * Log audio device types that are used for input/output. 19832 * Next Tag: 2 19833 */ 19834message AudioDevice { 19835 // See audio_devices_t in system/media/audio/include/system/audio-hal-enums.h 19836 repeated int32 type = 1; 19837} 19838 19839/** 19840 * Track information about AAudio Stream 19841 * Logged from 19842 * frameworks/av/services/mediametrics/AudioAnalytics.cpp 19843 */ 19844message MediametricsAAudioStreamReported { 19845 // The implementation of aaudio. 19846 optional android.media.audio.CallerPath path = 1; 19847 19848 // The direction of the stream. 19849 optional android.media.audio.Direction direction = 2; 19850 19851 // The amount read or written in one shot by the Mixer or DSP. 19852 optional int32 frames_per_burst = 3; 19853 // The number of frames that the buffer is used. 19854 optional int32 buffer_size = 4; 19855 // The allocated number of frames for the buffer. 19856 optional int32 buffer_capacity = 5; 19857 // The channel count of the aaudio stream. 19858 optional int32 channel_count = 6; 19859 // Total frames transferred (written or read) 19860 optional int64 total_frames_transferred = 7; 19861 19862 // The performance mode requested by the applications. 19863 optional android.media.audio.PerformanceMode perf_mode_requested = 8; 19864 // The actual performance mode used by aaudio. 19865 optional android.media.audio.PerformanceMode perf_mode_actual = 9; 19866 19867 // The mode requested for sharing the device 19868 optional android.media.audio.SharingMode sharing = 10; 19869 19870 // Approximate number of glitches. 19871 // Underrun on output stream. Overrun on input stream. 19872 optional int32 xrun_count = 11; 19873 // Devices that are used by the aaudio stream. 19874 optional AudioDevice types = 12 [(log_mode) = MODE_BYTES]; 19875 19876 // Format request by the applications 19877 optional int32 format_app = 13; 19878 // Format processed by the framework 19879 optional int32 format_device = 14; 19880 19881 // Android S metric log session id, a Base64Url encoded string representing a 128-bit integer. 19882 optional string log_session_id = 15; 19883 19884 // The sample rate of the aaudio stream. 19885 optional int32 sample_rate = 16; 19886 19887 // The content type of the aaudio stream. 19888 optional android.media.audio.ContentType content_type = 17; 19889 19890 // The mode of sharing the device requested by the client. 19891 optional android.media.audio.SharingMode sharing_requested = 18; 19892 19893 // Android U 19894 // The format used by the audio hardware. 19895 optional int32 format_hardware = 19; 19896 19897 // Android U 19898 // The channel count used by the audio hardware. 19899 optional int32 channel_count_hardware = 20; 19900 19901 // Android U 19902 // The sample rate used by the audio hardware. 19903 optional int32 sample_rate_hardware = 21; 19904 19905 // Android U 19906 // The UID of the client. 19907 optional int32 uid = 22 [(is_uid) = true]; 19908 19909 // Android U 19910 // The sample rate used by the client. 19911 optional int32 sample_rate_client = 23; 19912} 19913 19914/** 19915 * Logs media transcoding session ended events. 19916 * 19917 * Logged from: 19918 * frameworks/av/media/libmediatranscoding/TranscoderWrapper.cpp 19919 */ 19920message MediaTranscodingSessionEnded { 19921 19922 enum Reason { 19923 UNKNOWN = 0; // Unused. 19924 FINISHED = 1; // Transcoding session finished successfully. 19925 ERROR = 2; // Transcoding session returned error while running. 19926 PAUSED = 3; // Transcoding session was paused, potentially failed. 19927 CANCELLED = 4; // Transcoding session was cancelled. 19928 START_FAILED = 5; // Transcoding session failed to start. 19929 RESUME_FAILED = 6; // Transcoding session failed to resume. 19930 CREATE_FAILED = 7; // Transcoder instance failed to crate. 19931 CONFIG_SRC_FAILED = 8; // Configure source failed. 19932 CONFIG_DST_FAILED = 9; // Configure destination failed. 19933 CONFIG_TRACK_FAILED = 10; // Configure track failed. 19934 OPEN_SRC_FD_FAILED = 11; // Open source fd failed. 19935 OPEN_DST_FD_FAILED = 12; // Open destination fd failed. 19936 NO_TRACKS = 13; // No tracks in source file. 19937 } 19938 19939 // Reason for logging the atom. 19940 optional Reason reason = 1; 19941 19942 // UID of client connecting to media transcoding service. 19943 optional int32 calling_uid = 2 [(is_uid) = true]; 19944 19945 // Transcode session status flag (media_status_t). 19946 optional int32 transcode_status = 3; 19947 19948 // Transcode speed as framerate, if status is success. 19949 optional int32 transcode_fps = 4; 19950 19951 // Source video dimensions. 19952 optional int32 src_width = 5; 19953 optional int32 src_height = 6; 19954 19955 // Source video codec information. 19956 optional string src_codec_type = 7; 19957 optional int32 src_profile = 8; 19958 optional int32 src_level = 9; 19959 19960 // Source video framerate. 19961 optional int32 src_fps = 10; 19962 19963 // Source video duration. 19964 optional int32 src_duration_millis = 11; 19965 19966 // Whether source video is HDR. 19967 optional bool src_is_hdr = 12; 19968 19969 // Destination video dimensions. 19970 optional int32 dst_width = 13; 19971 optional int32 dst_height = 14; 19972 19973 // Destination video codec information. 19974 optional string dst_codec_type = 15; 19975 19976 // Whether destination video is HDR. 19977 optional bool dst_is_hdr = 16; 19978} 19979 19980/** Logs information about an unattended reboot that took place. This is logged 19981 * after the next boot, when the device is first unlocked. 19982 * 19983 * Logged from: 19984 * packages/modules/Scheduling/service/java/com/android/server/RebootReadinessLogger.java 19985 */ 19986message UnattendedRebootOccurred { 19987 19988 // Time between the reboot readiness state checks starting, and the device 19989 // becoming reboot-ready. 19990 optional int64 time_until_reboot_ready_millis= 1; 19991 19992 // Time taken for the device to be unlocked (i.e. for the keyguard to be 19993 // gone) after an unattended reboot took place. 19994 optional int64 time_until_first_unlock_millis = 2; 19995 19996 // Number of times the reboot was blocked by the device being interactive. 19997 optional int32 times_blocked_by_interactivity = 3; 19998 19999 // Number of times the reboot was blocked by a callback registered by a 20000 // subsystem or a privileged app. 20001 optional int32 times_blocked_by_subsystems = 4; 20002 20003 // Number of times the reboot was blocked by background app activity. 20004 optional int32 times_blocked_by_app_activity = 5; 20005 20006 // Time until next user interaction with the device. 20007 optional int64 time_until_next_interaction_ms = 6; 20008} 20009 20010 20011/** 20012 * Logs information about an app uid or registered system component that has 20013 * been blocking the device from being reboot-ready for a long time. 20014 * 20015 * Logged from: 20016 * packages/modules/Scheduling/service/java/com/android/server/RebootReadinessLogger.java 20017 */ 20018message LongRebootBlockingReported { 20019 20020 enum RebootBlockReason { 20021 SYSTEM_COMPONENT = 1; 20022 APP_UID = 2; 20023 } 20024 20025 // The reason why the reboot has been blocked. This is either a system 20026 // component that has registered a callback, or an app UID running in the 20027 // background. 20028 optional RebootBlockReason reboot_block_reason = 1; 20029 20030 // Only one of the following two fields should be set, depending on the 20031 // RebootBlockReason. 20032 20033 // The name supplied by a system component when it registered a callback 20034 // to block the reboot. 20035 optional string component_name = 2; 20036 20037 // The uid of an app that is running in the background. 20038 optional int32 uid = 3 [(is_uid) = true]; 20039} 20040 20041/** 20042 * Logs the magnification activated mode and its duration of the usage 20043 * when the magnification is disabled. 20044 * 20045 * Logged from: 20046 * frameworks/base/services/accessibility/java/com/android/server/accessibility 20047 */ 20048message MagnificationUsageReported { 20049 // The definition of the magnification mode. 20050 // From frameworks/base/core/proto/android/stats/accessibility/accessibility_enums.proto. 20051 optional android.stats.accessibility.MagnificationMode activated_mode = 1; 20052 20053 // The duration of this magnification mode activation in milliseconds 20054 optional int64 duration_millis = 2; 20055 20056 // The last magnification scale for the activation in percentage 20057 optional int64 scale_percentage = 3; 20058} 20059 20060/** 20061 * Logs the magnification activated mode when IME dialog shows on the screen. 20062 * 20063 * Logged from: 20064 * frameworks/base/services/accessibility/java/com/android/server/accessibility 20065 */ 20066message MagnificationModeWithImeOnReported { 20067 // The definition of the magnification mode. 20068 // From frameworks/base/core/proto/android/stats/accessibility/accessibility_enums.proto. 20069 optional android.stats.accessibility.MagnificationMode activated_mode = 1; 20070} 20071 20072/** 20073 * Logs the duration for the magnification session which is activated by the triple tap and 20074 * hold gesture. 20075 * 20076 * Logged from: 20077 * frameworks/base/services/accessibility/java/com/android/server/accessibility 20078 */ 20079message MagnificationTripleTapAndHoldActivatedSessionReported { 20080 // The duration of the triple tap and hold activated session in milliseconds 20081 optional int64 duration_millis = 1; 20082} 20083 20084/** 20085 * Logs the duration for the following typing focus activated session. 20086 * 20087 * Logged from: 20088 * frameworks/base/services/accessibility/java/com/android/server/accessibility 20089 */ 20090message MagnificationFollowTypingFocusActivatedSessionReported { 20091 // The duration of the following typing focus activated session in milliseconds 20092 optional int64 duration_millis = 1; 20093} 20094 20095/* 20096 * Logged when hardware based user-configurable device state changes. 20097 * 20098 * Logged from: 20099 * frameworks/base/services/core/java/com/android/server/devicestate/DeviceStateManagerService.java 20100 */ 20101message DeviceStateChanged { 20102 optional int32 new_device_state = 1 20103 [(state_field_option).exclusive_state = true, (state_field_option).nested = false]; 20104 optional bool boot_state = 2; 20105} 20106 20107/* 20108 * Logged when device folded state changes. 20109 * 20110 * Logged from: 20111 * frameworks/base/packages/SystemUI/src/com/android/systemui/unfold/FoldStateLogger.kt 20112 */ 20113message FoldStateDurationReported { 20114 enum State { 20115 UNKNOWN = 0; 20116 OPEN = 1; 20117 CLOSED = 2; 20118 HALF_OPEN = 3; 20119 } 20120 20121 optional State start_state = 1; 20122 optional State end_state = 2; 20123 optional int64 duration_millis = 3; 20124} 20125 20126/** 20127 * This metric is collected at the end of playback 20128 * as a pulled atom. 20129 * 20130 * DrmHal::cleanup() { 20131 * // ... 20132 * reportFrameworkMetrics(reportPluginMetrics()); 20133 * // ... 20134 * } 20135 * This proto should be kept in-sync with 20136 * frameworks/av/drm/libmediadrm/protos/metrics.proto. 20137 */ 20138message DrmFrameworkMetrics { 20139 20140 // Attributes are associated with a recorded value. E.g. A counter may 20141 // represent a count of an operation returning a specific error code. The 20142 // error code will be an attribute. 20143 message Attributes { 20144 // Reserved for compatibility with logging proto. 20145 reserved 2 to 13; 20146 20147 // A general purpose error code where 0 means OK. 20148 optional int32 error_code = 1; 20149 20150 // Defined at ::android::hardware::drm::V1_0::KeyStatusType; 20151 optional uint32 key_status_type = 14; 20152 20153 // Defined at ::android::hardware::drm::V1_0::EventType; 20154 optional uint32 event_type = 15; 20155 } 20156 20157 // The Counter message is used to store a count value with an associated 20158 // Attribute. 20159 message Counter { 20160 optional uint64 count = 1; 20161 // Represents the attributes associated with this counter instance. 20162 optional Attributes attributes = 2; 20163 } 20164 20165 // The DistributionMetric is meant to capture the moments of a normally 20166 // distributed (or approximately normal) value. 20167 message DistributionMetric { 20168 optional float min = 1; 20169 optional float max = 2; 20170 optional float mean = 3; 20171 optional double variance = 4; 20172 optional uint64 operation_count = 5; 20173 20174 // Represents the attributes associated with this distribution metric 20175 // instance. 20176 optional Attributes attributes = 6; 20177 } 20178 20179 message SessionLifetime { 20180 // Start time of the session in milliseconds since epoch. 20181 optional uint64 start_time_millis = 1; 20182 // End time of the session in milliseconds since epoch. 20183 optional uint64 end_time_millis = 2; 20184 } 20185 20186 // The count of open session operations. Each instance has a specific error 20187 // code associated with it. 20188 repeated Counter open_session_counter = 1; 20189 20190 // The count of close session operations. Each instance has a specific error 20191 // code associated with it. 20192 repeated Counter close_session_counter = 2; 20193 20194 // Count and execution time of getKeyRequest calls. 20195 repeated DistributionMetric get_key_request_time_us = 3; 20196 20197 // Count and execution time of provideKeyResponse calls. 20198 repeated DistributionMetric provide_key_response_time_us = 4; 20199 20200 // Count of getProvisionRequest calls. 20201 repeated Counter get_provisioning_request_counter = 5; 20202 20203 // Count of provideProvisionResponse calls. 20204 repeated Counter provide_provisioning_response_counter = 6; 20205 20206 // Count of key status events broken out by status type. 20207 repeated Counter key_status_change_counter = 7; 20208 20209 // Count of events broken out by event type 20210 repeated Counter event_callback_counter = 8; 20211 20212 // Count getPropertyByteArray calls to retrieve the device unique id. 20213 repeated Counter get_device_unique_id_counter = 9; 20214 20215 message SessionLifetimeEntry { 20216 optional string session_id = 1; 20217 optional SessionLifetime session_lifetime = 2; 20218 } 20219 // Session ids to lifetime (start and end time) map. 20220 // Session ids are strings of hex-encoded byte arrays. 20221 // This field is equivalent to the map<string, SessionLifetime> 20222 // field in frameworks/av/drm/libmediadrm/protos/metrics.proto. 20223 repeated SessionLifetimeEntry session_lifetimes = 10; 20224} 20225 20226/** 20227 * The metric is collected at the end of playback 20228 * as a pulled atom MediaDrmActivityInfo. 20229 * 20230 * The framework_metrics is defined in 20231 * frameworks/av/drm/libmediadrm/protos/metrics.proto. 20232 * 20233 * The format of vendor_metrics is MediaDrm plugin dependent. 20234 * 20235 * DrmHal::cleanup() { 20236 * // ... 20237 * reportFrameworkMetrics(reportPluginMetrics()); 20238 * // ... 20239 * } 20240 * 20241 * This pulled atom is then collected in 20242 * frameworks/av/services/mediametrics/MediaMetricsService.cpp. 20243 */ 20244message MediaDrmActivityInfo { 20245 optional string package_name = 1; 20246 optional int64 package_version_code = 2; 20247 20248 // vendor+description tell about which DRM plugin is in use on this device 20249 optional string vendor = 3; 20250 optional string description = 4; 20251 20252 optional DrmFrameworkMetrics framework_metrics = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; 20253 optional bytes vendor_metrics = 6 [(android.os.statsd.log_mode) = MODE_BYTES]; 20254} 20255 20256/* 20257 * A canonical form time zone suggestion for metrics use. 20258 */ 20259message MetricsTimeZoneSuggestion { 20260 enum Type { 20261 UNKNOWN = 0; 20262 CERTAIN = 1; 20263 UNCERTAIN = 2; 20264 } 20265 optional Type type = 1; 20266 20267 // The ordinals for time zone(s) in the suggestion. Always empty for 20268 // UNCERTAIN, and can be empty for CERTAIN, for example when the device is in 20269 // a disputed area / on an ocean. 20270 // 20271 // The suggestion's time zone IDs (which relate to location) are obfuscated by 20272 // mapping them to an ordinal. When the ordinal is assigned consistently across 20273 // several objects (i.e. so the same time zone ID is always mapped to the same 20274 // ordinal), this allows comparisons between those objects. For example, we can 20275 // answer "did these two suggestions agree?", "does the suggestion match the 20276 // device's current time zone?", without leaking knowledge of location. Ordinals 20277 // are also significantly more compact than full IANA TZDB IDs, albeit unstable 20278 // and of limited use. 20279 repeated int32 time_zone_ordinals = 2; 20280 20281 // The actual time zone ID(s) in the suggestion. Similar to time_zone_ordinals 20282 // but contains the actual string IDs. 20283 // 20284 // This information is only captured / reported for some devices based on the 20285 // value of a server side flag, i.e. it could be enabled for internal testers. 20286 // Therefore the list can be empty even when time_zone_ordinals is populated. 20287 // 20288 // When enabled, see time_zone_ordinals for the expected number of values. 20289 repeated string time_zone_ids = 3; 20290} 20291 20292/* 20293 * Logs a snapshot of time zone detector state. 20294 * 20295 * Logged from: 20296 * frameworks/base/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java 20297 */ 20298message TimeZoneDetectorState { 20299 20300 // True if telephony-based time zone detection is supported on the device. 20301 optional bool telephony_supported = 1; 20302 20303 // True if geo-based time zone detection is supported on the device. 20304 optional bool geo_supported = 2; 20305 20306 // The current user's master location setting value. 20307 optional bool location_enabled = 3; 20308 20309 // The current user's auto time zone detection enabled setting value. 20310 optional bool auto_detection_setting = 4; 20311 20312 // The current user's geo detection enabled setting. 20313 optional bool geo_detection_setting = 5; 20314 20315 enum DetectionMode { 20316 UNKNOWN = 0; 20317 MANUAL = 1; 20318 TELEPHONY = 2; 20319 GEO = 3; 20320 } 20321 20322 // The functional / behavioral state for how time zones are currently determined on the device. 20323 // Avoids needing to duplicate the logic used. 20324 optional DetectionMode detection_mode = 6; 20325 20326 // The device's current time zone ordinal (see MetricsTimeZoneSuggestion). 20327 optional int32 device_time_zone_ordinal = 7; 20328 20329 // The latest suggestion received from the user, e.g. via SettingsUI (non-persistent). 20330 optional MetricsTimeZoneSuggestion latest_manual_suggestion = 8 20331 [(log_mode) = MODE_BYTES]; 20332 20333 // The latest telephony-derived suggestion (non-persistent). 20334 optional MetricsTimeZoneSuggestion latest_telephony_suggestion = 9 20335 [(log_mode) = MODE_BYTES]; 20336 20337 // The latest geo-derived suggestion (non-persistent). 20338 optional MetricsTimeZoneSuggestion latest_geo_suggestion = 10 20339 [(log_mode) = MODE_BYTES]; 20340 20341 // True if fallback to telephony time zone detection is supported on the device. 20342 optional bool telephony_time_zone_fallback_supported = 11; 20343 20344 // The device's current time zone ID (see MetricsTimeZoneSuggestion). 20345 optional string device_time_zone_id = 12; 20346 20347 // True if enhanced metrics collection is enabled. 20348 optional bool enhanced_metrics_collection_enabled = 13; 20349 20350 // True if the device may run geolocation time zone detection in the 20351 // background. This is the raw server flag value, not the value after 20352 // considering other state like the user's "use location" setting that also 20353 // affects runtime behavior. See LocationTimeZoneProviderController for 20354 // details. 20355 optional bool geo_detection_run_in_background_enabled = 14; 20356} 20357 20358/* 20359 * Logs information about an individual location time zone provider's state. 20360 * 20361 * Logged from: 20362 * frameworks/base/services/core/java/com/android/server/timezonedetector/location/RealProviderMetricsLogger.java 20363 */ 20364message LocationTimeZoneProviderStateChanged { 20365 // The index of the provider (primary = 0, secondary = 1) 20366 optional int32 provider_index = 1 [(state_field_option).primary_field = true]; 20367 20368 enum State { 20369 // A placeholder for unknown values. 20370 UNKNOWN = 0; 20371 20372 // The provider is initializing. 20373 INITIALIZING = 1; 20374 20375 // The provider is certain of the time zone. 20376 CERTAIN = 2; 20377 20378 // The provider is uncertain of the time zone. 20379 UNCERTAIN = 3; 20380 20381 // The provider has been stopped. 20382 STOPPED = 4; 20383 20384 // The provider has failed. 20385 PERM_FAILED = 5; 20386 20387 // The provider has been destroyed. 20388 DESTROYED = 6; 20389 } 20390 20391 // The state of the provider. 20392 optional State state = 2 [ 20393 (state_field_option).exclusive_state = true, 20394 (state_field_option).nested = false 20395 ]; 20396} 20397 20398/* 20399 * Logs information about the location time zone provider controller's state. 20400 * 20401 * Logged from: 20402 * frameworks/base/services/core/java/com/android/server/timezonedetector/location/RealControllerMetricsLogger.java 20403 */ 20404message LocationTimeZoneProviderControllerStateChanged { 20405 20406 enum State { 20407 // A placeholder for unknown values. 20408 UNKNOWN = 0; 20409 20410 // The providers are initializing. 20411 PROVIDERS_INITIALIZING = 1; 20412 20413 // The controller is / has been stopped. 20414 STOPPED = 2; 20415 20416 // The controller is started and is initializing. 20417 INITIALIZING = 3; 20418 20419 // The controller is started and is certain of the time zone. 20420 CERTAIN = 4; 20421 20422 // The controller is started and is uncertain of the time zone. 20423 UNCERTAIN = 5; 20424 20425 // The controller has been destroyed. 20426 DESTROYED = 6; 20427 20428 // The controller has failed. 20429 FAILED = 7; 20430 } 20431 20432 // The state of the provider. 20433 optional State state = 1; 20434} 20435 20436/* 20437 * Reports fdtrack state change. 20438 * 20439 * Logged from: 20440 * frameworks/base/services/java/com/android/server/SystemServer.java 20441 */ 20442message FdtrackEventOccurred { 20443 enum FdtrackEventType { 20444 DISABLED = 1; 20445 ENABLED = 2; 20446 20447 // Aborting because we're above the abort threshold. 20448 ABORTING = 3; 20449 } 20450 20451 optional FdtrackEventType event = 1; 20452 optional int32 fd_count = 2; 20453} 20454 20455/** 20456 * Pushed when delivering a batch of alarms. 20457 * 20458 * Logged from: 20459 * frameworks/base/apex/jobscheduler/service/java/com/android/server/alarm/MetricsHelper.java 20460 */ 20461message AlarmBatchDelivered { 20462 // The total number of alarms delivered in the batch. 20463 optional int32 num_alarms = 1; 20464 20465 // The number of wakeup alarms delivered in the batch. 20466 optional int32 wakeups = 2; 20467 20468 // A list of uids receiving the alarm delivery. 20469 repeated int32 uids = 3 [(is_uid) = true]; 20470 20471 // The number of alarms delivered to each of the {@link uids} above. 20472 repeated int32 num_alarms_per_uid = 4; 20473 20474 // The number of wakeup alarms delivered to each of the {@link uids} above. 20475 repeated int32 num_wakeups_per_uid = 5; 20476} 20477 20478/** 20479 * Pushed when an app schedules an alarm. 20480 * 20481 * Logged from: 20482 * frameworks/base/apex/jobscheduler/service/java/com/android/server/alarm/MetricsHelper.java 20483 */ 20484message AlarmScheduled { 20485 optional int32 calling_uid = 1 [(is_uid) = true]; 20486 20487 optional bool is_exact = 2; 20488 optional bool is_wakeup = 3; 20489 optional bool is_allow_while_idle = 4; 20490 optional bool is_alarm_clock = 5; 20491 optional bool is_repeating = 6; 20492 20493 enum ReasonCode { 20494 NOT_APPLICABLE = 0; 20495 PERMISSION = 1; 20496 ALLOW_LIST = 2; 20497 CHANGE_DISABLED = 3; 20498 POLICY_PERMISSION = 4; 20499 LISTENER = 5; 20500 PRIORITIZED = 6; 20501 } 20502 optional ReasonCode exact_alarm_allowed_reason = 7; 20503 optional bool is_rtc = 8; 20504 // The state of the callingUid, from frameworks/proto_logging/stats/enums/app_shared/app_enums.proto. 20505 optional android.app.ProcessStateEnum calling_process_state = 9; 20506} 20507 20508/** 20509 * Logs statistics about pending alarms. 20510 * 20511 * Pulled from: 20512 * frameworks/base/apex/jobscheduler/service/java/com/android/server/alarm/MetricsHelper.java 20513 */ 20514message PendingAlarmInfo { 20515 optional int32 num_total = 1; 20516 optional int32 num_exact = 2; 20517 optional int32 num_wakeup = 3; 20518 optional int32 num_allow_while_idle = 4; 20519 optional int32 num_prioritized = 5; 20520 optional int32 num_foreground_service = 6; 20521 optional int32 num_activity = 7; 20522 optional int32 num_service = 8; 20523 optional int32 num_listener = 9; 20524 optional int32 num_indefinite_future = 10; 20525 optional int32 num_repeating = 11; 20526 optional int32 num_alarm_clock = 12; 20527 optional int32 num_rtc = 13; 20528} 20529 20530/* 20531 * Logged when a package's user-level hibernation state changes. 20532 * Logged from: 20533 * frameworks/base/services/core/java/com/android/server/apphibernation/AppHibernationService.java 20534 */ 20535 message UserLevelHibernationStateChanged { 20536 // Name of the package that had its hibernation state change. 20537 optional string package_name = 1; 20538 20539 // Android user id to which this event belongs. This can only be 0, 10, 11 and so on. 20540 optional int32 user_id = 2; 20541 20542 // New hibernation state. True if hibernating, false otherwise 20543 optional bool is_hibernating = 3; 20544} 20545 20546/* 20547 * Pull atom for the number of hibernated packages on the device for the given user. 20548 * Logged from: 20549 * frameworks/base/services/core/java/com/android/server/apphibernation/AppHibernationService.java 20550 */ 20551message UserLevelHibernatedApps { 20552 // Total number of apps hibernated for the user 20553 optional int32 hibernated_app_count = 1; 20554 20555 // Android user id of the queried user which can only be 0, 10, 11 and so on. 20556 optional int32 user_id = 2; 20557} 20558 20559/** 20560 * Pull atom for total number of globally hibernated packages on the device and the storage savings 20561 * from these apps being hibernated. 20562 * Logged from: 20563 * frameworks/base/services/core/java/com/android/server/apphibernation/AppHibernationService.java 20564 */ 20565message GlobalHibernatedApps { 20566 // Total number of apps in global hibernation 20567 optional int32 hibernated_app_count = 1; 20568 20569 // Cumulative storage savings from apps being hibernated 20570 optional int64 storage_saved_mb = 2; 20571} 20572 20573/* 20574 * Report the event of app process kills. 20575 * Logged from: 20576 * frameworks/base/services/core/java/com/android/server/am/AppExitInfoTracker.java 20577 */ 20578message AppProcessDied { 20579 // Uid of the package of the dying process 20580 optional int32 uid = 1 [(is_uid) = true]; 20581 20582 // Name of the dying process, it'll be omitted if the process name and package name are the same 20583 optional string process_name = 2; 20584 20585 // The reason code of why the process dies 20586 optional android.app.AppExitReasonCode reason = 3; 20587 20588 // The supplemental reason code of why the process dies 20589 optional android.app.AppExitSubReasonCode sub_reason = 4; 20590 20591 // The importance of the process when it dies 20592 optional android.app.Importance importance = 5; 20593 20594 // The last known PSS (in kB) of the process before it dies, could be 0. 20595 optional int32 pss = 6; 20596 20597 // The last known RSS (in kB) of the process before it dies, could be 0. 20598 optional int32 rss = 7; 20599 20600 // Whether or not this process is hosting one or more foregound services. 20601 optional bool has_foreground_services = 8; 20602} 20603 20604// Each pull creates multiple atoms. One for each incremental package. 20605message InstalledIncrementalPackage { 20606 optional int32 uid = 1 [(is_uid) = true]; 20607 optional bool is_loading = 2; 20608 optional int64 loading_completed_timestamp = 3; 20609} 20610 20611/** 20612 * Memory management statistics pulled atom based on /proc/vmstat. 20613 * Logged from StatsPullAtomService. 20614 */ 20615message VmStat { 20616 optional int32 oom_kill_count = 1; 20617} 20618 20619/** 20620* Log that the user has interacted with an app on the permission usage 20621* fragment. 20622* Logged from permission/debug/PermissionUsageV2Frament.kt 20623*/ 20624message PermissionUsageFragmentInteraction { 20625 // id which identifies single session of user interacting with permission hub 20626 optional int64 session_id = 1; 20627 20628 enum Action { 20629 UNDEFINED = 0; 20630 OPEN = 1; 20631 LOCATION_ACCESS_TIMELINE_VIEWED = 2; 20632 CAMERA_ACCESS_TIMELINE_VIEWED = 3; 20633 MICROPHONE_ACCESS_TIMELINE_VIEWED = 4; 20634 SHOW_SYSTEM_CLICKED = 5; 20635 SEE_OTHER_PERMISSIONS_CLICKED = 6; 20636 SHOW_7DAYS_CLICKED = 7; 20637 } 20638 20639 // The action the user took to interact with the fragment 20640 optional Action action = 2; 20641} 20642 20643/** 20644* Log that the user has clicked on . 20645* Logged from permission/debug/PermissionDetailsFragment.kt 20646*/ 20647message PermissionDetailsInteraction { 20648 // id which identifies single session of user interacting with permission details fragment. 20649 optional int64 session_id = 1; 20650 20651 // The name of a permission group whose details are viewed. 20652 optional string permission_group_name = 2; 20653 20654 enum Action { 20655 UNDEFINED = 0; 20656 SHOW_SYSTEM_CLICKED = 1; 20657 INFO_ICON_CLICKED = 2; 20658 TIMELINE_ROW_CLICKED = 3; 20659 SHOW_7DAYS_CLICKED = 4; 20660 MANAGE_PERMISSIONS_CLICKED = 5; 20661 } 20662 20663 // Package name for which the info icon was clicked. 20664 optional string package_name = 3; 20665 20666 // The action the user took to interact with the fragment 20667 optional Action action = 4; 20668} 20669 20670/** 20671* Log that the user has toggled the sensor privacy. 20672*/ 20673message PrivacySensorToggleInteraction { 20674 20675 enum Sensor { 20676 SENSOR_UNKNOWN = 0; 20677 MICROPHONE = 1; 20678 CAMERA = 2; 20679 } 20680 20681 // Sensor for which sensor privacy was toggled. 20682 optional Sensor sensor = 1; 20683 20684 enum Action { 20685 ACTION_UNKNOWN = 0; 20686 TOGGLE_ON = 1; 20687 TOGGLE_OFF = 2; 20688 TOGGLE_ON_EXCEPT_ALLOWLISTED_APPS = 3; 20689 } 20690 20691 // Action taken on sensor. 20692 optional Action action = 2; 20693 20694 enum Source { 20695 SOURCE_UNKNOWN = 0; 20696 DIALOG = 1; 20697 SETTINGS = 2; 20698 QS_TILE = 3; 20699 } 20700 20701 // Source for the toggling. 20702 optional Source source = 3; 20703 20704 // Amount of time a user spent in the previous sensor privacy state in minutes. 20705 optional int64 time_in_previous_state_in_mins = 4; 20706} 20707 20708message PrivacyToggleDialogInteraction { 20709 20710 enum Action { 20711 ACTION_UNKNOWN = 0; 20712 ENABLE = 1; 20713 CANCEL = 2; 20714 } 20715 20716 // Action taken on the toggle dialog. 20717 optional Action action = 1; 20718 20719 // Name of the package for which the dialog was shown. 20720 optional string package_name = 2; 20721} 20722 20723message VendorApexInfo { 20724 optional string package_name = 1; 20725 optional string version_code = 2; 20726 optional string version_name = 3; 20727 optional string source_dir = 4; 20728 optional string signing_certs_hash = 5; 20729 optional string file_hash = 6; 20730} 20731 20732/** 20733 * Logs the non-a11yTool service warning status and its duration of the usage. 20734 * 20735 * Logged from: 20736 * frameworks/base/services/accessibility/java/com/android/server/accessibility 20737 * packages/apps/Settings 20738 */ 20739message NonA11yToolServiceWarningReported { 20740 // Package name of the non-a11yTool service. 20741 optional string package_name = 1; 20742 20743 // Warning status of the non-a11yTool service. 20744 optional android.stats.accessibility.WarningStatus status = 2; 20745 20746 // Duration between status in milliseconds. 20747 optional int64 duration_millis = 3; 20748} 20749 20750message MediaCapabilities { 20751 message AudioEncodings { 20752 repeated android.stats.mediametrics.AudioEncoding audio_encodings = 1; 20753 } 20754 20755 message HdrFormats { 20756 repeated android.stats.mediametrics.HdrFormat hdr_formats = 1; 20757 } 20758 20759 20760 message DisplayMode { 20761 optional int32 height = 1; 20762 optional int32 width = 2; 20763 optional float refresh_rate = 3; 20764 optional int32 seamless_refresh_rates_group_id = 4; 20765 } 20766 20767 message DisplayModes { 20768 repeated DisplayMode display_modes = 1; 20769 } 20770 20771 // Surround sound capabilities 20772 20773 // List of surround sound encodings supported by this device 20774 optional AudioEncodings surround_encodings = 1 [(log_mode) = MODE_BYTES]; 20775 // List of surround sound encodings supported by the sink device 20776 optional AudioEncodings sink_surround_encodings = 2 [(log_mode) = MODE_BYTES]; 20777 // List of supported surround sound encodings disabled by user 20778 optional AudioEncodings user_disabled_surround_encodings = 3 [(log_mode) = MODE_BYTES]; 20779 // List of unsupported surround sound encodings enabled by user 20780 optional AudioEncodings user_enabled_surround_encodings = 4 [(log_mode) = MODE_BYTES]; 20781 // The surround sound output mode chosen by user 20782 optional android.stats.mediametrics.EncodedSurroundOutputMode surround_output_mode = 5; 20783 20784 20785 // Display capabilities 20786 20787 // List of HDR display formats supported by the sink device 20788 optional HdrFormats sink_hdr_formats = 6 [(log_mode) = MODE_BYTES]; 20789 // List of modes supported by the sink device. Each mode has height, width, refresh rate and a list 20790 // of refresh-rates between which a seamless switch is possible. 20791 optional DisplayModes sink_display_modes = 7 [(log_mode) = MODE_BYTES]; 20792 // The HDCP level with which the display is connected 20793 optional int32 hdcp_level = 8; 20794 20795 // Display settings 20796 20797 // The Match content refresh rate user preference 20798 optional android.stats.mediametrics.MatchContentFrameRatePreference 20799 match_content_refresh_rate_preference = 9; 20800 // List of HDR formats disabled by the user 20801 optional HdrFormats user_disabled_hdr_formats = 10 [(log_mode) = MODE_BYTES]; 20802 // The resolution height selected by the user 20803 optional int32 user_preferred_resolution_height = 11; 20804 // The resolution width selected by the user 20805 optional int32 user_preferred_resolution_width = 12; 20806 // The refresh rate selected by the user 20807 optional float user_preferred_refresh_rate = 13; 20808 // Whether the user has disabled auto low latency mode 20809 optional bool has_user_disabled_allm = 14; 20810} 20811 20812/** 20813 * Logs when NNAPI model is compiled successfully 20814 * Logged from 20815 * modules/NeuralNetworks/runtime/TelemetryStatsd.cpp 20816 */ 20817message NeuralNetworksCompilationCompleted { 20818 // Linux process uid for the package. 20819 optional int32 uid = 1 [(is_uid) = true]; 20820 20821 // id which identifies single session of client interacting with NNAPI runtime 20822 optional int32 session_id = 2; 20823 20824 // NNAPI mainline module version. 20825 optional int64 version_nnapi_module = 3; 20826 20827 // An identifier that can be used to match events for ML model architecture. 20828 // Hash is generated from model operations and operands definition, but not weights. 20829 // Hash algorithm: HMAC-SHA256 20830 // Size: 32 byte 20831 optional bytes model_arch_hash = 4 [(log_mode) = MODE_BYTES]; 20832 20833 // Device driver identifier used by this compilation. 20834 // NeuralNetworks models are compiled/prepared for one or more device drivers (e.g., DSP, GPU, 20835 // TPU, CPU). The device driver identifier is a concatenation of [device driver name, =, and 20836 // device driver version]. If multiple device drivers are used, all device driver identifiers 20837 // are sorted and concatenated with comma as a separator. 20838 optional string device_id = 5; 20839 20840 // Type of tensors used for inputs 20841 optional android.neuralnetworks.DataClass input_data_class = 6; 20842 20843 // Type of tensors used for outputs 20844 optional android.neuralnetworks.DataClass output_data_class = 7; 20845 20846 // Did the compilation had to fallback to cpu due to an error? 20847 optional bool fallback_to_cpu_from_error = 8; 20848 20849 // Did client name target devices explicitly? 20850 optional bool introspection_enabled = 9; 20851 20852 // Was cache enabled? 20853 optional bool cache_enabled = 10; 20854 20855 // Was control flow used in the model? 20856 optional bool has_control_flow = 11; 20857 20858 // Whether there exists a partition boundary in the compilation that has dynamic size 20859 optional bool has_dynamic_temporaries = 12; 20860 20861 // Time taken to compile a model 20862 optional int64 compilation_time_sum_millis = 13; 20863 optional int64 compilation_time_min_millis = 14; 20864 optional int64 compilation_time_max_millis = 15; 20865 optional int64 compilation_time_sum_squared_millis = 16; 20866 optional int32 compilation_time_count = 17; 20867 20868 // How many times this atom occurred locally before being pushed. 20869 optional int32 count = 18; 20870 20871 // model_arch_hash compressed to 64 bits by bitwise-xor each 64 chunk of model_arch_hash. 20872 optional int64 model_arch_hash_64 = 19; 20873} 20874 20875/** 20876 * Logs when NNAPI model fails compilation 20877 * Logged from 20878 * modules/NeuralNetworks/runtime/TelemetryStatsd.cpp 20879 */ 20880message NeuralNetworksCompilationFailed { 20881 // Linux process uid for the package. 20882 optional int32 uid = 1 [(is_uid) = true]; 20883 20884 // id which identifies single session of client interacting with NNAPI runtime 20885 optional int32 session_id = 2; 20886 20887 // NNAPI mainline module version. 20888 optional int64 version_nnapi_module = 3; 20889 20890 // An identifier that can be used to match events for ML model architecture. 20891 // Hash is generated from model operations and operands definition, but not weights. 20892 // Hash algorithm: HMAC-SHA256 20893 // Size: 32 byte 20894 optional bytes model_arch_hash = 4 [(log_mode) = MODE_BYTES]; 20895 20896 // Device driver identifier used by this compilation. 20897 // NeuralNetworks models are compiled/prepared for one or more device drivers (e.g., DSP, GPU, 20898 // TPU, CPU). The device driver identifier is a concatenation of [device driver name, =, and 20899 // device driver version]. If multiple device drivers are used, all device driver identifiers 20900 // are sorted and concatenated with comma as a separator. 20901 optional string device_id = 5; 20902 20903 // Type of tensors used for inputs 20904 optional android.neuralnetworks.DataClass input_data_class = 6; 20905 20906 // Type of tensors used for outputs 20907 optional android.neuralnetworks.DataClass output_data_class = 7; 20908 20909 // Error code returned by compilation call 20910 optional android.neuralnetworks.ResultCode error_code = 8; 20911 20912 // Did client name target devices explicitly? 20913 optional bool introspection_enabled = 9; 20914 20915 // Was cache enabled? 20916 optional bool cache_enabled = 10; 20917 20918 // Was control flow used in the model? 20919 optional bool has_control_flow = 11; 20920 20921 // Whether there exists a partition boundary in the compilation that has dynamic size 20922 optional bool has_dynamic_temporaries = 12; 20923 20924 // How many times this atom occurred locally before being pushed. 20925 optional int32 count = 13; 20926 20927 // model_arch_hash compressed to 64 bits by bitwise-xor each 64 chunk of model_arch_hash. 20928 optional int64 model_arch_hash_64 = 14; 20929} 20930 20931/** 20932 * Logs when NNAPI model is executed successfully 20933 * 20934 * Logged from 20935 * modules/NeuralNetworks/runtime/TelemetryStatsd.cpp 20936 */ 20937message NeuralNetworksExecutionCompleted { 20938 // Linux process uid for the package. 20939 optional int32 uid = 1 [(is_uid) = true]; 20940 20941 // id which identifies single session of client interacting with NNAPI runtime 20942 optional int32 session_id = 2; 20943 20944 // NNAPI mainline module version. 20945 optional int64 version_nnapi_module = 3; 20946 20947 // An identifier that can be used to match events for ML model architecture. 20948 // Hash is generated from model operations and operands definition, but not weights. 20949 // Hash algorithm: HMAC-SHA256 20950 // Size: 32 byte 20951 optional bytes model_arch_hash = 4 [(log_mode) = MODE_BYTES]; 20952 20953 // Device driver identifier used by this execution. 20954 // NeuralNetworks models are executed on one or more device drivers (e.g., DSP, GPU, TPU, CPU). 20955 // The device driver identifier is a concatenation of [device driver name, =, and device driver 20956 // version]. If multiple device drivers are used, all device driver identifiers are sorted and 20957 // concatenated with comma as a separator. 20958 optional string device_id = 5; 20959 20960 // Execution mode 20961 optional android.neuralnetworks.Mode mode = 6; 20962 20963 // Type of tensors used for inputs 20964 optional android.neuralnetworks.DataClass input_data_class = 7; 20965 20966 // Type of tensors used for outputs 20967 optional android.neuralnetworks.DataClass output_data_class = 8; 20968 20969 // Did client name target devices explicitly? 20970 optional bool introspection_enabled = 9; 20971 20972 // Was cache enabled? 20973 optional bool cache_enabled = 10; 20974 20975 // Was control flow used in the model? 20976 optional bool has_control_flow = 11; 20977 20978 // Whether there exists a partition boundary in the compilation that has dynamic size 20979 optional bool has_dynamic_temporaries = 12; 20980 20981 // Time taken to execute from runtime, including runtime/ipc overhead 20982 optional int64 duration_runtime_sum_micros = 13; 20983 optional int64 duration_runtime_min_micros = 14; 20984 optional int64 duration_runtime_max_micros = 15; 20985 optional int64 duration_runtime_sum_squared_micros = 16; 20986 optional int32 duration_runtime_count = 17; 20987 20988 // Time taken to execute in the driver, excluding runtime/ipc overhead 20989 optional int64 duration_driver_sum_micros = 18; 20990 optional int64 duration_driver_min_micros = 19; 20991 optional int64 duration_driver_max_micros = 20; 20992 optional int64 duration_driver_sum_squared_micros = 21; 20993 optional int32 duration_driver_count = 22; 20994 20995 // Time taken to execute on the hardware, excluding driver overhead 20996 optional int64 duration_hardware_sum_micros = 23; 20997 optional int64 duration_hardware_min_micros = 24; 20998 optional int64 duration_hardware_max_micros = 25; 20999 optional int64 duration_hardware_sum_squared_micros = 26; 21000 optional int32 duration_hardware_count = 27; 21001 21002 // How many times this atom occurred locally before being pushed. 21003 optional int32 count = 28; 21004 21005 // model_arch_hash compressed to 64 bits by bitwise-xor each 64 chunk of model_arch_hash. 21006 optional int64 model_arch_hash_64 = 29; 21007} 21008 21009/** 21010 * Logs when NNAPI model fails execution 21011 * Logged from 21012 * modules/NeuralNetworks/runtime/TelemetryStatsd.cpp 21013 */ 21014message NeuralNetworksExecutionFailed { 21015 // Linux process uid for the package. 21016 optional int32 uid = 1 [(is_uid) = true]; 21017 21018 // id which identifies single session of client interacting with NNAPI runtime 21019 optional int32 session_id = 2; 21020 21021 // NNAPI mainline module version. 21022 optional int64 version_nnapi_module = 3; 21023 21024 // An identifier that can be used to match events for ML model architecture. 21025 // Hash is generated from model operations and operands definition, but not weights. 21026 // Hash algorithm: HMAC-SHA256 21027 // Size: 32 byte 21028 optional bytes model_arch_hash = 4 [(log_mode) = MODE_BYTES]; 21029 21030 // Device driver identifier used by this execution. 21031 // NeuralNetworks models are executed on one or more device drivers (e.g., DSP, GPU, TPU, CPU). 21032 // The device driver identifier is a concatenation of [device driver name, =, and device driver 21033 // version]. If multiple device drivers are used, all device driver identifiers are sorted and 21034 // concatenated with comma as a separator. 21035 optional string device_id = 5; 21036 21037 // Execution mode 21038 optional android.neuralnetworks.Mode mode = 6; 21039 21040 // Type of tensors used for inputs 21041 optional android.neuralnetworks.DataClass input_data_class = 7; 21042 21043 // Type of tensors used for outputs 21044 optional android.neuralnetworks.DataClass output_data_class = 8; 21045 21046 // Error code returned by execution call 21047 optional android.neuralnetworks.ResultCode error_code = 9; 21048 21049 // Did client name target devices explicitly? 21050 optional bool introspection_enabled = 10; 21051 21052 // Was cache enabled? 21053 optional bool cache_enabled = 11; 21054 21055 // Was control flow used in the model? 21056 optional bool has_control_flow = 12; 21057 21058 // Whether there exists a partition boundary in the compilation that has dynamic size 21059 optional bool has_dynamic_temporaries = 13; 21060 21061 // How many times this atom occurred locally before being pushed. 21062 optional int32 count = 14; 21063 21064 // model_arch_hash compressed to 64 bits by bitwise-xor each 64 chunk of model_arch_hash. 21065 optional int64 model_arch_hash_64 = 15; 21066} 21067 21068/** 21069 * Logs boot-time info for a Context Hub. 21070 */ 21071message ContextHubBooted { 21072 // The amount of time it took the framework to connect to CHRE/Context Hub HAL 21073 // since the framework has booted. 21074 optional int64 boot_time_nanos = 1; 21075 21076 // The number of Context Hub instances found on this system. 21077 optional int32 num_context_hubs = 2; 21078} 21079 21080/** 21081 * Logs Context Hub restart events (e.g. crashes). 21082 */ 21083message ContextHubRestarted { 21084 // The duration of time between the last time Context Hub restart and this event. 21085 // This should use the SystemClock.elapsedRealTime() API. 21086 optional int64 elapsed_time_millis_since_boot = 1; 21087 21088 // The ID of the Context Hub that has restarted (zero-indexed). 21089 optional int32 context_hub_id = 2; 21090} 21091 21092/** 21093 * Logs a snapshot of all the nanoapps loaded on this Context Hub. 21094 */ 21095message ContextHubLoadedNanoappSnapshotReported { 21096 // The ID of the Context Hub the snapshot is for (zero-indexed). 21097 optional int32 context_hub_id = 1; 21098 21099 // The nanoapp this snapshot is for. The nanoapp ID is the 64-bit unique identifier 21100 // for the application, and the version is the semantic versioning (https://semver.org) 21101 // used to determine the software version. 21102 optional int64 nanoapp_id = 2; 21103 optional int32 nanoapp_version = 3; 21104} 21105 21106/** 21107 * Logs details of a dynamic CHRE nanoapp code download transaction. 21108 */ 21109message ChreCodeDownloadTransacted { 21110 enum Type { 21111 TYPE_UNKNOWN = 0; 21112 TYPE_LOAD = 1; 21113 TYPE_UNLOAD = 2; 21114 } 21115 // The ID/version of the nanoapp this code download was for. 21116 optional int64 nanoapp_id = 1; 21117 optional int32 nanoapp_version = 2; 21118 21119 // The type of code download transaction. 21120 optional Type transaction_type = 3; 21121 21122 // The result of this transaction. 21123 optional android.contexthub.ContextHubTransactionResult transaction_result = 4; 21124} 21125 21126/** 21127 * Stats about each feature tag that was included in the registration. 21128 * 21129 * Logged from: 21130 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/RcsStats.java 21131 */ 21132message ImsRegistrationFeatureTagStats { 21133 // the carrier id associated with this SIP delegate 21134 // Used as a dimension 21135 optional int32 carrier_id = 1; 21136 21137 // The slot id associated with this SIP delegate 21138 // Used as a dimension 21139 optional int32 slot_id = 2; 21140 21141 // The name of the feature tag 21142 // used as a dimension 21143 optional android.telephony.ImsFeatureTag feature_tag_name = 3; 21144 21145 // The underlying radio technology type associated with the feature tag 21146 // used as a dimension 21147 // See the ImsRegistrationImplBase#REGISTRATION_TECH* 21148 optional int32 registration_tech = 4; 21149 21150 // The time this feature tag was registered, rounded to 5 minutes 21151 optional int32 registered_seconds = 5; 21152} 21153 21154/** 21155 * Stats about the messaging client interacting with telephony 21156 * 21157 * Logged from: 21158 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/RcsStats.java 21159 */ 21160message RcsClientProvisioningStats { 21161 enum EventType { 21162 EVENT_TYPE_UNSPECIFIED = 0; 21163 // The client sent its client params to the ACS service. 21164 CLIENT_PARAMS_SENT = 1; 21165 // The client has manually triggered reconfiguration 21166 TRIGGER_RCS_RECONFIGURATION = 2; 21167 // Default messaging application changed. 21168 DMA_CHANGED = 3; 21169 } 21170 // Carrier ID of the SIM used for IMS registration. 21171 // See https://source.android.com/devices/tech/config/carrierid. 21172 // Used as a dimension 21173 optional int32 carrier_id = 1; 21174 21175 // Index of the SIM used, 0 for single-SIM devices. 21176 // Used as a dimension 21177 optional int32 slot_id = 2; 21178 21179 // Used as a dimension 21180 optional EventType event = 3; 21181 21182 // The number of times this event has occurred. 21183 optional int32 count = 4; 21184} 21185 21186/** 21187 * Stats about the RCS provisioning via ACS 21188 * 21189 * Logged from: 21190 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/RcsStats.java 21191 */ 21192message RcsAcsProvisioningStats { 21193 enum ResponseType { 21194 RESPONSE_TYPE_UNSPECIFIED = 0; 21195 // a provisioning request resulted in an error. 21196 ERROR = 1; 21197 // a provisioning request succeeded and provided an xml 21198 PROVISIONING_XML = 2; 21199 // a provisioning request has resulted in a "pre-provisioning" xml, which 21200 // means RCS is not provisioned and requires the user to intervene. 21201 PRE_PROVISIONING_XML = 3; 21202 } 21203 21204 // Carrier ID of the SIM used for IMS registration. 21205 // See https://source.android.com/devices/tech/config/carrierid. 21206 // Used as a dimension 21207 optional int32 carrier_id = 1; 21208 21209 // Index of the SIM used, 0 for single-SIM devices. 21210 // Used as a dimension 21211 optional int32 slot_id = 2; 21212 21213 // The response code of provisioning if the provisioning resulted in 21214 // ResponseType.ERROR 21215 // Used as a dimension 21216 optional int32 response_code = 3; 21217 21218 // used as a dimension. 21219 optional ResponseType response_type = 4; 21220 21221 // Does the provisioning XML have single registration provisioned. 21222 // Populated if response_type is ResponseType.PROVISIONING_XML 21223 // used as a dimension 21224 optional bool is_single_registration_enabled = 5; 21225 21226 // The number of times this event has occurred. 21227 optional int32 count = 6; 21228 21229 // The amount of time in seconds that the device was in this state in total, rounded 5 minutes 21230 optional int32 state_timer_sec = 7; 21231} 21232 21233/** 21234 * Metrics surrounding the lifetime of a SIP delegate created by applications. 21235 * 21236 * Logged from: 21237 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/RcsStats.java 21238 */ 21239message SipDelegateStats { 21240 // The random number identifier with this SIP delegate 21241 optional int32 dimension = 1; 21242 21243 // The carrier id associated with this SIP delegate 21244 optional int32 carrier_id = 2; 21245 21246 // The slot id associated with this SIP delegate 21247 optional int32 slot_id = 3; 21248 21249 // The total uptime of this delegate, rounded 5 minutes 21250 optional int32 uptime_seconds = 4; 21251 21252 // The reason why this SIP delegate was destroyed. 21253 // See the SipDelegateManager#SIP_DELEGATE_DESTROY_REASON* 21254 optional int32 destroy_reason = 5; 21255} 21256 21257/** 21258 * Tracks each feature tag associated with the SipDelegates that are currently active. 21259 * 21260 * Logged from: 21261 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/RcsStats.java 21262 */ 21263message SipTransportFeatureTagStats { 21264 // the carrier id associated with this SIP delegate 21265 // Used as a dimension 21266 optional int32 carrier_id = 1; 21267 21268 // The slot id associated with this SIP delegate 21269 // Used as a dimension 21270 optional int32 slot_id = 2; 21271 21272 // The name of the feature tag 21273 // used as a dimension 21274 optional android.telephony.ImsFeatureTag feature_tag_name = 3; 21275 21276 // The reason why this feature tag was denied on the SIP Transport 21277 // used as a dimension 21278 // Use SIP transport denied reason. 21279 // See the SipDelegateManager#DENIED_REASON* 21280 optional int32 sip_transport_denied_reason = 4; 21281 21282 // The reason why this feature tag was associated with the SIP Transport but not 21283 // marked as deregistered. 21284 // used as a dimension 21285 // Use SIP transport deregistered reason. 21286 // See the DelegateRegistrationState#DEREGISTERING_REASON* 21287 optional int32 sip_transport_deregistered_reason = 5; 21288 21289 // the time this feature tag was in this state, rounded 5 minutes 21290 optional int32 associated_seconds = 6; 21291} 21292 21293/** 21294 * Tracks each SIP message and the response from either the app or network. 21295 * 21296 * Logged from: 21297 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/RcsStats.java 21298 */ 21299message SipMessageResponse { 21300 enum Direction { 21301 UNKNOWN = 0; 21302 INCOMING = 1; 21303 OUTGOING = 2; 21304 } 21305 // the carrier id associated with this SIP delegate 21306 // Used as a dimension 21307 optional int32 carrier_id = 1; 21308 21309 // The slot id associated with this SIP delegate 21310 // Used as a dimension 21311 optional int32 slot_id = 2; 21312 21313 // The SIP message method type (INVITE, MESSAGE, etc...) 21314 // used as a dimension 21315 optional android.telephony.SipRequestMethodType sip_message_method = 3; 21316 21317 // The SIP message response code, used if this is a response to a request. 21318 // used as a dimension. 21319 optional int32 sip_message_response = 4; 21320 21321 // The SIP message direction 21322 // used as a dimension 21323 optional Direction sip_message_direction = 5; 21324 21325 // The response from the SIP stack to sending/receiving the message 21326 // used as a dimension 21327 // See the SipDelegateManager#MESSAGE_FAILURE_REASON* 21328 optional int32 message_error = 6; 21329 21330 // The number of messages that fit this criteria. 21331 optional int32 count = 7; 21332} 21333 21334/** 21335 * Tracks SIP sessions managed by the SIP transport. 21336 * 21337 * Logged from: 21338 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/RcsStats.java 21339 */ 21340message SipTransportSession { 21341 enum Direction { 21342 UNKNOWN = 0; 21343 INCOMING = 1; 21344 OUTGOING = 2; 21345 } 21346 // the carrier id associated with this SIP delegate 21347 // Used as a dimension 21348 optional int32 carrier_id = 1; 21349 21350 // The slot id associated with this SIP delegate 21351 // Used as a dimension 21352 optional int32 slot_id = 2; 21353 21354 // The SIP message method that started the session (INVITE, SUBSCRIBE, etc...) 21355 // used as a dimension 21356 optional android.telephony.SipRequestMethodType session_method = 3; 21357 21358 // The SIP message direction 21359 // used as a dimension 21360 optional Direction sip_message_direction = 4; 21361 21362 // The response from the SIP stack or network. 21363 // used as a dimension. 21364 optional int32 sip_response = 5; 21365 21366 // The number of these sessions counted 21367 optional int32 session_count = 6; 21368 21369 // The number of sessions that were started properly and did not require 21370 // the SIP transport to forcefully close them. 21371 optional int32 ended_gracefully_count = 7; 21372} 21373 21374/** 21375 * Used to determine if there were dedicated bearers set up for a specific listener. 21376 * If not, this indicates that there may have been a network issue in the dedicated bearer setup. 21377 * 21378 * Logged from: 21379 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/RcsStats.java 21380 */ 21381message ImsDedicatedBearerListenerEvent { 21382 // Carrier ID of the SIM used for IMS registration. 21383 // See https://source.android.com/devices/tech/config/carrierid. 21384 // Used as a dimension 21385 optional int32 carrier_id = 1; 21386 21387 // Index of the SIM used, 0 for single-SIM devices. 21388 // Used as a dimension 21389 optional int32 slot_id = 2; 21390 21391 // Radio access technology (RAT) used by the registration when it terminated. 21392 // The value is either 4G or 5G. 21393 // Used as a dimension 21394 optional android.telephony.NetworkTypeEnum rat_at_end = 3; 21395 21396 // QoS class identifier. 21397 // dimension 21398 optional int32 qci = 4; 21399 21400 // True if there was a dedicated bearer established for this listener. 21401 // dimension 21402 optional bool dedicated_bearer_established = 5; 21403 21404 // The count of listeners with this result. 21405 optional int32 event_count = 6; 21406} 21407 21408/** 21409 * Logs information related to ims dedicated bearer which fulfills required qos and provides guaranteed service. 21410 * 21411 * Logged from: 21412 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/RcsStats.java 21413 */ 21414message ImsDedicatedBearerEvent { 21415 enum State { 21416 STATE_UNSPECIFIED = 0; 21417 STATE_ADDED = 1; 21418 STATE_MODIFIED = 2; 21419 STATE_DELETED = 3; 21420 } 21421 // Carrier ID of the SIM used for IMS registration. 21422 // See https://source.android.com/devices/tech/config/carrierid. 21423 // Used as a dimension 21424 optional int32 carrier_id = 1; 21425 21426 // Index of the SIM used, 0 for single-SIM devices. 21427 // Used as a dimension 21428 optional int32 slot_id = 2; 21429 21430 // Radio access technology (RAT) used by the registration when it terminated. 21431 // The value is either 4G or 5G. 21432 // Used as a dimension 21433 optional android.telephony.NetworkTypeEnum rat_at_end = 3; 21434 21435 // Qos class identifier. 21436 // Used as a dimension 21437 optional int32 qci = 4; 21438 21439 // Dedicated bearer state from the network. 21440 // Used as a dimension 21441 optional State bearer_state = 5; 21442 21443 // Whether location connection information is received. 21444 // Used as a dimension 21445 optional bool local_connection_info_received = 6; 21446 21447 // Whether remote connection information is received. 21448 // Used as a dimension 21449 optional bool remote_connection_info_received = 7; 21450 21451 // Whether or not the QoS indication had listeners. 21452 // Used as a dimension 21453 optional bool has_listeners = 8; 21454 21455 // The count that matches the above conditions. 21456 optional int32 count = 9; 21457} 21458 21459/** 21460 * Stats about each ServiceDescription that was included in the PIDF XML sent to the network during publish. 21461 * 21462 * Logged from: 21463 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/RcsStats.java 21464 */ 21465message ImsRegistrationServiceDescStats { 21466 // Describe Service IDs will be included PUBLISH 21467 // See RcsContactPresenceTuple.java 21468 enum ServiceId { 21469 SERVICE_ID_UNSPECIFIED = 0; 21470 SERVICE_ID_CUSTOM = 1; 21471 SERVICE_ID_MMTEL = 2; 21472 SERVICE_ID_CHAT_V1 = 3; 21473 SERVICE_ID_CHAT_V2 = 4; 21474 SERVICE_ID_FT = 5; 21475 SERVICE_ID_FT_OVER_SMS = 6; 21476 SERVICE_ID_GEO_PUSH = 7; 21477 SERVICE_ID_GEO_PUSH_VIA_SMS = 8; 21478 SERVICE_ID_CALL_COMPOSER = 9; 21479 SERVICE_ID_POST_CALL = 10; 21480 SERVICE_ID_SHARED_MAP = 11; 21481 SERVICE_ID_SHARED_SKETCH = 12; 21482 SERVICE_ID_CHATBOT = 13; 21483 SERVICE_ID_CHATBOT_STANDALONE = 14; 21484 SERVICE_ID_CHATBOT_ROLE = 15; 21485 } 21486 21487 // the carrier id associated with this SIP delegate 21488 // Used as a dimension 21489 optional int32 carrier_id = 1; 21490 21491 // The slot id associated with this SIP delegate 21492 // Used as a dimension 21493 optional int32 slot_id = 2; 21494 21495 // The service id portion of the ServiceDescription 21496 // used as a dimension 21497 optional ServiceId service_id_name = 3; 21498 21499 // The version portion of the ServiceDescription 21500 // used as a dimension 21501 optional float service_id_version = 4; 21502 21503 // The underlying radio technology type associated with the feature tag 21504 // used as a dimension 21505 // See the ImsRegistrationImplBase#REGISTRATION_TECH* 21506 optional int32 registration_tech = 5; 21507 21508 // the time this feature tag was registered, rounded 5 minutes 21509 optional int32 published_seconds = 6; 21510} 21511 21512/** 21513 * Stats related to UCE queries to the network 21514 * 21515 * Logged from: 21516 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/RcsStats.java 21517 */ 21518message UceEventStats { 21519 enum MessageType { 21520 MESSAGE_TYPE_UNSPECIFIED = 0; 21521 PUBLISH = 1; 21522 SUBSCRIBE = 2; 21523 INCOMING_OPTION = 3; 21524 OUTGOING_OPTION = 4; 21525 } 21526 enum CommandCode { 21527 SERVICE_UNKNOWN = 0; 21528 GENERIC_FAILURE = 1; 21529 INVALID_PARAM = 2; 21530 FETCH_ERROR = 3; 21531 REQUEST_TIMEOUT = 4; 21532 INSUFFICIENT_MEMORY = 5; 21533 LOST_NETWORK_CONNECTION = 6; 21534 NOT_SUPPORTED = 7; 21535 NOT_FOUND = 8; 21536 SERVICE_UNAVAILABLE = 9; 21537 NO_CHANGE = 10; 21538 } 21539 // Carrier ID of the SIM used for IMS registration. 21540 // See https://source.android.com/devices/tech/config/carrierid. 21541 // Used as a dimension 21542 optional int32 carrier_id = 1; 21543 21544 // Index of the SIM used, 0 for single-SIM devices. 21545 // Used as a dimension 21546 optional int32 slot_id = 2; 21547 21548 // Used to identify the message type. 21549 // Used as a dimension 21550 optional MessageType type = 3; 21551 21552 // Whether the UCE event is successfully finished. If false, the request to the 21553 // modem timed out and we sent a timeout error back to the requesting app. 21554 // Used as a dimension 21555 optional bool successful = 4; 21556 21557 // The command error code for the Uce event. Not populated if the modem 21558 // accepted the request and delivered a network_response. 21559 // Used as a dimension 21560 optional CommandCode command_code = 5; 21561 21562 // The network response code for the Uce event. Will not be populated if 21563 // command_code is present. 21564 // Used as a dimension 21565 optional int32 network_response = 6; 21566 21567 // The count that matches the above conditions; 21568 optional int32 count = 7; 21569} 21570 21571/** 21572 * Information related to a SIP NOTIFY event from modem. 21573 * 21574 * Logged from: 21575 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/RcsStats.java 21576 */ 21577message PresenceNotifyEvent { 21578 // See RFC3265 Section 3.2.4 for more information about these subscription states. 21579 enum TerminatedReason { 21580 REASON_UNSPECIFIED = 0; 21581 // Not spec defined, the network returned a custom code that is not spec defined. 21582 REASON_CUSTOM = 1; 21583 REASON_DEACTIVATED = 2; 21584 REASON_PROBATION = 3; 21585 REASON_REJECTED = 4; 21586 REASON_TIMEOUT = 5; 21587 REASON_GIVEUP = 6; 21588 REASON_NORESOURCE = 7; 21589 } 21590 21591 // Carrier ID of the SIM used for IMS registration. 21592 // See https://source.android.com/devices/tech/config/carrierid. 21593 // Used as a dimension 21594 optional int32 carrier_id = 1; 21595 21596 // Index of the SIM used, 0 for single-SIM devices. 21597 // Used as a dimension 21598 optional int32 slot_id = 2; 21599 21600 // The terminated reason associated with the subscription state. 21601 // Used as a dimension 21602 optional TerminatedReason reason = 3; 21603 21604 // Whether or not the NOTIFY received contained at least one body with PIDF 21605 // content before moving to the terminated state. 21606 // Used as a dimension 21607 optional bool content_body_received = 4; 21608 21609 // The count of PIDF info received that contained RCS caps. 21610 optional int32 rcs_caps_count = 5; 21611 21612 // The count of PIDF info received that contained MMTEL caps. 21613 optional int32 mmtel_caps_count = 6; 21614 21615 // The count of PIDF info received that contained no mmtel or RCS caps. 21616 optional int32 no_caps_count = 7; 21617 21618 // The count that matches the above conditions; 21619 optional int32 count = 8; 21620} 21621 21622/** 21623 * Tracks GBA requests from applications 21624 * 21625 * Logged from: 21626 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/RcsStats.java 21627 */ 21628message GbaEvent { 21629 enum FailedReason { 21630 UNKNOWN = 0; 21631 FEATURE_NOT_SUPPORTED = 1; 21632 FEATURE_NOT_READY = 2; 21633 NETWORK_FAILURE = 3; 21634 INCORRECT_NAF_ID = 4; 21635 SECURITY_PROTOCOL_NOT_SUPPORTED = 5; 21636 } 21637 // Carrier ID of the SIM used for IMS registration. 21638 // See https://source.android.com/devices/tech/config/carrierid. 21639 // Used as a dimension 21640 optional int32 carrier_id = 1; 21641 21642 // Index of the SIM used, 0 for single-SIM devices. 21643 // Used as a dimension 21644 optional int32 slot_id = 2; 21645 21646 // Whether the GBA event is successful. 21647 // Used as a dimension 21648 optional bool successful = 3; 21649 21650 // Gba authentication failed reason. 21651 // Used as a dimension 21652 optional FailedReason failed_reason = 4; 21653 21654 // The count that matches the above conditions. 21655 optional int32 count = 5; 21656} 21657 21658/* 21659 * Logs details of initiated UWB ranging session 21660 * Logged from packages/modules/Uwb/service/java/com/android/server/uwb/UwbMetrics.java 21661 */ 21662message UwbSessionInitiated { 21663 // UWB profiles 21664 optional android.uwb.Profile profile = 1; 21665 // Scrambled timestamp sequence (STS) Type 21666 optional android.uwb.Sts sts = 2; 21667 // Was it an initiator as opposed to responder? 21668 optional bool is_initiator = 3; 21669 // Was it a controller as opposed to controlee? 21670 optional bool is_controller = 4; 21671 // Was the discovery done by the framework? 21672 optional bool is_discovered_by_framework = 5; 21673 // Was it out-of-band connection as opposed to in-band connection? 21674 // Note that this field is ignored if is_discovered_by_framework is false. 21675 optional bool is_out_of_band = 6; 21676 // UWB channel 5, 6, 9, etc. 21677 optional int32 channel = 7; 21678 // The status code of session initialization. 21679 optional android.uwb.Status status = 8; 21680 // Initialization latency in ms if is_discovered_by_framework is true. 21681 optional int32 latency_ms = 9; 21682 // Initialization latency in step size of 200 ms if is_discovered_by_framework is true. 21683 optional int32 latency_200ms = 10; 21684 // The uid of the app that initiates the connection. 21685 optional int32 uid = 11 [(is_uid) = true]; 21686 // Ranging interval of the session in ms. 21687 optional int32 ranging_interval_ms = 12; 21688 // How many ongoing session when current session is initiated? 21689 optional int32 parallel_session_count = 13; 21690 // Composed value for UWB filter configurations. 21691 // This value combines the boolean value of multiple feature flags for 21692 // UWB filter configuration into one integer, where the bits of its binary value 21693 // are for the flags 21694 // Below are the flags from LSB to MSB, 1 for enabled and 0 for disabled 21695 // bit 0: filter_enabled 21696 // bit 1: enable_azimuth_mirroring 21697 // bit 2: enable_primer_aoa 21698 // bit 3: enable_primer_est_elevation 21699 // bit 4: enable_primer_fov 21700 // bit 5: predict_rear_azimuths 21701 // For example, when all flags are enabled this value is 63 (0b111111) 21702 // Refer to packages/modules/Uwb/service/ServiceUwbResources/res/values/config.xml 21703 // for more information about the flags 21704 optional int32 filter_config_value = 14; 21705} 21706 21707/* 21708 * Logs details of closed UWB ranging session 21709 * Logged from packages/modules/Uwb/service/java/com/android/server/uwb/UwbMetrics.java 21710 */ 21711message UwbSessionClosed { 21712 // UWB profiles 21713 optional android.uwb.Profile profile = 1; 21714 // Scrambled timestamp sequence (STS) Type 21715 optional android.uwb.Sts sts = 2; 21716 // Was it an initiator as opposed to responder? 21717 optional bool is_initiator = 3; 21718 // Was it a controller as opposed to controlee? 21719 optional bool is_controller = 4; 21720 // Was the connection done by the app as opposed to by the framework? 21721 optional bool is_framework_initiated = 5; 21722 // Was it out-of-band connection as opposed to in-band connection? 21723 // Note that this field is ignored if is_framework_initiated is false. 21724 optional bool is_out_of_band = 6; 21725 // Session active duration in seconds 21726 optional int32 duration_sec = 7; 21727 // Session active duration bucket 21728 optional android.uwb.DurationBucket duration_bucket = 8; 21729 // Total ranging measurement count 21730 optional int32 ranging_count = 9; 21731 // Valid ranging measurement count 21732 optional int32 valid_ranging_count = 10; 21733 // Ranging measurement count bucket. 21734 optional android.uwb.CountBucket ranging_count_bucket = 11; 21735 // Valid ranging measurement count bucket. 21736 optional android.uwb.CountBucket valid_ranging_count_bucket = 12; 21737 // Ranging start count 21738 optional int32 start_count = 13; 21739 // Ranging start failure count 21740 optional int32 start_failure_count = 14; 21741 // Ranging start without valid ranging result count 21742 optional int32 start_no_valid_report_count = 15; 21743 // Total Rx data packet count 21744 optional int32 rx_packet_count = 16; 21745 // Total Tx data packet count 21746 optional int32 tx_packet_count = 17; 21747 // Count of Rx data packet with error 21748 optional int32 rx_error_count = 18; 21749 // Count of Tx data packet with error 21750 optional int32 tx_error_count = 19; 21751 // Count of Rx data packets sent to upper layer 21752 optional int32 rx_to_upper_layer_count = 20; 21753 // Ranging Measurement Type 21754 optional android.uwb.RangingType ranging_type = 21; 21755 // The UID of the process that started the ranging session. 21756 optional int32 uid = 22 [(is_uid) = true]; 21757} 21758 21759/* 21760 * Logs details of start UWB ranging 21761 * Logged from packages/modules/Uwb/service/java/com/android/server/uwb/UwbMetrics.java 21762 */ 21763message UwbStartRanging { 21764 // UWB profiles 21765 optional android.uwb.Profile profile = 1; 21766 // Scrambled timestamp sequence (STS) Type 21767 optional android.uwb.Sts sts = 2; 21768 // Was it an initiator as opposed to responder? 21769 optional bool is_initiator = 3; 21770 // Was it a controller as opposed to controlee? 21771 optional bool is_controller = 4; 21772 // Was the connection done by the app as opposed to by the framework? 21773 optional bool is_framework_initiated = 5; 21774 // Was it out-of-band connection as opposed to in-band connection? 21775 // Note that this field is ignored if is_framework_initiated is false. 21776 optional bool is_out_of_band = 6; 21777 // The status code of ranging start. 21778 optional android.uwb.RangingStatus status = 7; 21779 // The UID of the process that started the ranging session. 21780 optional int32 uid = 8 [(is_uid) = true]; 21781} 21782 21783/* 21784 * Log that the ranging measurement is received 21785 * Logged from packages/modules/Uwb/service/java/com/android/server/uwb/UwbMetrics.java 21786 */ 21787message UwbRangingMeasurementReceived { 21788 // UWB profiles 21789 optional android.uwb.Profile profile = 1; 21790 // None-Line-of-sight (LOS) indication 21791 optional android.uwb.Nlos nlos = 2; 21792 // Was the distance valid? 21793 optional bool is_distance_valid = 3; 21794 // The distance measurement in centimeters. 21795 optional int32 distance_cm = 4; 21796 // The distance measurement in step size of 50 cm 21797 optional int32 distance_50cm = 5; 21798 // RSSI of ranging report, in dBm 21799 optional int32 rssi = 6; 21800 // Was azimuth angle valid? 21801 optional bool is_azimuth_valid = 7; 21802 // The azimuth angle measurement in degrees. 21803 optional int32 azimuth_degree = 8; 21804 // The azimuth angle measurement in step size of 10 degree. 21805 optional int32 azimuth_10degree = 9; 21806 // The figure of merit of azimuth angle measurement. 21807 optional int32 azimuth_fom = 10; 21808 // Was elevation angle valid? 21809 optional bool is_elevation_valid = 11; 21810 // The elevation angle measurement in degrees. 21811 optional int32 elevation_degree = 12; 21812 // The elevation angle measurement in step size of 10 degree. 21813 optional int32 elevation_10degree = 13; 21814 // The figure of merit of elevation angle measurement. 21815 optional int32 elevation_fom = 14; 21816 // Ranging Measurement Type 21817 optional android.uwb.RangingType ranging_type = 15; 21818 // The filtered distance measurement in centimeters. 21819 optional int32 filtered_distance_cm = 16; 21820 // The filtered azimuth angle measurement in degrees. 21821 optional int32 filtered_azimuth_degree = 17; 21822 // The filtered figure of merit of azimuth angle measurement. 21823 optional int32 filtered_azimuth_fom = 18; 21824 // The filtered elevation angle measurement in degrees. 21825 optional int32 filtered_elevation_degree = 19; 21826 // The filtered figure of merit of elevation angle measurement. 21827 optional int32 filtered_elevation_fom = 20; 21828 // The UID of the process that started the ranging session. 21829 optional int32 uid = 21 [(is_uid) = true]; 21830} 21831 21832/* 21833 * Log that the first ranging measurement is received 21834 * Logged from packages/modules/Uwb/service/java/com/android/server/uwb/UwbMetrics.java 21835 */ 21836message UwbFirstRangingReceived { 21837 // UWB profiles 21838 optional android.uwb.Profile profile = 1; 21839 // The latency between the ranging start/resume and 1st ranging measurement, in ms. 21840 optional int32 latency_ms = 2; 21841 // The ranging latency in 200ms. 21842 optional int32 latency_200ms = 3; 21843 // The UID of the process that started the ranging session. 21844 optional int32 uid = 4 [(is_uid) = true]; 21845} 21846 21847/* 21848 * Log that UWB device error is detected 21849 * Logged from packages/modules/Uwb/service/java/com/android/server/uwb/UwbMetrics.java 21850 */ 21851message UwbDeviceErrorReported { 21852 enum Type { 21853 UNKNOWN = 0; 21854 // Initialization error 21855 INIT_ERROR = 1; 21856 // Device status error 21857 DEVICE_STATUS_ERROR = 2; 21858 // UCI generic error 21859 UCI_GENERIC_ERROR = 3; 21860 } 21861 // Error type 21862 optional Type type= 1; 21863} 21864 21865/** 21866 * Log that the clipboard has been cleared 21867 * Logged from frameworks/base/services/core/java/android/content/ClipboardAutoWipeService.java 21868 */ 21869message ClipboardCleared { 21870 enum Source { 21871 SOURCE_UNKNOWN = 0; 21872 AUTO_CLEAR = 1; 21873 } 21874 21875 // Source of the wipe 21876 optional Source source = 1; 21877} 21878 21879/** 21880 * Pulls status for a SIM. 21881 * 21882 * Each pull creates multiple atoms, one for each SIM. The atom holds the status for a SIM that's 21883 * sensitive per carrier. The atom would be aggregated per carrier for analysis. 21884 * 21885 * Pulled from: 21886 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java 21887 */ 21888message PerSimStatus { 21889 enum WfcMode { 21890 UNKNOWN = 0; 21891 WIFI_ONLY = 1; 21892 CELLULAR_PREFERRED = 2; 21893 WIFI_PREFERRED = 3; 21894 } 21895 enum SimVoltageClass { 21896 VOLTAGE_CLASS_UNKNOWN = 0; 21897 VOLTAGE_CLASS_A = 1; 21898 VOLTAGE_CLASS_B = 2; 21899 VOLTAGE_CLASS_C = 3; 21900 } 21901 21902 // Index of the SIM, 0 for single-SIM devices. 21903 optional int32 sim_slot_index = 1; 21904 21905 // Carrier ID of the SIM. 21906 // See https://source.android.com/devices/tech/config/carrierid. 21907 optional int32 carrier_id = 2; 21908 21909 // Indicates whether phone number source UICC provides a phone number 21910 // and whether it agrees with other sources: 21911 // - 0: no number provided 21912 // - a positive integer (> 0): sources providing the same phone number 21913 // shall use the same integer. The integer shall start from 1, and 21914 // for each new unique source the next integer (2, 3, …) is used. 21915 // This way, the raw phone number cannot be derived from the value of 21916 // this field. 21917 // This also allows a quick check of conflicts: any field > 1 means conflict, 21918 // and the max means the count of unique phone numbers. 21919 optional int32 phone_number_source_uicc = 3; 21920 21921 // Indicates whether phone number source CARRIER provides a phone number 21922 // and whether it agrees with other sources. 21923 // See field phone_number_source_uicc. 21924 optional int32 phone_number_source_carrier = 4; 21925 21926 // Indicates whether phone number source IMS provides a phone number 21927 // and whether it agrees with other sources. 21928 // See field phone_number_source_uicc. 21929 optional int32 phone_number_source_ims = 5; 21930 21931 // Indicates whether VoLTE is enabled 21932 optional bool volte_enabled = 6; 21933 21934 // Indicates whether WFC is enabled 21935 optional bool wfc_enabled = 7; 21936 21937 // Indicates the user's WFC mode 21938 optional WfcMode wfc_mode = 8; 21939 21940 // Indicates the user's WFC mode when roaming 21941 optional WfcMode wfc_roaming_mode = 9; 21942 21943 // Indicates the user's setting for video calling. 21944 optional bool video_calling_enabled = 10; 21945 21946 // Indicates if data roaming is enabled 21947 optional bool data_roaming_enabled = 11; 21948 21949 // Indicates the list of networks allowed by the user. Bitmask is encoded as 21950 // TelephonyManager#NetworkTypeBitMask. 21951 optional int64 allowed_networks_by_user = 12; 21952 21953 // Indicates if 2G is disabled by the user using the "Allow 2G" toggle 21954 optional bool is_2g_disabled = 13; 21955 21956 // Indicates if PIN1 of the SIM card is enabled 21957 optional bool is_pin1_enabled = 14; 21958 21959 // Indicates the lowest voltage class supported by the SIM 21960 optional SimVoltageClass sim_voltage_class = 15; 21961 21962 // APN type bitmask of the APNs added or modified by user: 21963 // @ApnType in frameworks/base/telephony/java/android/telephony/Annotation.java. 21964 optional int32 user_modified_apn_type_bitmask = 16; 21965 21966 // Indicates the unmetered networks 21967 // Bitmask is encoded as TelephonyManager#NetworkTypeBitMask. 21968 optional int64 unmetered_networks = 17; 21969 21970 // Indicates whether VoNR is enabled 21971 optional bool vonr_enabled = 18; 21972 21973 // Indicates whether cross-SIM calling (WiFi calling over cellular data) is 21974 // enabled. 21975 optional bool cross_sim_calling_enabled = 19; 21976} 21977 21978/* 21979 * Logs Device Scan State events generated by Nearby Scan API. 21980 */ 21981message NearbyDeviceScanStateChanged { 21982 // Uid of the client that triggers the Nearby scan. 21983 optional int32 uid = 1 [(is_uid) = true]; 21984 21985 // Scan start timestamp as session id. 21986 optional int64 scan_session_id = 2; 21987 21988 // Scan state. 21989 optional android.nearby.NearbyScanState scan_state = 3; 21990 21991 // Scan type. 21992 optional android.nearby.NearbyScanType scan_type = 4; 21993 21994 // Medium that this device was discovered/lost. 21995 optional android.nearby.NearbyNetworkMedium network_medium = 5; 21996 21997 // Received Signal Strength Indication (RSSI) value of the device discovered/lost. 21998 optional int32 rssi = 6; 21999 22000 // Model of the device discovered/lost. 22001 optional string scanned_device_model = 7; 22002 22003 // Manufacturer of the device discovered/lost. 22004 optional string scanned_device_manufacturer = 8; 22005} 22006 22007/** 22008 * Logs when locales of an application are changed. 22009 * Logged from 22010 * frameworks/base/services/core/java/com/android/server/locales/LocaleManagerService.java 22011 */ 22012message ApplicationLocalesChanged { 22013 // The uid which invoked this update. The locales for an application 22014 // could be changed from the in-app picker OR from the settings UI. 22015 optional int32 calling_uid = 1 [(is_uid) = true]; 22016 22017 // The uid for which the locale change is being done. 22018 optional int32 target_uid = 2 [(is_uid) = true]; 22019 22020 // The new locales for the target package. A comma separated list of BCP 47 22021 // locale identifiers, compatible with LocaleList#forLanguageTags. 22022 optional string new_locales = 3; 22023 22024 // The previous locales for the target package. A comma separated list of 22025 // BCP 47 locale identifiers, compatible with LocaleList#forLanguageTags. 22026 optional string prev_locales = 4; 22027 22028 // Application locales changed status. 22029 enum Status { 22030 // A placeholder for unspecified values. 22031 STATUS_UNSPECIFIED = 0; 22032 22033 // New locales were committed. 22034 CONFIG_COMMITTED = 1; 22035 22036 // Likely because no change is required. 22037 CONFIG_UNCOMMITTED = 2; 22038 22039 // Failed because the target package is invalid. 22040 FAILURE_INVALID_TARGET_PACKAGE = 3; 22041 22042 // Failed because the calling package does not have the required permission. 22043 FAILURE_PERMISSION_ABSENT = 4; 22044 } 22045 22046 optional Status status = 5; 22047 22048 // The caller where changes application locales. 22049 enum Caller { 22050 // A placeholder for unknown value. 22051 CALLER_UNKNOWN = 0; 22052 22053 // The change was called from the delegate. 22054 CALLER_DELEGATE = 1; 22055 22056 // The change was called from Apps. 22057 CALLER_APPS = 2; 22058 22059 // The change was called from the system due to backup and restore. 22060 CALLER_BACKUP_RESTORE = 3; 22061 22062 // The change was called from the system when the app languages 22063 // feature or the set per-app locales was changed from opt-in to 22064 // opt-out. 22065 CALLER_APP_UPDATE_LOCALES_CHANGE = 4; 22066 22067 // The change was called from the system due to the dynamic locales 22068 // change. 22069 CALLER_DYNAMIC_LOCALES_CHANGE = 5; 22070 } 22071 22072 optional Caller caller = 6; 22073} 22074 22075/* Logs when the display HBM state changes. 22076 * 22077 * Logged from: 22078 * frameworks/base/services/core/java/com/android/server/display/HighBrightnessModeController.java 22079 */ 22080message DisplayHbmStateChanged { 22081 optional int32 display_id = 1; 22082 22083 // New HBM state 22084 optional android.server.display.HbmState state = 2; 22085 22086 // The reason the state changes. 22087 optional android.server.display.HbmStateTransitionReason reason = 3; 22088} 22089 22090/* 22091 * Logs when the display HBM brightness changes. 22092 * Logged from: 22093 * frameworks/base/services/core/java/com/android/server/display/AutomaticBrightnessControllerjava 22094 */ 22095message DisplayHbmBrightnessChanged { 22096 optional int32 display_id = 1; 22097 22098 // display brightness 22099 optional float brightness = 2; 22100} 22101 22102/** 22103 * Per-UID time spent running work on the GPU. 22104 * 22105 * Each pull creates multiple atoms, one per (GPU ID, UID) pair, for at most 10 22106 * randomly selected UIDs. 22107 * 22108 * Pulled from: 22109 * frameworks/native/services/gpuservice/gpuwork/GpuWork.cpp 22110 */ 22111message GpuWorkPerUid { 22112 // The UID (i.e. app id) that scheduled work on the GPU. 22113 optional int32 uid = 1 [(is_uid) = true]; 22114 22115 // The GPU ID for which we have work information. 22116 optional int32 gpu_id = 2; 22117 22118 // The time duration (in seconds) over which this data was collected (most 22119 // likely 24 hours). 22120 optional int32 time_duration_seconds = 3; 22121 22122 // The total amount of time (in milliseconds) the GPU spent running work for 22123 // |uid|. 22124 optional int32 total_active_duration_millis = 4; 22125 22126 // The total amount of time (in milliseconds) the GPU was inactive while 22127 // running "continuous" work for |uid|. This is estimated by adding up the 22128 // duration of the small gaps between GPU work for |uid|. 22129 optional int32 total_inactive_duration_millis = 5; 22130} 22131 22132/** 22133 * Logs when entries are dropped in DropBox and the reason for the drop. 22134 * 22135 * Logged from: frameworks/base/services/ 22136 */ 22137message DropboxEntryDropped { 22138 // Explains at which stage of the DropBox workflow the entry was dropped. 22139 enum DropReason { 22140 UNKNOWN = 0; 22141 CLEARING_DATA = 3; 22142 AGED = 4; 22143 WRITE_FAILURE = 5; 22144 ENTRY_TOO_LARGE = 6; 22145 22146 reserved 1, 2; 22147 } 22148 22149 optional DropReason drop_reason = 1; 22150 22151 // Tag describing the type of dropbox entry. 22152 optional string tag = 2; 22153 22154 // The age (millis) of the dropped dropbox entry. 22155 optional int64 age_millis = 3; 22156} 22157 22158message PersistentUriPermissionsFlushed { 22159 // Current amount of persistent uri permissions overall 22160 optional int32 permissions_flushed_amount = 1; 22161} 22162 22163message PersistentUriPermissionsAmountPerPackage { 22164 // The uid persistent uri permissions amount reported for 22165 optional int32 uid = 1 [(is_uid) = true]; 22166 // Current amount of persistent uri permissions for this package 22167 optional int32 amount = 2; 22168} 22169 22170/** 22171 * VBMeta Digest cryptographically encapsulates the composition of signed images or partitions of 22172 * a particular build. 22173 * 22174 * Logs when boot is complete. 22175 * Pushed from: 22176 * frameworks/base/services/core/java/com/android/server/BinaryTransparencyService.java 22177 */ 22178message VBMetaDigestReported { 22179 // the hex encoded string of VBMeta Digest value 22180 optional string vbmeta_digest = 1; 22181} 22182 22183/** 22184 * APEXs can either be signed by Google or OEMs. This atom captures basic metadata of APEXs 22185 * pre-installed on a build or a device. 22186 * 22187 * Logs when boot is complete. 22188 * Pushed from: 22189 * frameworks/base/services/core/java/com/android/server/BinaryTransparencyService.java 22190 */ 22191message ApexInfoGathered { 22192 // APEX package names are determined by OEMs 22193 optional string package_name = 1; 22194 // the version code of the APEX 22195 optional int64 version_code = 2; 22196 22197 // the hex encoded value of digest of the content of this APEX 22198 // we are deprecating the use of this going forward 22199 optional string content_digest = 3; 22200 22201 // the algorithm that the content digest is computed 22202 optional com.android.os.transparency.DigestAlgorithmType algo_type = 4; 22203 22204 // the SHA256 digest(s) of the APEX's signer certificate(s) 22205 repeated string signer_sha256_digest = 5; 22206} 22207 22208/** 22209 * MobileBundledApps (MBAs) include preloaded apps and apps that are installed in the background 22210 * without user knowledge/consent. 22211 * 22212 * However, note that we will only be recording *updated* preloaded apps + dynamic MBAs. 22213 * 22214 * Pushed from: 22215 * frameworks/base/services/core/java/com/android/server/BinaryTransparencyService.java 22216 * 22217 * Next ID: 12 22218 */ 22219message MobileBundledAppInfoGathered { 22220 // MBA package names are determined by developers (which can include OEMs) 22221 optional string package_name = 1; 22222 // the package version code of the MBA 22223 optional int64 version_code = 2; 22224 // the split name (empty if it's the base) 22225 optional string split_name = 11; 22226 22227 // the hex encoded value of digest of the content of the MBA 22228 optional string content_digest = 3; 22229 // the algorithm that the content_digest is computed 22230 optional com.android.os.transparency.DigestAlgorithmType algo_type = 4; 22231 // the SHA256 digest(s) of the APEX's signer certificate(s) 22232 repeated string signer_sha256_digest = 5; 22233 22234 enum MBAStatus { 22235 ERROR = 0; 22236 PRELOADED = 1; 22237 UPDATED_PRELOAD = 2; 22238 NEW_MBA = 3; 22239 UPDATED_NEW_MBA = 4; 22240 DOWNGRADED_PRELOADED = 5; 22241 UNINSTALLED_MBA = 6; 22242 } 22243 // whether the MBA is preloaded, dynamically installed, or uninstalled/downgraded 22244 optional MBAStatus mba_status = 6; 22245 // the package that initiated the installation of this MBA 22246 optional string initiator = 7; 22247 // the SHA256 digest(s) of the initiator's signer certificate(s) 22248 repeated string initiator_signer_sha256_digest = 8; 22249 // the package that installs this MBA 22250 optional string installer = 9; 22251 // the package on behalf of which initiator requested the installation of this MBA 22252 optional string originator = 10; 22253} 22254 22255/** 22256 * PVM is protected virtual machine. This atom captures the notion of a container 22257 * that describes a virtual machine. 22258 * 22259 * Will be pushed from: 22260 * frameworks/base/services/core/java/com/android/server/BinaryTransparencyService.java 22261 */ 22262message PvmInfoGathered { 22263 // PVM names are determined by OEMs 22264 optional string name = 1; 22265 // an int describing the version of the VM 22266 optional int64 version = 2; 22267 // the hex encoded SHA256 digest of the pvm descriptor file 22268 optional string sha256_digest = 3; 22269} 22270 22271/** 22272 * This will be pulled from 22273 * frameworks/base/services/core/java/com/android/server/BinaryTransparencyService.java 22274 */ 22275message SignedPartitionInfo { 22276 // partition name (e.g. vendor, product) is determined by OEM 22277 optional string partition_name = 1; 22278 // the hex encoded SHA256 digest of the partition image file 22279 optional string sha256_digest = 2; 22280} 22281 22282/** 22283 * Logs when Wear Settings UI is interacted with 22284 */ 22285message WearSettingsUIInteracted { 22286 /** The UI action category */ 22287 optional android.app.wearsettings.Action action = 1; 22288 22289 /** The ID of the entry that the users actioned on. */ 22290 optional android.app.wearsettings.ItemId item_id = 2; 22291} 22292 22293message TracingServiceReportEvent { 22294 enum Event { 22295 TRACING_SERVICE_REPORT_UNDEFINED = 0; 22296 22297 // Checkpoints inside TracingServiceProxy. 22298 TRACING_SERVICE_REPORT_BEGIN = 1; 22299 TRACING_SERVICE_REPORT_SVC_HANDOFF = 2; 22300 22301 // Guardrails inside TracingServiceProxy. 22302 TRACING_SERVICE_REPORT_BIND_PERM_INCORRECT = 3; 22303 TRACING_SERVICE_REPORT_SVC_PERM_MISSING = 4; 22304 TRACING_SERVICE_REPORT_SVC_COMM_ERROR = 5; 22305 } 22306 22307 // Which stage of the pipeline we are reporting from. 22308 optional Event event = 1; 22309 22310 // UUID of the trace. 22311 optional int64 trace_uuid_lsb = 2; 22312 optional int64 trace_uuid_msb = 3; 22313} 22314 22315/** Pulled from PinnerService. */ 22316message PinnedFileSizesPerPackage { 22317 // If the file is pinned but not as part of a specific pinned app, 22318 // this will be set to 1000 - the value of system_server. 22319 optional int32 uid = 1 [(is_uid) = true]; 22320 22321 // Consists of only the pinned file's filename, not its full path; for example 22322 // Given a pinned file at ‘/vendor/lib64/libCB.so’, then this field will be 22323 // Determined to have have the value ‘libCB.so’. 22324 optional string filename = 2; 22325 22326 // The size of the pinned file, in kilobytes. 22327 optional int32 size_kb = 3; 22328} 22329 22330/** Pulled from PendingIntentController. */ 22331message PendingIntentsPerPackage { 22332 // The UID of the app that sent the PendingIntent. 22333 optional int32 uid = 1 [(is_uid) = true]; 22334 // The total number of currently active PendingIntents belonging to this uid. 22335 optional int32 pending_intent_count = 2; 22336 // The total size of all currently active PendingIntents belonging to this uid, in kilobytes. 22337 optional int32 pending_intent_total_bundle_size_kb = 3; 22338} 22339 22340/* 22341 * Logs changes to game state set by game applications via GameService. 22342 */ 22343message GameStateChanged { 22344 enum State { 22345 // Game mode is unknown. 22346 MODE_UNKNOWN = 0; 22347 22348 // The game is not in active play, e.g.e the user is using a game menu. 22349 MODE_NONE = 1; 22350 22351 // The game is in active, but interruptible, game play. 22352 MODE_GAMEPLAY_INTERRUPTIBLE = 2; 22353 22354 // The game is in active user play mode, which cannot be interrupted. 22355 MODE_GAMEPLAY_UNINTERRUPTIBLE = 3; 22356 22357 // The current content shown is not gameplay related (e.g. an ad). 22358 MODE_CONTENT = 4; 22359 } 22360 22361 // Provided to ensure package is available even with UID sharing. 22362 optional string package_name = 1; 22363 22364 // The UID (i.e. app id). 22365 optional int32 uid = 2 [(is_uid) = true]; 22366 22367 // Whether the device enabled performance boost when the state was changed. 22368 optional bool boost_enabled = 3; 22369 22370 // This includes a top-level state for the game. 22371 optional State state = 4; 22372 22373 // Indicates if the game is loading assets/resources/compiling/etc. 22374 optional bool is_loading = 5; 22375 22376 // A developer-selected enum, for example to indicate level or scene. 22377 optional int32 label = 6; 22378 22379 // A developer-supplied enum, e.g. to indicate the current quality level. 22380 optional int32 quality = 7; 22381} 22382 22383/** 22384 * Log the duration of executing all receivers of LOCKED_BOOT_COMPLETED or BOOT_COMPLETED broadcast. 22385 * The dispatch latency is the dispatchTime - enqueueTime. 22386 * The completion latency is the completeTime - enqueueTime. 22387 * Logged from: 22388 * frameworks/base/services/core/java/com/android/server/am/BroadcastQueue.java 22389 */ 22390message BootCompletedBroadcastCompletionLatencyReported { 22391 enum Event { 22392 UNKNOWN = 0; 22393 LOCKED_BOOT_COMPLETED = 1; 22394 BOOT_COMPLETED = 2; 22395 } 22396 22397 optional Event event = 1; 22398 // from enqueueTime to dispatchTime. 22399 optional int32 dispatch_latency_uptime_millis = 2; 22400 // from enqueueTime to completeTime. 22401 optional int32 complete_latency_uptime_millis = 3; 22402 // from enqueueRealTime to dispatchRealTime. 22403 optional int32 dispatch_latency_realtime_millis = 4; 22404 // from enqueueRealTime to completeRealTime. 22405 optional int32 complete_latency_realtime_millis = 5; 22406 22407 optional int32 user_id = 6; 22408 optional UserLifecycleJourneyReported.UserType user_type = 7; 22409} 22410 22411/** 22412 * Log that the permission reminder notification has been displayed or clicked. 22413 */ 22414message PermissionReminderNotificationInteracted { 22415 // id which identifies single session of user interacting with permission 22416 // controller 22417 optional int64 session_id = 1; 22418 22419 enum Result { 22420 UNDEFINED = 0; 22421 // notification was presented to the user 22422 NOTIFICATION_PRESENTED = 1; 22423 // notification was clicked by the user 22424 NOTIFICATION_CLICKED = 2; 22425 } 22426 22427 // View / interaction recorded 22428 optional Result result = 2; 22429} 22430 22431/** 22432 * Log that the user has interacted with the permission decision screen. 22433 */ 22434message RecentPermissionDecisionsInteracted { 22435 // id which identifies single session of user interacting with permission 22436 // controller 22437 optional int64 session_id = 1; 22438 22439 enum Action { 22440 ACTION_UNKNOWN = 0; 22441 SCREEN_VIEWED = 1; 22442 REVIEW_DECISION = 2; 22443 VIEW_ALL_CLICKED = 3; 22444 } 22445 22446 // Action taken on the recent permission decisions page. 22447 optional Action action = 2; 22448 22449 // Uid of the package for the permission decision being reviewed 22450 optional int32 uid = 3 [(is_uid) = true]; 22451 22452 // Name of the permission for the permission decision being reviewed. 22453 optional string permission_group_name = 4; 22454} 22455 22456/** 22457 * Logs information about app background restrictions. 22458 * 22459 * Logged from: 22460 * frameworks/base/services/core/java/com/android/server/am/AppRestrictionController.java 22461 */ 22462message AppBackgroundRestrictionsInfo { 22463 // the uid of the app. 22464 optional int32 uid = 1 [(is_uid) = true]; 22465 22466 enum RestrictionLevel { 22467 LEVEL_UNKNOWN = 0; 22468 LEVEL_UNRESTRICTED = 1; 22469 LEVEL_EXEMPTED = 2; 22470 LEVEL_ADAPTIVE_BUCKET = 3; 22471 LEVEL_RESTRICTED_BUCKET = 4; 22472 LEVEL_BACKGROUND_RESTRICTED = 5; 22473 LEVEL_HIBERNATION = 6; 22474 } 22475 // indicates the app background restriction level. 22476 optional RestrictionLevel restriction_level = 2; 22477 22478 enum Threshold { 22479 THRESHOLD_UNKNOWN = 0; 22480 THRESHOLD_RESTRICTED = 1; // app was background restricted by the system. 22481 THRESHOLD_USER = 2; // app was background restricted by user action. 22482 } 22483 // indicates which threshold caused the app to be put into bg restriction. 22484 optional Threshold threshold = 3; 22485 22486 enum StateTracker { 22487 UNKNOWN_TRACKER = 0; 22488 BATTERY_TRACKER = 1; 22489 BATTERY_EXEMPTION_TRACKER = 2; 22490 FGS_TRACKER = 3; 22491 MEDIA_SESSION_TRACKER = 4; 22492 PERMISSION_TRACKER = 5; 22493 BROADCAST_EVENTS_TRACKER = 6; 22494 BIND_SERVICE_EVENTS_TRACKER = 7; 22495 } 22496 // indicates the reason/tracker which caused the app to hit the threshold. 22497 optional StateTracker tracker = 4; 22498 22499 message FgsTrackerInfo { 22500 // indicates whether an fgs notification was visible for this app or not. 22501 optional bool fgs_notification_visible = 1; 22502 // total FGS duration for this app. 22503 optional int64 fgs_duration = 2; 22504 } 22505 optional FgsTrackerInfo fgs_tracker_info = 5 [(log_mode) = MODE_BYTES]; 22506 22507 message BatteryTrackerInfo { 22508 // total battery usage within last 24h (1/10000th) 22509 optional int32 battery_24h = 1; 22510 // background battery usage (1/10000th) 22511 optional int32 battery_usage_background = 2; 22512 // FGS battery usage (1/10000th) 22513 optional int32 battery_usage_fgs = 3; 22514 // Foreground battery usage (1/10000th) 22515 optional int32 battery_usage_foreground = 4; 22516 // Cached battery usage (1/10000th) 22517 optional int32 battery_usage_cached = 5; 22518 } 22519 optional BatteryTrackerInfo battery_tracker_info = 6 [(log_mode) = MODE_BYTES]; 22520 22521 message BroadcastEventsTrackerInfo { 22522 // the number of broadcasts sent by this app. 22523 optional int32 broadcasts_sent = 1; 22524 } 22525 optional BroadcastEventsTrackerInfo broadcast_events_tracker_info = 7 [(log_mode) = MODE_BYTES]; 22526 22527 message BindServiceEventsTrackerInfo { 22528 // the number of bind service requests by this app. 22529 optional int32 bind_service_requests = 1; 22530 } 22531 optional BindServiceEventsTrackerInfo bind_service_events_tracker_info = 22532 8 [(log_mode) = MODE_BYTES]; 22533 22534 // The reasons listed below are defined in PowerExemptionManager.java 22535 enum ExemptionReason { 22536 // range 0-9 is reserved for default reasons 22537 REASON_UNKNOWN = 0; 22538 REASON_DENIED = 1; 22539 REASON_OTHER = 2; 22540 // range 10-49 is reserved for BG-FGS-launch allowed proc states 22541 REASON_PROC_STATE_PERSISTENT = 10; 22542 REASON_PROC_STATE_PERSISTENT_UI = 11; 22543 REASON_PROC_STATE_TOP = 12; 22544 REASON_PROC_STATE_BTOP = 13; 22545 REASON_PROC_STATE_FGS = 14; 22546 REASON_PROC_STATE_BFGS = 15; 22547 // range 50-99 is reserved for BG-FGS-launch allowed reasons 22548 REASON_UID_VISIBLE = 50; 22549 REASON_SYSTEM_UID = 51; 22550 REASON_ACTIVITY_STARTER = 52; 22551 REASON_START_ACTIVITY_FLAG = 53; 22552 REASON_FGS_BINDING = 54; 22553 REASON_DEVICE_OWNER = 55; 22554 REASON_PROFILE_OWNER = 56; 22555 REASON_COMPANION_DEVICE_MANAGER = 57; 22556 REASON_BACKGROUND_ACTIVITY_PERMISSION = 58; 22557 REASON_BACKGROUND_FGS_PERMISSION = 59; 22558 REASON_INSTR_BACKGROUND_ACTIVITY_PERMISSION = 60; 22559 REASON_INSTR_BACKGROUND_FGS_PERMISSION = 61; 22560 REASON_SYSTEM_ALERT_WINDOW_PERMISSION = 62; 22561 REASON_DEVICE_DEMO_MODE = 63; 22562 REASON_ALLOWLISTED_PACKAGE = 65; 22563 REASON_APPOP = 66; 22564 REASON_ACTIVITY_VISIBILITY_GRACE_PERIOD = 67; 22565 REASON_OP_ACTIVATE_VPN = 68; 22566 REASON_OP_ACTIVATE_PLATFORM_VPN = 69; 22567 REASON_TEMP_ALLOWED_WHILE_IN_USE = 70; 22568 REASON_CURRENT_INPUT_METHOD = 71; 22569 // range 100-199 is reserved for public reasons 22570 REASON_GEOFENCING = 100; 22571 REASON_PUSH_MESSAGING = 101; 22572 REASON_PUSH_MESSAGING_OVER_QUOTA = 102; 22573 REASON_ACTIVITY_RECOGNITION = 103; 22574 REASON_ACCOUNT_TRANSFER = 104; 22575 // range 200-299 is reserved for broadcast actions 22576 REASON_BOOT_COMPLETED = 200; 22577 REASON_PRE_BOOT_COMPLETED = 201; 22578 REASON_LOCKED_BOOT_COMPLETED = 202; 22579 REASON_BLUETOOTH_BROADCAST = 203; 22580 REASON_TIMEZONE_CHANGED = 204; 22581 REASON_TIME_CHANGED = 205; 22582 REASON_LOCALE_CHANGED = 206; 22583 REASON_SCHEDULE_EXACT_ALARM_PERMISSION_STATE_CHANGED = 207; 22584 REASON_REFRESH_SAFETY_SOURCES = 208; 22585 // range 300-399 is reserved for other internal reasons 22586 REASON_SYSTEM_ALLOW_LISTED = 300; 22587 REASON_ALARM_MANAGER_ALARM_CLOCK = 301; 22588 REASON_ALARM_MANAGER_WHILE_IDLE = 302; 22589 REASON_SERVICE_LAUNCH = 303; 22590 REASON_KEY_CHAIN = 304; 22591 REASON_PACKAGE_VERIFIER = 305; 22592 REASON_SYNC_MANAGER = 306; 22593 REASON_DOMAIN_VERIFICATION_V1 = 307; 22594 REASON_DOMAIN_VERIFICATION_V2 = 308; 22595 REASON_VPN = 309; 22596 REASON_NOTIFICATION_SERVICE = 310; 22597 REASON_PACKAGE_REPLACED = 311; 22598 REASON_LOCATION_PROVIDER = 312; 22599 REASON_MEDIA_BUTTON = 313; 22600 REASON_EVENT_SMS = 314; 22601 REASON_EVENT_MMS = 315; 22602 REASON_SHELL = 316; 22603 REASON_MEDIA_SESSION_CALLBACK = 317; 22604 REASON_ROLE_DIALER = 318; 22605 REASON_ROLE_EMERGENCY = 319; 22606 REASON_SYSTEM_MODULE = 320; 22607 REASON_CARRIER_PRIVILEGED_APP = 321; 22608 REASON_DPO_PROTECTED_APP = 322; 22609 REASON_DISALLOW_APPS_CONTROL = 323; 22610 REASON_ACTIVE_DEVICE_ADMIN = 324; 22611 REASON_MEDIA_NOTIFICATION_TRANSFER = 325; 22612 REASON_PACKAGE_INSTALLER = 326; 22613 REASON_SYSTEM_EXEMPT_APP_OP = 327; 22614 REASON_PACKAGE_UNARCHIVE = 328; 22615 REASON_TILE_ONCLICK = 329; 22616 // app requested to be exempt 22617 REASON_OPT_OUT_REQUESTED = 1000; 22618 } 22619 // indicates if the app is exempt from background restrictions and the reason if applicable. 22620 optional ExemptionReason exemption_reason = 9; 22621 22622 enum OptimizationLevel { 22623 UNKNOWN = 0; 22624 OPTIMIZED = 1; 22625 BACKGROUND_RESTRICTED = 2; 22626 NOT_OPTIMIZED = 3; 22627 } 22628 // the user choice for the optimization level of the app. 22629 optional OptimizationLevel opt_level = 10; 22630 22631 enum TargetSdk { 22632 SDK_UNKNOWN = 0; 22633 SDK_PRE_S = 1; 22634 SDK_S = 2; 22635 SDK_T = 3; 22636 } 22637 // indicates the target sdk level for this app. 22638 optional TargetSdk target_sdk = 11; 22639 22640 // indicates if the current device is a low ram device. 22641 optional bool low_mem_device = 12; 22642 22643 // indicates previous background restriction level. 22644 optional RestrictionLevel previous_restriction_level = 13; 22645} 22646 22647/** 22648 * Logs failure reason when MmsSmsProvider#getThreadId fails to return a threadId 22649 */ 22650message MmsSmsProviderGetThreadIdFailed { 22651 enum FailureCode { 22652 FAILURE_UNKNOWN = 0; 22653 // Did not return a threadId due to recipients being passed in 22654 FAILURE_NO_RECIPIENTS = 1; 22655 FAILURE_FIND_OR_CREATE_THREAD_ID_SQL = 2; 22656 // Found more than one threadId for the given of recipients 22657 FAILURE_MULTIPLE_THREAD_IDS_FOUND = 3; 22658 } 22659 22660 optional FailureCode failure_code = 1; 22661} 22662 22663/** 22664 * Logs failure reason when MmsSmsDatabaseHelperOnUpgradeFailed fails on an upgrade step 22665 */ 22666message MmsSmsDatabaseHelperOnUpgradeFailed { 22667 enum FailureCode { 22668 FAILURE_UNKNOWN = 0; 22669 FAILURE_IO_EXCEPTION = 1; 22670 FAILURE_SECURITY_EXCEPTION = 2; 22671 FAILURE_SQL_EXCEPTION = 3; 22672 } 22673 22674 // Database version being upgraded from 22675 optional int32 old_version = 1; 22676 // Database version being upgraded to 22677 optional int32 current_version = 2; 22678 // Version number of the database upgrade step that failed 22679 optional int32 upgrade_failed_to_version = 3; 22680 optional FailureCode failure_code = 4; 22681} 22682 22683/** Log for autofill events. This captures events till the view goes out of 22684 * focus. For each auttofilled view going out of focus, and coming back, a 22685 * separate event would be generated. 22686 * 22687 * Logged from: 22688 * frameworks/base/services/autofill/java/com/android/server/autofill/ 22689 * 22690 * Next ID: 55 22691 */ 22692message AutofillPresentationEventReported { 22693 enum PresentationEventResult { 22694 NONE_SHOWN_UNKNOWN_REASON = 22695 0; // Includes reasons where losses can be partial: eg: IME not showing 22696 // certain datasets, while others are filtered out because user 22697 // started typing. So, it can either refer to a set of mixed of 22698 // known or unknown reasons. 22699 ANY_SHOWN = 22700 1; // This is counter to the event name, but we need it in order to get 22701 // overall success rate. 22702 // Below ones corresponds to no presentation getting shown 22703 NONE_SHOWN_VIEW_FOCUS_CHANGED = 22704 2; // User action leads to focus getting shifted to another field 22705 NONE_SHOWN_VIEW_CHANGED = 22706 3; // This would also include if view becomes invisible. 22707 NONE_SHOWN_ACTIVITY_FINISHED = 4; // Eg: User pressed back 22708 NONE_SHOWN_REQUEST_TIMEOUT = 22709 5; // Autofill provider didn't respond in the given time. 22710 NONE_SHOWN_SESSION_COMMITTED_PREMATURELY = 22711 6; // Session was prematurely committed. This can happen due to various 22712 // reasons, eg: app developers calling commit() earlier than when 22713 // they should. 22714 NONE_SHOWN_FILL_REQUEST_FAILED = 22715 7; // Autofill provider request failed. Different from timeout. 22716 NONE_SHOWN_NO_FOCUS = 22717 8; // Autofill provider request was triggered pre-focus. User never 22718 // focussed on autofillable fields. This can happen for FillDialog 22719 // where we trigger fill request at layout time. 22720 NONE_SHOWN_VIEW_FOCUSED_BEFORE_FILL_DIALOG_RESPONSE = 22721 9; // Users focus a field before the fill dialogs response is returned. 22722 NONE_SHOWN_SUGGESTION_FILTER_OUT = 22723 10; // Suggestions were filtered out due to pre-existing text 22724 } 22725 22726 // Id number which increases for each subsequent request. 22727 optional int32 request_id = 1; 22728 22729 // SessionId to aggregate requests within a session, and see overall 22730 // performance. 22731 optional int32 session_id = 2; 22732 22733 // Result of autofill event. 22734 optional PresentationEventResult presentation_event_result = 3; 22735 22736 // Count of datasets that should've been available for display. If the request 22737 // times out, this won't be populated. 22738 optional int32 available_count = 4; 22739 22740 // Count of datasets that are shown to the user. 22741 optional int32 count_shown = 5; 22742 22743 // Count of datasets that are eligible to be shown to the user, but aren't 22744 // shown because user started typing already, and the results were filtered. 22745 // If the user starts typing, dataset isn't shown at the moment, but then the 22746 // user deletes text, and the dataset becomes visible, it would count as 22747 // shown, and not as filtered out. 22748 optional int32 count_filtered_user_typing = 6; 22749 22750 // Count of datasets that aren't shown because IME didn't use datasets at all. 22751 optional int32 count_not_shown_unused_by_ime = 7; 22752 22753 // Count of datasets that are eligible to be shown to the user, but aren't 22754 // shown because display didn't show them (probably user didn't scroll to see 22755 // the view). The dataset was requested by display, but not shown. 22756 optional int32 count_not_shown_never_visible = 8; 22757 22758 // How the dataset is supposed to be shown to the user 22759 optional AutofillDisplayPresentationType display_presentation_type = 9; 22760 22761 // Autofill Service Provider's uid 22762 optional int32 autofill_service_uid = 10 [(is_uid) = true]; 22763 22764 // Inline suggestion host's uid. Populated only when 22765 // AutofillDisplayPresentationType = INLINE 22766 optional int32 inline_suggestion_host_uid = 11 [(is_uid) = true]; 22767 22768 // Whether a new request was triggered or alternatively served from cached 22769 // response. 22770 optional bool is_request_triggered = 12; 22771 22772 // Timestamps are in milliseconds, relative to when the Session was created 22773 // For example, if timestamp has a value = 100, the event was triggered 22774 // 100ms after the session was created. 22775 // Since these are relative to Session creation, you can subtract events to 22776 // get the latency duration between events. 22777 // t1 = 100 22778 // t2 = 300 22779 // duration = t2 - t1 = 200ms 22780 // ------------------------------------------------------------------------ 22781 // Timestamp of when FillRequest is sent to Autofill provider 22782 // This is also the latency of when a field is focused to Framework sending a FillRequest 22783 optional int32 fill_request_sent_timestamp_ms = 13; 22784 22785 // Timestamp of when Autofill provider returns a FillResponse 22786 // The latency of the Autofill provider IPC can be calculated 22787 // by fillResponseReceivedTimestampMs - fillRequestSentTimestampMs 22788 optional int32 fill_response_received_timestamp_ms = 14; 22789 22790 // Timestamp of when FillResponse is sent to the IME/Dropdown handler/Fill Dialog UI 22791 // The latency of processing provider FillResponse to when suggestions are sent to be rendered 22792 // can be calculated by suggestionSentTimestampMs - fillResponseReceivedTimestampMs 22793 optional int32 suggestion_sent_timestamp_ms = 15; 22794 22795 // Timestamp of when the suggestion is first shown 22796 // The latency of showing suggestions can be calculated by 22797 // suggestionPresentedTimestampMs - suggestionSentTimestampMs 22798 optional int32 suggestion_presented_timestamp_ms = 16; 22799 22800 // The index of the dataset that a user selected. -1 if not selected. 22801 optional int32 selected_dataset_id = 17; 22802 22803 // True if the user dismissed the fill UI. 22804 optional bool dialog_dismissed = 18; 22805 22806 // True if the user clicked the negative CTA button. 22807 optional bool negative_cta_button_clicked = 19; 22808 22809 // True if the user clicked the positive CTA button. 22810 optional bool positive_cta_button_clicked = 20; 22811 22812 optional autofill.AuthenticationType authentication_type = 21; 22813 22814 optional autofill.AuthenticationResult authentication_result = 22; 22815 22816 // From response received to authentication UI displayed to the user. 22817 optional int64 latency_authentication_ui_display_millis = 23; 22818 22819 // From the user finishing authentication to the dataset is displayed to the user. 22820 optional int64 latency_dataset_display_millis = 24; 22821 22822 // Count of datasets that are available due to PCC Detection. These can include datasets 22823 // available via provider response, and would be eligible because of pcc too. 22824 // If PCC detection is preferred over Autofill provider, and Autofill provider had same detection 22825 // as PCC did, the following invariants would hold. 22826 // available_pcc_count = available_count 22827 // available_pcc_only_count = 0 22828 optional int32 available_pcc_count = 25; 22829 22830 // Count of datasets that are available only due to PCC Detection. 22831 optional int32 available_pcc_only_count = 26; 22832 22833 // The selection process of this dataset. 22834 optional autofill.DatasetPickedReason selected_dataset_picked_reason = 27; 22835 22836 // Which detection was preferred 22837 optional autofill.DetectionPreference detection_preference = 28; 22838 22839 // field_classification request id that was used for this event. 22840 optional int32 field_classification_request_id = 29; 22841 22842 // App package Uid 22843 optional int32 app_package_uid = 30 [(is_uid) = true]; 22844 22845 // True if the request is directed to the credential autofill service. 22846 optional bool is_credential_request = 31; 22847 22848 // True if the response is from webview requesting credential autofill service. 22849 optional bool webview_requested_credential = 32; 22850 22851 // Count of views that are filtered because they are not in current session 22852 // before autofill framework calls AutofillManager.autofill(). 22853 optional int64 views_fillable_excluded_by_session_count = 46; 22854 22855 // Count of views that can be filled as per the provider service. 22856 // views_fillable_total_count = views_filled_failure_count + 22857 // views_filled_success_count + views_with_no_callback 22858 // views_with_no_callback aren't logged explicitly, as it can be computed. 22859 // There may be no callback due to views overriding default behavior, and 22860 // not adhering to javadoc guidelines. They may correspond to autofill 22861 // failing or being successful. There is no way for autofill framework to 22862 // know such status. 22863 optional int64 views_fillable_total_count = 33; 22864 22865 // Count of views that failed to receive autofill values. These are minimum counts. 22866 // It's possible that additional views themselves didn't fill correctly. 22867 optional int64 views_filled_failure_count = 34; 22868 22869 // ViewID of the AutofillID that triggered the presentation 22870 optional int32 focused_autofill_id = 35; 22871 22872 // Count of views that successfully received autofill values. These are guaranteed counts. 22873 // They are confirmed by getting views autofill value, and comparing against what was attempted 22874 // to be set. 22875 optional int64 views_filled_success_count = 36; 22876 22877 // Count of views that successfully received autofill values, but don't belong to this event. 22878 // This value is for confirmation that nothing is wrong. It's expected value is 0. 22879 // If non-zero, there's likely some bug in our logging (or in autofill). 22880 optional int64 views_filled_but_unexpected_count = 37; 22881 22882 // Timestamp (relative to session start) of when user tapped a selection 22883 optional int32 presentation_selected_timestamp_ms = 38; 22884 22885 // Timestamp (relative to session start) of filling into a field 22886 optional int32 field_autofilled_timestamp_ms = 39; 22887 22888 // Timestamp (relative to session start) of when the field is first modified 22889 // This is used to check if a field was modified before an Autofill suggestion 22890 // was presented 22891 optional int32 field_first_modified_timestamp_ms = 40; 22892 22893 // Timestamp (relative to session start) of when the field is last modified 22894 // This is value is updated when the view value was changed manually 22895 // (by app/user - not autofill) 22896 // This will be the same as field_first_modified_timestamp_ms 22897 // if field was only modified once 22898 optional int32 field_last_modified_timestamp_ms = 41; 22899 22900 // Supplement to suggestion_presented_timestamp_ms. This is the timestamp 22901 // of the last suggestion that was presented to the user. It is used to 22902 // distinguish multiple presentations in the same field. 22903 optional int32 suggestion_presented_last_timestamp_ms = 42; 22904 22905 // The virtual component (if any) of the autofill id 22906 optional int32 focused_virtual_autofill_id = 43; 22907 22908 // Length of text already in the field when the event is initialized 22909 optional int32 field_first_length = 44; 22910 22911 // Length of text already in the field when the event is logged 22912 optional int32 field_last_length = 45; 22913 22914 // Count of views that failed prior to refill attempt 22915 optional int32 view_failed_prior_to_refill_count = 47; 22916 22917 // Count of views that were able to be filled during refill 22918 // Note that this doesn't include views that were filled successfully prior 22919 // to refill. 22920 optional int32 view_filled_on_refill_count = 48; 22921 22922 // Count of views that failed in refill attempt 22923 optional int32 view_failed_on_refill_count = 49; 22924 22925 // Count of times response wasn't expired due to pending authentication. 22926 optional int32 fix_expire_response_auth_count = 50; 22927 22928 // Count of times notifyViewEntered wasn't done due to pending authentication 22929 optional int32 notify_view_entered_ignored_auth_count = 51; 22930 22931 // Following three fields are only logged if improve_fill_dialog is enabled. 22932 // 22933 // Fill dialog not shown reason. 22934 optional android.os.statsd.autofill.FillDialogNotShownReason 22935 fill_dialog_not_shown_reason = 52; 22936 22937 // Timestamp (relative to session start) of when the fill dialog is ready to 22938 // show. 22939 optional int64 fill_dialog_ready_to_show_ms = 53; 22940 22941 // Timestamp (relative to session start) of when the IME animation is 22942 // finished. 22943 optional int64 ime_animation_finish_ms = 54; 22944} 22945 22946// Tells how Autofill dataset was/will-be displayed. 22947enum AutofillDisplayPresentationType { 22948 UNKNOWN_AUTOFILL_DISPLAY_PRESENTATION_TYPE = 0; 22949 MENU = 1; // aka drop-down 22950 INLINE = 2; // shown via IME 22951 DIALOG = 3; // aka Bottom-sheet dialog 22952} 22953 22954/** 22955 * Log the CompanionDeviceManager associations are created by various device 22956 * profiles 22957 * 22958 * Logged from: 22959 * frameworks/base/services/companion/java/com/android/server/companion/ 22960 * CompanionDeviceManagerService.java 22961 */ 22962message CdmAssociationAction { 22963 enum Action { 22964 UNKNOWN = 0; 22965 CREATED = 1; 22966 REMOVED = 2; 22967 } 22968 22969 enum DeviceProfile{ 22970 DEVICE_PROFILE_NULL = 0; 22971 DEVICE_PROFILE_WATCH = 1; 22972 DEVICE_PROFILE_APP_STREAMING = 2; 22973 DEVICE_PROFILE_AUTO_PROJECTION = 3; 22974 DEVICE_PROFILE_COMPUTER = 4; 22975 DEVICE_PROFILE_GLASSES = 5; 22976 DEVICE_PROFILE_NEARBY_DEVICE_STREAMING = 6; 22977 DEVICE_PROFILE_VIRTUAL_DEVICE = 7; 22978 DEVICE_PROFILE_WEARABLE_SENSING = 8; 22979 } 22980 22981 // Action taken on the CDM association been created by companion apps. 22982 optional Action action = 1; 22983 22984 // Name of the CDM Association Request profiles. 22985 optional DeviceProfile device_profile = 2; 22986} 22987 22988/** 22989 * Logs when text and reading options changed. 22990 * 22991 * Logged from: 22992 * packages/apps/Settings/src/com/android/settings/accessibility 22993 */ 22994message AccessibilityTextReadingOptionsChanged { 22995 // The item name of the accessibility feature "Text and Reading Options". 22996 optional android.stats.accessibility.TextReadingOption name = 1; 22997 22998 // The status value of the item of the accessibility feature "Text and Reading Options". 22999 optional int32 value = 2; 23000 23001 // The entry point from which page. 23002 optional android.stats.accessibility.TextReadingEntry entry_point = 3; 23003} 23004 23005/* 23006 * Pushed atom logged by ONS service. 23007 */ 23008message OnsOpportunisticEsimProvisioningComplete { 23009 enum ResultCode { 23010 // Unknown 23011 RESULT_UNKNOWN = 0; 23012 23013 // Operation was successful. 23014 RESULT_SUCCESS = 1; 23015 23016 // Device capabilities not met such as eSIM and MultiSIM not supported. 23017 RESULT_DEVICE_NOT_CAPABLE = 2; 23018 23019 // Internet connection is not available while trying to download opportunistic eSIM. 23020 RESULT_INTERNET_NOT_AVAILABLE = 3; 23021 23022 // Error occurred while switching device from Single to MultiSIM mode. 23023 RESULT_SWITCH_TO_MULTISIM_FAILED = 4; 23024 23025 // Connection error occurred while downloading opportunistic eSIM from SMDP server. 23026 RESULT_CONNECTION_ERROR = 5; 23027 23028 // Download failed because there is no sufficient storage available in eUICC memory. 23029 RESULT_MEMORY_FULL = 6; 23030 23031 // Installation of downloaded eSIM failed. 23032 RESULT_INSTALL_ESIM_PROFILE_FAILED = 7; 23033 23034 // Unresolvable errors such as Invalid SMDP address or activation code. 23035 RESULT_UNRESOLVABLE_ERROR = 8; 23036 23037 // Auto provisioning disabled 23038 RESULT_AUTO_PROVISIONING_DISABLED = 9; 23039 23040 // eSIM provisioning failed 23041 RESULT_ESIM_PROVISIONING_FAILED = 10; 23042 } 23043 23044 // CBRS carrier id. Filled only while reporting failure cases. 23045 optional int32 carrier_id = 1; 23046 23047 // carrier id of the opportunistic eSIM downloaded from the SMDP server. 23048 //Filled only while reporting failure cases. 23049 optional int32 opportunistic_esim_carrier_id = 2; 23050 23051 // Flag to indicate that the data connection was used for downloading. 23052 optional bool is_mobile_data_used = 3; 23053 23054 // Error code occurred during the above operation. 23055 optional ResultCode error_code = 4; 23056 23057 // Retry count of the above operation. 23058 optional int32 retry_count = 5; 23059 23060 // Detailed error code. 23061 optional int32 detailed_error_code = 6; 23062} 23063 23064/** 23065 * Logs when a telephony anomaly is reported. 23066 * 23067 * Logged from: 23068 * frameworks/base/telephony/java/android/telephony/AnomalyReporter.java 23069 */ 23070message TelephonyAnomalyDetected { 23071 // Carrier ID of the SIM card. 23072 // See https://source.android.com/devices/tech/config/carrierid. 23073 optional int32 carrier_id = 1; 23074 // UUID of the anomaly, as generated by android.telephony.AnomalyReporter 23075 optional int64 event_id_lsb = 2; 23076 optional int64 event_id_msb = 3; 23077} 23078 23079// Logs when the remote key provisioner application is invoked, either 23080// due to a periodically scheduled job, due to an attestation key being 23081// consumed from the pool, or when the system has detected that it's 23082// completely out of attestation keys. 23083// 23084// Logged from: 23085// packages/modules/RemoteKeyProvisioning 23086message RemoteKeyProvisioningAttempt { 23087 // The reason for the provisioning attempt. 23088 enum Cause { 23089 CAUSE_UNKNOWN = 0; 23090 SCHEDULED = 1; // A scheduled job issued the request 23091 KEY_CONSUMED = 2; // A provisioned key was consumed from the pool 23092 OUT_OF_KEYS = 3; // The system is out of keys 23093 } 23094 optional Cause cause = 1; 23095 23096 // The name of the remotely provisioned component for whom keys are being 23097 // generated and certified. The string value is determined by the vendor, 23098 // and is fixed for the lifetime of the device. The number of unique string 23099 // values on a given device is determined by how many remotely provisioned 23100 // component HALs are on a given device. Typically, this is 2-3 HALs. 23101 optional string remotely_provisioned_component = 2; 23102 23103 // The uptime of the device, organized into time ranges of interest. 23104 enum UpTime { 23105 UPTIME_UNKNOWN = 0; 23106 LESS_THAN_5_MINUTES = 1; 23107 BETWEEN_5_AND_60_MINUTES = 2; 23108 MORE_THAN_60_MINUTES = 3; 23109 } 23110 optional UpTime uptime = 3; 23111 23112 // The state of remote provisioning enablement 23113 enum Enablement { 23114 ENABLEMENT_UNKNOWN = 0; 23115 ENABLED_WITH_FALLBACK = 1; 23116 ENABLED_RKP_ONLY = 2; 23117 DISABLED = 3; 23118 } 23119 optional Enablement enablement = 4; 23120 23121 // If the key pool is completely exhausted, this is set to true. Typically, 23122 // we do not expect to see a pool with no spare keys available. 23123 optional bool is_key_pool_empty = 5; 23124 23125 // Indicates success or failure of the provisioning attempt. 23126 optional com.android.remoteprovisioner.RemoteKeyProvisioningStatus status = 6; 23127 23128 // A digest of the root key that certified the provisioned certificates 23129 optional string root_cert_fingerprint = 7; 23130 23131 // The depth of the cert chains issued to the device 23132 optional int32 cert_chain_length = 8; 23133} 23134 23135// Logs that correlate remote key provisioning status with the active 23136// network for the given provisioning attempt. 23137// 23138// Logged from: 23139// packages/modules/RemoteKeyProvisioning 23140message RemoteKeyProvisioningNetworkInfo { 23141 // The network transport, according ConnectivityManager::getActiveNetwork(). 23142 optional android.stats.connectivity.TransportType transport_type = 1; 23143 23144 // Indicates success or failure of the provisioning attempt. 23145 optional com.android.remoteprovisioner.RemoteKeyProvisioningStatus status = 2; 23146 23147 // If an HTTP error was received, this contains the code. Else, contains 200. 23148 optional int32 http_status_error = 3; 23149} 23150 23151// Logs indicating timing data to understand how long the remote provisioner is 23152// taking to perform various sub-tasks. This is intended to be used with KLL metrics. 23153// 23154// Logged from: 23155// packages/modules/RemoteKeyProvisioning 23156message RemoteKeyProvisioningTiming { 23157 // Time spent waiting on the RKP service to reply. 23158 optional int32 server_wait_millis = 1; 23159 23160 // Time spent waiting on internal binder calls to the provisioning service. 23161 optional int32 binder_wait_millis = 2; 23162 23163 // Time spent waiting on the serialization lock. 23164 optional int32 lock_wait_millis = 3; 23165 23166 // Total time spent processing the attempt. 23167 optional int32 total_processing_time = 4; 23168 23169 // The network transport, according ConnectivityManager::getActiveNetwork(). 23170 optional android.stats.connectivity.TransportType transport_type = 5; 23171 23172 // The name of the remotely provisioned component for whom keys are being 23173 // generated and certified. The string value is determined by the vendor, 23174 // and is fixed for the lifetime of the device. The number of unique string 23175 // values on a given device is determined by how many remotely provisioned 23176 // component HALs are on a given device. Typically, this is 2-3 HALs. 23177 optional string remotely_provisioned_component = 6; 23178 23179 // Cause of the attempt which resulted in these timings. 23180 optional RemoteKeyProvisioningAttempt.Cause cause = 7; 23181 23182 // Indicates success or failure of the provisioning attempt. 23183 optional com.android.remoteprovisioner.RemoteKeyProvisioningStatus status = 8; 23184} 23185 23186// Deprecated in U. 23187// 23188// Counters that track how many errors we're seeing on the device for the 23189// given boot. 23190// 23191// Logged from: 23192// packages/modules/RemoteKeyProvisioning 23193message RemoteKeyProvisioningErrorCounts { 23194 // The total number of RKP attempts there have been this boot. 23195 optional int32 total_count = 1; 23196 23197 // How many errors this device has encountered this boot. 23198 optional int32 error_count = 2; 23199 23200 // How many bytes of data have been sent that resulted in errors. These 23201 // bytes count against an error budget, so it's important to track. 23202 optional int32 error_bytes = 3; 23203} 23204 23205/** 23206 * Logs information about sync exemptions when they occur. 23207 * 23208 * Logged from: 23209 * frameworks/base/services/core/java/com/android/server/content/ContentService.java 23210 */ 23211message SyncExemptionOccurred { 23212 optional int32 uid = 1 [(is_uid) = true]; // the uid of the app. 23213 23214 enum ProcState { 23215 UNKNOWN = 0; 23216 PERSISTENT = 1; 23217 PERSISTENT_UI = 2; 23218 TOP = 3; 23219 BOUND_TOP = 4; 23220 FOREGROUND_SERVICE = 5; 23221 BOUND_FOREGROUND_SERVICE = 6; 23222 IMPORTANT_FOREGROUND = 7; 23223 IMPORTANT_BACKGROUND = 8; 23224 TRANSIENT_BACKGROUND = 9; 23225 BACKUP = 10; 23226 SERVICE = 11; 23227 RECEIVER = 12; 23228 TOP_SLEEPING = 13; 23229 HEAVY_WEIGHT = 14; 23230 HOME = 15; 23231 LAST_ACTIVITY = 16; 23232 CACHED_ACTIVITY = 17; 23233 CACHED_ACTIVITY_CLIENT = 18; 23234 CACHED_RECENT = 19; 23235 CACHED_EMPTY = 20; 23236 } 23237 optional ProcState proc_state = 2; // the proc state of the app when the exemption occurred. 23238 23239 optional bool is_uid_active = 3; // was the uid active when the exemption occurred. 23240 23241 optional AppBackgroundRestrictionsInfo.RestrictionLevel restriction_level = 4; 23242} 23243 23244// Logs the overall Safety State of the device (as cached by the Safety Center) 23245message SafetyState { 23246 // The overall severity level of the Safety Center. 23247 optional android.stats.safetycenter.SafetySeverityLevel overall_severity_level = 1; 23248 23249 // The number of open issues in the Safety Center. 23250 optional int64 open_issues_count = 2; 23251 23252 // The number of dismissed issues in the Safety Center. 23253 optional int64 dismissed_issues_count = 3; 23254} 23255 23256// Logs the state of an individual Safety Source when overall SafetyState is 23257// collected. 23258message SafetySourceStateCollected { 23259 optional int64 encoded_safety_source_id = 1; 23260 23261 optional android.stats.safetycenter.SafetySourceProfileType safety_source_profile_type = 2; 23262 23263 // The severity level of this source. 23264 optional android.stats.safetycenter.SafetySeverityLevel severity_level = 3; 23265 23266 // The number of open issues belonging to this Safety Source. 23267 optional int64 open_issues_count = 4; 23268 23269 // The number of dismissed issues belonging to this Safety Source. 23270 optional int64 dismissed_issues_count = 5; 23271 23272 optional int64 duplicate_filtered_out_issues_count = 6; 23273 23274 enum SourceState { 23275 SOURCE_STATE_UNKNOWN = 0; 23276 DATA_PROVIDED = 1; 23277 NO_DATA_PROVIDED = 2; 23278 REFRESH_TIMEOUT = 3; 23279 REFRESH_ERROR = 4; 23280 SOURCE_ERROR = 5; 23281 SOURCE_CLEARED = 6; 23282 } 23283 optional SourceState source_state = 7; 23284 23285 // Indicates the reason for which this event was collected. 23286 enum CollectionType { 23287 COLLECTION_TYPE_UNKNOWN = 0; 23288 AUTOMATIC = 1; 23289 SOURCE_UPDATED = 2; 23290 } 23291 optional CollectionType collection_type = 8; 23292 23293 enum UpdateType { 23294 UPDATE_TYPE_UNKNOWN = 0; 23295 SELF_INITIATED = 1; 23296 REFRESH_RESPONSE = 2; 23297 } 23298 optional UpdateType update_type = 9; 23299 23300 optional int64 refresh_reason = 10; 23301 23302 optional bool data_changed = 11; 23303 23304 optional int64 last_updated_elapsed_time_millis = 12; 23305} 23306 23307// Logs system-health and performance related events from the Safety Center 23308message SafetyCenterSystemEventReported { 23309 enum EventType { 23310 EVENT_TYPE_UNKNOWN = 0; 23311 SINGLE_SOURCE_GET_NEW_DATA = 1; 23312 SINGLE_SOURCE_RESCAN = 2; 23313 COMPLETE_GET_NEW_DATA = 3; 23314 COMPLETE_RESCAN = 4; 23315 INLINE_ACTION = 5; 23316 } 23317 optional EventType event_type = 1; 23318 23319 // Unset if this event isn't source-specific. 23320 optional int64 encoded_safety_source_id = 2; 23321 23322 // Unset if this event isn't source-specific. 23323 optional android.stats.safetycenter.SafetySourceProfileType safety_source_profile_type = 3; 23324 23325 // Unset if this event isn't specific to an issue. 23326 optional int64 encoded_issue_type_id = 4; 23327 23328 optional int64 duration_millis = 5; 23329 23330 enum Result { 23331 RESULT_UNKNOWN = 0; 23332 SUCCESS = 1; 23333 TIMEOUT = 2; 23334 ERROR = 3; 23335 } 23336 optional Result result = 6; 23337 23338 optional int64 refresh_reason = 7; 23339 23340 optional bool data_changed = 8; 23341} 23342 23343// Logs a user interaction with the Safety Center. Various fields may or may not be 23344// set depending on the Action reported. 23345message SafetyCenterInteractionReported { 23346 // ID which identifies single session of user interacting with Safety Center. 23347 optional int64 session_id = 1; 23348 23349 enum Action { 23350 ACTION_UNKNOWN = 0; 23351 23352 SAFETY_CENTER_VIEWED = 1; 23353 SAFETY_ISSUE_VIEWED = 2; 23354 23355 SCAN_INITIATED = 3; 23356 23357 ISSUE_PRIMARY_ACTION_CLICKED = 4; 23358 ISSUE_SECONDARY_ACTION_CLICKED = 5; 23359 ISSUE_DISMISS_CLICKED = 6; 23360 23361 MORE_ISSUES_CLICKED = 7; 23362 ENTRY_CLICKED = 8; 23363 ENTRY_ICON_ACTION_CLICKED = 9; 23364 STATIC_ENTRY_CLICKED = 10; 23365 23366 PRIVACY_CONTROL_TOGGLE_CLICKED = 11; 23367 SENSOR_PERMISSION_REVOKE_CLICKED = 12; 23368 SENSOR_PERMISSION_SEE_USAGES_CLICKED = 13; 23369 REVIEW_SETTINGS_CLICKED = 14; 23370 23371 NOTIFICATION_POSTED = 15; 23372 NOTIFICATION_DISMISSED = 16; 23373 23374 STATUS_VIEWED = 17; 23375 ENTRY_VIEWED = 18; 23376 23377 ISSUE_RESOLVED = 19; 23378 } 23379 23380 // Action taken in the Safety Center. 23381 optional Action action = 2; 23382 23383 enum ViewType { 23384 VIEW_TYPE_UNKNOWN = 0; 23385 FULL = 1; 23386 QUICK_SETTINGS = 2; 23387 SUBPAGE = 3; 23388 23389 // Prefix required to distinguish from NavigationSource.NOTIFICATION (since 23390 // proto enums use C++ scoping rules, enum value names must be unique within 23391 // the enum's enclosing type, not just the enum itself). 23392 VIEW_TYPE_NOTIFICATION = 4; 23393 } 23394 23395 // Which view of the Safety Center this interaction occurred in. 23396 optional ViewType view_type = 3; 23397 23398 enum NavigationSource { 23399 SOURCE_UNKNOWN = 0; 23400 NOTIFICATION = 1; 23401 QUICK_SETTINGS_TILE = 2; 23402 SETTINGS = 3; 23403 SENSOR_INDICATOR = 4; 23404 23405 // Set for navigations that start from within Safety Center. e.g. when a subpage 23406 // is opened from the main Safety Center page instead of from a notification. 23407 SAFETY_CENTER = 5; 23408 } 23409 23410 // Where the session was initiated from. 23411 optional NavigationSource navigation_source = 4; 23412 23413 // Severity level of the particular issue or entry, or the overall Safety 23414 // Center this interaction is associated with. 23415 optional android.stats.safetycenter.SafetySeverityLevel severity_level = 5; 23416 23417 // The hashed ID of the Safety Source that this interaction was with performed with, 23418 // or nothing if this event isn't source-specific. 23419 optional int64 encoded_safety_source_id = 6; 23420 23421 // The kind of profile that this safety source originated from (sources from 23422 // personal and work profiles may have the same source ID) 23423 optional android.stats.safetycenter.SafetySourceProfileType safety_source_profile_type = 7; 23424 23425 // A hash of the loggable issue type ID that this interaction was performed with. 23426 optional int64 encoded_issue_type_id = 8; 23427 23428 enum Sensor { 23429 SENSOR_UNKNOWN = 0; 23430 MICROPHONE = 1; 23431 CAMERA = 2; 23432 LOCATION = 3; 23433 } 23434 23435 // Which sensor was associated with this interaction (if any). 23436 optional Sensor sensor = 9; 23437 23438 optional int64 encoded_safety_sources_group_id = 10; 23439 23440 enum IssueState { 23441 ISSUE_STATE_UNKNOWN = 0; 23442 ACTIVE = 1; 23443 DISMISSED = 2; 23444 } 23445 optional IssueState issue_state = 11; 23446} 23447 23448/** 23449 * Logs information about SettingsProvider setting changes when they occur. 23450 * 23451 * Logged from: 23452 * frameworks/base/packages/src/com/android/providers/settings/SettingsProvider.java 23453 */ 23454message SettingsProviderSettingChanged { 23455 optional int32 user_id = 1; // user for whom the setting has changed 23456 optional string name = 2; // name of the setting 23457 optional int32 type = 3; // the setting type, e.g., global, system or secure 23458 optional int32 change_type = 4; // the change type, e.g., insert, delete or update 23459} 23460 23461/** 23462 * Pulls information for a single incoming MMS. 23463 * 23464 * Each pull creates multiple atoms, one for each MMS. 23465 * The sequence is randomized when pulled. 23466 * 23467 * Pulled from: 23468 * packages/services/Mms/src/com/android/mms/service/metrics/MmsMetricsCollector.java 23469 */ 23470message IncomingMms { 23471 // Radio access technology (RAT) used for downloading the MMS. 23472 // It can be IWLAN in case of IMS. 23473 // RAT is logged at the end of the download. 23474 optional android.telephony.NetworkTypeEnum rat = 1; 23475 23476 // Indicate a specific result handling the MMS. 23477 optional android.mms.MmsResultEnum result = 2; 23478 23479 // Roaming type when MMS was received. 23480 optional android.telephony.RoamingTypeEnum roaming = 3; 23481 23482 // Index of the SIM used, 0 for single-SIM devices. 23483 optional int32 sim_slot_index = 4; 23484 23485 // Whether the device was in multi-SIM mode (with multiple active SIM profiles). 23486 optional bool is_multi_sim = 5; 23487 23488 // Whether the MMS was received with an eSIM profile. 23489 optional bool is_esim = 6; 23490 23491 // Carrier ID of the SIM card used for the MMS. 23492 // See https://source.android.com/devices/tech/config/carrierid. 23493 optional int32 carrier_id = 7; 23494 23495 // Average time in milliseconds to download MMS from the network. 23496 optional int64 avg_interval_millis = 8; 23497 23498 // Total number of MMS having same configuration. 23499 optional int64 mms_count = 9; 23500 23501 // Retry count: 0 for the first attempt and then increasing for each attempt. 23502 optional int32 retry_id = 10; 23503 23504 // Whether MmsService or carrier app downloaded the MMS from the network. 23505 optional bool handled_by_carrier_app = 11; 23506 23507 // Whether the MMS was received with an enterprise profile. 23508 optional bool is_managed_profile = 12; 23509 23510 // Whether the MMS was received over non-terrestrial networks. 23511 optional bool is_ntn = 13; 23512 23513 // Whether the MMS was received over Carrier Roaming NB-Iot NTN network. 23514 optional bool is_nb_iot_ntn = 14; 23515} 23516 23517/** 23518 * Pulls information for a single outgoing MMS. 23519 * 23520 * Each pull creates multiple atoms, one for each MMS. 23521 * The sequence is randomized when pulled. 23522 * 23523 * Pulled from: 23524 * packages/services/Mms/src/com/android/mms/service/metrics/MmsMetricsCollector.java 23525 */ 23526message OutgoingMms { 23527 // Radio access technology (RAT) used for uploading the MMS. 23528 // It can be IWLAN in case of IMS. 23529 // RAT is logged at the end of the upload. 23530 optional android.telephony.NetworkTypeEnum rat = 1; 23531 23532 // Indicate a specific result handling the MMS. 23533 optional android.mms.MmsResultEnum result = 2; 23534 23535 // Roaming type when MMS was received. 23536 optional android.telephony.RoamingTypeEnum roaming = 3; 23537 23538 // Index of the SIM used, 0 for single-SIM devices. 23539 optional int32 sim_slot_index = 4; 23540 23541 // Whether the device was in multi-SIM mode (with multiple active SIM profiles). 23542 optional bool is_multi_sim = 5; 23543 23544 // Whether the MMS was sent with an eSIM profile. 23545 optional bool is_esim = 6; 23546 23547 // Carrier ID of the SIM card used for the MMS. 23548 // See https://source.android.com/devices/tech/config/carrierid. 23549 optional int32 carrier_id = 7; 23550 23551 // Average time in milliseconds to download MMS from the network. 23552 optional int64 avg_interval_millis = 8; 23553 23554 // Total number of MMS having same configuration. 23555 optional int64 mms_count = 9; 23556 23557 // Whether the default MMS application sent the MMS (regardless of which application). 23558 optional bool is_from_default_app = 10; 23559 23560 // Retry count: 0 for the first attempt and then increasing for each attempt. 23561 optional int32 retry_id = 11; 23562 23563 // Whether MmsService or carrier app uploaded the MMS to the network. 23564 optional bool handled_by_carrier_app = 12; 23565 23566 // Whether the MMS was sent with an enterprise profile. 23567 optional bool is_managed_profile = 13; 23568 23569 // Whether the MMS was sent over non-terrestrial networks. 23570 optional bool is_ntn = 14; 23571 23572 // Whether the MMS was sent over Carrier Roaming NB-Iot NTN network. 23573 optional bool is_nb_iot_ntn = 15; 23574} 23575 23576message PrivacySignalNotificationInteraction { 23577 23578 enum Action { 23579 UNKNOWN = 0; 23580 NOTIFICATION_SHOWN = 1; 23581 NOTIFICATION_CLICKED = 2; 23582 DISMISSED = 3; 23583 } 23584 23585 // Privacy source that triggered the notification 23586 optional android.stats.privacysignals.PrivacySource privacy_source = 1; 23587 23588 // Optional Uid of the package for which the notification was sent. 23589 optional int32 uid = 2 [(is_uid) = true]; 23590 23591 // Action taken on the notification. 23592 optional Action action = 3; 23593 23594 // Session Id to link the notification with the issue card. 23595 optional int64 session_id = 4; // to map the notification and issue card interaction 23596} 23597 23598message PrivacySignalIssueCardInteraction { 23599 23600 enum Action { 23601 ACTION_UNKNOWN = 0; 23602 CARD_SHOWN = 1; 23603 CARD_CLICKED = 2; 23604 CARD_DISMISSED = 3; 23605 CLICKED_CTA1 = 4; 23606 CLICKED_CTA2 = 5; 23607 } 23608 23609 // Privacy source that pushed the issue card. 23610 optional android.stats.privacysignals.PrivacySource privacy_source = 1; 23611 23612 // Optional Uid of the package for which the issue card was sent. 23613 optional int32 uid = 2 [(is_uid) = true]; 23614 23615 // Action taken on the issue card. 23616 optional Action action = 3; 23617 23618 // Session Id to link the notification with the issue card. 23619 optional int64 session_id = 4; 23620} 23621 23622message PrivacySignalsJobFailure { 23623 23624 // Which privacy source for which the daily job failed. 23625 optional android.stats.privacysignals.PrivacySource privacy_source = 1; 23626 23627 enum JobFailureReason { 23628 REASON_UNKNOWN = 0; 23629 TIMEOUT = 1; 23630 COROUTINE_CANCELLED = 2; 23631 } 23632 optional JobFailureReason reason =2; 23633} 23634 23635/** 23636 * Contains information about different method and code contention durations in 23637 * the ANR code path 23638 */ 23639message ANRLatencyReported { 23640 /* Important durations */ 23641 // Total duration of the ANR (in ms) 23642 optional int64 total_duration = 1; 23643 // The duration between when the ANR is triggered and when the stacks are dumped 23644 // (in ms) 23645 optional int64 triggering_to_stack_dump_duration = 2; 23646 23647 /* Disjoint durations, each duration representing the time spent in the 23648 method before calling the next one on the ANR chain */ 23649 // The duration between when the ANR is triggered and when appNotResponding starts. 23650 optional int64 triggering_to_app_not_responding_duration = 3; 23651 // The time taken by appNotResponding before the record is placed on the 23652 // queue. 23653 optional int64 app_not_responding_duration = 4; 23654 // The time spent by the ANR record on the ANR queue. 23655 optional int64 anr_record_placed_on_queue_duration = 5; 23656 // The time from the start of the ANR processing by the ANR thread until the 23657 // stacks are dumped. 23658 optional int64 anr_processing_duration = 6; 23659 // The time taken to dump the stacks. 23660 optional int64 dump_stack_traces_duration = 7; 23661 23662 /* Helper methods */ 23663 // The time spent waiting on updateCpuStatsNow to return. 23664 optional int64 update_cpu_stats_now_total_duration = 8; 23665 // The time spent waiting on currentPsiStateReturned to return. 23666 optional int64 current_psi_state_total_duration = 9; 23667 // The time spent waiting on ProcessCpuTracker methods to return 23668 optional int64 process_cpu_tracker_methods_total_duration = 10; 23669 // The time spent waiting on CriticalEventLog#logLinesForTraceFile to return. 23670 optional int64 critical_event_log_duration = 11; 23671 23672 /* Lock contention */ 23673 // The time spent waiting on the Global Lock. 23674 optional int64 global_lock_total_contention = 12; 23675 // The time spent waiting on the PID lock. 23676 optional int64 pid_lock_total_contention = 13; 23677 // The time spent waiting on the AMS lock. 23678 optional int64 ams_lock_total_contention = 14; 23679 // The time spent waiting on proc lock. 23680 optional int64 proc_lock_total_contention = 15; 23681 // The time spent waiting on the ANR record queue lock. 23682 optional int64 anr_record_lock_total_contention = 16; 23683 23684 /* Misc */ 23685 // The size of the ANR queue before pushing the ANR. 23686 optional int32 anr_queue_size_when_pushed = 17; 23687 // The type of the ANR. 23688 optional android.anr.AnrType anr_type = 18; 23689 // The number of dumped processes. 23690 optional int32 dumped_processes_count = 19; 23691 // Next ID: 20 23692} 23693 23694// Logs Display Brightness change events. 23695message DisplayBrightnessChanged { 23696 23697 enum Reason { 23698 REASON_UNKNOWN = 0; 23699 REASON_MANUAL = 1; 23700 } 23701 23702 // Display brightness before the brightness event, in nits. 23703 optional float initial_nits = 1; 23704 23705 // Display brightness after the brightness event, in nits. 23706 optional float end_nits = 2; 23707 23708 // Estimated ambient light, in lux. 23709 optional float lux = 3; 23710 23711 // Physical display id, with format $ADAPTER_PREFIX:$ID, in this case 23712 // "local:$PHYSICAL_ID". 23713 optional string physical_display_id = 4 [(state_field_option).primary_field = true]; 23714 23715 // Whether the short term model was active at the time of the event. 23716 optional bool short_term_model_active = 5; 23717 23718 // The factor to adjust the screen brightness in low power mode in the range 23719 // 0 (screen off) to 1 (no change). 23720 // If not applied, this is set to -1. 23721 optional float power_brightness_factor = 6; 23722 23723 // The level of Reduce Bright Colors (RBC) intensity, the range is [0, 100]. 23724 // If RBC is not enabled, this is set to -1; 23725 optional int32 reduce_bright_colors_strength = 7; 23726 23727 // Max nits value when High Brightness Mode (HBM) is enabled. 23728 // If HBM is not enabled, this is set to -1; 23729 optional float hbm_current_max = 8; 23730 23731 // Thermal throttling cap. 23732 // If thermal throttling not enabled, this is -1. 23733 optional float thermal_throttling_cap = 9; 23734 23735 // Whether adaptive brightness is enabled. 23736 optional bool adaptive_brightness_enabled = 10; 23737 23738 // Historical: replaced by entire_reason after 2023-04-10 23739 optional Reason reason = 11 [deprecated = true]; 23740 23741 // Reason that triggered the brightness event to occur. 23742 optional android.display.DisplayBrightnessChangeReasonEnum entire_reason = 12; 23743 23744 // New brightness bucket index, from frameworks/proto_logging/stats/enums/display/display_enums.proto. 23745 optional android.display.DisplayBrightnessRangeEnum bucket_index = 13 23746 [(state_field_option).exclusive_state = true, (state_field_option).nested = false]; 23747 23748 // Brightness is at maximum allowable value regarding the current context. 23749 optional bool brightness_at_max = 14; 23750 23751 // Whether HBM mode is enabled due to sunlight 23752 optional bool hbm_mode_sunlight = 15; 23753 23754 // Whether HBM mode is enabled due to HDR 23755 optional bool hbm_mode_hdr = 16; 23756 23757 // Whether modified by low power mode. 23758 optional bool modified_by_low_power_mode = 17; 23759 23760 // Value defined in frameworks/base/core/java/android/hardware/display/BrightnessInfo.java 23761 // BRIGHTNESS_MAX_REASON_NONE = 0 23762 // BRIGHTNESS_MAX_REASON_THERMAL = 1 23763 // BRIGHTNESS_MAX_REASON_* defined in the future 23764 optional int32 throttling_reason = 18; 23765 23766 // Whether modified by dimming. 23767 optional bool modified_by_dimming = 19; 23768 23769 // Whether Reduce Bright Colors (RBC) is enabled. 23770 optional bool rbc_enabled = 20; 23771 23772 // Whether ambient lux is invalid. 23773 optional bool ambient_lux_invalid = 21; 23774 23775 // Whether doze scale applied for auto brightness. 23776 optional bool doze_scale_applied = 22; 23777 23778 // Whether the value is set by the user. 23779 optional bool set_by_user = 23; 23780 23781 // Whether idle mode is active. 23782 optional bool idle_mode_active= 24; 23783 23784 // Whether low power mode is enabled. 23785 optional bool low_power_mode_enabled= 25; 23786} 23787 23788// Logs daily ambient brightness stats. 23789message AmbientBrightnessStatsReported { 23790 23791 // How much time was spent in each of the buckets, in seconds. 23792 repeated float bucket_size_seconds = 1; 23793 23794 // Ambient brightness values for creating bucket boundaries from. 23795 repeated float bucket_boundary_lux = 2; 23796} 23797 23798// Logs information about bpf maps in BpfNetMaps. 23799// 23800// Logged from: 23801// packages/modules/Connectivity/service/src/com/android/server/BpfNetMaps.java 23802message NetworkBpfMapInfo { 23803 // The size of cookie tag bpf map. 23804 optional int32 cookie_tag_map_size = 1; 23805 23806 // The size of uid owner bpf map. 23807 optional int32 uid_owner_map_size = 2; 23808 23809 // The size of uid permission bpf map. 23810 optional int32 uid_permission_map_size = 3; 23811} 23812 23813/** 23814 * Pulls information for a single outgoing short code sms. 23815 * 23816 * Each pull generates multiple atoms, one for each category and xml_version combination. 23817 * 23818 * Pulled from: 23819 * frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java 23820 */ 23821message OutgoingShortCodeSms { 23822 /* Short code sms category. */ 23823 optional android.telephony.ShortCodeSmsEnum category = 1; 23824 23825 /* sms_short_codes.xml file version used by the device. */ 23826 optional int32 xml_version = 2; 23827 23828 /* Number of short code sms with the same configuration. */ 23829 optional int32 short_code_sms_count = 3; 23830} 23831 23832/** 23833 * Logs information when a hearing aid is bonded 23834 * 23835 * Logged from: 23836 * frameworks/base/packages/SettingsLib/src/com/android/settingslib/bluetooth/ 23837 * LocalBluetoothProfileManager.java 23838 */ 23839message HearingAidInfoReported { 23840 // The device mode of the bonded hearing aid 23841 // Mode definition for hearing aids. See {@link HearingAidInfo} 23842 enum DeviceMode { 23843 MODE_UNKNOWN = -1; 23844 MONAURAL = 0; 23845 BINAURAL = 1; 23846 BANDED = 2; 23847 } 23848 optional DeviceMode device_mode = 1; 23849 23850 // The device side of the bonded hearing aid 23851 // Side definition for hearing aids. See {@link HearingAidInfo}. 23852 enum DeviceSide { 23853 SIDE_UNKNOWN = -1; 23854 LEFT = 0; 23855 RIGHT = 1; 23856 LEFT_AND_RIGHT = 2; 23857 } 23858 optional DeviceSide device_side = 2; 23859 23860 // The entry page id where the bonding process starts 23861 enum BondEntry { 23862 PAGE_UNKNOWN = -1; 23863 CONNECTED_DEVICES = 0; 23864 ACCESSIBILITY_HEARING_AIDS = 1; 23865 ACCESSIBILITY_HEARING_AID_PAIR_ANOTHER = 2; 23866 BLUETOOTH = 3; 23867 ACCESSIBILITY_HEARING_AID_SETTINGS = 4; 23868 } 23869 optional BondEntry bond_entry = 3; 23870} 23871 23872/** 23873 * Logs when Ambient/OFFLOAD Mode is entered or exited. 23874 * 23875 * Logged from: 23876 * 1. vendor/google_clockwork/packages/Ambient/src/com/google/ 23877 * android/wearable/ambient/AmbientService.java 23878 * 2. vendor/google_clockwork/packages/Ambient/src/com/google/android/ 23879 * wearable/ambient/autoresume/AmbientLiteFlowController.java 23880 * 3. frameworks/opt/wear/src/com/google/android/clockwork/ 23881 * displayoffload/DisplayOffloadService.java 23882 */ 23883message AmbientModeChanged { 23884 enum AmbientStateEnum { 23885 AMBIENT_ENTER = 1; 23886 AMBIENT_EXIT = 2; 23887 AMBIENT_LITE_ENTER = 3; 23888 AMBIENT_LITE_EXIT = 4; 23889 OFFLOAD_ENTER = 5; 23890 OFFLOAD_EXIT = 6; 23891 } 23892 23893 optional AmbientStateEnum state = 1; 23894} 23895 23896 23897/** 23898 * Contains statistics about time spent fetching resource information from an APK. 23899 * Logged from: 23900 * frameworks/base/core/java/android/content/res/ResourceTimer.java 23901 */ 23902message ResourceValueApiStatisticsReported { 23903 23904 // The api that is being reported. 23905 optional android.app.ResourceApiEnum api = 1; 23906 23907 // The total number of events recorded. 23908 optional int32 event_count = 2; 23909 23910 // The total time spent in thie API. The units are ns. 23911 optional int64 cumulative_event_time_ns = 3; 23912 23913 // Four percentile values. Units are in ns. A value of zero means the percentile could not be 23914 // computed. 23915 optional int32 p50_ns = 4; 23916 optional int32 p90_ns = 5; 23917 optional int32 p95_ns = 6; 23918 optional int32 p99_ns = 7; 23919 23920 // The five largest values recorded. Units are in ns. A value of zero means the value is 23921 // missing (which means fewer than 5 events were recorded). Values that exceed INT_MAX are 23922 // capped at INT_MAX. 23923 optional int32 l0_ns = 8; 23924 optional int32 l1_ns = 9; 23925 optional int32 l2_ns = 10; 23926 optional int32 l3_ns = 11; 23927 optional int32 l4_ns = 12; 23928} 23929 23930/** 23931 * Logs when Iwlan responds the setup data call request. 23932 * 23933 * Logged from: 23934 * packages/services/Iwlan/src/com/google/android/iwlan/IwlanDataService.java 23935 */ 23936message IwlanSetupDataCallResultReported { 23937 enum IwlanError { 23938 NO_ERROR = 0; 23939 IKE_PROTOCOL_EXCEPTION = 1; 23940 IKE_INTERNAL_IO_EXCEPTION = 2; 23941 IKE_GENERIC_EXCEPTION = 3; 23942 EPDG_SELECTOR_SERVER_SELECTION_FAILED = 4; 23943 TUNNEL_TRANSFORM_FAILED = 5; 23944 SIM_NOT_READY_EXCEPTION = 6; 23945 NETWORK_FAILURE = 7; 23946 UNKNOWN_EXCEPTION = 8; 23947 } 23948 23949 // Setup data call apn type 23950 // See go/apntypedefinition 23951 optional int32 apn_type = 1; 23952 // Is the request for handover 23953 optional bool is_handover = 2; 23954 // ePDG server address 23955 optional string epdg_server_address = 3; 23956 // If the request type is handover, record the source network type 23957 // See 23958 // frameworks/base/telephony/java/android/telephony/TelephonyManager.java 23959 optional int32 source_rat = 4; 23960 // If the request type is handover, record the source network roaming status 23961 optional bool is_cellular_roaming = 5; 23962 // Is network connected 23963 optional bool is_network_connected = 6; 23964 // Default network transport type 23965 // See 23966 // packages/modules/Connectivity/framework/src/android/net/NetworkCapabilities.java 23967 optional int32 transport_type = 7; 23968 // Setup result 23969 optional int32 setup_request_result = 8; 23970 // Iwlan error code if setup failed 23971 optional IwlanError iwlan_error = 9; 23972 // Data call fail cause 23973 // See 23974 // frameworks/base/telephony/java/android/telephony/DataFailCause.java 23975 optional int32 data_call_fail_cause = 10; 23976 // Setup request processing duration 23977 optional int32 processing_duration_millis = 11; 23978 // Time for doing ePDG server selection through DNS query of FQDNs 23979 optional int32 epdg_server_selection_duration_millis = 12; 23980 // Time for establishing IKE tunnel 23981 optional int32 ike_tunnel_establishment_duration_millis = 13; 23982 // Tunnel State 23983 // See 23984 // packages/services/Iwlan/src/com/google/android/iwlan/IwlanDataService.java 23985 optional int32 tunnel_state = 14; 23986 // Handover failure mode 23987 // See 23988 // frameworks/base/telephony/java/android/telephony/data/DataCallResponse.java 23989 optional int32 handover_failure_mode = 15; 23990 // Retry duration 23991 optional int32 retry_duration_millis = 16; 23992 // Iwlan error wrapped exception classname 23993 optional string iwlan_error_wrapped_classname = 17; 23994 // Iwlan error wrapped exception 1st line of stack trace 23995 optional string iwlan_error_wrapped_stack_first_frame = 18; 23996 // Error count of the same error cause 23997 optional int32 error_count_of_same_cause = 19; 23998 // Underlying network validation status 23999 optional bool is_underlying_network_validated = 20; 24000} 24001 24002/** 24003 * Logs when Iwlan reports IWLAN PDN disconnected without deactivation request. 24004 * 24005 * Logged from: 24006 * packages/services/Iwlan/src/com/google/android/iwlan/IwlanDataService.java 24007 */ 24008message IwlanPdnDisconnectedReasonReported { 24009 // Disconnection cause 24010 // See 24011 // frameworks/base/telephony/java/android/telephony/DataFailCause.java 24012 optional int32 cause = 1; 24013 // Is network connected 24014 optional bool is_network_connected = 2; 24015 // default network transport type 24016 // See 24017 // packages/services/Iwlan/src/com/google/android/iwlan/IwlanDataService.java 24018 optional int32 transport_type = 3; 24019 // Wifi signal level 24020 optional int32 wifi_signal_level = 4; 24021} 24022 24023/** 24024 * Logs the number of network count on each list of transports 24025 * 24026 * Logs from: 24027 * packages/modules/Connectivity/service/src/com/android/server/ConnectivityService.java 24028 */ 24029message NetworkCountPerTransports { 24030 // the number of network count on each list of transports 24031 repeated NetworkCountForTransports network_count_for_transports = 1; 24032} 24033 24034/** 24035 * Logs the number of network count and transport type 24036 * 24037 * Logs from: 24038 * packages/modules/Connectivity/service/src/com/android/server/ConnectivityService.java 24039 */ 24040message NetworkCountForTransports { 24041 // Transport types of the network 24042 optional int32 transport_types = 1; 24043 24044 // Number of networks for one list of transport types 24045 optional int32 network_count = 2; 24046} 24047 24048/** 24049 * Logs a list of networks 24050 * 24051 * Logs from: 24052 * packages/modules/Connectivity/service/src/com/android/server/ConnectivityService.java 24053 */ 24054message NetworkList { 24055 repeated NetworkDescription network_description = 1; 24056} 24057 24058/** 24059 * Logs connection duration in seconds and list of transports 24060 * 24061 * Logs from: 24062 * packages/modules/Connectivity/service/src/com/android/server/ConnectivityService.java 24063 */ 24064message ConnectionDurationForTransports { 24065 // Transport types of the network 24066 optional int32 transport_types = 1; 24067 24068 // Time duration that the device stays connected to the network 24069 optional int32 duration_sec = 2; 24070} 24071 24072/** 24073 * Logs connection duration on each list of transports, in seconds 24074 * 24075 * Logs from: 24076 * packages/modules/Connectivity/service/src/com/android/server/ConnectivityService.java 24077 */ 24078message ConnectionDurationPerTransports { 24079 repeated ConnectionDurationForTransports connection_duration_for_transports = 1; 24080} 24081 24082/** 24083 * Logs network request count & request type 24084 * 24085 * Logs from: 24086 * packages/modules/Connectivity/service/src/com/android/server/ConnectivityService.java 24087 */ 24088message RequestCountForType { 24089 // The type of network request 24090 optional android.stats.connectivity.RequestType request_type = 1; 24091 24092 // Number of network requests 24093 optional int32 request_count = 2; 24094} 24095 24096/** 24097 * Logs network request count 24098 * 24099 * Logs from: 24100 * packages/modules/Connectivity/service/src/com/android/server/ConnectivityService.java 24101 */ 24102message NetworkRequestCount { 24103 // Network request count for request type 24104 repeated RequestCountForType request_count_for_type = 1; 24105} 24106 24107/** 24108 * Logs information about a network 24109 * 24110 * Logs from: 24111 * packages/modules/Connectivity/service/src/com/android/server/ConnectivityService.java 24112 */ 24113message NetworkDescription { 24114 // The transport types of the network. A network may include multiple transport types. 24115 // Each transfer type is represented by a different bit, defined in 24116 // packages/modules/Connectivity/framework/src/android/net/NetworkCapabilities.java 24117 optional int32 transport_types = 1; 24118 24119 // Indicates the network is metered, non-metered or temporarily-unmetered 24120 optional android.stats.connectivity.MeteredState metered_state = 2; 24121 24122 // Indicates the network is validated, non-validated, partial or portal 24123 optional android.stats.connectivity.ValidatedState validated_state = 3; 24124 24125 // Record the bitmask of all the policies applied to this score of network. 24126 // Each policy is represented by a different bit, defined in 24127 // packages/modules/Connectivity/service/src/com/android/server/connectivity/FullScore.java 24128 optional int64 score_policies = 4; 24129 24130 // The capabilities of the network. A network may include multiple network capabilities. 24131 // Each capability is represented by a different bit, defined in 24132 // packages/modules/Connectivity/framework/src/android/net/NetworkCapabilities.java 24133 optional int64 capabilities = 5; 24134 24135 // Bitfield representing the network's enterprise capability identifier, defined in 24136 // packages/modules/Connectivity/framework/src/android/net/NetworkCapabilities.java 24137 optional int32 enterprise_id = 6; 24138} 24139 24140/** 24141 * Pulls a list of NumberOfRematchesPerReason. 24142 * 24143 * Pulled from: 24144 * packages/modules/Connectivity/service/src/com/android/server/ConnectivityService.java 24145 */ 24146message NumberOfRematchesPerReason { 24147 // Number of network rematches for each rematch reason 24148 repeated NumberOfRematchesForReason number_of_rematches_per_reason= 1; 24149} 24150 24151/** 24152 * Logs number of network rematches for rematch reason 24153 * 24154 * Logs from: 24155 * packages/modules/Connectivity/service/src/com/android/server/ConnectivityService.java 24156 */ 24157message NumberOfRematchesForReason { 24158 // The reason of network rematch 24159 optional android.stats.connectivity.RematchReason rematch_reason = 1; 24160 24161 // Number of network rematches 24162 optional int32 rematch_count = 2; 24163}; 24164 24165/** 24166 * Pulls information for connectivity stats. 24167 * 24168 * Pulled from: 24169 * packages/modules/Connectivity/service/src/com/android/server/ConnectivityService.java 24170 */ 24171message ConnectivityStateSample { 24172 // Number of networks per list of transports 24173 optional NetworkCountPerTransports network_count_per_transports = 1 24174 [(android.os.statsd.log_mode) = MODE_BYTES]; 24175 24176 // This is a list of networks with their transports and the duration 24177 optional ConnectionDurationPerTransports connection_duration_per_transports = 2 24178 [(android.os.statsd.log_mode) = MODE_BYTES]; 24179 24180 // Number of requests per category 24181 optional NetworkRequestCount network_request_count = 3 24182 [(android.os.statsd.log_mode) = MODE_BYTES]; 24183 24184 // Full list of network details (slice by transport / meteredness / internet+validated) 24185 optional NetworkList networks = 4 [(android.os.statsd.log_mode) = MODE_BYTES]; 24186} 24187 24188 24189/** 24190 * Pulls information for network selection rematch info. 24191 * 24192 * Pulled from: 24193 * packages/modules/Connectivity/service/src/com/android/server/ConnectivityService.java 24194 */ 24195message NetworkSelectionRematchReasonsInfo { 24196 // Number of rematch per rematch reason 24197 optional NumberOfRematchesPerReason number_of_rematches_per_reason = 1 24198 [(android.os.statsd.log_mode) = MODE_BYTES]; 24199} 24200 24201/** 24202 * Logs rematch information for the default network 24203 * 24204 * Logs from: 24205 * packages/modules/Connectivity/service/src/com/android/server/ConnectivityService.java 24206 */ 24207message DefaultNetworkRematchInfo { 24208 // The session id comes from each reboot, this is used to correlate the statistics of the 24209 // networkselect on the same boot 24210 optional int64 session_id = 1; 24211 24212 // The information of old device default network 24213 optional NetworkDescription old_network = 2 [(android.os.statsd.log_mode) = MODE_BYTES]; 24214 24215 // The information of new device default network 24216 optional NetworkDescription new_network = 3 [(android.os.statsd.log_mode) = MODE_BYTES]; 24217 24218 // The reason of network rematch 24219 optional android.stats.connectivity.RematchReason rematch_reason = 4; 24220 24221 // The time duration the device kept the old network as the default in seconds 24222 optional int32 time_duration_on_old_network_sec = 5; 24223} 24224 24225/** 24226 * Logs network selection performance 24227 * 24228 * Logs from: 24229 * packages/modules/Connectivity/service/src/com/android/server/ConnectivityService.java 24230 */ 24231message NetworkSelectionPerformance { 24232 // Number of network requests 24233 optional int32 number_of_network_requests = 1; 24234 24235 // List of networks right now 24236 // (slice by transport / meteredness / internet+validated) 24237 optional NetworkList networks = 2 [(android.os.statsd.log_mode) = MODE_BYTES]; 24238 24239 // The latency of selection computed in milli-second 24240 optional int32 selection_computed_latency_milli = 3; 24241 24242 // The latency of selection applied in milli-second 24243 optional int32 selection_applied_latency_milli = 4; 24244 24245 // The latency of selection issued in milli-second 24246 optional int32 selection_issued_latency_milli = 5; 24247} 24248 24249message NetworkSliceRequestCountSample { 24250 // Bitfield representing the network's capability(e.g. NET_CAPABILITY_PRIORITIZE_LATENCY), 24251 // defined in packages/modules/Connectivity/framework/src/android/net/NetworkCapabilities.java 24252 optional int64 slice_id = 1; 24253 24254 // Bitfield representing the network's enterprise capability identifier 24255 // (e.g. NET_ENTERPRISE_ID_1), defined in 24256 // packages/modules/Connectivity/framework/src/android/net/NetworkCapabilities.java 24257 optional int32 enterprise_id = 2; 24258 24259 // number of request for this slice 24260 optional int32 request_count = 3; 24261 24262 // number of apps with outstanding request(s) for this slice 24263 optional int32 distinct_app_count = 4; 24264} 24265 24266message NetworkSliceSessionEnded { 24267 // Bitfield representing the network's capability(e.g. NET_CAPABILITY_PRIORITIZE_LATENCY), 24268 // defined in packages/modules/Connectivity/framework/src/android/net/NetworkCapabilities.java 24269 optional int64 slice_id = 1; 24270 24271 // Bitfield representing the network's enterprise capability identifier 24272 // (e.g. NET_ENTERPRISE_ID_1), defined in 24273 // packages/modules/Connectivity/framework/src/android/net/NetworkCapabilities.java 24274 optional int32 enterprise_id = 2; 24275 24276 // Number of bytes received at the device on this slice id 24277 optional int64 rx_bytes = 3; 24278 24279 // Number of bytes transmitted by the device on this slice id 24280 optional int64 tx_bytes = 4; 24281 24282 // Number of apps that have used this slice 24283 optional int32 number_of_apps = 5; 24284 24285 // How long(in seconds) this slice has been connected 24286 optional int32 slice_connection_duration_sec = 6; 24287} 24288 24289message NetworkSliceDailyDataUsageReported { 24290 // Bitfield representing the network's capability(e.g. NET_CAPABILITY_PRIORITIZE_LATENCY), 24291 // defined in packages/modules/Connectivity/framework/src/android/net/NetworkCapabilities.java 24292 optional int64 slice_id = 1; 24293 24294 // Bitfield representing the network's enterprise capability identifier 24295 // (e.g. NET_ENTERPRISE_ID_1), defined in 24296 // packages/modules/Connectivity/framework/src/android/net/NetworkCapabilities.java 24297 optional int32 enterprise_id = 2; 24298 24299 // Number of bytes received at the device on this slice id 24300 optional int64 rx_bytes = 3; 24301 24302 // Number of bytes transmitted by the device on this slice id 24303 optional int64 tx_bytes = 4; 24304 24305 // Number of apps that have used this slice 24306 optional int32 number_of_apps = 5; 24307 24308 // How long(in seconds) this slice has been connected 24309 optional int32 slice_connection_duration_sec = 6; 24310} 24311 24312/** 24313 * Logs the Brightness Configuration pushed by the long term model. The Brightness Configuration is 24314 * expressed as a curve where each point is a pair of ambient light (lux) and the corresponding 24315 * screen brightness (nits). 24316 * 24317 * Logged from: 24318 * frameworks/base/services/core/java/com/android/server/display/DisplayManagerService.java 24319 */ 24320message BrightnessConfigurationUpdated { 24321 // Array of ambient light values (in lux) to define the configuration. 24322 repeated float lux = 1; 24323 // Array of screen brightness values (in nits) corresponding to the lux 24324 // values above. 24325 repeated float nits = 2; 24326 // Physical display id, with format $ADAPTER_PREFIX:$ID, in this case 24327 // "local:$PHYSICAL_ID". 24328 optional string physical_display_id = 3; 24329} 24330 24331/** 24332 * Logs data when wear media output switcher is launched. 24333 * 24334 * Logged from: 24335 * package: vendor/google_clockwork/packages/Media 24336 */ 24337message WearMediaOutputSwitcherLaunched { 24338 // Name of the media app package from where Output Switcher got triggered. 24339 optional string triggering_package_name = 1; 24340 24341 // The operation type for invoking the OutputSwitcher 24342 optional com.google.android.wearable.media.routing.OpType op_type = 2; 24343 24344 // The result of OutputSwticher launch. 24345 optional com.google.android.wearable.media.routing.LaunchResult result = 3; 24346} 24347 24348/** 24349 * Logs data when wear media output switcher is finished. 24350 * 24351 * Logged from: 24352 * package: vendor/google_clockwork/packages/Media 24353 */ 24354message WearMediaOutputSwitcherFinished { 24355 optional bool user_did_some_activity = 1; 24356 optional bool is_device_connected = 2; 24357} 24358 24359/** 24360 * Logs data when wear media output switcher operation is INITIATED 24361 * or COMPLETED. 24362 * 24363 * Logged from: 24364 * package: vendor/google_clockwork/packages/Media 24365 */ 24366message WearMediaOutputSwitcherConnectionReported { 24367 // Type of the medium through which media is played 24368 optional com.google.android.wearable.media.routing.MediumType source = 1; 24369 optional com.google.android.wearable.media.routing.MediumType target = 2; 24370 24371 // Reason for the connection reported 24372 optional com.google.android.wearable.media.routing.ConnectionReportReason reason = 3; 24373 24374 // Current status of switching the media. 24375 optional com.google.android.wearable.media.routing.ConnectionState state =4; 24376 24377 // Type of target device. 24378 optional com.google.android.wearable.media.routing.MediaDeviceType target_device_type = 5; 24379 24380 // The operation type for invoking the OutputSwitcher 24381 optional com.google.android.wearable.media.routing.OpType op_type = 6; 24382 24383 optional bool is_retry = 7; 24384 24385 // For differentiating if the bluetooth device is connected from already 24386 // paired device list or from the bluetooth settings flow. 24387 optional bool is_already_paired = 8; 24388} 24389 24390/** 24391 * Logs data when wear media output switcher starts scanning 24392 * for already paired devices. 24393 * 24394 * Logged from: 24395 * package: vendor/google_clockwork/packages/Media 24396 */ 24397message WearMediaOutputSwitcherDeviceScanTriggered { 24398 // The current status of the scanned device. 24399 optional com.google.android.wearable.media.routing.ScanState scan_state = 1; 24400 24401 // Name of the media app package from where Output Switcher got triggered. 24402 optional string triggering_package_name = 2; 24403 24404 optional com.google.android.wearable.media.routing.OpType op_type = 3; 24405} 24406 24407/** 24408 * Logs the latency for scanning the first device. 24409 * 24410 * Logged from: 24411 * package: vendor/google_clockwork/packages/Media 24412 */ 24413message WearMediaOutputSwitcherFirstDeviceScanLatency { 24414 // The latency of scanning the first device 24415 optional int32 latency_in_millis = 1; 24416} 24417 24418/** 24419 * Logs the latency for scanning all devices. 24420 * 24421 * Logged from: 24422 * package: vendor/google_clockwork/packages/Media 24423 */ 24424message WearMediaOutputSwitcherAllDevicesScanLatency { 24425 // The latency of scanning all available devices in milli-second 24426 optional int32 latency_in_millis = 1; 24427 24428 // Type of target device. 24429 optional com.google.android.wearable.media.routing.MediaDeviceType target_device_type = 2; 24430} 24431 24432/** 24433 * Logs the latency in connecting to an already paired device. 24434 * 24435 * Logged from: 24436 * package: vendor/google_clockwork/packages/Media 24437 */ 24438message WearMediaOutputSwitcherConnectDeviceLatency { 24439 // The latency of connecting to an already paired device in milli-second. 24440 optional int32 latency_in_millis = 1; 24441 24442 // Type of target medium. 24443 optional com.google.android.wearable.media.routing.MediumType target_device_medium_type = 2; 24444 24445 // Type of target device. 24446 optional com.google.android.wearable.media.routing.MediaDeviceType target_device_type = 3; 24447} 24448 24449/** 24450 * Logs package manager snapshot performance. 24451 * 24452 * Logs from: 24453 * frameworks/base/services/core/java/com/android/server/pm/SnapshotStatistics.java 24454 */ 24455message PackageManagerSnapshotReported { 24456 // The histogram of snapshot rebuild latency in a period. Each bucket 24457 // represents a range of rebuild latency such as less than 1 ms, and the 24458 // value of the bucket is the number of snapshots in this range. 24459 repeated int32 rebuild_latency_buckets= 1; 24460 24461 // The histogram of the snapshot usage in a period. Each bucket 24462 // represents a range of snapshot uses such as less than 1, and the 24463 // value is the number of snapshots in this range. 24464 repeated int32 reuse_count_buckets = 2; 24465 24466 // The maximum rebuild latency in a period. 24467 optional int64 max_rebuild_latency_us = 3; 24468 24469 // The maximum number of snapshot usage in a period. 24470 optional int32 max_reuse_count = 4; 24471 24472 // The average rebuild latency for each snapshot in a period. 24473 optional int64 rebuild_latency_us_avg = 5; 24474 24475 // The average snapshot usage for each snapshot in a period. 24476 optional int32 reuse_count_avg = 6; 24477 24478 // The number of packages on the device. 24479 optional int32 packages_count = 7; 24480} 24481 24482/** 24483 * Logs package manager apps filter cache built performance. 24484 * 24485 * Logs from: 24486 * frameworks/base/services/core/java/com/android/server/pm/AppsFilterImpl.java 24487 */ 24488message PackageManagerAppsFilterCacheBuildReported { 24489 // An event id to indicate the type of the cache building. 24490 enum Event { 24491 UNSPECIFIED = 0; 24492 BOOT = 1; 24493 USER_CREATED = 2; 24494 USER_DELETED = 3; 24495 } 24496 optional Event event_type = 1; 24497 24498 // The time to build the cache in microseconds. 24499 optional int64 build_cache_latency_us = 2; 24500 24501 // The number of users on the device. 24502 optional int32 user_count = 3; 24503 24504 // The number of packages on the device. 24505 optional int32 packages_count = 4; 24506 24507 // The size of the cache. 24508 optional int32 cache_size_bytes = 5; 24509} 24510 24511/** 24512 * Logs package manager apps filter cache updated performance. 24513 * 24514 * Logs from: 24515 * frameworks/base/services/core/java/com/android/server/pm/AppsFilterImpl.java 24516 */ 24517message PackageManagerAppsFilterCacheUpdateReported { 24518 // An event id to indicate the type of cache updating. 24519 enum Event { 24520 UNSPECIFIED = 0; 24521 PACKAGE_ADDED = 1; 24522 PACKAGE_DELETED = 2; 24523 PACKAGE_REPLACED = 3; 24524 COMPAT_CHANGED = 4; 24525 } 24526 optional Event event_type = 1; 24527 24528 // The package's uid. 24529 optional int32 uid = 2 [(is_uid) = true]; 24530 24531 // The time to update the cache in microseconds. 24532 optional int64 update_cache_latency_us = 3; 24533 24534 // The number of users on the device. 24535 optional int32 user_count = 4; 24536 24537 // The number of packages on the device. 24538 optional int32 packages_count = 5; 24539 24540 // The size of the cache. 24541 optional int32 cache_size_bytes = 6; 24542} 24543 24544/** 24545* Logged during the watch face editing session in Wear Services 24546* This atom will log the duration with SessionStateEnum#END. 24547* 24548* Logged from : 24549* com/google/wear/services/watchfaces/editing/api/WatchFaceEditingApiImpl.java 24550*/ 24551message WsWatchFaceEdited { 24552 // Depicts the state of the session eg: START/END/ABORT. 24553 optional android.app.wearservices.SessionStateEnum session_state = 1; 24554 24555 // Session duration for watch face editing. 24556 optional int32 session_duration_millis = 2; 24557 24558 // Enum to depict the source of the request. Values (PHONE, WATCH) 24559 optional android.app.wearservices.RequestSource request_source = 3; 24560 24561 // Component package for watch face. 24562 optional int32 component_package_uid = 4 [(is_uid) = true]; 24563} 24564 24565/** 24566* Logged for watch face favorite feature in Wear Services. 24567* 24568* Logged from : 24569* com/google/wear/services/watchfaces/api/WatchFacesApiImpl.java 24570*/ 24571message WsWatchFaceFavouriteActionReported { 24572 // Component package for watch face. 24573 optional int32 component_package_uid = 1 [(is_uid) = true]; 24574 24575 // Depicts the action for wf favorites eg: Add/Remove. 24576 optional android.app.wearservices.ActionEnum favorite_action = 2; 24577 24578 // Enum to depict the source of the request. Values (PHONE, WATCH) 24579 optional android.app.wearservices.RequestSource request_source = 3; 24580} 24581 24582/** 24583* Logged for the watch face set feature in Wear Services. 24584* 24585* Logged from : 24586* com/google/wear/services/watchfaces/api/WatchFacesApiImpl.java 24587*/ 24588message WsWatchFaceSetActionReported { 24589 // Component package for watch face. 24590 optional int32 component_package_uid = 1 [(is_uid) = true]; 24591 24592 // Result for WF, whether it resulted in SAME/FAVORITE/FALLBACK 24593 optional android.app.wearservices.SetResultEnum wf_set_result = 2; 24594 24595 // Enum to depict the source of the request. Values (PHONE, WATCH) 24596 optional android.app.wearservices.RequestSource request_source = 3; 24597} 24598 24599/** 24600* Logged when tile list is modified (go/wear-dd-wearservices-telemetry) 24601*/ 24602message WsTileListChanged { 24603 enum Event { 24604 EVENT_UNKNOWN = 0; 24605 TILE_ADDED = 1; 24606 TILE_REMOVED = 2; 24607 TILE_UPDATED = 3; // go/wear-dd-tiles-oem-metadata 24608 } 24609 // Component package for the tile that is being changed. 24610 optional int32 component_package_uid = 1 [(is_uid) = true]; 24611 24612 // Class name for the tile. 24613 optional string component_class_name = 2; 24614 24615 // The event in result of which tile list has changed. 24616 optional Event event = 3; 24617 24618 // Where a tile has been changed from. When changed on the companion equals 24619 // to the phone source, otherwise watch source if it's changed from the watch. 24620 optional android.app.wearservices.RequestSource request_source = 4; 24621 24622 // The package name of the app where the tile change has originated from. 24623 // Null for cases where the tile change originated from paired phone 24624 // where request_source would be RequestSource.PHONE. 24625 optional string origin_package_name = 5; 24626} 24627 24628/** 24629* A snapshot of all visible tiles in the order they appear on the watch. 24630* (go/wear-dd-wearservices-telemetry) 24631*/ 24632message WsTileSnapshot { 24633 // Component package name for the tiles. 24634 repeated string component_package_name = 1; 24635 24636 // Class name for the tiles. 24637 repeated string component_class_name = 2; 24638 24639 // The size in bytes of the vendor-specific metadata associated with this 24640 // tile. It will be zero (or not present) if no vendor-specific metadata is 24641 // associated with the tile or the associated metadata is empty. 24642 // 24643 // See go/wear-dd-tiles-oem-metadata for details. 24644 repeated int32 vendor_metadata_size_bytes = 3; 24645} 24646/* 24647* Logs calls to getType of a contentProvider, where the caller has potentially no access to 24648* the provider. 24649* 24650* Logs from : 24651* frameworks/base/services/core/java/com/android/server/am/ContentProviderHelper.java 24652* frameworks/base/core/java/android/content/ContentProvider.java 24653*/ 24654message GetTypeAccessedWithoutPermission{ 24655 // Indicator of the type of permission failure 24656 enum FailureType{ 24657 UNSPECIFIED = 0; 24658 AM_FRAMEWORK_PERMISSION = 1; 24659 AM_CHECK_URI_PERMISSION = 2; 24660 AM_ERROR = 3; 24661 PROVIDER_FRAMEWORK_PERMISSION = 4; 24662 PROVIDER_CHECK_URI_PERMISSION = 5; 24663 PROVIDER_ERROR = 6; 24664 } 24665 optional FailureType location = 1; 24666 // Name of the caller package 24667 optional int32 calling_uid = 2 [(is_uid) = true]; 24668 // Name of the provider (authority) which is being accessed 24669 optional string provider = 3; 24670 // Type of the uri returned 24671 optional string type = 4; 24672} 24673 24674/** Logged when a complication is changed on a watch face. Both 24675 data for complication that is being placed in the complication 24676 slot (we call is new here) and for complication that is being 24677 replaced (we call is old) is reported. 24678*/ 24679message WsWatchFaceComplicationSetChanged { 24680 // Watch face package uid 24681 optional int32 watch_face_package_uid = 1 [(is_uid) = true]; 24682 24683 // Complication component package uid for complication that is being replaced. 24684 // Equals to -1 if new complication is placed on previously empty slot. 24685 optional int32 old_complication_component_package_uid = 2 [(is_uid) = true]; 24686 24687 // Complication component class name for complication that is being replaced. 24688 // Equals to empty string if new complication is placed on previously empty slot. 24689 optional string old_complication_component_class_name = 3; 24690 24691 // Complication component package uid for new complication. 24692 // Equals to -1 if complication is removed from complication slot. 24693 optional int32 new_complication_component_package_uid = 4 [(is_uid) = true]; 24694 24695 // Complication component class name for new complication. 24696 // Equals to empty string if complication is removed from complication slot. 24697 optional string new_complication_component_class_name = 5; 24698 24699 // Where a complication has been changed from. When changed on the companion equals 24700 // to SOURCE_PHONE, otherwise if it's changed from the watch SOURCE_WATCH. 24701 optional android.app.wearservices.RequestSource request_source = 6; 24702 24703 // Old complication type. 24704 optional int32 old_complication_type = 7; 24705 24706 // New complication type. 24707 optional int32 new_complication_type = 8; 24708} 24709 24710/** Snapshot of all active complications on the current watch face. 24711* (go/wear-dd-wearservices-telemetry) 24712*/ 24713message WsActiveWatchFaceComplicationSetSnapshot { 24714 // Complication package name. 24715 repeated string complication_component_package_name = 1; 24716 24717 // Complication component class name. 24718 repeated string complication_component_class_name = 2; 24719 24720 // Complication type. 24721 repeated int32 complication_type = 4; 24722 24723 // Active watch face package uid. 24724 optional int32 watch_face_package_uid = 3 [(is_uid) = true]; 24725 24726 /* Active watch face class name. This will be 24727 null for Declarative WF packages, as these packages have only one WF. */ 24728 optional string watch_face_class_name = 5; 24729} 24730 24731message UnsafeIntentEventReported { 24732 enum EventType { 24733 UNKNOWN = 0; 24734 // When a component is matched with a null action. 24735 NULL_ACTION_MATCH = 1; 24736 // When a non-exported internal component is matched. 24737 INTERNAL_NON_EXPORTED_COMPONENT_MATCH = 2; 24738 // When an explicit intent does not match 24739 // an external component intent filter. 24740 EXPLICIT_INTENT_FILTER_UNMATCH = 3; 24741 // When a mutable pending intent for an implicit intent is retrieved 24742 NEW_MUTABLE_IMPLICIT_PENDING_INTENT_RETRIEVED = 4; 24743 } 24744 // Type of matching event. 24745 optional EventType event_type = 1; 24746 // The calling UID. 24747 optional int32 calling_uid = 2 [(is_uid) = true]; 24748 // The component name of the intent. 24749 optional string component_name = 3; 24750 // The package name of the intent. 24751 optional string package_name = 4; 24752 // The action of the intent. 24753 optional string action = 5; 24754 // List of categories of the intent. 24755 repeated string categories = 6; 24756 // Data type of the intent. 24757 optional string data_type = 7; 24758 // Data scheme of the intent. 24759 optional string data_scheme = 8; 24760 // Is the unsafe intent event blocked by the system. 24761 optional bool is_blocked = 9; 24762} 24763 24764/** 24765 * Snapshot of all favorite watch faces from the watch. 24766 */ 24767message WsFavouriteWatchFaceListSnapshot { 24768 repeated string watch_face_component_name = 1; 24769} 24770