1/* 2 * Copyright (C) 2018 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 19// C++ namespace: android::hardware::google::pixel::PixelAtoms 20package android.hardware.google.pixel.PixelAtoms; 21 22option optimize_for = LITE_RUNTIME; 23 24option java_package = "android.hardware.google.pixel"; 25option java_outer_classname = "PixelAtoms"; 26 27import "frameworks/proto_logging/stats/atom_field_options.proto"; 28import "frameworks/proto_logging/stats/enums/app_shared/app_enums.proto"; 29 30/* 31 * Please note that the following features are not currently supported by 32 * the IStats->reportVendorAtom implementation: 33 * - types outside of int, long, float, bool and string (ex. uint) 34 * - submessages within an atom 35 * - field # 1 - this will be occupied by the vendor namespace 36 */ 37 38/* Allocated atom IDs. */ 39message Atom { 40 oneof pushed { 41 // AOSP atom ID range starts at 105000 42 ChargeStats charge_stats = 105000; 43 VoltageTierStats voltage_tier_stats = 105001; 44 BatteryCapacity battery_capacity = 105002; 45 StorageUfsHealth storage_ufs_health = 105003; 46 F2fsStatsInfo f2fs_stats = 105004; 47 ZramMmStat zram_mm_stat = 105005; 48 ZramBdStat zram_bd_stat = 105006; 49 BootStatsInfo boot_stats = 105007; 50 // 105008 - 105009 is available. 51 BatteryCapacityFG fg_capacity = 105010; 52 PdVidPid pd_vid_pid = 105011; 53 BatteryEEPROM battery_eeprom = 105012; 54 VendorSpeakerImpedance vendor_speaker_impedance = 105013; // moved from atoms.proto 55 StorageUfsResetCount ufs_reset_count = 105014; 56 PixelMmMetricsPerHour pixel_mm_metrics_per_hour = 105015; 57 PixelMmMetricsPerDay pixel_mm_metrics_per_day = 105016; 58 F2fsCompressionInfo f2fs_compression_info = 105017; 59 VendorChargeCycles vendor_charge_cycles = 105018; // moved from atoms.proto 60 VendorHardwareFailed vendor_hardware_failed = 105019 [(android.os.statsd.module) = "pixelaudio"]; // moved from atoms.proto 61 VendorSlowIo vendor_slow_io = 105020; // moved from atoms.proto 62 VendorSpeechDspStat vendor_speech_dsp_stat = 105021; // moved from atoms.proto 63 VendorPhysicalDropDetected vendor_physical_drop_detected = 64 105022 [(android.os.statsd.module) = "pixelstats"]; // moved from atoms.proto 65 VendorUsbPortOverheat vendor_usb_port_overheat = 105023; // moved from atoms.proto 66 CmaStatus cma_status = 105024; 67 CmaStatusExt cma_status_ext = 105025; 68 VendorBatteryHealthSnapshot vendor_battery_health_snapshot = 69 105026 [(android.os.statsd.module) = "pixelhealth"]; // moved from atoms.proto 70 VendorBatteryCausedShutdown vendor_battery_caused_shutdown = 71 105027 [(android.os.statsd.module) = "pixelhealth"]; // moved from atoms.proto 72 F2fsGcSegmentInfo f2fs_gc_segment_info = 105028; 73 PowerMitigationStats mitigation_stats = 105029; // moved from atoms.proto 74 75 CitadelVersion citadel_version = 100018; // moved from vendor proprietary 76 CitadelEvent citadel_event = 100019; // moved from vendor proprietary 77 VendorSpeakerStatsReported vendor_speaker_stats_reported = 105030 [(android.os.statsd.module) = "pixelaudio"]; 78 79 ChreHalNanoappLoadFailed chre_hal_nanoapp_load_failed = 80 105031 [(android.os.statsd.module) = "chre"]; 81 ChrePalOpenFailed chre_pal_open_failed = 105032 [(android.os.statsd.module) = "chre"]; 82 ChreApiErrorCodeDistributionTaken chre_api_error_code_distribution_taken = 83 105033 [(android.os.statsd.module) = "chre"]; 84 ChreDynamicMemorySnapshotReported chre_dynamic_memory_snapshot_reported = 85 105034 [(android.os.statsd.module) = "chre"]; 86 ChreEventQueueSnapshotReported chre_event_queue_snapshot_reported = 87 105035 [(android.os.statsd.module) = "chre"]; 88 ChreApWakeUpOccurred chre_ap_wake_up_occurred = 105036 [(android.os.statsd.module) = "chre"]; 89 90 BatteryHealthStatus battery_health_status = 105037; 91 BatteryHealthUsage battery_health_usage = 105038; 92 F2fsSmartIdleMaintEnabledStateChanged f2fs_smart_idle_maint_enabled_state_changed = 105039; 93 BlockStatsReported block_stats_reported = 105040; 94 VendorAudioHardwareStatsReported vendor_audio_hardware_stats_reported = 105041 [(android.os.statsd.module) = "pixelaudio"]; 95 96 ThermalDfsStats thermal_dfs_stats = 105042; 97 VendorLongIRQStatsReported vendor_long_irq_stats_reported = 105043; 98 VendorResumeLatencyStats vendor_resume_latency_stats = 105044; 99 VendorTempResidencyStats vendor_temp_residency_stats = 105045; 100 BrownoutDetected brownout_detected = 105046; 101 PcieLinkStatsReported pcie_link_stats = 105047; 102 VendorSensorCoolingDeviceStats vendor_sensor_cooling_device_stats = 105048; 103 104 VibratorPlaycountReported vibrator_playcount_reported = 105049 [(android.os.statsd.module) = "vibrator"]; 105 VibratorLatencyReported vibrator_latency_reported = 105050 [(android.os.statsd.module) = "vibrator"]; 106 VibratorErrorsReported vibrator_errors_reported = 105051 [(android.os.statsd.module) = "vibrator"]; 107 F2fsAtomicWriteInfo f2fs_atomic_write_info = 105052; 108 PartitionsUsedSpaceReported partition_used_space_reported = 105053; 109 PowerMitigationDurationCounts mitigation_duration = 105054; // moved from atoms.proto 110 DisplayPanelErrorStats display_panel_error_stats = 105055; 111 VendorAudioPdmStatsReported vendor_audio_pdm_stats_reported = 105056; 112 VendorAudioThirdPartyEffectStatsReported vendor_audio_third_party_effect_stats_reported = 105057 [(android.os.statsd.module) = "pixelaudio"]; 113 VendorAudioAdaptedInfoStatsReported vendor_audio_adapted_info_stats_reported = 105058; 114 GpuEvent gpu_event = 105059; 115 VendorAudioPcmStatsReported vendor_audio_pcm_stats_reported = 105060 [(android.os.statsd.module) = "pixelaudio"]; 116 VendorUsbDataSessionEvent vendor_usb_data_session_event = 105061; 117 ThermalSensorAbnormalityDetected thermal_sensor_abnormality_detected = 105062; 118 VendorAudioOffloadedEffectStatsReported vendor_audio_offloaded_effect_stats_reported = 105063; 119 VendorAudioBtMediaStatsReported vendor_audio_bt_media_stats_reported = 105064 [(android.os.statsd.module) = "pixelaudio"]; 120 PixelImpulseUsageReported pixel_impulse_usage_reported = 105065; 121 DisplayPortErrorStats display_port_error_stats = 105066; 122 HDCPAuthTypeStats hdcp_auth_type_stats = 105067; 123 DisplayPortUsage display_port_usage = 105068; 124 FuelGaugeAbnormalityReported fuel_gauge_abnormality_reported = 105069; 125 MmProcessUsageByOomGroupSnapshot mm_process_usage_by_oom_group_snapshot = 105070; 126 MmGcmaSnapshot mm_gcma_snapshot = 105071; 127 MmGcmaStats mm_gcma_stats = 105072; 128 VendorAudioUsbDeviceCapabilityStats vendor_audio_usb_device_capability_stats = 105073 [(android.os.statsd.module) = "pixelaudio"]; 129 BatteryTimeToFullStatsReported battery_time_to_full_stats_reported = 105074; 130 VendorAudioDirectUsbAccessUsageStats vendor_audio_direct_usb_access_usage_stats = 105075 [(android.os.statsd.module) = "pixelaudio"]; 131 VendorAudioUsbConfigStats vendor_audio_usb_config_stats = 105076 [(android.os.statsd.module) = "pixelaudio"]; 132 GpuFrequencyTimeInStatePerUidReported gpu_frequency_time_in_state_per_uid_reported = 105077; 133 GpuFrozenAppsMemoryPerUid gpu_frozen_apps_memory_per_uid = 105078; 134 RepairModeEntered repair_mode_entered = 105079; 135 RepairModeExited repair_mode_exited = 105080; 136 RepairModeLowStorageReported repair_mode_low_storage_reported = 105081; 137 RepairModeErrorReported repair_mode_error_reported = 105082; 138 DisplayPortDSCSupportCountStatsReported display_port_dsc_support_stats = 105083; 139 DisplayPortMaxResolutionCountStatsReported display_port_max_resolution_stats = 105084; 140 VendorAudioDspRecordUsageStatsReported vendor_audio_dsp_record_usage_stats_reported = 105085 [(android.os.statsd.module) = "pixelaudio"]; 141 VendorAudioUsbConnectionState vendor_audio_usb_connection_state = 105086 [(android.os.statsd.module) = "pixelaudio"]; 142 VendorAudioSpeakerPowerStatsReported vendor_audio_speaker_power_stats_reported = 105087 [(android.os.statsd.module) = "pixelaudio"]; 143 DmVerityPartitionReadAmountReported dm_verity_partition_read_amount_reported = 105088; 144 WaterEventReported water_event_reported = 105089; 145 MediaPlaybackUsageStatsReported media_playback_usage_stats_reported = 105090 [(android.os.statsd.module) = "pixelaudio"]; 146 CallUsageStatsReported call_usage_stats_reported = 105091 [(android.os.statsd.module) = "pixelaudio"]; 147 BatteryFirmwareUpdateReported battery_firmware_update_reported = 105092; 148 PowerFifoDump power_fifo_dump = 105093 [(android.os.statsd.module) = "pixelpower"]; 149 GnssTtffReported gnss_ttff_reported = 105094 [(android.os.statsd.module) = "pixelgnss"]; 150 } 151 // AOSP atom ID range ends at 109999 152 reserved 109997; // reserved for VtsVendorAtomJavaTest test atom 153 reserved 109998; // reserved for VtsVendorAtomJavaTest test atom 154 reserved 109999; // reserved for VtsVendorAtomJavaTest test atom 155} 156 157/* Supported reverse domain names. */ 158message ReverseDomainNames { 159 optional string pixel = 1 [default = "com.google.pixel"]; 160} 161 162/* A message containing detailed statistics and debug information about a charge session. */ 163message ChargeStats { 164 /* Charge Adapter stats. */ 165 enum AdapterType { 166 ADAPTER_TYPE_UNKNOWN = 0; 167 ADAPTER_TYPE_USB = 1; 168 ADAPTER_TYPE_USB_SDP = 2; 169 ADAPTER_TYPE_USB_DCP = 3; 170 ADAPTER_TYPE_USB_CDP = 4; 171 ADAPTER_TYPE_USB_ACA = 5; 172 ADAPTER_TYPE_USB_C = 6; 173 ADAPTER_TYPE_USB_PD = 7; 174 ADAPTER_TYPE_USB_PD_DRP = 8; 175 ADAPTER_TYPE_USB_PD_PPS = 9; 176 ADAPTER_TYPE_USB_PD_BRICKID = 10; 177 ADAPTER_TYPE_HVDCP = 11; 178 ADAPTER_TYPE_HVDCP3 = 12; 179 ADAPTER_TYPE_FLOAT = 13; 180 ADAPTER_TYPE_WLC = 14; 181 ADAPTER_TYPE_WLC_EPP = 15; 182 ADAPTER_TYPE_WLC_SPP = 16; 183 ADAPTER_TYPE_GPP = 17; 184 ADAPTER_TYPE_10W = 18; 185 ADAPTER_TYPE_L7 = 19; 186 ADAPTER_TYPE_DL = 20; 187 ADAPTER_TYPE_WPC_EPP = 21; 188 ADAPTER_TYPE_WPC_GPP = 22; 189 ADAPTER_TYPE_WPC_10W = 23; 190 ADAPTER_TYPE_WPC_BPP = 24; 191 ADAPTER_TYPE_WPC_L7 = 25; 192 ADAPTER_TYPE_EXT = 26; 193 ADAPTER_TYPE_EXT1 = 27; 194 ADAPTER_TYPE_EXT2 = 28; 195 ADAPTER_TYPE_EXT_UNKNOWN = 29; 196 ADAPTER_TYPE_USB_UNKNOWN = 30; 197 ADAPTER_TYPE_WLC_UNKNOWN = 31; 198 ADAPTER_TYPE_WPC_MPP = 32; 199 ADAPTER_TYPE_WPC_MPP25 = 33; 200 } 201 optional string reverse_domain_name = 1; 202 /* Type of charge adapter, enumerated above. */ 203 optional AdapterType adapter_type = 2; 204 /* Max negotiated voltage by charge adapter, in mV. */ 205 optional int32 adapter_voltage = 3; 206 /* Max negotiated current by charge adapter current, in mA. */ 207 optional int32 adapter_amperage = 4; 208 209 /* Stats at beginning of charge session. */ 210 /* System State of Charge, in percent. */ 211 optional int32 ssoc_in = 5; 212 /* Voltage in mV. */ 213 optional int32 voltage_in = 6; 214 215 /* Stats at end of charge session. */ 216 /* System State of Charge, in percent. */ 217 optional int32 ssoc_out = 7; 218 /* Voltage in mV. */ 219 optional int32 voltage_out = 8; 220 221 /** 222 * These values are meant to represent status of the charging device, used 223 * to validate the charging algorithm and explain charging performances. 224 * Examples of the content of the register: 225 * - APDO, PDO (power capabilities of the device, eg. 5V3A, 9V2A, 20V2A) for wired charging 226 * - Wireless charging MFG code. This is the value of a register of the WLC integrated 227 * circuit to identify the vendor and type of WLC pad 228 * - Receiver operating frequency 229 * - Register status 230 */ 231 optional int32 adapter_capabilities0 = 9; 232 optional int32 adapter_capabilities1 = 10; 233 optional int32 adapter_capabilities2 = 11; 234 optional int32 adapter_capabilities3 = 12; 235 optional int32 adapter_capabilities4 = 13; 236 237 /** 238 * These are values which reports the state of the wireless receiver, which will help in 239 * debugging charging issues and alternate configurations. 240 */ 241 optional int32 receiver_state0 = 14; 242 optional int32 receiver_state1 = 15; 243 244 /* AACR feature to record capacity */ 245 optional int32 charge_capacity = 16; 246 247 /* Charging Speed Indicator(CSI) status and type */ 248 optional int32 csi_aggregate_status = 17; 249 optional int32 csi_aggregate_type = 18; 250 251 optional int32 aacr_algo = 19; 252 optional int32 aacp_version = 20; 253 optional int32 aacc = 21; 254} 255 256/* A message containing stats from each charge voltage tier. */ 257message VoltageTierStats { 258 optional string reverse_domain_name = 1; 259 /* Voltage tier number, custom to implementation, should be <= 3. */ 260 optional int32 voltage_tier = 2; 261 262 /* Stats when entering voltage tier. */ 263 /* State of charge, in percent. */ 264 optional float soc_in = 3; 265 /* Coulomb count, in mAh. */ 266 optional int32 cc_in = 4; 267 /* Battery temperature, in deciC. */ 268 optional int32 temp_in = 5; 269 270 /* Time spent at various charge speeds, in seconds. */ 271 optional int32 time_fast_secs = 6; 272 optional int32 time_taper_secs = 7; 273 optional int32 time_other_secs = 8; 274 275 /* Battery temperature stats, in deciC. */ 276 optional int32 temp_min = 9; 277 optional int32 temp_avg = 10; 278 optional int32 temp_max = 11; 279 280 /* Battery current stats, in mA. */ 281 optional int32 ibatt_min = 12; 282 optional int32 ibatt_avg = 13; 283 optional int32 ibatt_max = 14; 284 285 /* Input current limit stats, in mA. */ 286 optional int32 icl_min = 15; 287 optional int32 icl_avg = 16; 288 optional int32 icl_max = 17; 289 290 /** 291 * Efficiency number, receiver operating frequency in kHz for wireless charging 292 * (alignment) 293 */ 294 optional int32 charging_operating_point = 18; 295 /* The minimum power out of the adapter at the given charging tier */ 296 optional int32 min_adapter_power_out = 19; 297 /* The time-averaged power out of the adapter at the given charging tier */ 298 optional int32 time_avg_adapter_power_out = 20; 299 /* The maximum power out of the adapter at the given charging tier */ 300 optional int32 max_adapter_power_out = 21; 301} 302 303/* A message containing an alternate proprietary full battery capacity estimate. */ 304message BatteryCapacity { 305 optional string reverse_domain_name = 1; 306 /* Sum of the change in coulomb count. */ 307 optional int32 delta_cc_sum = 2; 308 /* Sum of the change in state of charge (battery level). */ 309 optional int32 delta_vfsoc_sum = 3; 310} 311 312/* A message containing health values of UFS */ 313message StorageUfsHealth { 314 optional string reverse_domain_name = 1; 315 /* The value of lifetimeA for UFS health */ 316 optional int32 lifetime_a = 2; 317 /* The value of lifetimeB for UFS health */ 318 optional int32 lifetime_b = 3; 319 /* The value of lifetimeC for UFS health */ 320 optional int32 lifetime_c = 4; 321} 322 323/* A message containing filesystem stats of F2FS */ 324message F2fsStatsInfo { 325 optional string reverse_domain_name = 1; 326 /* The value of dirty segments of f2fs */ 327 optional int32 dirty_segments = 2; 328 /* The value of free segments of f2fs */ 329 optional int32 free_segments = 3; 330 /* The times of checkpoint function called in foreground*/ 331 optional int32 cp_calls_fg = 4; 332 /* The times of checkpoint function called in background */ 333 optional int32 cp_calls_bg = 5; 334 /* The times of garbage collection function called in foreground */ 335 optional int32 gc_calls_fg = 6; 336 /* The times of garbage collection function called in background */ 337 optional int32 gc_calls_bg = 7; 338 /* The amount of blocks been moved by garbage collection in foreground */ 339 optional int32 moved_blocks_fg = 8; 340 /* The amount of blocks been moved by garbage collection in background */ 341 optional int32 moved_blocks_bg = 9; 342 /* The average of how many valid blocks is in a segment */ 343 optional int32 valid_blocks = 10; 344} 345 346message ZramMmStat { 347 optional string reverse_domain_name = 1; 348 /* The value of original memory size */ 349 optional int64 orig_data_size = 2; 350 /* The value of compressed memory size */ 351 optional int64 compr_data_size = 3; 352 /* The value of consumed memory size to store compressed memory */ 353 optional int64 mem_used_total = 4; 354 /* The value of number of page filled with same elements data */ 355 optional int64 same_pages = 5; 356 /* The value of number of incompressible page */ 357 optional int64 huge_pages = 6; 358 /* The value of number of incompressible pages since boot */ 359 optional int64 huge_pages_since_boot = 7; 360} 361 362message ZramBdStat { 363 optional string reverse_domain_name = 1; 364 /* the number of pages in backing device */ 365 optional int64 bd_count = 2; 366 /* The number of pages readed from backing device */ 367 optional int64 bd_reads = 3; 368 /* The number of pages written to backing device */ 369 optional int64 bd_writes = 4; 370} 371 372/* A message containing boot times */ 373message BootStatsInfo { 374 optional string reverse_domain_name = 1; 375 /* The F2FS fsck time in secs */ 376 optional int32 fsck_time_sec = 2; 377 /* The F2FS mounted time in secs */ 378 optional int32 mounted_time_sec = 3; 379 /* The F2FS checkpoint=disable time in secs */ 380 optional int32 checkpoint_time_sec = 4; 381} 382 383/* A message containing wireless charging health info. */ 384message WirelessChargingStats { 385 /* Captures if a google charger used when start wireless charging */ 386 enum ChargerVendor { 387 VENDOR_UNKNOWN = 0; 388 VENDOR_GOOGLE = 1; 389 } 390 391 optional string reverse_domain_name = 1; 392 optional ChargerVendor charger_vendor = 2; 393} 394 395/* Current device Orientation */ 396message DeviceOrientation { 397 enum Orientation { 398 ORIENTATION_UNKNOWN = 0; 399 ORIENTATION_0 = 1; 400 ORIENTATION_90 = 2; 401 ORIENTATION_180 = 3; 402 ORIENTATION_270 = 4; 403 } 404 405 optional string reverse_domain_name = 1; 406 /* Device orientation. */ 407 optional Orientation orientation = 2; 408} 409 410/* Raw battery capacity stats */ 411message BatteryCapacityFG { 412 enum LogReason { 413 LOG_REASON_UNKNOWN = 0; 414 LOG_REASON_CONNECTED = 1; 415 LOG_REASON_DISCONNECTED = 2; 416 LOG_REASON_FULL_CHARGE = 3; 417 LOG_REASON_PERCENT_SKIP = 4; 418 LOG_REASON_DIVERGING_FG = 5; 419 } 420 421 optional string reverse_domain_name = 1; 422 /* Uevent logging reason, enumerated above. */ 423 optional LogReason capacity_log_reason = 2; 424 425 /* The battery capacity reported from the FG (fuel gauge) hardware */ 426 optional float capacity_gdf = 3; 427 /* The filtered system battery capacity reported to the UI */ 428 optional float capacity_ssoc = 4; 429 /* The fuel gauge capacity curve midpoint FG (fuel gauge) value */ 430 optional float capacity_gdf_curve = 5; 431 /* The fuel gauge capacity curve midpoint UI value */ 432 optional float capacity_ssoc_curve = 6; 433} 434 435message PdVidPid { 436 optional string reverse_domain_name = 1; 437 /* Vendor ID of wired charger */ 438 optional int32 vid = 2; 439 /* Product ID of wired charger */ 440 optional int32 pid = 3; 441} 442 443message BatteryEEPROM { 444 optional string reverse_domain_name = 1; 445 /* The cycle count number; record of charge/discharge times */ 446 optional int32 cycle_cnt = 2; 447 /* The current full capacity of the battery under nominal conditions */ 448 optional int32 full_cap = 3; 449 /* The battery equivalent series resistance */ 450 optional int32 esr = 4; 451 /* Battery resistance related to temperature change */ 452 optional int32 rslow = 5; 453 /* Battery health indicator reflecting the battery age state */ 454 optional int32 soh = 6; 455 /* The battery temperature */ 456 optional int32 batt_temp = 7; 457 458 /* Battery state of charge (SOC) shutdown point */ 459 optional int32 cutoff_soc = 8; 460 /* Raw battery state of charge (SOC), based on battery current (CC = Coulomb Counter) */ 461 optional int32 cc_soc = 9; 462 /* Estimated battery state of charge (SOC) from batt_soc with endpoint limiting (0% and 100%) */ 463 optional int32 sys_soc = 10; 464 /* Filtered monotonic SOC, handles situations where the cutoff_soc is increased and 465 * then decreased from the battery physical properties 466 */ 467 optional int32 msoc = 11; 468 /* Estimated SOC derived from cc_soc that provides voltage loop feedback correction using 469 * battery voltage, current, and status values 470 */ 471 optional int32 batt_soc = 12; 472 473 /* Field used for data padding in the EEPROM data */ 474 optional int32 reserve = 13; 475 476 /* The maximum battery temperature ever seen */ 477 optional int32 max_temp = 14; 478 /* The minimum battery temperature ever seen */ 479 optional int32 min_temp = 15; 480 /* The maximum battery voltage ever seen */ 481 optional int32 max_vbatt = 16; 482 /* The minimum battery voltage ever seen */ 483 optional int32 min_vbatt = 17; 484 /* The maximum battery current ever seen */ 485 optional int32 max_ibatt = 18; 486 /* The minimum battery current ever seen */ 487 optional int32 min_ibatt = 19; 488 /* Field used to verify the integrity of the EEPROM data */ 489 optional int32 checksum = 20; 490 491 /* Extend data for P21 */ 492 /* Temperature compensation information */ 493 optional int32 tempco = 21; 494 /* Learned characterization related to the voltage gauge */ 495 optional int32 rcomp0 = 22; 496 /* For time to monitor the life of cell */ 497 optional int32 timer_h = 23; 498 /* The full capacity of the battery learning at the end of every charge cycle */ 499 optional int32 full_rep = 24; 500 501 enum BattPairingEvent { 502 WRITE_ERROR = -4; 503 READ_ERROR = -3; 504 MISMATCH = -2; 505 DISABLED = -1; 506 ENABLED = 0; 507 PAIRED = 1; 508 RESET = 2; 509 }; 510 511 optional BattPairingEvent battery_pairing = 25; 512} 513 514/* A message containing an exceptional event from citadel. */ 515message CitadelEvent { 516 enum Event { 517 ALERT = 1; 518 REBOOTED = 2; 519 UPGRADED = 3; 520 ALERT_V2 = 4; 521 SEC_CH_STATE = 5; 522 ALERT_V3 = 6; 523 }; 524 optional string reverse_domain_name = 1; 525 optional Event event = 2; 526 optional int32 reset_count = 3; 527 optional int64 uptime_micros = 4; 528 enum Priority { 529 LOW = 0; 530 MEDIUM = 1; 531 HIGH = 2; 532 }; 533 optional Priority priority = 5; 534 535 // ALERT-specific fields. These fields correspond to the interrupt status 536 // bits for alerts within citadel. When alerts fire one or more of these 537 // bits are set to indicate the alert source. 538 optional int32 intr_sts_0 = 6; 539 optional int32 intr_sts_1 = 7; 540 optional int32 intr_sts_2 = 8; 541 542 // REBOOTED-specific fields. These fields correspond to the details of how 543 // the hardware reboot occurred. A reboot is a noteworthy event for citadel, 544 // as it can be triggered by events like stack overflow or other software 545 // bugs. 546 optional int32 rstsrc = 9; 547 optional int32 exitpd = 10; 548 optional int32 which0 = 11; 549 optional int32 which1 = 12; 550 551 // UPGRADED-specific field. This field corresponds to the result of FW 552 // upgrade for citadel. 553 optional int32 upgrade_state = 13; 554 555 // ALERT_V2-specific field. This field corresponds to the GLOBALSEC Log 556 // which contains normal globalsec, camo, temp and buserr. 557 optional int32 alert_grp_0 = 14; 558 optional int32 alert_grp_1 = 15; 559 optional int32 alert_grp_2 = 16; 560 optional int32 alert_grp_3 = 17; 561 optional int32 camo_breaches_0 = 18; 562 optional int32 camo_breaches_1 = 19; 563 optional int32 temp_min = 20; 564 optional int32 temp_max = 21; 565 optional int32 bus_err = 22; 566 567 // SEC_CH_STATE-specific filed. This field corresponds to the state 568 // of GSA-GSC secure channel. 569 optional int32 sec_ch_state = 23; 570 571 // Added ALERT_V3 specific fields 572 573 // bitmask of all the alerts that occurred. 574 repeated bool alert_bitmask = 24; 575 576 // For V3 alerts there are 3 types of alerts - alerts of different types 577 // differ in how they are handled on GSC, with there being 3 types: 578 // 1. Informational - alerts that are not handled 579 // 2. Recoverable - alerts that are handled but SW 580 // 3. Fatal - alert cannot be handled by SW and always reset the chip 581 // 4. Reserved - alert type is not being used right now, may be 582 // assigned in the future 583 584 // Alert types - used to index into the following fields. 585 enum AlertV3Types { 586 INFORMATIONAL = 0; 587 RECOVERABLE = 1; 588 FATAL = 2; 589 RESERVED = 3; 590 }; 591 592 // Amount of time that alerts from each type must be handled in before 593 // escalation occurs. 594 repeated int64 type_escalation_ctrs = 25; 595 // Number of alerts that have occurred for each alert type. 596 repeated int32 type_cnts = 26; 597 // Escalation level for each alert type. A higher escalation level corresponds 598 // to greater severity and need for handling by SW/HW. 599 repeated int32 type_escalation_levels = 27; 600 601 // Invidivual alert fields. Information from single alerts are grouped by 602 // index. 603 604 // Cause of alerts 605 repeated int64 alert_causes = 28; 606 // ID of alerts 607 repeated int32 alerts = 29; 608} 609 610/* A message containing the citadel firmware version. */ 611message CitadelVersion { 612 optional string reverse_domain_name = 1; 613 optional string version = 2; 614} 615 616/* A message containing the speaker impedance. */ 617 message VendorSpeakerImpedance { 618 optional string reverse_domain_name = 1; 619 optional int32 speaker_location = 2; 620 optional int32 impedance = 3; 621} 622 623/** 624 * Logs the reported vendor speaker health stats. 625 * Logged from: hardware/google/pixel/pixelstats/SysfsCollector.cpp 626 */ 627message VendorSpeakerStatsReported { 628 /* Vendor reverse domain name (expecting "com.google.pixel") */ 629 optional string reverse_domain_name = 1; 630 /* The location of speaker; 0 = left , 1 = right */ 631 optional int32 speaker_location = 2; 632 /* The speaker's impedance value (milliOhm) */ 633 optional int32 impedance = 3; 634 /* The speaker's maximum temperature (milliDegree C) */ 635 optional int32 max_temperature = 4; 636 /* The speaker's execursion length (micrometer) */ 637 optional int32 excursion = 5; 638 /* The speaker's heart beat count */ 639 optional int32 heartbeat = 6; 640 /* The speaker's version */ 641 optional int32 version = 7; 642} 643 644/* A message containing how many times of ufs host reset */ 645message StorageUfsResetCount { 646 optional string reverse_domain_name = 1; 647 /* How many UFS error reset are triggered */ 648 optional int32 host_reset_count = 2; 649} 650 651/* A message containing Pixel memory metrics collected hourly. */ 652message PixelMmMetricsPerHour { 653 optional string reverse_domain_name = 1; 654 optional int64 free_pages = 2; 655 optional int64 anon_pages = 3; 656 optional int64 file_pages = 4; 657 optional int64 slab_reclaimable = 5; 658 optional int64 zspages = 6; 659 optional int64 unevictable = 7; 660 optional int64 ion_total_pools = 8; 661 optional int64 gpu_memory = 9; 662 optional int64 slab_unreclaimable = 10; 663 optional int64 psi_cpu_some_total = 11; 664 optional int64 psi_io_full_total = 12; 665 optional int64 psi_io_some_total = 13; 666 optional int64 psi_mem_full_total = 14; 667 optional int64 psi_mem_some_total = 15; 668 optional int32 psi_cpu_some_avg10_min = 16; 669 optional int32 psi_cpu_some_avg10_max = 17; 670 optional int32 psi_cpu_some_avg10_avg = 18; 671 optional int32 psi_cpu_some_avg60_min = 19; 672 optional int32 psi_cpu_some_avg60_max = 20; 673 optional int32 psi_cpu_some_avg60_avg = 21; 674 optional int32 psi_cpu_some_avg300_min = 22; 675 optional int32 psi_cpu_some_avg300_max = 23; 676 optional int32 psi_cpu_some_avg300_avg = 24; 677 optional int32 psi_io_full_avg10_min = 25; 678 optional int32 psi_io_full_avg10_max = 26; 679 optional int32 psi_io_full_avg10_avg = 27; 680 optional int32 psi_io_full_avg60_min = 28; 681 optional int32 psi_io_full_avg60_max = 29; 682 optional int32 psi_io_full_avg60_avg = 30; 683 optional int32 psi_io_full_avg300_min = 31; 684 optional int32 psi_io_full_avg300_max = 32; 685 optional int32 psi_io_full_avg300_avg = 33; 686 optional int32 psi_io_some_avg10_min = 34; 687 optional int32 psi_io_some_avg10_max = 35; 688 optional int32 psi_io_some_avg10_avg = 36; 689 optional int32 psi_io_some_avg60_min = 37; 690 optional int32 psi_io_some_avg60_max = 38; 691 optional int32 psi_io_some_avg60_avg = 39; 692 optional int32 psi_io_some_avg300_min = 40; 693 optional int32 psi_io_some_avg300_max = 41; 694 optional int32 psi_io_some_avg300_avg = 42; 695 optional int32 psi_mem_full_avg10_min = 43; 696 optional int32 psi_mem_full_avg10_max = 44; 697 optional int32 psi_mem_full_avg10_avg = 45; 698 optional int32 psi_mem_full_avg60_min = 46; 699 optional int32 psi_mem_full_avg60_max = 47; 700 optional int32 psi_mem_full_avg60_avg = 48; 701 optional int32 psi_mem_full_avg300_min = 49; 702 optional int32 psi_mem_full_avg300_max = 50; 703 optional int32 psi_mem_full_avg300_avg = 51; 704 optional int32 psi_mem_some_avg10_min = 52; 705 optional int32 psi_mem_some_avg10_max = 53; 706 optional int32 psi_mem_some_avg10_avg = 54; 707 optional int32 psi_mem_some_avg60_min = 55; 708 optional int32 psi_mem_some_avg60_max = 56; 709 optional int32 psi_mem_some_avg60_avg = 57; 710 optional int32 psi_mem_some_avg300_min = 58; 711 optional int32 psi_mem_some_avg300_max = 59; 712 optional int32 psi_mem_some_avg300_avg = 60; 713 optional int32 version = 61 [deprecated = true]; 714 optional int64 shmem_pages = 62; 715 optional int64 page_table_pages = 63; 716 optional int64 dmabuf_kb = 64; 717} 718 719/* A message containing Pixel memory metrics collected daily. */ 720message PixelMmMetricsPerDay { 721 optional string reverse_domain_name = 1; 722 optional int64 workingset_refault = 2; /* refault_file */ 723 optional int64 pswpin = 3; 724 optional int64 pswpout = 4; 725 optional int64 allocstall_dma = 5; 726 optional int64 allocstall_dma32 = 6; 727 optional int64 allocstall_normal = 7; 728 optional int64 allocstall_movable = 8; 729 optional int64 pgalloc_dma = 9; 730 optional int64 pgalloc_dma32 = 10; 731 optional int64 pgalloc_normal = 11; 732 optional int64 pgalloc_movable = 12; 733 optional int64 pgsteal_kswapd = 13; 734 optional int64 pgsteal_direct = 14; 735 optional int64 pgscan_kswapd = 15; 736 optional int64 pgscan_direct = 16; 737 optional int64 oom_kill = 17; 738 optional int64 pgalloc_high = 18; 739 optional int64 pgcache_hit = 19; 740 optional int64 pgcache_miss = 20; 741 optional int64 kswapd_stime_clks = 21; 742 optional int64 kcompactd_stime_clks = 22; 743 optional int64 direct_reclaim_native_latency_total_time = 23; 744 optional int64 direct_reclaim_native_latency0 = 24; 745 optional int64 direct_reclaim_native_latency1 = 25; 746 optional int64 direct_reclaim_native_latency2 = 26; 747 optional int64 direct_reclaim_native_latency3 = 27; 748 optional int64 direct_reclaim_visible_latency_total_time = 28; 749 optional int64 direct_reclaim_visible_latency0 = 29; 750 optional int64 direct_reclaim_visible_latency1 = 30; 751 optional int64 direct_reclaim_visible_latency2 = 31; 752 optional int64 direct_reclaim_visible_latency3 = 32; 753 optional int64 direct_reclaim_top_latency_total_time = 33; 754 optional int64 direct_reclaim_top_latency0 = 34; 755 optional int64 direct_reclaim_top_latency1 = 35; 756 optional int64 direct_reclaim_top_latency2 = 36; 757 optional int64 direct_reclaim_top_latency3 = 37; 758 optional int64 direct_reclaim_other_latency_total_time = 38; 759 optional int64 direct_reclaim_other_latency0 = 39; 760 optional int64 direct_reclaim_other_latency1 = 40; 761 optional int64 direct_reclaim_other_latency2 = 41; 762 optional int64 direct_reclaim_other_latency3 = 42; 763 optional int64 compaction_total_time = 43; 764 optional int64 compaction_ev_count0 = 44; 765 optional int64 compaction_ev_count1 = 45; 766 optional int64 compaction_ev_count2 = 46; 767 optional int64 compaction_ev_count3 = 47; 768 optional int64 compaction_ev_count4 = 48; 769 optional int64 workingset_refault_anon = 49; 770 optional int64 workingset_refault_file = 50; 771 optional int64 compact_success = 51; 772 optional int64 compact_fail = 52; 773 optional int64 kswapd_low_wmark_hq = 53; 774 optional int64 kswapd_high_wmark_hq = 54; 775 optional int64 thp_file_alloc = 55; 776 optional int64 thp_zero_page_alloc = 56; 777 optional int64 thp_split_page = 57; 778 optional int64 thp_migration_split = 58; 779 optional int64 thp_deferred_split_page = 59; 780 optional int64 version = 60 [deprecated = true]; 781 optional int64 cpu_total_time_cs = 61; 782 optional int64 cpu_idle_time_cs = 62; 783 optional int64 cpu_io_wait_time_cs = 63; 784 optional int64 kswapd_pageout_run = 64; 785} 786 787/* A message containing CMA metrics collected from dogfooding only. */ 788message CmaStatus { 789 optional string reverse_domain_name = 1; 790 optional int32 type = 2; 791 optional int64 cma_alloc_pages_attempts = 3; 792 optional int64 cma_alloc_pages_soft_attempts = 4; 793 optional int64 cma_fail_pages = 5; 794 optional int64 cma_fail_soft_pages = 6; 795 optional int64 migrated_pages = 7; 796 optional string cma_heap_name = 8; 797} 798 799/* A message containing CMA metrics (External). */ 800message CmaStatusExt { 801 optional string reverse_domain_name = 1; 802 optional int32 type = 2; 803 optional int64 cma_alloc_latency_low = 3; 804 optional int64 cma_alloc_latency_mid = 4; 805 optional int64 cma_alloc_latency_high = 5; 806 optional string cma_heap_name = 6; 807} 808 809message F2fsCompressionInfo { 810 optional string reverse_domain_name = 1; 811 /* Show the block count written after compression since mount */ 812 optional int32 compr_written_blocks = 2; 813 /* Show the saved block count with compression since mount */ 814 optional int32 compr_saved_blocks = 3; 815 /* Show the count of inode newly enabled for compression since mount */ 816 optional int32 compr_new_inodes = 4; 817} 818 819/** 820 * Log bucketed battery charge cycles. 821 * 822 * Each bucket represents cycles of the battery past 823 * a given charge point. For example, bucket 1 is the 824 * lowest 1/8th of the battery, and bucket 8 is 100%. 825 * 826 * Logged from: 827 * /sys/class/power_supply/bms/cycle_count, via Vendor. 828 */ 829message VendorChargeCycles { 830 optional string reverse_domain_name = 1; 831 optional int32 cycle_bucket_1 = 2; 832 optional int32 cycle_bucket_2 = 3; 833 optional int32 cycle_bucket_3 = 4; 834 optional int32 cycle_bucket_4 = 5; 835 optional int32 cycle_bucket_5 = 6; 836 optional int32 cycle_bucket_6 = 7; 837 optional int32 cycle_bucket_7 = 8; 838 optional int32 cycle_bucket_8 = 9; 839 optional int32 cycle_bucket_9 = 10; 840 optional int32 cycle_bucket_10 = 11; 841} 842 843/** 844 * Logs the report of a failed hardware. 845 * 846 * Logged from: 847 * Vendor HALs. 848 * 849 */ 850message VendorHardwareFailed { 851 enum HardwareType { 852 HARDWARE_FAILED_UNKNOWN = 0; 853 HARDWARE_FAILED_MICROPHONE = 1; 854 HARDWARE_FAILED_CODEC = 2; 855 HARDWARE_FAILED_SPEAKER = 3; 856 HARDWARE_FAILED_FINGERPRINT = 4; 857 } 858 optional string reverse_domain_name = 1; 859 optional HardwareType hardware_type = 2; 860 861 /** 862 * hardware_location allows vendors to differentiate between multiple 863 * instances of the same hardware_type. The specific locations are vendor 864 * defined integers, referring to board-specific numbering schemes. 865 */ 866 optional int32 hardware_location = 3; 867 /** 868 * failure_code is specific to the HardwareType of the failed hardware. 869 * It should use one of the enum values defined below. 870 */ 871 enum HardwareErrorCode { 872 UNKNOWN = 0; 873 COMPLETE = 1; 874 SPEAKER_HIGH_Z = 2; 875 SPEAKER_SHORT = 3; 876 FINGERPRINT_SENSOR_BROKEN = 4; 877 FINGERPRINT_TOO_MANY_DEAD_PIXELS = 5; 878 DEGRADE = 6; 879 } 880 optional HardwareErrorCode failure_code = 4; 881 882 enum EventType { 883 UNKNOWN_EVENT = 0; 884 VOICE_CALL = 1; 885 VOIP_CALL = 2; 886 } 887 optional EventType event_type = 5; 888} 889 890/** 891 * Log slow I/O operations on the primary storage. 892 */ 893message VendorSlowIo { 894 // Classifications of IO Operations. 895 enum IoOperation { 896 UNKNOWN = 0; 897 READ = 1; 898 WRITE = 2; 899 UNMAP = 3; 900 SYNC = 4; 901 } 902 optional string reverse_domain_name = 1; 903 optional IoOperation operation = 2; 904 905 // The number of slow IO operations of this type over 24 hours. 906 optional int32 count = 3; 907} 908 909/* 910 * Logs the reported speech DSP status. 911 * Logged from: Vendor audio implementation. 912 */ 913message VendorSpeechDspStat { 914 optional string reverse_domain_name = 1; 915 // The total Speech DSP uptime in milliseconds. 916 optional int32 total_uptime_millis = 2; 917 // The total Speech DSP downtime in milliseconds. 918 optional int32 total_downtime_millis = 3; 919 optional int32 total_crash_count = 4; 920 optional int32 total_recover_count = 5; 921} 922 923/** 924 * Log an event when the device has been physically dropped. 925 * Reported from the /vendor partition. 926 */ 927message VendorPhysicalDropDetected { 928 optional string reverse_domain_name = 1; 929 // Confidence that the event was actually a drop, 0 -> 100 930 optional int32 confidence_pctg = 2; 931 // Peak acceleration of the drop, in 1/1000s of a g. 932 optional int32 accel_peak_thousandths_g = 3; 933 // Duration of freefall in ms 934 optional int32 freefall_time_millis = 4; 935} 936 937/** Represents USB port overheat event. */ 938message VendorUsbPortOverheat { 939 optional string reverse_domain_name = 1; 940 /* Temperature of USB port at USB plug event, in 1/10ths of degree C. */ 941 optional int32 plug_temperature_deci_c = 2; 942 /* Maximum temperature of USB port during overheat event, in 1/10ths of degree 943 * C. */ 944 optional int32 max_temperature_deci_c = 3; 945 /* Time between USB plug event and overheat threshold trip, in seconds. */ 946 optional int32 time_to_overheat_secs = 4; 947 /* Time between overheat threshold trip and hysteresis, in seconds. */ 948 optional int32 time_to_hysteresis_secs = 5; 949 /* Time between hysteresis and active mitigation ending, in seconds. */ 950 optional int32 time_to_inactive_secs = 6; 951} 952 953/** 954 * Log battery health snapshot. 955 * 956 * Resistance, Voltage, Open Circuit Voltage, Temperature, and Charge Level 957 * are snapshotted periodically over 24hrs. 958 */ 959message VendorBatteryHealthSnapshot { 960 enum BatterySnapshotType { 961 BATTERY_SNAPSHOT_TYPE_UNKNOWN = 0; 962 BATTERY_SNAPSHOT_TYPE_MIN_TEMP = 1; // Snapshot at min batt temp over 24hrs. 963 BATTERY_SNAPSHOT_TYPE_MAX_TEMP = 2; // Snapshot at max batt temp over 24hrs. 964 BATTERY_SNAPSHOT_TYPE_MIN_RESISTANCE = 3; // Snapshot at min batt resistance over 24hrs. 965 BATTERY_SNAPSHOT_TYPE_MAX_RESISTANCE = 4; // Snapshot at max batt resistance over 24hrs. 966 BATTERY_SNAPSHOT_TYPE_MIN_VOLTAGE = 5; // Snapshot at min batt voltage over 24hrs. 967 BATTERY_SNAPSHOT_TYPE_MAX_VOLTAGE = 6; // Snapshot at max batt voltage over 24hrs. 968 BATTERY_SNAPSHOT_TYPE_MIN_CURRENT = 7; // Snapshot at min batt current over 24hrs. 969 BATTERY_SNAPSHOT_TYPE_MAX_CURRENT = 8; // Snapshot at max batt current over 24hrs. 970 BATTERY_SNAPSHOT_TYPE_MIN_BATT_LEVEL = 9; // Snapshot at min battery level (SoC) over 24hrs. 971 BATTERY_SNAPSHOT_TYPE_MAX_BATT_LEVEL = 10; // Snapshot at max battery level (SoC) over 24hrs. 972 BATTERY_SNAPSHOT_TYPE_AVG_RESISTANCE = 11; // Snapshot at average battery resistance over 24hrs. 973 } 974 optional string reverse_domain_name = 1; 975 optional BatterySnapshotType type = 2; 976 // Temperature, in 1/10ths of degree C. 977 optional int32 temperature_deci_celsius = 3; 978 // Voltage Battery Voltage, in microVolts. 979 optional int32 voltage_micro_volt = 4; 980 // Current Battery current, in microAmps. 981 optional int32 current_micro_amps = 5; 982 // OpenCircuitVoltage Battery Open Circuit Voltage, in microVolts. 983 optional int32 open_circuit_micro_volt = 6; 984 // Resistance Battery Resistance, in microOhms. 985 optional int32 resistance_micro_ohm = 7; 986 // Level Battery Level, as % of full. 987 optional int32 level_percent = 8; 988} 989 990/** 991 * Log battery caused shutdown with the last recorded voltage. 992 */ 993message VendorBatteryCausedShutdown { 994 optional string reverse_domain_name = 1; 995 // The last recorded battery voltage prior to shutdown. 996 optional int32 last_recorded_micro_volt = 2; 997} 998 999/** 1000 * Log mitigation statistics. 1001 */ 1002message PowerMitigationStats { 1003 optional string reverse_domain_name = 1; 1004 // The last triggered count: batoilo. 1005 optional int32 batoilo_count = 2; 1006 // The last triggered count: vdroop1. 1007 optional int32 vdroop1_count = 3; 1008 // The last triggered count: vdroop2. 1009 optional int32 vdroop2_count = 4; 1010 // The last triggered count: smpl_warn. 1011 optional int32 smpl_warn_count = 5; 1012 // The last triggered count: ocp_cpu1. 1013 optional int32 ocp_cpu1_count = 6; 1014 // The last triggered count: ocp_cpu2. 1015 optional int32 ocp_cpu2_count = 7; 1016 // The last triggered count: ocp_gpu. 1017 optional int32 ocp_gpu_count = 8; 1018 // The last triggered count: ocp_tpu. 1019 optional int32 ocp_tpu_count = 9; 1020 // The last triggered count: soft_ocp_cpu1. 1021 optional int32 soft_ocp_cpu1_count = 10; 1022 // The last triggered count: soft_ocp_cpu2. 1023 optional int32 soft_ocp_cpu2_count = 11; 1024 // The last triggered count: soft_ocp_gpu. 1025 optional int32 soft_ocp_gpu_count = 12; 1026 // The last triggered count: soft_ocp_tpu. 1027 optional int32 soft_ocp_tpu_count = 13; 1028 // The last triggered capacity: batoilo. 1029 optional int32 batoilo_cap = 14; 1030 // The last triggered capacity: vdroop1. 1031 optional int32 vdroop1_cap = 15; 1032 // The last triggered capacity: vdroop2. 1033 optional int32 vdroop2_cap = 16; 1034 // The last triggered capacity: smpl_warn. 1035 optional int32 smpl_warn_cap = 17; 1036 // The last triggered capacity: ocp_cpu1. 1037 optional int32 ocp_cpu1_cap = 18; 1038 // The last triggered capacity: ocp_cpu2. 1039 optional int32 ocp_cpu2_cap = 19; 1040 // The last triggered capacity: ocp_gpu. 1041 optional int32 ocp_gpu_cap = 20; 1042 // The last triggered capacity: ocp_tpu. 1043 optional int32 ocp_tpu_cap = 21; 1044 // The last triggered capacity: soft_ocp_cpu1. 1045 optional int32 soft_ocp_cpu1_cap = 22; 1046 // The last triggered capacity: soft_ocp_cpu2. 1047 optional int32 soft_ocp_cpu2_cap = 23; 1048 // The last triggered capacity: soft_ocp_gpu. 1049 optional int32 soft_ocp_gpu_cap = 24; 1050 // The last triggered capacity: soft_ocp_tpu. 1051 optional int32 soft_ocp_tpu_cap = 25; 1052 // The last triggered count: batoilo2. 1053 optional int32 batoilo2_count = 26; 1054 // The last triggered capacity: batoilo2. 1055 optional int32 batoilo2_cap = 27; 1056} 1057 1058/** 1059 * Log thermal statistics. 1060 */ 1061message ThermalDfsStats { 1062 optional string reverse_domain_name = 1; 1063 // The last count of BIG cluster dfs triggers 1064 optional int32 big_dfs_count = 2; 1065 // The last count of MID cluster dfs triggers 1066 optional int32 mid_dfs_count = 3; 1067 // The last count of LITTLE cluster dfs triggers 1068 optional int32 little_dfs_count = 4; 1069 // The last count of GPU dfs triggers 1070 optional int32 gpu_dfs_count = 5; 1071 // The last count of TPU dfs triggers 1072 optional int32 tpu_dfs_count = 6; 1073 // The last count of DSP dfs triggers 1074 optional int32 aur_dfs_count = 7; 1075} 1076 1077/** 1078 * Log Display Panel error statistics. 1079 */ 1080message DisplayPanelErrorStats { 1081 optional string reverse_domain_name = 1; 1082 // The error count due to Tear Effect on primary display panel. 1083 optional int32 primary_error_count_te = 2; 1084 // The error count due to unknown reason on primary display panel. 1085 optional int32 primary_error_count_unknown = 3; 1086 // The error count due to Tear Effect on primary display panel. 1087 optional int32 secondary_error_count_te = 4; 1088 // The error count due to unknown reason on secondary display panel. 1089 optional int32 secondary_error_count_unknown = 5; 1090} 1091 1092/** 1093 * Log how many segments have been reclaimed in a specific GC mode. 1094 */ 1095message F2fsGcSegmentInfo { 1096 optional string reverse_domain_name = 1; 1097 /* Reclaimed segments in GC normal mode */ 1098 optional int32 reclaimed_segments_normal = 2; 1099 /* Reclaimed segments in GC urgent high mode */ 1100 optional int32 reclaimed_segments_urgent_high = 3; 1101 /* Reclaimed segments in GC urgent low mode */ 1102 optional int32 reclaimed_segments_urgent_low = 4; 1103 /* Reclaimed segments in GC urgent mid mode */ 1104 optional int32 reclaimed_segments_urgent_mid = 5; 1105} 1106 1107/** 1108 * Logs an event indicating that a nanoapp loading has failed at the HAL. 1109 */ 1110message ChreHalNanoappLoadFailed { 1111 // Vendor reverse domain name (expecting "com.google.pixel"). 1112 optional string reverse_domain_name = 1; 1113 1114 enum Type { 1115 TYPE_UNKNOWN = 0; 1116 // Corresponds to preloaded nanoapps on the device. 1117 TYPE_PRELOADED = 1; 1118 // Dynamic loading of a nanoapp (e.g. code download). 1119 TYPE_DYNAMIC = 2; 1120 } 1121 1122 enum Reason { 1123 REASON_UNKNOWN = 0; 1124 // A generic error code that does not match any of the others. 1125 REASON_ERROR_GENERIC = 1; 1126 // Failure at the connection between HAL<->CHRE. 1127 REASON_CONNECTION_ERROR = 2; 1128 // System ran out of memory. 1129 REASON_OOM = 3; 1130 // Nanoapp did not have the right signing for loading. 1131 REASON_SIGNATURE_MISMATCH = 4; 1132 } 1133 1134 // The 64-bit unique nanoapp identifier of the nanoapp that failed. 1135 optional int64 nanoapp_id = 2; 1136 1137 // The type of the load event. 1138 optional Type type = 3; 1139 1140 // The reason for the failure. 1141 optional Reason reason = 4; 1142} 1143 1144/** 1145 * An enum describing a module within CHRE. 1146 */ 1147enum ChreModuleType { 1148 CHRE_MODULE_TYPE_UNKNOWN = 0; 1149 CHRE_MODULE_TYPE_CHRE = 1; // Core CHRE framework 1150 CHRE_MODULE_TYPE_PAL = 2; // PAL module (could be CHPP) 1151 CHRE_MODULE_TYPE_NANOAPP = 3; 1152} 1153 1154/** 1155 * An enum describing the CHRE PAL type. 1156 */ 1157enum ChrePalType { 1158 CHRE_PAL_TYPE_UNKNOWN = 0; 1159 CHRE_PAL_TYPE_SENSOR = 1; 1160 CHRE_PAL_TYPE_WIFI = 2; 1161 CHRE_PAL_TYPE_GNSS = 3; 1162 CHRE_PAL_TYPE_WWAN = 4; 1163 CHRE_PAL_TYPE_AUDIO = 5; 1164 CHRE_PAL_TYPE_BLE = 6; 1165} 1166 1167/** 1168 * Logs an event indicating that a CHRE PAL open has failed. 1169 */ 1170message ChrePalOpenFailed { 1171 // Vendor reverse domain name (expecting "com.google.pixel"). 1172 optional string reverse_domain_name = 1; 1173 1174 enum Type { 1175 TYPE_UNKNOWN = 0; 1176 // Initial open when CHRE starts. 1177 INITIAL_OPEN = 1; 1178 // Any form of "reopen" event internally in the PAL. 1179 REOPEN = 2; 1180 } 1181 1182 // The PAL this failure event is for. 1183 optional ChrePalType pal = 2; 1184 1185 // The type of failure observed. 1186 optional Type type = 3; 1187} 1188 1189/** 1190 * The type of CHRE API request. 1191 */ 1192enum ChreApiType { 1193 CHRE_API_TYPE_UNKNOWN = 0; 1194 CHRE_API_TYPE_WIFI_SCAN_MONITOR = 1; 1195 CHRE_API_TYPE_WIFI_ACTIVE_SCAN = 2; 1196 CHRE_API_TYPE_WIFI_RTT_RANGING = 3; 1197} 1198 1199/** 1200 * The type of CHRE API error. 1201 */ 1202enum ChreError { 1203 CHRE_ERROR_UNKNOWN = 0; 1204 1205 // No error occurred. 1206 CHRE_ERROR_NONE = 1; 1207 1208 // An unspecified failure occurred. 1209 CHRE_ERROR = 2; 1210 1211 // One or more supplied arguments are invalid. 1212 CHRE_ERROR_INVALID_ARGUMENT = 3; 1213 1214 // Unable to satisfy request because the system is busy. 1215 CHRE_ERROR_BUSY = 4; 1216 1217 // Unable to allocate memory. 1218 CHRE_ERROR_NO_MEMORY = 5; 1219 1220 // The requested feature is not supported. 1221 CHRE_ERROR_NOT_SUPPORTED = 6; 1222 1223 // A timeout occurred while processing the request. 1224 CHRE_ERROR_TIMEOUT = 7; 1225 1226 // The relevant capability is disabled, for example due to a user 1227 // configuration that takes precedence over this request. 1228 CHRE_ERROR_FUNCTION_DISABLED = 8; 1229} 1230 1231/** 1232 * Distribution of CHRE API error codes. 1233 */ 1234message ChreApiErrorCodeDistributionTaken { 1235 // Vendor reverse domain name (expecting "com.google.pixel"). 1236 optional string reverse_domain_name = 1; 1237 1238 // The chreGetTime() value when this snapshot was taken, in milliseconds. 1239 optional int32 snapshot_chre_get_time_ms = 2; 1240 1241 // The CHRE API type. 1242 optional ChreApiType api_type = 3; 1243 1244 // Corresponds to the CHRE error code that occurred, as defined in the 1245 // "enum chreError" field in chre_api/chre/common.h. 1246 optional ChreError error_code = 4; 1247 optional int32 num_errors = 5; 1248} 1249 1250/** 1251 * Snapshot of the dynamic memory allocated in CHRE. 1252 */ 1253message ChreDynamicMemorySnapshotReported { 1254 // Vendor reverse domain name (expecting "com.google.pixel"). 1255 optional string reverse_domain_name = 1; 1256 1257 // The chreGetTime() value when this snapshot was taken, in milliseconds. 1258 optional int32 snapshot_chre_get_time_ms = 2; 1259 1260 // The type of the module. 1261 optional ChreModuleType module_type = 3; 1262 1263 // The unique 64-bit ID for a nanoapp, only used if the module_type is NANOAPP. 1264 // If module_type is PAL, then it represents the ChrePalType enum. If the module_type 1265 // is CHRE, then a zero value should be used. 1266 optional int64 pal_type_or_nanoapp_id = 4; 1267 1268 // The max allocation amount of this module in bytes. 1269 optional int32 max_allocation_bytes = 5; 1270 1271 // The current allocation amount of this module in bytes. 1272 optional int32 current_allocation_bytes = 6; 1273} 1274 1275/** 1276 * Snapshot of the event queue stats in CHRE. 1277 */ 1278message ChreEventQueueSnapshotReported { 1279 // Vendor reverse domain name (expecting "com.google.pixel"). 1280 optional string reverse_domain_name = 1; 1281 1282 // The chreGetTime() value when this snapshot was taken, in milliseconds. 1283 optional int32 snapshot_chre_get_time_ms = 2; 1284 1285 // The maximum size the event queue got to (i.e. num pending events). 1286 optional int32 max_event_queue_size = 3; 1287 1288 // The average size the event queue got to (i.e. num pending events). 1289 optional int32 mean_event_queue_size = 4; 1290 1291 // The number of events that were dropped due to capacity limits. 1292 optional int32 num_dropped_events = 5; 1293 1294 // The maximum amount of time it took for an event, from when it was received, 1295 // to when it was delivered to all interested modules. This value represents 1296 // the total delay within the CHRE subsystem. 1297 optional int64 max_queue_delay_us = 6; 1298 1299 // The mean value of the delay in microseconds. 1300 optional int64 mean_queue_delay_us = 7; 1301} 1302 1303/** 1304 * Indicates that a nanoapp has woken up the AP. 1305 */ 1306message ChreApWakeUpOccurred { 1307 // Vendor reverse domain name (expecting "com.google.pixel"). 1308 optional string reverse_domain_name = 1; 1309 1310 // The 64-bit unique nanoapp identifier that describes the entity that has caused an AP wake-up 1311 // from CHRE. Whenever this event occurs, this means that the nanoapp sent a message to 1312 // the AP causing a transition between suspend/wake-up. 1313 optional int64 nanoapp_id = 2; 1314} 1315 1316/** 1317 * Snapshot of the current battery health of the device. 1318 */ 1319message BatteryHealthStatus { 1320 // Vendor reverse domain name (expecting "com.google.pixel"). 1321 optional string reverse_domain_name = 1; 1322 1323 // The algorithm that computes how the health status and health indexes are calculated. 1324 optional int32 health_algorithm = 2; 1325 1326 enum HealthStatus { 1327 UNKNOWN = -1; // The health status is unknown due to a SW limitation or issue 1328 NOMINAL = 0; // The battery is operating as expected 1329 MARGINAL = 1; // The battery may need replacement soon 1330 NEEDS_REPLACEMENT = 2; // The battery needs replacement 1331 FAILED = 3; // The battery has failed and no longer operates as expected 1332 NOT_AVAILABLE = 4; // This is a temporary state when cycle count is insufficient 1333 INCONSISTENT = 5; // The battery recalibration is pending 1334 } 1335 1336 // HealthStatus calculated using health_index, health_perf_index. 1337 optional HealthStatus health_status = 3; 1338 1339 // A percentage measure of the health of the battery with 100% being perfectly healthy. 1340 optional int32 health_index = 4; 1341 1342 // A percentage measure of the battery capacity of the device, affected by cycle life degradation. 1343 optional int32 health_capacity_index = 5; 1344 1345 // A percentage measure of the max performance of the device, affected by impedance growth with 100% being perfectly healthy. 1346 optional int32 health_impedance_index = 6; 1347 1348 // An index that expresses the likelihood of swelling given the SOC residency stats. 1349 optional int32 swelling_cumulative = 7; 1350 1351 // The battery capacity used to determine the health index. This is the reference value from b/223759710. 1352 optional int32 health_full_capacity = 8; 1353 1354 // This is the Rslow (resistance) value used (in part) to determine the Perf Index. The activation impedance (b/223545817) can be calculated from it using the perf index. 1355 optional int32 current_impedance = 9; 1356 1357 // The (hours) value of TimeH (0xb3), a register value, multiplied by 3.2 hours. 1358 optional int32 battery_age = 10; 1359 1360 // The cycle count at the time of the log event. 1361 optional int32 cycle_count = 11; 1362 1363 enum BattDisconnectStatus { 1364 BPST_BATT_UNKNOWN = 0; 1365 BPST_BATT_CONNECT = 1; 1366 BPST_BATT_DISCONNECT = 2; // Result of single battery disconnect detection 1367 BPST_BATT_CELL_FAULT = 3; // Result of cell fault detection which means actual disconnection 1368 } 1369 1370 // Battery disconnect detection stats. 1371 optional BattDisconnectStatus battery_disconnect_status = 12; 1372} 1373 1374/** 1375 * Log battery SOC/temperature usage data. 1376 * 1377 * Each data represents cumulative time of the battery 1378 * spent over a specific SOC and over a specific temperature 1379 * while charging and while discharging in seconds. 1380 * 1381 * Logged from: 1382 * /sys/class/power_supply/battery/swelling_data, via Vendor. 1383 */ 1384message BatteryHealthUsage { 1385 // Vendor reverse domain name (expecting "com.google.pixel"). 1386 optional string reverse_domain_name = 1; 1387 1388 // The temperature limit (deg C) used to accumulate the time above this value. 1389 optional int32 temperature_limit_deci_c = 2; 1390 1391 // The SOC limit (%) used to accumulate the time above this value. 1392 optional int32 soc_limit = 3; 1393 1394 // Time (s) accumulated only during charge at the given thresholds. 1395 optional int32 charge_time_secs = 4; 1396 1397 // Time (s) accumulated only during discharge at the given thresholds. 1398 optional int32 discharge_time_secs = 5; 1399} 1400 1401/* 1402 * A Value of F2FS smart idle maintenance feature enabled 1403 */ 1404message F2fsSmartIdleMaintEnabledStateChanged { 1405 optional string reverse_domain_name = 1; 1406 /* Smart idle maint is enabled */ 1407 optional bool enabled = 2; 1408} 1409 1410/* 1411 * Snapshot of the block layer read write stats 1412 */ 1413message BlockStatsReported { 1414 optional string reverse_domain_name = 1; 1415 /* number of read I/Os processed */ 1416 optional int64 read_io = 2; 1417 /* number of sectors read */ 1418 optional int64 read_sectors = 3; 1419 /* total wait time for read requests */ 1420 optional int64 read_ticks = 4; 1421 /* number of write I/Os processed */ 1422 optional int64 write_io = 5; 1423 /* number of sectors written */ 1424 optional int64 write_sectors = 6; 1425 /* total wait time for write requests */ 1426 optional int64 write_ticks = 7; 1427} 1428 1429/** 1430 * Logs the reported vendor audio hardware stats. 1431 */ 1432message VendorAudioHardwareStatsReported { 1433 optional string reverse_domain_name = 1; 1434 /* The number of calls in a day where CCA is active. 1435 * CCA can only be applied under some radio bands. 1436 */ 1437 optional int32 milli_rate_of_ams_per_day = 2; 1438 1439 // cca_active: obsoleted UI enable & algorithm is active (C1) 1440 // replaced by cca_active_count_per_day 1441 optional int32 rate_of_cca_active_per_day = 3 [deprecated = true]; 1442 1443 // cca_enable: obsoleted UI enable & algorithm is inactive field (C2) 1444 // replaced by cca_enable_count_per_day 1445 optional int32 rate_of_cca_enable_per_day = 4 [deprecated = true]; 1446 1447 enum Source { 1448 VOIP = 0; 1449 VOICE = 1; 1450 } 1451 1452 /* source: identify whether this atom is for voice or voip case. */ 1453 optional Source source = 5; 1454 1455 /* total_call_count_per_day: count total number of call per day. */ 1456 optional int32 total_call_count_per_day = 6; 1457 1458 /* cca_active: UI enable & algorithm is active (C1 or C3) */ 1459 optional int32 cca_active_count_per_day = 7; 1460 1461 /* cca_enable: UI enable & algorithm is inactive (C2 or C4) */ 1462 optional int32 cca_enable_count_per_day = 8; 1463 1464 /* version: version of the data. */ 1465 optional int32 version = 9; 1466 1467 /* duration: duration in second of the voice/voip call. */ 1468 optional int32 duration_second = 10; 1469 1470 /* band: band value. */ 1471 optional int32 band = 11; 1472} 1473 1474/** 1475 * Logs the reported vendor audio PDM stats. 1476 * PDM stats are used to show background noise level during voice/voip calling. 1477 * Each of the atom will show only one type of background noises. There are at most 4 types. 1478 * Thus, this atoms will be reported at most 4 times to show all types. 1479 */ 1480message VendorAudioPdmStatsReported { 1481 optional string reverse_domain_name = 1; 1482 1483 /* index of the pdm to report. There are 4 pdm instances. So, the value is in the range 1-4 */ 1484 optional int32 pdm_index = 2; 1485 1486 /* State of the pdm to report. There is only two value 1 for good and 0 for bad. */ 1487 optional int32 state = 3; 1488} 1489 1490/* 1491 * Logs vendor stats about long IRQs. 1492 * 1493 * IRQ is considered long when it exceeds a threshold (currently 1 ms). 1494 * Stats include top 5 slowest IRQs: their numbers and the worst latency. 1495 * Stats are reset after every report. 1496 */ 1497message VendorLongIRQStatsReported { 1498 optional string reverse_domain_name = 1; 1499 1500 // Count of long soft IRQ since last report. 1501 optional int64 long_softirq_count = 2; 1502 1503 optional int64 top1_softirq_num = 3; 1504 optional int64 top1_softirq_latency_us = 4; 1505 optional int64 top2_softirq_num = 5; 1506 optional int64 top2_softirq_latency_us = 6; 1507 optional int64 top3_softirq_num = 7; 1508 optional int64 top3_softirq_latency_us = 8; 1509 optional int64 top4_softirq_num = 9; 1510 optional int64 top4_softirq_latency_us = 10; 1511 optional int64 top5_softirq_num = 11; 1512 optional int64 top5_softirq_latency_us = 12; 1513 1514 // Count of long IRQ since last report. 1515 optional int64 long_irq_count = 13; 1516 1517 optional int64 top1_irq_num = 14; 1518 optional int64 top1_irq_latency_us = 15; 1519 optional int64 top2_irq_num = 16; 1520 optional int64 top2_irq_latency_us = 17; 1521 optional int64 top3_irq_num = 18; 1522 optional int64 top3_irq_latency_us = 19; 1523 optional int64 top4_irq_num = 20; 1524 optional int64 top4_irq_latency_us = 21; 1525 optional int64 top5_irq_num = 22; 1526 optional int64 top5_irq_latency_us = 23; 1527 1528 optional int64 storm_irq_top1_num = 24; 1529 optional int64 storm_irq_top1_count = 25; 1530 optional int64 storm_irq_top2_num = 26; 1531 optional int64 storm_irq_top2_count = 27; 1532 optional int64 storm_irq_top3_num = 28; 1533 optional int64 storm_irq_top3_count = 29; 1534 optional int64 storm_irq_top4_num = 30; 1535 optional int64 storm_irq_top4_count = 31; 1536 optional int64 storm_irq_top5_num= 32; 1537 optional int64 storm_irq_top5_count = 33; 1538} 1539 1540/** 1541 * Logs the Temperature residency stats per thermal zone. 1542 */ 1543message VendorTempResidencyStats { 1544 optional string reverse_domain_name = 1; 1545 // Thermal zone name 1546 optional string sensor_name = 2; 1547 1548 // Time since last collect of this thermal zone 1549 optional int64 since_last_update_ms = 3; 1550 1551 // Temperature residency stats is measured by time in ms that a temperature zone's temperature 1552 // lay within some temperature thresholds 1553 // e.g. 1554 // With temperature thresholds predefined as thresholds_i, thresholds_i+1, 1555 // temp_residency_ms_bucket_i measures how much time the sensor lay within this two thresholds 1556 optional int64 temp_residency_ms_bucket_1 = 4; 1557 optional int64 temp_residency_ms_bucket_2 = 5; 1558 optional int64 temp_residency_ms_bucket_3 = 6; 1559 optional int64 temp_residency_ms_bucket_4 = 7; 1560 optional int64 temp_residency_ms_bucket_5 = 8; 1561 optional int64 temp_residency_ms_bucket_6 = 9; 1562 optional int64 temp_residency_ms_bucket_7 = 10; 1563 optional int64 temp_residency_ms_bucket_8 = 11; 1564 optional int64 temp_residency_ms_bucket_9 = 12; 1565 optional int64 temp_residency_ms_bucket_10 = 13; 1566 optional int64 temp_residency_ms_bucket_11 = 14; 1567 optional int64 temp_residency_ms_bucket_12 = 15; 1568 optional int64 temp_residency_ms_bucket_13 = 16; 1569 optional int64 temp_residency_ms_bucket_14 = 17; 1570 optional int64 temp_residency_ms_bucket_15 = 18; 1571 optional int64 temp_residency_ms_bucket_16 = 19; 1572 optional int64 temp_residency_ms_bucket_17 = 20; 1573 optional int64 temp_residency_ms_bucket_18 = 21; 1574 optional int64 temp_residency_ms_bucket_19 = 22; 1575 optional int64 temp_residency_ms_bucket_20 = 23; 1576 1577 // The maximum and minimum temperature observed for the sensor along with the 1578 // timestamp of occurrence in terms of time_t. 1579 optional float max_temp = 24; 1580 optional int64 max_temp_timestamp = 25; 1581 optional float min_temp = 26; 1582 optional int64 min_temp_timestamp = 27; 1583} 1584 1585/** 1586 * Logs the Resume Latency stats. 1587 */ 1588message VendorResumeLatencyStats { 1589 optional string reverse_domain_name = 1; 1590 optional int64 max_latency_ms = 2; 1591 optional int64 avg_latency_ms = 3; 1592 1593 // Resume Latency stats is measured by count of resumes that lay within some latency thresholds 1594 // e.g. 1595 // With resume times thresholds predefined as thresholds_i, thresholds_i+1, 1596 // resume_count_bucket_i measures count of resumes that lay within this two thresholds 1597 optional int64 resume_count_bucket_1 = 4; 1598 optional int64 resume_count_bucket_2 = 5; 1599 optional int64 resume_count_bucket_3 = 6; 1600 optional int64 resume_count_bucket_4 = 7; 1601 optional int64 resume_count_bucket_5 = 8; 1602 optional int64 resume_count_bucket_6 = 9; 1603 optional int64 resume_count_bucket_7 = 10; 1604 optional int64 resume_count_bucket_8 = 11; 1605 optional int64 resume_count_bucket_9 = 12; 1606 optional int64 resume_count_bucket_10 = 13; 1607 optional int64 resume_count_bucket_11 = 14; 1608 optional int64 resume_count_bucket_12 = 15; 1609 optional int64 resume_count_bucket_13 = 16; 1610 optional int64 resume_count_bucket_14 = 17; 1611 optional int64 resume_count_bucket_15 = 18; 1612 optional int64 resume_count_bucket_16 = 19; 1613 optional int64 resume_count_bucket_17 = 20; 1614 optional int64 resume_count_bucket_18 = 21; 1615 optional int64 resume_count_bucket_19 = 22; 1616 optional int64 resume_count_bucket_20 = 23; 1617 optional int64 resume_count_bucket_21 = 24; 1618 optional int64 resume_count_bucket_22 = 25; 1619 optional int64 resume_count_bucket_23 = 26; 1620 optional int64 resume_count_bucket_24 = 27; 1621 optional int64 resume_count_bucket_25 = 28; 1622 optional int64 resume_count_bucket_26 = 29; 1623 optional int64 resume_count_bucket_27 = 30; 1624 optional int64 resume_count_bucket_28 = 31; 1625 optional int64 resume_count_bucket_29 = 32; 1626 optional int64 resume_count_bucket_30 = 33; 1627 optional int64 resume_count_bucket_31 = 34; 1628 optional int64 resume_count_bucket_32 = 35; 1629 optional int64 resume_count_bucket_33 = 36; 1630 optional int64 resume_count_bucket_34 = 37; 1631 optional int64 resume_count_bucket_35 = 38; 1632 optional int64 resume_count_bucket_36 = 39; 1633} 1634 1635/* 1636 * Log the Brownout events. 1637 */ 1638message BrownoutDetected { 1639 enum IRQType { 1640 UVLO1 = 0; 1641 SMPL_WARN = 1; 1642 UVLO2 = 2; 1643 BATOILO = 3; 1644 BATOILO2 = 4; 1645 } 1646 1647 enum BrownoutReason { 1648 UNKNOWN = 0; 1649 UVLO_IF = 1; 1650 OCP_IF = 2; 1651 UVLO_MAIN = 3; 1652 UVLO_SUB = 4; 1653 OCP_B1M = 5; 1654 OCP_B2M = 6; 1655 OCP_B3M = 7; 1656 OCP_B4M = 8; 1657 OCP_B5M = 9; 1658 OCP_B6M = 10; 1659 OCP_B7M = 11; 1660 OCP_B8M = 12; 1661 OCP_B9M = 13; 1662 OCP_B10M = 14; 1663 OCP_B1S = 15; 1664 OCP_B2S = 16; 1665 OCP_B3S = 17; 1666 OCP_B4S = 18; 1667 OCP_B5S = 19; 1668 OCP_B6S = 20; 1669 OCP_B7S = 21; 1670 OCP_B8S = 22; 1671 OCP_B9S = 23; 1672 OCP_B10S = 24; 1673 OCP_BAS = 25; 1674 OCP_BBS = 26; 1675 OCP_BCS = 27; 1676 OCP_BDS = 28; 1677 OCP2_IF = 29; 1678 } 1679 1680 // Reverse domain name. (e.g. Pixel) 1681 optional string reverse_domain_name = 1; 1682 // Triggered mitigation IRQ 1683 optional IRQType triggered_irq = 2; 1684 // Triggered timestamp 1685 optional int64 triggered_timestamp = 3; 1686 // Triggered battery temperature 1687 optional int32 battery_temp = 4; 1688 // Triggered battery age 1689 optional int32 battery_cycle = 5; 1690 // Triggered battery soc 1691 optional int32 battery_soc = 6; 1692 // Triggered FG Reading: Voltage Now 1693 optional int32 voltage_now = 7; 1694 // Triggered ODPM Reading: Channel 1 1695 optional int32 odpm_channel01 = 8; 1696 // Triggered ODPM Reading: Channel 2 1697 optional int32 odpm_channel02 = 9; 1698 // Triggered ODPM Reading: Channel 3 1699 optional int32 odpm_channel03 = 10; 1700 // Triggered ODPM Reading: Channel 4 1701 optional int32 odpm_channel04 = 11; 1702 // Triggered ODPM Reading: Channel 5 1703 optional int32 odpm_channel05 = 12; 1704 // Triggered ODPM Reading: Channel 6 1705 optional int32 odpm_channel06 = 13; 1706 // Triggered ODPM Reading: Channel 7 1707 optional int32 odpm_channel07 = 14; 1708 // Triggered ODPM Reading: Channel 8 1709 optional int32 odpm_channel08 = 15; 1710 // Triggered ODPM Reading: Channel 9 1711 optional int32 odpm_channel09 = 16; 1712 // Triggered ODPM Reading: Channel 10 1713 optional int32 odpm_channel10 = 17; 1714 // Triggered ODPM Reading: Channel 11 1715 optional int32 odpm_channel11 = 18; 1716 // Triggered ODPM Reading: Channel 12 1717 optional int32 odpm_channel12 = 19; 1718 // Triggered ODPM Reading: Channel 13 1719 optional int32 odpm_channel13 = 20; 1720 // Triggered ODPM Reading: Channel 14 1721 optional int32 odpm_channel14 = 21; 1722 // Triggered ODPM Reading: Channel 15 1723 optional int32 odpm_channel15 = 22; 1724 // Triggered ODPM Reading: Channel 16 1725 optional int32 odpm_channel16 = 23; 1726 // Triggered ODPM Reading: Channel 17 1727 optional int32 odpm_channel17 = 24; 1728 // Triggered ODPM Reading: Channel 18 1729 optional int32 odpm_channel18 = 25; 1730 // Triggered ODPM Reading: Channel 19 1731 optional int32 odpm_channel19 = 26; 1732 // Triggered ODPM Reading: Channel 20 1733 optional int32 odpm_channel20 = 27; 1734 // Triggered ODPM Reading: Channel 21 1735 optional int32 odpm_channel21 = 28; 1736 // Triggered ODPM Reading: Channel 22 1737 optional int32 odpm_channel22 = 29; 1738 // Triggered ODPM Reading: Channel 23 1739 optional int32 odpm_channel23 = 30; 1740 // Triggered ODPM Reading: Channel 24 1741 optional int32 odpm_channel24 = 31; 1742 // Triggered DVFS State: Channel 1 1743 optional int32 dvfs_channel1 = 32; 1744 // Triggered DVFS State: Channel 2 1745 optional int32 dvfs_channel2 = 33; 1746 // Triggered DVFS State: Channel 3 1747 optional int32 dvfs_channel3 = 34; 1748 // Triggered DVFS State: Channel 4 1749 optional int32 dvfs_channel4 = 35; 1750 // Triggered DVFS State: Channel 5 1751 optional int32 dvfs_channel5 = 36; 1752 // Triggered DVFS State: Channel 6 1753 optional int32 dvfs_channel6 = 37; 1754 // brownout reason 1755 optional BrownoutReason brownout_reason = 38; 1756 // max current 1757 optional int32 max_current = 39; 1758 // event counter uvlo1 1759 optional int32 evt_cnt_uvlo1 = 40; 1760 // event counter uvlo2 1761 optional int32 evt_cnt_uvlo2 = 41; 1762 // event counter oilo1 1763 optional int32 evt_cnt_oilo1 = 42; 1764 // event counter oilo2 1765 optional int32 evt_cnt_oilo2 = 43; 1766 // VIMON vbatt 1767 optional int32 vimon_vbatt = 44; 1768 // VIMON ibatt 1769 optional int32 vimon_ibatt = 45; 1770 // Mitigation Method 0 1771 optional int32 mitigation_method_0 = 46; 1772 // Mitigation Method 0 Entry Count 1773 optional int32 mitigation_method_0_count = 47; 1774 // Mitigation Method 0 Entry Time 1775 optional int64 mitigation_method_0_time_us = 48; 1776 // pre ocp cpu1 backup at brownout 1777 optional int32 pre_ocp_cpu1_bckup = 49; 1778 // pre ocp cpu2 backup at brownout 1779 optional int32 pre_ocp_cpu2_bckup = 50; 1780 // pre ocp tpu backup at brownout 1781 optional int32 pre_ocp_tpu_bckup = 51; 1782 // pre ocp gpu backup at brownout 1783 optional int32 pre_ocp_gpu_bckup = 52; 1784 // pre uvlo hit count for m pmic at brownout 1785 optional int32 pre_uvlo_hit_cnt_m = 53; 1786 // pre uvlo hit count for s pmic at brownout 1787 optional int32 pre_uvlo_hit_cnt_s = 54; 1788 // pre uvlo assertion duration at brownout 1789 optional int32 pre_uvlo_dur = 55; 1790 // odpm irq stat 0 main at brownout 1791 optional int32 odpm_irq_stat_0_sys_evt_main_bckup = 56; 1792 // odpm irq stat 1 main at brownout 1793 optional int32 odpm_irq_stat_1_sys_evt_main_bckup = 57; 1794 // odpm irq stat 2 main at brownout 1795 optional int32 odpm_irq_stat_2_sys_evt_main_bckup = 58; 1796 // odpm irq stat 3 main at brownout 1797 optional int32 odpm_irq_stat_3_sys_evt_main_bckup = 59; 1798 // odpm irq stat 4 main at brownout 1799 optional int32 odpm_irq_stat_4_sys_evt_main_bckup = 60; 1800 // odpm irq stat 5 main at brownout 1801 optional int32 odpm_irq_stat_5_sys_evt_main_bckup = 61; 1802 // odpm irq stat 6 main at brownout 1803 optional int32 odpm_irq_stat_6_sys_evt_main_bckup = 62; 1804 // odpm irq stat 7 main at brownout 1805 optional int32 odpm_irq_stat_7_sys_evt_main_bckup = 63; 1806 // odpm irq stat 8 main at brownout 1807 optional int32 odpm_irq_stat_8_sys_evt_main_bckup = 64; 1808 // odpm irq stat 9 main at brownout 1809 optional int32 odpm_irq_stat_9_sys_evt_main_bckup = 65; 1810 // odpm irq stat 10 main at brownout 1811 optional int32 odpm_irq_stat_10_sys_evt_main_bckup = 66; 1812 // odpm irq stat 11 main at brownout 1813 optional int32 odpm_irq_stat_11_sys_evt_main_bckup = 67; 1814 // odpm irq stat 0 sub at brownout 1815 optional int32 odpm_irq_stat_0_sys_evt_sub_bckup = 68; 1816 // odpm irq stat 1 sub at brownout 1817 optional int32 odpm_irq_stat_1_sys_evt_sub_bckup = 69; 1818 // odpm irq stat 2 sub at brownout 1819 optional int32 odpm_irq_stat_2_sys_evt_sub_bckup = 70; 1820 // odpm irq stat 3 sub at brownout 1821 optional int32 odpm_irq_stat_3_sys_evt_sub_bckup = 71; 1822 // odpm irq stat 4 sub at brownout 1823 optional int32 odpm_irq_stat_4_sys_evt_sub_bckup = 72; 1824 // odpm irq stat 5 sub at brownout 1825 optional int32 odpm_irq_stat_5_sys_evt_sub_bckup = 73; 1826 // odpm irq stat 6 sub at brownout 1827 optional int32 odpm_irq_stat_6_sys_evt_sub_bckup = 74; 1828 // odpm irq stat 7 sub at brownout 1829 optional int32 odpm_irq_stat_7_sys_evt_sub_bckup = 75; 1830 // odpm irq stat 8 sub at brownout 1831 optional int32 odpm_irq_stat_8_sys_evt_sub_bckup = 76; 1832 // odpm irq stat 9 sub at brownout 1833 optional int32 odpm_irq_stat_9_sys_evt_sub_bckup = 77; 1834 // odpm irq stat 10 sub at brownout 1835 optional int32 odpm_irq_stat_10_sys_evt_sub_bckup = 78; 1836 // odpm irq stat 11 sub at brownout 1837 optional int32 odpm_irq_stat_11_sys_evt_sub_bckup = 79; 1838 // odpm irq stat ext 0 main at brownout 1839 optional int32 odpm_irq_stat_ext_0_sys_evt_main_bckup = 80; 1840 // odpm irq stat ext 1 main at brownout 1841 optional int32 odpm_irq_stat_ext_1_sys_evt_main_bckup = 81; 1842 // odpm irq stat ext 2 main at brownout 1843 optional int32 odpm_irq_stat_ext_2_sys_evt_main_bckup = 82; 1844 // odpm irq stat ext 3 main at brownout 1845 optional int32 odpm_irq_stat_ext_3_sys_evt_main_bckup = 83; 1846 // odpm irq stat ext 0 sub at brownout 1847 optional int32 odpm_irq_stat_ext_0_sys_evt_sub_bckup = 84; 1848 // odpm irq stat ext 1 sub at brownout 1849 optional int32 odpm_irq_stat_ext_1_sys_evt_sub_bckup = 85; 1850 // odpm irq stat ext 2 sub at brownout 1851 optional int32 odpm_irq_stat_ext_2_sys_evt_sub_bckup = 86; 1852 // odpm irq stat ext 3 sub at brownout 1853 optional int32 odpm_irq_stat_ext_3_sys_evt_sub_bckup = 87; 1854 // odpm irq stat gpu at brownout 1855 optional int32 odpm_irq_stat_gpu_bckup = 88; 1856 // odpm irq stat tpu at brownout 1857 optional int32 odpm_irq_stat_tpu_bckup = 89; 1858 // odpm irq stat cpu1 at brownout 1859 optional int32 odpm_irq_stat_cpu1_bckup = 90; 1860 // odpm irq stat cpu2 at brownout 1861 optional int32 odpm_irq_stat_cpu2_bckup = 91; 1862} 1863 1864/* 1865 * PCIe Link Statistics 1866 */ 1867message PcieLinkStatsReported { 1868 /* Vendor reverse domain name (expecting "com.google.pixel"). */ 1869 optional string reverse_domain_name = 1; 1870 1871 /* Count of new PCIe Link Down events on the modem interface */ 1872 optional int32 modem_pcie_linkdowns = 2; 1873 /* Count of new PCIe Completion Timeout events on the modem interface */ 1874 optional int32 modem_pcie_completion_timeouts = 3; 1875 /* Count of new PCIe Link Up Failure events on the modem interface */ 1876 optional int32 modem_pcie_linkup_failures = 4; 1877 /* Average pll lock time (uS) during PCIe Link Up on modem interface */ 1878 optional int32 modem_pcie_pll_lock_avg = 5; 1879 /* Average time (uS) for successful PCIe Link Up on modem interface */ 1880 optional int32 modem_pcie_link_up_avg = 6; 1881 1882 /* Count of new PCIe Link Down events on the wifi interface */ 1883 optional int32 wifi_pcie_linkdowns = 7; 1884 /* Count of new PCIe Completion Timeout events on the wifi interface */ 1885 optional int32 wifi_pcie_completion_timeouts = 8; 1886 /* Count of new PCIe Link Up Failure events on the wifi interface */ 1887 optional int32 wifi_pcie_linkup_failures = 9; 1888 /* Average pll lock time (uS) during PCIe Link Up on wifi interface */ 1889 optional int32 wifi_pcie_pll_lock_avg = 10; 1890 /* Average time (uS) for successful PCIe Link Up on wifi interface */ 1891 optional int32 wifi_pcie_link_up_avg = 11; 1892 1893 /* Count of new PCIe Link Recovery Failure events on the modem interface */ 1894 optional int32 modem_pcie_link_recovery_failures = 12; 1895 /* Count of new PCIe Link Recovery Failure events on the wifi interface */ 1896 optional int32 wifi_pcie_link_recovery_failures = 13; 1897} 1898 1899/** 1900 * Log the CDEV request stats per sensor, binded cooling device. 1901 * Logged from: hardware/google/pixel/thermal/utils/thermal_stats_helper.cpp 1902 */ 1903message VendorSensorCoolingDeviceStats { 1904 optional string reverse_domain_name = 1; 1905 // Sensor name which is making the cooling device request 1906 optional string trigger_sensor_name = 2; 1907 1908 // Cooling device name for which request is being made 1909 optional string cooling_device_name = 3; 1910 1911 // Time duration for which stats are recorded 1912 optional int64 since_last_update_ms = 4; 1913 1914 // Sequence of values corresponding to time spent in each request state 1915 optional int64 time_in_state_ms_bucket_1 = 5; 1916 optional int64 time_in_state_ms_bucket_2 = 6; 1917 optional int64 time_in_state_ms_bucket_3 = 7; 1918 optional int64 time_in_state_ms_bucket_4 = 8; 1919 optional int64 time_in_state_ms_bucket_5 = 9; 1920 optional int64 time_in_state_ms_bucket_6 = 10; 1921 optional int64 time_in_state_ms_bucket_7 = 11; 1922 optional int64 time_in_state_ms_bucket_8 = 12; 1923 optional int64 time_in_state_ms_bucket_9 = 13; 1924 optional int64 time_in_state_ms_bucket_10 = 14; 1925 optional int64 time_in_state_ms_bucket_11 = 15; 1926 optional int64 time_in_state_ms_bucket_12 = 16; 1927 optional int64 time_in_state_ms_bucket_13 = 17; 1928 optional int64 time_in_state_ms_bucket_14 = 18; 1929 optional int64 time_in_state_ms_bucket_15 = 19; 1930 optional int64 time_in_state_ms_bucket_16 = 20; 1931 optional int64 time_in_state_ms_bucket_17 = 21; 1932 optional int64 time_in_state_ms_bucket_18 = 22; 1933 optional int64 time_in_state_ms_bucket_19 = 23; 1934 optional int64 time_in_state_ms_bucket_20 = 24; 1935} 1936 1937/* Log playcount of effects in Vibrator HAL 1938 * 1939 * Logged from: 1940 * hardware/google/pixel/vibrator/ 1941 */ 1942message VibratorPlaycountReported { 1943 // Vendor reverse domain name (expecting "com.google.pixel"). 1944 optional string reverse_domain_name = 1; 1945 1946 // Playcount for each primitive 1947 // Each index tracks the count for that index in the waveform 1948 repeated int32 waveform_counts = 2; 1949 1950 // Playcount for each 50ms range. 1951 // Each index tracks [50ms * i, 50ms * (i + 1)) 1952 repeated int32 duration_counts = 3; 1953} 1954 1955/* Log latency encountered in Vibrator HAL 1956 * 1957 * Logged from: 1958 * hardware/google/pixel/vibrator/ 1959 */ 1960message VibratorLatencyReported { 1961 // Vendor reverse domain name (expecting "com.google.pixel"). 1962 optional string reverse_domain_name = 1; 1963 1964 // Minimum latency seen 1965 // 0 Prebaked and primitives 1966 // 1 Composed effects 1967 // 2 PWLE effects 1968 repeated int32 min_latencies = 2; 1969 1970 // Maximum latency seen 1971 // 0 Prebaked and primitives 1972 // 1 Composed effects 1973 // 2 PWLE effects 1974 repeated int32 max_latencies = 3; 1975 1976 // Average latency seen 1977 // 0 Prebaked and primitives 1978 // 1 Composed effects 1979 // 2 PWLE effects 1980 repeated int32 avg_latencies = 4; 1981} 1982 1983/* Log errors encountered in Vibrator HAL 1984 * 1985 * Logged from: 1986 * hardware/google/pixel/vibrator/ 1987 */ 1988message VibratorErrorsReported { 1989 // Vendor reverse domain name (expecting "com.google.pixel"). 1990 optional string reverse_domain_name = 1; 1991 1992 // Count for each error 1993 // 0 HwAPI Error 1994 // 1 HwCAL Error 1995 // 2 Compose Fail Error 1996 // 3 ALSA Fail Error 1997 // 4 Async Fail Error 1998 // 5 Bad Timeout Error 1999 // 6 Bad Amplitude Error 2000 // 7 Bad Effect Error 2001 // 8 Bad Effect Strength Error 2002 // 9 Bad Primitive Error 2003 // 10 Bad Composite Error 2004 // 11 PWLE Construction Fail Error 2005 // 12 Unsupported Method Error 2006 repeated int32 error_counts = 2; 2007} 2008 2009/* A message containing F2FS Atomic Write information */ 2010message F2fsAtomicWriteInfo { 2011 /* Vendor reverse domain name (expecting "com.google.pixel"). */ 2012 optional string reverse_domain_name = 1; 2013 /* Show the peak value of total current atomic write block count after boot */ 2014 optional int32 peak_atomic_write = 2; 2015 /* Show the accumulated total committed atomic write block count after boot */ 2016 optional int32 committed_atomic_block = 3; 2017 /* Show the accumulated total revoked atomic write block count after boot */ 2018 optional int32 revoked_atomic_block = 4; 2019} 2020 2021/* A message containing Partition Used Spaced information */ 2022message PartitionsUsedSpaceReported { 2023 enum Directory { 2024 UNKNOWN = 0; 2025 PERSIST = 1; 2026 } 2027 /* Vendor reverse domain name (expecting "com.google.pixel"). */ 2028 optional string reverse_domain_name = 1; 2029 2030 /* used space of directory information */ 2031 optional Directory directory = 2; 2032 optional int64 free_bytes = 3; 2033 optional int64 total_bytes = 4; 2034} 2035 2036message GpuEvent { 2037 enum GpuEventType { 2038 MALI_TYPE_NONE = 0; 2039 MALI_KMD_ERROR = 1; 2040 MALI_GPU_RESET = 2; 2041 /* Reserving up to 9 for mali event types */ 2042 PVR_KMD_ERROR = 10; 2043 } 2044 enum GpuEventInfo { 2045 MALI_INFO_NONE = 0; 2046 MALI_CSG_REQ_STATUS_UPDATE = 1; 2047 MALI_CSG_SUSPEND = 2; 2048 MALI_CSG_SLOTS_SUSPEND = 3; 2049 MALI_CSG_GROUP_SUSPEND = 4; 2050 MALI_CSG_EP_CFG = 5; 2051 MALI_CSG_SLOTS_START = 6; 2052 MALI_GROUP_TERM = 7; 2053 MALI_QUEUE_START = 8; 2054 MALI_QUEUE_STOP = 9; 2055 MALI_QUEUE_STOP_ACK = 10; 2056 MALI_CSG_SLOT_READY = 11; 2057 MALI_L2_PM_TIMEOUT = 12; 2058 MALI_PM_TIMEOUT = 13; 2059 MALI_CSF_RESET_OK = 14; 2060 MALI_CSF_RESET_FAILED = 15; 2061 MALI_TILER_OOM = 16; 2062 MALI_PROGRESS_TIMER = 17; 2063 MALI_CS_ERROR = 18; 2064 MALI_FW_ERROR = 19; 2065 MALI_PMODE_EXIT_TIMEOUT = 20; 2066 MALI_PMODE_ENTRY_FAILURE = 21; 2067 MALI_GPU_PAGE_FAULT = 22; 2068 MALI_MMU_AS_ACTIVE_STUCK = 23; 2069 MALI_TRACE_BUF_INVALID_SLOT = 24; 2070 /* Reserving up to 49 for mali event info */ 2071 PVR_INFO_NONE = 50; 2072 PVR_FW_PAGEFAULT = 51; 2073 PVR_HOST_WDG_FW_ERROR = 52; 2074 PVR_GUILTY_LOCKUP = 53; 2075 } 2076 2077 /* Vendor reverse domain name (expecting "com.google.pixel"). */ 2078 optional string reverse_domain_name = 1; 2079 /* 2080 * Type of the GPU event. Possible values depend on the platform GPU. 2081 * Eg, MALI_KMD_ERROR, MALI_GPU_RESET. 2082 */ 2083 optional GpuEventType gpu_event_type = 2; 2084 /* 2085 * Additional information about the GPU event. Possible values depend 2086 * on the platform GPU. 2087 * Eg, MALI_PM_TIMEOUT, MALI_CSF_RESET_OK. 2088 */ 2089 optional GpuEventInfo gpu_event_info = 3; 2090} 2091/** 2092 * Log mitigation duration. 2093 */ 2094message PowerMitigationDurationCounts { 2095 optional string reverse_domain_name = 1; 2096 // Count of UVLO1 greater than threshold without any other concurrent IRQs. 2097 optional int32 greater_than_thresh_uvlo1_none = 2; 2098 // Count of UVLO1 IRQ + MMWAVE IRQ with duration greater than threshold. 2099 optional int32 greater_than_thresh_uvlo1_mmwave = 3; 2100 // Count of UVLO1 IRQ + RFFE IRQ with duration greater than threshold. 2101 optional int32 greater_than_thresh_uvlo1_rffe = 4; 2102 // Count of UVLO2 greater than threshold without any other concurrent IRQs. 2103 optional int32 greater_than_thresh_uvlo2_none = 5; 2104 // Count of UVLO2 IRQ + MMWAVE IRQ with duration greater than threshold. 2105 optional int32 greater_than_thresh_uvlo2_mmwave = 6; 2106 // Count of UVLO2 IRQ + RFFE IRQ with duration greater than threshold. 2107 optional int32 greater_than_thresh_uvlo2_rffe = 7; 2108 // Count of BATOILO greater than threshold without any other concurrent IRQs. 2109 optional int32 greater_than_thresh_batoilo_none = 8; 2110 // Count of BATOILO IRQ + MMWAVE IRQ with duration greater than threshold. 2111 optional int32 greater_than_thresh_batoilo_mmwave = 9; 2112 // Count of BATOILO IRQ + RFFE IRQ with duration greater than threshold. 2113 optional int32 greater_than_thresh_batoilo_rffe = 10; 2114 2115 // IRQ duration of main regulator indices 0-11 greater than threshold. 2116 optional int32 greater_than_thresh_main_0 = 11; 2117 optional int32 greater_than_thresh_main_1 = 12; 2118 optional int32 greater_than_thresh_main_2 = 13; 2119 optional int32 greater_than_thresh_main_3 = 14; 2120 optional int32 greater_than_thresh_main_4 = 15; 2121 optional int32 greater_than_thresh_main_5 = 16; 2122 optional int32 greater_than_thresh_main_6 = 17; 2123 optional int32 greater_than_thresh_main_7 = 18; 2124 optional int32 greater_than_thresh_main_8 = 19; 2125 optional int32 greater_than_thresh_main_9 = 20; 2126 optional int32 greater_than_thresh_main_10 = 21; 2127 optional int32 greater_than_thresh_main_11 = 22; 2128 2129 // IRQ duration of sub regulator indices 0-11 greater than threshold. 2130 optional int32 greater_than_thresh_sub_0 = 23; 2131 optional int32 greater_than_thresh_sub_1 = 24; 2132 optional int32 greater_than_thresh_sub_2 = 25; 2133 optional int32 greater_than_thresh_sub_3 = 26; 2134 optional int32 greater_than_thresh_sub_4 = 27; 2135 optional int32 greater_than_thresh_sub_5 = 28; 2136 optional int32 greater_than_thresh_sub_6 = 29; 2137 optional int32 greater_than_thresh_sub_7 = 30; 2138 optional int32 greater_than_thresh_sub_8 = 31; 2139 optional int32 greater_than_thresh_sub_9 = 32; 2140 optional int32 greater_than_thresh_sub_10 = 33; 2141 optional int32 greater_than_thresh_sub_11 = 34; 2142} 2143 2144/* 2145 * Logs the third party audio effects stats. 2146 * Third party audio effects stats includes duration in milliseconds for each 2147 * instance of the effects (speaker, USB, etc.). 2148 */ 2149message VendorAudioThirdPartyEffectStatsReported { 2150 /* Vendor reverse domain name (expecting "com.google.pixel"). */ 2151 optional string reverse_domain_name = 1; 2152 2153 enum InstanceId { 2154 OTHER = 0; 2155 SPEAKER = 1; 2156 USB = 2; 2157 BT_A2DP = 3; 2158 BT_LE = 4; 2159 } 2160 /* Instance of the effect. */ 2161 optional InstanceId instance = 2; 2162 /* Active duration in milliseconds per day for volume range 0. */ 2163 optional int32 volume_range_0_active_ms_per_day = 3; 2164 /* Active duration in milliseconds per day for volume range 1. */ 2165 optional int32 volume_range_1_active_ms_per_day = 4; 2166 /* Active duration in milliseconds per day for volume range 2. */ 2167 optional int32 volume_range_2_active_ms_per_day = 5; 2168 /* Active duration in milliseconds per day for volume range 3. */ 2169 optional int32 volume_range_3_active_ms_per_day = 6; 2170 /* Active duration in milliseconds per day for volume range 4. */ 2171 optional int32 volume_range_4_active_ms_per_day = 7; 2172 /* Active duration in milliseconds per day for volume range 5. */ 2173 optional int32 volume_range_5_active_ms_per_day = 8; 2174 /* Active duration in milliseconds per day for volume range 6. */ 2175 optional int32 volume_range_6_active_ms_per_day = 9; 2176 /* Active duration in milliseconds per day for volume range 7. */ 2177 optional int32 volume_range_7_active_ms_per_day = 10; 2178 /* Active duration in milliseconds per day for volume range 8. */ 2179 optional int32 volume_range_8_active_ms_per_day = 11; 2180 /* Active duration in milliseconds per day for volume range 9. */ 2181 optional int32 volume_range_9_active_ms_per_day = 12; 2182} 2183 2184/* 2185 * Logs the Audio Adapted information stats. 2186 * Two stats are recorded, count and duration (in ms) per features. 2187 */ 2188message VendorAudioAdaptedInfoStatsReported { 2189 /* Vendor reverse domain name */ 2190 optional string reverse_domain_name = 1; 2191 2192 enum AdaptedInfoFeature { 2193 UNKNOWN = 0; 2194 BATTERY_ADAPTED_AUDIO_CONTROL = 1; 2195 MEDIA_PLAYBACK_THERMAL_THROTTLE = 2; 2196 TELEPHONY_THERMAL_THROTTLE = 3; 2197 ACOUSTIC_SHOCK = 4; 2198 SPATIAL_AUDIO = 5; 2199 }; 2200 /* Feature to record the stats */ 2201 optional AdaptedInfoFeature feature_id = 2; 2202 /* Number of time the feature is active */ 2203 optional int32 active_counts_per_day = 3; 2204 /* Duration the feature is active in milliseconds */ 2205 optional int32 active_duration_ms_per_day = 4; 2206} 2207 2208/* 2209 * Logs the audio PCM usage stats. 2210 * PCM usage includes average latency and total active count per day. 2211 */ 2212message VendorAudioPcmStatsReported { 2213 /* Vendor reverse domain name */ 2214 optional string reverse_domain_name = 1; 2215 2216 enum HalPcmType { 2217 UNKNOWN = 0; 2218 DEEPBUFFER = 1; 2219 LOWLATENCY = 2; 2220 MMAP_PLAY = 3; 2221 RAW_PLAY = 4; 2222 IMMERSIVE = 5; 2223 HAPTIC = 6; 2224 COMPRESS = 7; 2225 MMAP_REC = 8; 2226 RAW_REC = 9; 2227 AUDIO_REC = 10; 2228 HIFI_RX = 11; 2229 HIFI_TX = 12; 2230 IMMUTABLE_RX = 13; 2231 CUSTOM_PCM_1 = 14; 2232 CUSTOM_PCM_2 = 15; 2233 CUSTOM_PCM_3 = 16; 2234 CUSTOM_PCM_4 = 17; 2235 CUSTOM_PCM_5 = 18; 2236 }; 2237 /* Type of PCM */ 2238 optional HalPcmType type = 2; 2239 /* Average latency in millisecond of the pcm type per day. */ 2240 optional int32 pcm_open_latency_avg_ms_per_day = 3; 2241 /* Total active count of the pcm type per day. */ 2242 optional int32 pcm_active_counts_per_day = 4; 2243} 2244 2245/** 2246 * Keep track of information about a USB data session, which is defined 2247 * as the period when a port enters a data role (either host or device) to 2248 * when the port exits the data role. 2249 */ 2250message VendorUsbDataSessionEvent { 2251 /* Vendor reverse domain name (expecting "com.google.pixel") */ 2252 optional string reverse_domain_name = 1; 2253 2254 enum UsbDataRole { 2255 USB_ROLE_UNKNOWN = 0; 2256 USB_ROLE_DEVICE = 1; 2257 USB_ROLE_HOST = 2; 2258 } 2259 /** 2260 * USB device states are key milestones in a USB connection. 2261 * For device data role, a typical transition would be like: 2262 * not attached -> default -> addressed -> configured. 2263 * For host data role, a typical transition would be like 2264 * not attached -> powered -> default -> addressed -> configured. 2265 */ 2266 enum UsbDeviceState { 2267 USB_STATE_UNKNOWN = 0; 2268 USB_STATE_NOT_ATTACHED = 1; 2269 USB_STATE_ATTACHED = 2; 2270 USB_STATE_POWERED = 3; 2271 USB_STATE_DEFAULT = 4; 2272 USB_STATE_ADDRESSED = 5; 2273 USB_STATE_CONFIGURED = 6; 2274 USB_STATE_SUSPENDED = 7; 2275 } 2276 /* USB data role of the data session. */ 2277 optional UsbDataRole usb_role = 2; 2278 /* Usb device state transitions during the data session. */ 2279 repeated UsbDeviceState usb_states = 3; 2280 /** 2281 * Elapsed time from the start of the data session when entering the 2282 * state, mapped 1-1 to the usb_states field. 2283 */ 2284 repeated int64 elapsed_time_ms = 4; 2285 // Duration of the data session. 2286 optional int64 duration_ms = 5; 2287} 2288 2289/* 2290 * Logs the thermal sensor abnormal event when detected. 2291 * Logged from: 2292 * virtual sensors: hardware/google/pixel/thermal/utils/thermal_stats_helper.cpp 2293 * thermistors & SoC: hardware/google/pixel/pixelstats/UeventListener.cpp 2294 */ 2295message ThermalSensorAbnormalityDetected { 2296 enum AbnormalityType { 2297 UNKNOWN = 0; 2298 SENSOR_STUCK = 1; 2299 EXTREME_HIGH_TEMP = 2; 2300 EXTREME_LOW_TEMP = 3; 2301 HIGH_RISING_SPEED = 4; 2302 TEMP_READ_FAIL = 5; 2303 } 2304 2305 /* Vendor reverse domain name */ 2306 optional string reverse_domain_name = 1; 2307 /* Type of Thermal Sensor Abnormality */ 2308 optional AbnormalityType type = 2; 2309 /* Name of the problematic sensor */ 2310 optional string sensor = 3; 2311 /* Abnormal temp reading of sensor */ 2312 optional int32 temp = 4; 2313} 2314 2315/** 2316 * Logs the reported vendor audio offloaded effects usage stats. 2317 */ 2318message VendorAudioOffloadedEffectStatsReported { 2319 /* Vendor reverse domain name */ 2320 optional string reverse_domain_name = 1; 2321 2322 /* UUID most significant bit */ 2323 optional int64 effect_uuid_msb = 2; 2324 2325 /* UUID least significant bit */ 2326 optional int64 effect_uuid_lsb = 3; 2327 2328 /* Active seconds per day. */ 2329 optional int32 effect_active_seconds_per_day = 4; 2330} 2331 2332/* 2333 * Logs the Bluetooth Audio stats. 2334 * Two stats are recorded, count and duration (in ms) per features. 2335 */ 2336message VendorAudioBtMediaStatsReported { 2337 /* Vendor reverse domain name */ 2338 optional string reverse_domain_name = 1; 2339 2340 enum Codec { 2341 UNKNOWN = 0; 2342 SBC = 1; 2343 AAC = 2; 2344 OPUS = 3; 2345 LC3 = 4; 2346 } 2347 /* Codec to record. */ 2348 optional Codec bt_codec_type = 2; 2349 /* Total active seconds to record. */ 2350 optional int32 active_seconds_per_day = 3; 2351} 2352 2353/* 2354 * Logs the usage of APIs in Pixel Impulse. 2355 */ 2356message PixelImpulseUsageReported { 2357 /* Vendor reverse domain name */ 2358 optional string reverse_domain_name = 1; 2359 2360 /* UID of the caller package */ 2361 optional int32 caller_uid = 2 [(android.os.statsd.is_uid) = true]; 2362 2363 /* UID of the callee package */ 2364 optional int32 callee_uid = 3 [(android.os.statsd.is_uid) = true]; 2365 2366 enum ApiName { 2367 API_UNKNOWN = 0; 2368 /* Server side */ 2369 API_SERVICE_BIND = 1; 2370 API_SERVICE_UNBIND = 2; 2371 API_REGISTER = 3; 2372 API_UNREGISTER = 4; 2373 API_CLEAR_APP_DATA = 100; 2374 /* Client side */ 2375 API_SERVER_START = 1001; 2376 API_PIXEL_STATE_CHANGE = 1002; 2377 /* Internal */ 2378 INTERNAL_PLATFORM_CONNECTION_CONNECT = 10001; 2379 INTERNAL_PLATFORM_CONNECTION_DISCONNECT = 10002; 2380 INTERNAL_PLATFORM_CONNECTION_CHANGE = 10003; 2381 INTERNAL_CLIENT_LISTENER_ADD = 10004; 2382 INTERNAL_CLIENT_LISTENER_REMOVE = 10005; 2383 INTERNAL_WAIT = 10006; 2384 INTERNAL_COROUTINE_ENQUEUE = 10007; 2385 INTERNAL_COROUTINE_RUN = 10008; 2386 } 2387 /* Invoked API name */ 2388 optional ApiName api_name = 4; 2389 2390 enum Tag { 2391 TAG_UNKNOWN = 0; 2392 TAG_TEMPERATURE_READ_DELAY = 1; 2393 TAG_SKIN_TEMPERATURE = 2; 2394 TAG_BUSINESS_SCOPE = 3; 2395 TAG_NON_BUSINESS_SCOPE = 4; 2396 } 2397 /* Tag for debugging purpose */ 2398 optional Tag tag = 5; 2399 2400 /* Timestamp of the usage start in epoch time */ 2401 optional int64 usage_start_epoch_millis = 6; 2402 2403 /* Timestamp of the usage start since device boot */ 2404 optional int64 usage_start_uptime_millis = 7; 2405 2406 /* Duration of the usage */ 2407 optional int64 usage_duration_millis = 8; 2408 2409 /* Whether the invocation was successful */ 2410 optional bool success = 9; 2411 2412 enum FailReason { 2413 FAIL_REASON_UNKNOWN = 0; 2414 FAIL_REASON_INVALID_ARGUMENT = 1; 2415 FAIL_REASON_UNAUTHORIZED = 2; 2416 FAIL_REASON_TIMEOUT = 3; 2417 FAIL_REASON_NOT_FOUND = 4; 2418 FAIL_REASON_INVALID_STATE = 5; 2419 } 2420 /* Fail reason (if success == false) */ 2421 optional FailReason fail_reason = 10; 2422 2423 /* Size of the arguments */ 2424 optional int32 request_size = 11; 2425 2426 /* Platform connection usage */ 2427 /* Used when api_name == INTERNAL_PLATFORM_CONNECTION_CHANGE */ 2428 optional int32 internal_platform_connection_count = 12; 2429 2430 /* Client state source usage */ 2431 /* Used when api_name == INTERNAL_CLIENT_LISTENER_* */ 2432 optional int32 internal_client_listener_count = 13; 2433 2434 enum StateSource { 2435 STATE_SOURCE_UNKNOWN = 0; 2436 STATE_SOURCE_UID_IMPORTANCE = 1; 2437 STATE_SOURCE_CAMERA_AVAILABILITY = 2; 2438 STATE_SOURCE_DROPBOX_BROADCAST = 3; 2439 STATE_SOURCE_TEMPERATURE = 4; 2440 STATE_SOURCE_THERMAL_STATUS = 5; 2441 } 2442 /* State source involved */ 2443 /* Used when api_name == INTERNAL_PLATFORM_CONNECTION_* or 2444 * api_name == INTERNAL_CLIENT_LISTENER_* */ 2445 optional StateSource state_source = 14; 2446 2447 /* UID importance cut point */ 2448 /* This is the UID importance cutpoint associated with the 2449 * OnUidImportanceListener 2450 */ 2451 /* Used when state_source == STATE_SOURCE_UID_IMPORTANCE */ 2452 optional android.app.Importance uid_importance_cut_point = 15; 2453 2454 /* Expected value for temperature delta in Celsius */ 2455 optional float expected_temperature_celsius = 16; 2456 2457 /* Actual value for temperature delta in Celsius */ 2458 optional float actual_temperature_celsius = 17; 2459} 2460 2461/** 2462 * Log DisplayPort link error statistics. 2463 */ 2464message DisplayPortErrorStats { 2465 /* Vendor reverse domain name */ 2466 optional string reverse_domain_name = 1; 2467 2468 /* The error count due to link training failed. */ 2469 optional int32 link_negotiation_failures = 2; 2470 /* The error count due to read EDID failed. */ 2471 optional int32 edid_read_failures = 3; 2472 /* The error count due to read dpcd failed. */ 2473 optional int32 dpcd_read_failures = 4; 2474 /* The error count due to EDID is invalid. */ 2475 optional int32 edid_invalid_failures = 5; 2476 /* The error count due to sink count is invalid. */ 2477 optional int32 sink_count_invalid_failures = 6; 2478 /* The error count due to link unstable. */ 2479 optional int32 link_unstable_failures = 7; 2480} 2481 2482/** 2483 * Log HDCP authentication type statistics. 2484 */ 2485message HDCPAuthTypeStats { 2486 /* Vendor reverse domain name */ 2487 optional string reverse_domain_name = 1; 2488 2489 /* The count due to hdcp2 success */ 2490 optional int32 hdcp2_success_count = 2; 2491 /* The count due to hdcp2 fallback */ 2492 optional int32 hdcp2_fallback_count = 3; 2493 /* The count due to hdcp2 fail */ 2494 optional int32 hdcp2_fail_count = 4; 2495 /* The count due to hdcp1 success */ 2496 optional int32 hdcp1_success_count = 5; 2497 /* The count due to hdcp1 fail */ 2498 optional int32 hdcp1_fail_count = 6; 2499 /* The count due to hdcp0 */ 2500 optional int32 hdcp0_count = 7; 2501} 2502 2503/** 2504 * A message containing how DisplayPort is being used in a day. 2505 */ 2506message DisplayPortUsage { 2507 /* Vendor reverse domain name */ 2508 optional string reverse_domain_name = 1; 2509 2510 /* resolution width */ 2511 optional int32 width = 2; 2512 /* resolution height */ 2513 optional int32 height = 3; 2514 /* refresh rate */ 2515 optional float refresh_rate = 4; 2516 /* vendor ID. */ 2517 optional int32 vendor_id = 5; 2518 /* product ID. */ 2519 optional int32 product_id = 6; 2520 /* indicated start/stop event of DP usage */ 2521 optional bool connected = 7; 2522} 2523 2524/* 2525 * A message containing max77779 fuel gauge abnormal events 2526 * Logged from: 2527 * hardware/google/pixel/pixelstats/BatteryFGReporter.cpp 2528 */ 2529message FuelGaugeAbnormalityReported { 2530 enum Event { 2531 UNKNOWN_EVENT = 0; 2532 FULLCAPNOM_LOW = 1; // unexpected fullcapnom learning (too low) 2533 FULLCAPNOM_HIGH = 2; // unexpected fullcapnom learning (too high) 2534 REPSOC_EDET = 3; // empty detect false alarm 2535 REPSOC_FDET = 4; // full detect false alarm 2536 REPSOC = 5; // repsoc not accurate 2537 VFOCV = 6; // vfocv estimation wrong 2538 } 2539 enum EventState { 2540 UNKNOWN_STATE = 0; 2541 UNTRIGGER = 1; 2542 TRIGGER = 2; 2543 } 2544 /* Vendor reverse domain name */ 2545 optional string reverse_domain_name = 1; 2546 /* Report by which event */ 2547 repeated Event event = 2; 2548 /* State was triggered or untriggered */ 2549 repeated EventState event_state = 3; 2550 optional int32 duration_secs = 4; 2551 /* Record fuel gauge registers at the time of the event */ 2552 optional int32 fg_register_address_1 = 5; 2553 optional int32 fg_register_data_1 = 6; 2554 optional int32 fg_register_address_2 = 7; 2555 optional int32 fg_register_data_2 = 8; 2556 optional int32 fg_register_address_3 = 9; 2557 optional int32 fg_register_data_3 = 10; 2558 optional int32 fg_register_address_4 = 11; 2559 optional int32 fg_register_data_4 = 12; 2560 optional int32 fg_register_address_5 = 13; 2561 optional int32 fg_register_data_5 = 14; 2562 optional int32 fg_register_address_6 = 15; 2563 optional int32 fg_register_data_6 = 16; 2564 optional int32 fg_register_address_7 = 17; 2565 optional int32 fg_register_data_7 = 18; 2566 optional int32 fg_register_address_8 = 19; 2567 optional int32 fg_register_data_8 = 20; 2568 optional int32 fg_register_address_9 = 21; 2569 optional int32 fg_register_data_9 = 22; 2570 optional int32 fg_register_address_10 = 23; 2571 optional int32 fg_register_data_10 = 24; 2572 optional int32 fg_register_address_11= 25; 2573 optional int32 fg_register_data_11= 26; 2574 optional int32 fg_register_address_12= 27; 2575 optional int32 fg_register_data_12 = 28; 2576 optional int32 fg_register_address_13 = 29; 2577 optional int32 fg_register_data_13 = 30; 2578 optional int32 fg_register_address_14 = 31; 2579 optional int32 fg_register_data_14 = 32; 2580 optional int32 fg_register_address_15 = 33; 2581 optional int32 fg_register_data_15 = 34; 2582 optional int32 fg_register_address_16 = 35; 2583 optional int32 fg_register_data_16 = 36; 2584} 2585 2586/* 2587 * Process memory usage by Oom groups 2588 */ 2589message MmProcessUsageByOomGroupSnapshot { 2590 enum OomGroup { 2591 OOMR_950 = 0; 2592 OOMR_900 = 1; 2593 OOMR_850 = 2; 2594 OOMR_800 = 3; 2595 OOMR_750 = 4; 2596 OOMR_700 = 5; 2597 OOMR_650 = 6; 2598 OOMR_600 = 7; 2599 OOMR_550 = 8; 2600 OOMR_500 = 9; 2601 OOMR_450 = 10; 2602 OOMR_400 = 11; 2603 OOMR_350 = 12; 2604 OOMR_300 = 13; 2605 OOMR_250 = 14; 2606 OOMR_200 = 15; 2607 OOMS_200 = 16; 2608 OOMR_150 = 17; 2609 OOMR_100 = 18; 2610 OOMR_050 = 19; 2611 OOMR_000 = 20; 2612 OOMS_000 = 21; 2613 OOMR_NEGATIVE = 22; 2614 /* reserved for future error handling */ 2615 OOM_UNKNOWN = 999; 2616 } 2617 /* Vendor reverse domain name */ 2618 optional string reverse_domain_name = 1; 2619 /* Unique ID per knob read */ 2620 optional int32 metric_uid = 2; 2621 /* 2622 * This is the dimension: each knob read will create N atoms. 2623 * N = number of groups defined in the enumerate above. 2624 */ 2625 optional OomGroup oom_group = 3; 2626 optional int64 nr_task = 4; 2627 optional int64 file_rss = 5; 2628 optional int64 anon_rss = 6; 2629 optional int64 pgtable = 7; 2630 optional int64 swap_ent = 8; 2631 optional int64 shmem_rss = 9; 2632} 2633 2634/* 2635 * GCMA memory hourly snapshot 2636 */ 2637message MmGcmaSnapshot { 2638 /* Vendor reverse domain name */ 2639 optional string reverse_domain_name = 1; 2640 /* cached memory */ 2641 optional int64 cached = 2; 2642} 2643 2644/* 2645 * GCMA memory daily statistics 2646 */ 2647message MmGcmaStats { 2648 /* Vendor reverse domain name */ 2649 optional string reverse_domain_name = 1; 2650 /* statistics */ 2651 optional int64 discarded = 2; 2652 optional int64 evicted = 3; 2653 optional int64 loaded = 4; 2654 optional int64 stored = 5; 2655 repeated int64 latency_histogram = 6; 2656} 2657 2658/* 2659 * A message containing the USB audio capability of the connected accessories. 2660 */ 2661message VendorAudioUsbDeviceCapabilityStats { 2662 /* Vendor reverse domain name */ 2663 optional string reverse_domain_name = 1; 2664 2665 enum UsbMode { 2666 UNKNOWN_MODE = 0; 2667 ASYNC_MODE = 1; 2668 ADAPTIVE_MODE = 2; 2669 SYNC_MODE = 3; 2670 } 2671 /* USB Modes */ 2672 repeated UsbMode playback_supported_modes = 2; 2673 repeated UsbMode capture_supported_modes = 3; 2674 2675 enum UsbSpeed { 2676 OTHER_SPEED = 0; 2677 FULL_SPEED = 1; 2678 HIGH_SPEED = 2; 2679 SUPER_SPEED = 3; 2680 } 2681 /* USB Speed */ 2682 optional UsbSpeed usb_speed = 4 [deprecated = true]; 2683 2684 /* Data Packets Interval in ms. Expected value is between 125 and 1000.*/ 2685 repeated int32 playback_data_packet_interval = 5; 2686 repeated int32 capture_data_packet_interval = 6; 2687 2688 /* List of supported sample rates in increasing order. */ 2689 repeated int32 playback_supported_sample_rates = 7; 2690 repeated int32 capture_supported_sample_rates = 8; 2691 2692 /* Maximum number of channels supported */ 2693 optional int32 playback_supported_channel_count = 9; 2694 optional int32 capture_supported_channel_count = 10; 2695 2696 enum PcmType { 2697 DEFAULT = 0; 2698 INT16_BIT = 1; 2699 INT32_BIT = 2; 2700 FIXED_Q824 = 3; 2701 FLOAT32_BIT = 4; 2702 INT24_BIT = 5; 2703 DSD32_BIT = 6; 2704 } 2705 /* Supported PCM Type */ 2706 repeated PcmType playback_supported_pcm_types = 11; 2707 repeated PcmType capture_supported_pcm_types = 12; 2708 2709 /* Supported endian */ 2710 optional bool is_big_endian = 13; 2711 2712 /* Is USB device support playback */ 2713 optional bool is_playback = 14; 2714 2715 /* Duration connected */ 2716 optional int32 duration_second_connected = 15; 2717}; 2718 2719/* 2720 * A message containing battery time to full stats 2721 * Logged from: 2722 * hardware/google/pixel/pixelstats/BatteryTTFReporter.cpp 2723 */ 2724message BatteryTimeToFullStatsReported { 2725 // Vendor reverse domain name (expecting "com.google.pixel"). 2726 optional string reverse_domain_name = 1; 2727 2728 // The charge_counter and elap of each soc 2729 optional int32 ttf_type = 2; 2730 optional int32 ttf_range = 3; 2731 optional int32 soc_0 = 4; 2732 optional int32 soc_1 = 5; 2733 optional int32 soc_2 = 6; 2734 optional int32 soc_3 = 7; 2735 optional int32 soc_4 = 8; 2736 optional int32 soc_5 = 9; 2737 optional int32 soc_6 = 10; 2738 optional int32 soc_7 = 11; 2739 optional int32 soc_8 = 12; 2740 optional int32 soc_9 = 13; 2741} 2742 2743/* 2744 * A message containing Direct USB Access event. 2745 */ 2746message VendorAudioDirectUsbAccessUsageStats { 2747 /* Vendor reverse domain name */ 2748 optional string reverse_domain_name = 1; 2749 2750 optional int32 duration_second = 2; 2751}; 2752 2753/* 2754 * A message containing Usb Config event. 2755 */ 2756message VendorAudioUsbConfigStats { 2757 /* Vendor reverse domain name */ 2758 optional string reverse_domain_name = 1; 2759 2760 /* Is config for playback or capture */ 2761 optional bool is_playback = 2; 2762 2763 /* Is config for hifi */ 2764 optional bool has_hifi = 3; 2765 2766 /* Sample rate used */ 2767 optional int32 sample_rate = 4; 2768 2769 /* Channel used */ 2770 optional int32 channel = 5; 2771 2772 /* Pcm Type used */ 2773 optional int32 pcm_type = 6; 2774 2775 /* Duration in second */ 2776 optional int32 duration_second = 7; 2777}; 2778 2779/* 2780 * Per-app GPU DVFS time-in-state data, for each GPU frequency. 2781 * Logging is capped at 15 apps/uids max, per 6 hours. 2782 * Logged from: 2783 * hardware/google/pixel/pixelstats/ 2784 * 2785 * See: b/341045478, b/340834608 2786 * 2787 * Estimated Logging Rate: 2788 * Peak: 15 times in 6 hours | Avg: 15 times in 6 hours 2789 */ 2790message GpuFrequencyTimeInStatePerUidReported { 2791 /* Vendor reverse domain name (expecting "com.google.pixel"). */ 2792 optional string reverse_domain_name = 1; 2793 2794 /* App UID. */ 2795 optional int32 uid = 2 [(android.os.statsd.is_uid) = true]; 2796 2797 /* 2798 * Time passed, since the previous push of this atom for this uid, in 2799 * milliseconds. 2800 */ 2801 optional int32 reporting_duration_ms = 3; 2802 2803 /* 2804 * Report up to 15 different frequencies, and how much time was spent in each 2805 * frequency, by this app/uid since the previous push of this atom. 2806 * Frequencies are given in KHz, and time is given in milliseconds since the 2807 * previous push of this atom. 2808 * Each individual device will always report the same frequency in the same 2809 * field (for the aggregation in the metric(s) to work). If a frequency had 0 2810 * time spent in it (since the previous atom push) for an app/uid - both 2811 * frequency and duration fields for that frequency will not be set (to save 2812 * space). 2813 */ 2814 optional int32 frequency_1_khz = 4; 2815 optional int32 time_1_millis = 5; 2816 2817 optional int32 frequency_2_khz = 6; 2818 optional int32 time_2_millis = 7; 2819 2820 optional int32 frequency_3_khz = 8; 2821 optional int32 time_3_millis = 9; 2822 2823 optional int32 frequency_4_khz = 10; 2824 optional int32 time_4_millis = 11; 2825 2826 optional int32 frequency_5_khz = 12; 2827 optional int32 time_5_millis = 13; 2828 2829 optional int32 frequency_6_khz = 14; 2830 optional int32 time_6_millis = 15; 2831 2832 optional int32 frequency_7_khz = 16; 2833 optional int32 time_7_millis = 17; 2834 2835 optional int32 frequency_8_khz = 18; 2836 optional int32 time_8_millis = 19; 2837 2838 optional int32 frequency_9_khz = 20; 2839 optional int32 time_9_millis = 21; 2840 2841 optional int32 frequency_10_khz = 22; 2842 optional int32 time_10_millis = 23; 2843 2844 optional int32 frequency_11_khz = 24; 2845 optional int32 time_11_millis = 25; 2846 2847 optional int32 frequency_12_khz = 26; 2848 optional int32 time_12_millis = 27; 2849 2850 optional int32 frequency_13_khz = 28; 2851 optional int32 time_13_millis = 29; 2852 2853 optional int32 frequency_14_khz = 30; 2854 optional int32 time_14_millis = 31; 2855 2856 optional int32 frequency_15_khz = 32; 2857 optional int32 time_15_millis = 33; 2858} 2859 2860/* GPU memory allocation information for frozen apps */ 2861message GpuFrozenAppsMemoryPerUid { 2862 /* Vendor reverse domain name (expecting "com.google.pixel"). */ 2863 optional string reverse_domain_name = 1; 2864 2865 /* UID of the frozen app. */ 2866 optional int32 uid = 2 [(android.os.statsd.is_uid) = true]; 2867 2868 /* Total amount of GPU memory allocated by this app, in kilobytes. */ 2869 optional int64 gpu_memory_kb = 3; 2870} 2871 2872/** 2873 * Logs for repair mode enter 2874 * Logged from: 2875 * vendor/google/apps/RepairMode/ 2876 * 2877 * Estimated Logging Rate: 2878 * Peak: 5 times in 1 min | Avg: 3 times per device per year 2879 */ 2880 message RepairModeEntered { 2881 // Vendor reverse domain name (expecting "com.google.pixel"). 2882 optional string reverse_domain_name = 1; 2883 // free storage size on device when entering repair mode in megabyte 2884 optional int64 storage_size_mb = 2; 2885} 2886 2887/** 2888 * Logs for repair mode exit 2889 * Logged from: 2890 * vendor/google/apps/RepairMode/ 2891 * 2892 * Estimated Logging Rate: 2893 * Peak: 5 times in 1 min | Avg: 3 times per device per year 2894 */ 2895message RepairModeExited { 2896 // Vendor reverse domain name (expecting "com.google.pixel"). 2897 optional string reverse_domain_name = 1; 2898 // free storage size on device when exiting repair mode in megabyte 2899 optional int64 storage_size_mb = 2; 2900 // whether diagnostic tool is executed during repair mode 2901 // false if diagnostic tool is never run 2902 // true if diagnostic is run once or more 2903 optional bool is_diagnostic_run = 3; 2904 2905 // how user auth/verify the credential to exit repair mode 2906 enum ExitMethod { 2907 UNSPECIFIED = 0; 2908 // auth by google account 2909 GAUTH = 1; 2910 // auth by screen lock on the device 2911 SCREEN_LOCK = 2; 2912 } 2913 // method for auth when exiting repair mode 2914 optional ExitMethod exit_method = 4; 2915} 2916 2917/** 2918 * Logs when a user cannot enter repair mode due to insufficient storage 2919 * Logged from: 2920 * vendor/google/apps/RepairMode/ 2921 * 2922 * Estimated Logging Rate: 2923 * Peak: 1 time in 5 mins | Avg: 20 times per device per year 2924 */ 2925message RepairModeLowStorageReported { 2926 // Vendor reverse domain name (expecting "com.google.pixel"). 2927 optional string reverse_domain_name = 1; 2928 // free storage size on the device in megabyte 2929 optional int64 storage_size_mb = 2; 2930} 2931 2932/** 2933 * Logs programmatic error that prevent users from entering repair mode 2934 * Logged from: 2935 * vendor/google/apps/RepairMode/ 2936 * 2937 * Estimated Logging Rate: 2938 * Peak: 1 time in 3 mins | Avg: 2 times per device per year 2939 */ 2940message RepairModeErrorReported { 2941 // Vendor reverse domain name (expecting "com.google.pixel"). 2942 optional string reverse_domain_name = 1; 2943 2944 // Error type that prevent user from entering repair mode 2945 enum ErrorType { 2946 UNSPECIFIED = 0; 2947 // Dynamic system failed to install image 2948 INSTALLED_FAILED = 1; 2949 // Failed to enable Dynamic system 2950 ENABLE_DYN_FAILED = 2; 2951 // Failed to reboot 2952 REBOOT_FAILED = 3; 2953 } 2954 2955 optional ErrorType error_type = 2; 2956} 2957 2958/* 2959 * Log if a device is plugged into a display that 2960 * supports forward error correction (FEC) and 2961 * display stream compression (DSC) 2962 */ 2963message DisplayPortDSCSupportCountStatsReported{ 2964 /* Vendor reverse domain name */ 2965 optional string reverse_domain_name = 1; 2966 2967 /* Counts of connections where FEC/DSC is 2968 * supported or not 2969 */ 2970 optional int32 fec_dsc_supported = 2; 2971 optional int32 fec_dsc_not_supported = 3; 2972} 2973 2974/* 2975* A message containing the use counts of various maximum 2976* resolutions the displays plugged into the phone use. 2977*/ 2978message DisplayPortMaxResolutionCountStatsReported{ 2979 2980 /* Vendor reverse domain name */ 2981 optional string reverse_domain_name = 1; 2982 2983 /* Other Resolutions that don't fit into the current list */ 2984 optional int32 max_res_other = 2; 2985 2986 /* Predefined Resolutions */ 2987 optional int32 max_res_1366_768 = 3; 2988 optional int32 max_res_1440_900 = 4; 2989 optional int32 max_res_1600_900 = 5; 2990 optional int32 max_res_1920_1080 = 6; 2991 optional int32 max_res_2560_1080 = 7; 2992 optional int32 max_res_2560_1440 = 8; 2993 optional int32 max_res_3440_1440 = 9; 2994 optional int32 max_res_3840_2160 = 10; 2995 optional int32 max_res_5120_2880 = 11; 2996 optional int32 max_res_7680_4320 = 12; 2997} 2998 2999/* Audio Device Interface. */ 3000enum AudioDeviceInterface { 3001 UNKNOWN_DEVICE_INTERFACE = 0; 3002 3003 // Built-in speakers 3004 SPEAKER = 1; 3005 SPEAKER_EARPIECE = 2; 3006 SPEAKER_SAFE = 3; 3007 3008 // Built-in microphones 3009 MICROPHONES = 4; 3010 BACK_MICROPHONES = 5; 3011 // internal used microphones 3012 ULTRASOUND_MICROPHONES = 6; 3013 SOUND_TRIGGER_MICROPHONES = 7; 3014 3015 // BT SCO 3016 BLUETOOTH_SCO_DEFAULT = 8; 3017 BLUETOOTH_SCO_HEADSET = 9; 3018 BLUETOOTH_SCO_CAR_KIT = 10; 3019 BLUETOOTH_SCO_HEADSET_MICROPHONES = 11; 3020 3021 // BT A2DP 3022 BLUETOOTH_A2DP_DEVICE = 12; 3023 BLUETOOTH_A2DP_SPEAKER = 13; 3024 BLUETOOTH_A2DP_HEADPHONE = 14; 3025 3026 // BT low energy (BLE) 3027 BLUETOOTH_LOW_ENERGY_SPEAKER = 15; 3028 BLUETOOTH_LOW_ENERGY_HEADSET = 16; 3029 BLUETOOTH_LOW_ENERGY_BROADCAST = 17; 3030 BLUETOOTH_LOW_ENERGY_HEADSET_MICROPHONES = 18; 3031 3032 // USB 3033 USB_DEVICE = 19; 3034 USB_HEADSET = 20; 3035 USB_DOCK = 21; 3036 USB_DEVICE_MICROPHONES = 22; 3037 USB_HEADSET_MICROPHONES = 23; 3038 USB_DOCK_MICROPHONES = 24; 3039 3040 // HDMI 3041 HDMI_DEVICE = 25; 3042 3043 // Telephony 3044 TELEPHONY_TX = 26; 3045 TELEPHONY_RX = 27; 3046 IN_CALL_CAPTURE_SOURCE0 = 28; 3047 IN_CALL_CAPTURE_SOURCE1 = 29; 3048 IN_CALL_CAPTURE_SOURCE2 = 30; 3049 3050 // Null sink and source 3051 NULL_SOURCE = 31; 3052 NULL_SINK = 32; 3053 3054 // Echo reference 3055 ECHO_REFERENCE_DEVICE_INTERFACE = 33; 3056} 3057 3058/* Audio Use Case. */ 3059enum AudioUseCase { 3060 UNKNOWN_VENDOR_AUDIO_USECASE = 0; 3061 // playback use cases 3062 PRIMARY_PLAYBACK = 1; 3063 RAW_PLAYBACK = 2; 3064 DEEP_BUFFER_PLAYBACK = 3; 3065 COMPRESS_OFFLOAD_PLAYBACK = 4; 3066 MMAP_PLAYBACK = 5; 3067 HIFI_PLAYBACK = 6; 3068 VOIP_PLAYBACK = 7; 3069 TELEPHONY_PLAYBACK = 8; 3070 IN_CALL_PLAYBACK = 9; 3071 SPATIALIZER_PLAYBACK = 10; 3072 ULTRASOUND_PLAYBACK = 11; 3073 HAPTIC_PLAYBACK = 12; 3074 SPATIALIZER_OFFLOAD_PLAYBACK = 13; 3075 // capture use cases 3076 PRIMARY_CAPTURE = 14; 3077 FAST_CAPTURE = 15; 3078 HIFI_CAPTURE = 16; 3079 MMAP_CAPTURE = 17; 3080 VOIP_CAPTURE = 18; 3081 VOIP_GSENET_CAPTURE = 19; 3082 ULTRASOUND_CAPTURE = 20; 3083 TELEPHONY_CAPTURE = 21; 3084 IN_CALL_CAPTURE = 22; 3085 SOUND_TRIGGER_CAPTURE = 23; 3086 SOUND_TRIGGER_TAP_CAPTURE = 24; 3087 HOTWORD_LOOKBACK_CAPTURE = 25; 3088 ECHO_REFERENCE_CAPTURE = 26; 3089 3090 // voice call use case 3091 VOICE_CALL_DOWNLINK = 27; 3092 VOICE_CALL_UPLINK = 28; 3093} 3094 3095/* Audio source with the original enum value. */ 3096enum AudioSource { 3097 DEFAULT = 0; 3098 MIC = 1; 3099 VOICE_UPLINK = 2; 3100 VOICE_DOWNLINK = 3; 3101 VOICE_CALL = 4; 3102 CAMCORDER = 5; 3103 VOICE_RECOGNITION = 6; 3104 VOICE_COMMUNICATION = 7; 3105 REMOTE_SUBMIX = 8; 3106 UNPROCESSED = 9; 3107 VOICE_PERFORMANCE = 10; 3108 ECHO_REFERENCE = 1997; 3109 FM_TUNER = 1998; 3110 HOTWORD = 1999; 3111 ULTRASOUND = 2000; 3112} 3113 3114enum AudioScreenFoldingState { 3115 UNKNOWN_FOLDING_STATE = 0; 3116 CLAMSHELL = 1; 3117 CLOSED = 2; 3118 OPEN = 3; 3119} 3120 3121/* 3122 * A message containing recording usage event. 3123 * Logged from: 3124 * vendor/google/whitechapel/audio/hal/aidl/audio/metric/suez_data_adapter/statsd_suez_data_adapter.cc 3125 * 3126 * Estimated Logging Rate: Any time during audio recording that screen_orientation / audio device / use case changes. 3127 * It will be aggregated in a count and value metric to keep the resource usage low. 3128 */ 3129message VendorAudioDspRecordUsageStatsReported { 3130 /* Vendor reverse domain name */ 3131 optional string reverse_domain_name = 1; 3132 3133 enum Type { 3134 UNKNOWN = 0; 3135 UC_AUDIO_RECORD = 1; 3136 UC_LOW_LATENCY_AUDIO_RECORD = 2; 3137 UC_MMAP_RECORD = 3; 3138 IN_HANDSET_MIC = 4; 3139 IN_HANDSET_DUAL_MIC = 5; 3140 IN_HANDSET_TRIPLE_MIC = 6; 3141 IN_CAMCORDER_LANDSCAPE = 7; 3142 IN_CAMCORDER_INVERT_LANDSCAPE = 8; 3143 IN_CAMCORDER_PORTRAIT = 9; 3144 IN_CAMCORDER_SELFIE_LANDSCAPE = 10; 3145 IN_CAMCORDER_SELFIE_INVERT_LANDSCAPE = 11; 3146 IN_CAMCORDER_SELFIE_PORTRAIT = 12; 3147 IN_CAMCORDER_MIC = 13; 3148 IN_CAMCORDER_TIRPLE_MIC = 14; 3149 CUSTOM_IN_PCM1 = 15; 3150 CUSTOM_IN_PCM2 = 16; 3151 CUSTOM_IN_PCM3 = 17; 3152 CUSTOM_IN_PCM4 = 18; 3153 CUSTOM_IN_PCM5 = 19; 3154 } 3155 3156 enum CameraType { 3157 UNKNOWN_CAMERA_TYPE = 0; 3158 FRONT_CAMERA = 1; 3159 BACK_CAMERA = 2; 3160 } 3161 3162 /* Type of Backend used in recording */ 3163 optional Type type = 2 [deprecated = true]; 3164 3165 /* Duration in second */ 3166 optional int32 duration_second = 3; 3167 3168 optional AudioSource audio_source = 4; 3169 3170 /* Device interface used */ 3171 optional AudioDeviceInterface audio_device_interface = 5; 3172 3173 /* Usecase used */ 3174 optional AudioUseCase vendor_audio_use_case = 6; 3175 3176 /* Camera Type */ 3177 optional CameraType camera_type = 7; 3178 3179 /* Screen orientation used. */ 3180 optional int32 screen_orientation = 8; 3181 3182 /* True if this atom represent the beginning of recording. If usecase/interfaces/orientation 3183 * changes mid-recording, new atom will be uploaded but this value will be false. 3184 */ 3185 optional bool is_beginning_of_recording = 9; 3186 3187 /* Folding state of the phone */ 3188 optional AudioScreenFoldingState audio_screen_folding_state = 10; 3189 3190 /* Device screen is on or off */ 3191 optional bool is_screen_on = 11; 3192}; 3193 3194/* 3195 * Logs the audio media playback usage stats. 3196 * Logged from: 3197 * vendor/google/whitechapel/audio/hal/aidl/audio/metric/suez_data_adapter/statsd_suez_data_adapter.cc 3198 * 3199 * Estimated Logging Rate: Any time during audia media playback that screen_orientation / audio device / use case changes. 3200 * It will be aggregated in a count and value metric to keep the resource usage low. 3201 */ 3202message MediaPlaybackUsageStatsReported { 3203 /* Vendor reverse domain name */ 3204 optional string reverse_domain_name = 1; 3205 3206 /* Device interface used */ 3207 optional AudioDeviceInterface interface = 2; 3208 3209 /* AudioSource used */ 3210 optional AudioSource audio_source = 3; 3211 3212 /* Usecase used */ 3213 optional AudioUseCase audio_use_case = 4; 3214 3215 /* Screen orientation used. */ 3216 optional int32 screen_orientation = 5; 3217 3218 /* True if this atom represent the end of playback. If usecase/interfaces/orientation 3219 * changes mid-playback, new atom will be uploaded but this value will be false. 3220 */ 3221 optional bool is_end_of_playback = 6; 3222 3223 /* Duration in second */ 3224 optional int32 duration_second = 7; 3225 3226 /* Folding state of the phone */ 3227 optional AudioScreenFoldingState audio_screen_folding_state = 8; 3228 3229 /* Device screen is on or off */ 3230 optional bool is_screen_on = 9; 3231 3232 /* Volume of the playback */ 3233 optional float volume = 10; 3234 3235 /* Average power in milliwatts. -1 if unavailable. */ 3236 optional float average_power = 11; 3237 3238 /* Sample rate used in the media playback. */ 3239 optional int32 sample_rate = 12; 3240 3241 /* Sample rate used in the media playback. */ 3242 optional int32 channel_count = 13; 3243 3244 /* Sample rate used in the media playback. */ 3245 optional int32 audio_format_type = 14; 3246 3247 /* Sample rate used in the media playback. */ 3248 optional int32 pcm_type = 15; 3249 3250 enum OffloadEncoding { 3251 UNKNOWN_ENCODING = 0; 3252 NO_ENCODING = 1; 3253 PCM_UINT_8_BIT = 2; 3254 PCM_INT_16_BIT = 3; 3255 PCM_INT_24_BIT = 4; 3256 PCM_FIXED_Q_8_24 = 5; 3257 PCM_INT_32_BIT = 6; 3258 PCM_FLOAT_32_BIT = 7; 3259 MP3 = 8; 3260 AAC = 9; 3261 AAC_LC = 10; 3262 AAC_HE_V1 = 11; 3263 AAC_HE_V2 = 12; 3264 OPUS = 13; 3265 } 3266 3267 /* Offload Encoding used in the media playback. */ 3268 optional OffloadEncoding offload_encoding = 16; 3269} 3270 3271/* 3272 * Logs the call usage information stats. 3273 * Logged from: 3274 * vendor/google/whitechapel/audio/hal/aidl/audio/metric/suez_data_adapter/statsd_suez_data_adapter.cc 3275 * 3276 * Estimated Logging Rate: Every 24 hours round to nearest 5 minutes 3277 */ 3278message CallUsageStatsReported { 3279 /* Vendor reverse domain name */ 3280 optional string reverse_domain_name = 1; 3281 3282 /* Device interface used */ 3283 optional AudioDeviceInterface downlink_interface = 2; 3284 3285 /* AudioSource used */ 3286 optional AudioSource downlink_audio_source = 3; 3287 3288 /* Usecase used */ 3289 optional AudioUseCase downlink_audio_use_case = 4; 3290 3291 /* Device interface used */ 3292 optional AudioDeviceInterface uplink_interface = 5; 3293 3294 /* AudioSource used */ 3295 optional AudioSource uplink_audio_source = 6; 3296 3297 /* Usecase used */ 3298 optional AudioUseCase uplink_audio_use_case = 7; 3299 3300 /* Number of call in the past 24 hours */ 3301 optional int32 call_count = 8; 3302 3303 /* Duration in second (value is round to 5 minutes) */ 3304 optional int32 duration_second = 9; 3305 3306 /* Current volume for the downlink playback */ 3307 optional float volume = 10; 3308 3309 /* Average power in milliwatts. -1 if unavailable. */ 3310 optional float average_power = 11; 3311 3312 /* background noise level from 1 (lowest) to 12 (highest). */ 3313 optional float noise_level = 12 [deprecated = true]; 3314 3315 // durations list of size 12 representing percentage 3316 // of duration of each background noise level 3317 // from -1 (lowest) to 12 (highest). 3318 repeated float noise_level_percentages = 13; 3319} 3320 3321/* 3322 * A message containing USB audio connection error event. 3323 * Logged from: 3324 * vendor/google/whitechapel/audio/hal/aidl/audio/metric/suez_data_adapter/statsd_suez_data_adapter.cc 3325 * 3326 * Estimated Logging Rate: Very low, around once a month per user. 3327 */ 3328message VendorAudioUsbConnectionState { 3329 /* Vendor reverse domain name */ 3330 optional string reverse_domain_name = 1; 3331 3332 enum ConnectionState { 3333 UNKNOWN_CONNECTION_STATE = 0; 3334 FAILED_TO_READ_CARD_ID_PCM_ID = 1; 3335 FAILED_TO_READ_USB_ID = 2; 3336 FAILED_TO_READ_BUS_ID_DEVICE_ID = 3; 3337 FAILED_TO_ADD_NEW_DEVICE = 4; 3338 FAILED_TO_PARSE_USB_CAPABILITY = 5; 3339 FAILED_TO_PARSE_USB_CAPABILITY_IS_EMPTY = 6; 3340 FAILED_TO_ADD_NEW_DEVICE_CAPABILITY = 7; 3341 FAILED_TO_ADD_ALREADY_CONNECTED_PORT_ID = 8; 3342 CONNECTION_SUCCESS = 9; 3343 } 3344 3345 enum DisconnectionState { 3346 UNKNOWN_DISCONNECTION_STATE = 0; 3347 FAILED_PORT_ID_NOT_CONNECTED = 1; 3348 DISCONNECTION_SUCCESS = 2; 3349 } 3350 3351 /* Connection State. UNKNOWN_CONNECTION_STATE in disconnection event. */ 3352 optional ConnectionState connection_error = 2; 3353 3354 /* Disconnection State. UNKNOWN_DISCONNECTION_STATE in connection event. */ 3355 optional DisconnectionState disconnection_error = 3; 3356}; 3357 3358/* 3359 * Logs the Audio Speaker Power information stats. 3360 * Logged from: 3361 * vendor/google/whitechapel/audio/hal/aidl/audio/metric/suez_data_adapter/statsd_suez_data_adapter.cc 3362 * 3363 * Estimated Logging Rate: Once per audio playback through speaker. 3364 */ 3365message VendorAudioSpeakerPowerStatsReported { 3366 /* Vendor reverse domain name */ 3367 optional string reverse_domain_name = 1; 3368 /* The average power of the speaker. i-th value represent i-th speaker. There are at most 4 speakers. */ 3369 repeated float average_power = 2; 3370 /* Duration in second that speaker is using the average power. i-th value represent i-th speaker. There are at most 4 speakers. */ 3371 repeated int32 duration_second = 3; 3372} 3373 3374/* 3375 * A message containing how many sectors read from 3376 * the dm verity protected partitions 3377 */ 3378message DmVerityPartitionReadAmountReported { 3379 enum DmPartition { 3380 SYSTEM = 0; 3381 SYSTEM_EXT = 1; 3382 PRODUCT = 2; 3383 VENDOR = 3; 3384 ODM = 4; 3385 UNKNOWN = 5; 3386 } 3387 /* Vendor reverse domain name */ 3388 optional string reverse_domain_name = 1; 3389 /* Identifies the dm-verity protected partition accessed. */ 3390 optional DmPartition dm_partition = 2; 3391 /* Number of sectors read from the dm-verity protected partition. */ 3392 optional int64 read_sectors = 3; 3393} 3394 3395/* 3396 * Event showing the state of the sensor when a Water Intrusion Event occurs 3397 */ 3398message WaterEventReported { 3399 enum FuseState { 3400 FUSE_STATE_UNKNOWN = 0; 3401 INTACT = 1; /* fuse has not blown */ 3402 BLOWN = 2; /* fuse has blown */ 3403 } 3404 enum EventPoint { 3405 EVENT_POINT_UNKNOWN = 0; 3406 BOOT = 1; 3407 IRQ = 2; 3408 } 3409 enum SensorState { 3410 SENSOR_STATE_UNKNOWN = 0; 3411 WET = 1; 3412 DRY = 2; 3413 INVALID = 3; 3414 DISABLED = 4; 3415 } 3416 3417 enum CircuitState { 3418 CIRCUIT_ENABLED_UNKNOWN = 0; 3419 CIRCUIT_ENABLED = 1; 3420 CIRCUIT_DISABLED = 2; 3421 } 3422 /* Vendor reverse domain name */ 3423 optional string reverse_domain_name = 1; 3424 /* 3425 * Event details 3426 */ 3427 /* The lifecycle point at which event was collected */ 3428 optional EventPoint collection_event = 13; 3429 3430 /* state of the intrusion detection fuse */ 3431 optional FuseState fuse_state = 2; 3432 /* Was the fuse enabled */ 3433 optional CircuitState fuse_enabled = 3; 3434 3435 /* The state of the reference sensor. */ 3436 optional SensorState reference_state = 4; 3437 /* The threshold of the reference in mV. */ 3438 optional int32 reference_threshold_mv = 8 [deprecated = true]; 3439 3440 /* The state of sensor 0. */ 3441 optional SensorState sensor0_state = 5; 3442 /* The threshold of sensor 0 in mV. */ 3443 repeated int32 sensor0_threshold_mv = 9 [packed = true, deprecated = true]; 3444 3445 /* The state of sensor 1. */ 3446 optional SensorState sensor1_state = 6; 3447 /* The threshold of sensor1 in mv. */ 3448 repeated int32 sensor1_threshold_mv = 10 [packed = true, deprecated = true]; 3449 3450 /* The state of sensor 2. */ 3451 optional SensorState sensor2_state = 7; 3452 /* The threshold of the sensor 2 in mv. */ 3453 repeated int32 sensor2_threshold_mv = 11 [packed = true, deprecated = true]; 3454 3455 /* Was system fault enabled */ 3456 optional CircuitState fault_enabled = 12; 3457} 3458 3459/** 3460 * A message containing battery related firmware update stats 3461 * Logged from: 3462 * hardware/google/pixel/pixelstats/BatteryFwUpdateReporter.cpp 3463 */ 3464message BatteryFirmwareUpdateReported { 3465 /* Vendor reverse domain name */ 3466 optional string reverse_domain_name = 1; 3467 optional int32 msg_type = 2; 3468 optional int32 msg_category = 3; 3469 /* current firmware version */ 3470 optional int32 major_version_from = 4; 3471 optional int32 minor_version_from = 5; 3472 /* target firmware version */ 3473 optional int32 major_version_to = 6; 3474 optional int32 minor_version_to = 7; 3475 optional int32 update_status = 8; 3476 optional int32 attempts = 9; 3477 optional int32 unix_time_sec = 10; 3478 /* additional firmware data */ 3479 optional int32 fw_data0 = 11; 3480 optional int32 fw_data1 = 12; 3481 optional int32 fw_data2 = 13; 3482 optional int32 fw_data3 = 14; 3483} 3484 3485 3486/* 3487 * A message containing a list of 30 elements representing the battery history 3488 * of milliwatts, and milliwatt durations which can be used to analyze battery 3489 * behavior over time. The elements are ordered from oldest to newest. 3490 * The history window is not measured in days but rather fluctuates between 3491 * 100s of milliseconds and a few minutes based on the device's power state. 3492 */ 3493message PowerFifoDump { 3494 /* Vendor reverse domain name */ 3495 optional string reverse_domain_name = 1; 3496 /* The estimated milliwatts.*/ 3497 repeated int32 milliwatts = 2; 3498 /* The estimated duration in milliseconds. */ 3499 repeated int32 duration_ms = 3; 3500 /* The elapsed time in milliseconds, from when the final sample was taken. */ 3501 required int64 elapsed_time_ms = 4; 3502} 3503 3504/* 3505 * A message containing a TTFF, aiding data and related satellite information. 3506 * Logged from: 3507 * vendor/google/gnss/aidl_service/GnssAtomsReporter.cpp 3508 * 3509 * Estimated Logging Rate: 3510 * Any time that user turn on location function (only first location calculated). 3511 * Peak: 1 times in 3 min | Avg: 48 times per device per day 3512 */ 3513message GnssTtffReported { 3514 enum TtffType { 3515 TTFF_UNKNOWN = 0; 3516 TTFF_COLD = 1; 3517 TTFF_WARM = 2; 3518 TTFF_HOT = 3; 3519 } 3520 /* Vendor reverse domain name */ 3521 optional string reverse_domain_name = 1; 3522 /* The start type at which each TTFF event was collected. */ 3523 optional TtffType ttff_type = 2; 3524 /* Time To First Fix in milliseconds. */ 3525 optional int32 ttff_milliseconds = 3; 3526 /* Estimated position accuracy (meters). */ 3527 optional int32 ttff_horizontal_position_accuracy = 4; 3528 /* The number of satellites used. */ 3529 optional int32 ttff_used_in_fix_sv_count = 5; 3530 /* The L1 satellite constellations in view. */ 3531 repeated int32 ttff_l1_constellation_list = 6; 3532 /* The L1 satellite PRNs in view. */ 3533 repeated int32 ttff_l1_prn_list = 7; 3534 /* The L1 CN0 for each satellite. */ 3535 repeated int32 ttff_l1_cn0_list = 8; 3536 /* The L5 satellite constellations in view. */ 3537 repeated int32 ttff_l5_constellation_list = 9; 3538 /* The L5 PRN satellite in view. */ 3539 repeated int32 ttff_l5_prn_list = 10; 3540 /* The L5 CN0 for each satelltie. */ 3541 repeated int32 ttff_l5_cn0_list = 11; 3542 /* 3543 * Aiding data provided by framework. 3544 * Time elapsed since a location request was initiated. 3545 * Zero indicates no request/inject was made. 3546 */ 3547 optional int32 reference_location_request_milliseconds = 12; 3548 optional int32 reference_location_inject_milliseconds = 13; 3549 optional int32 reference_time_request_milliseconds = 14; 3550 optional int32 reference_time_inject_milliseconds = 15; 3551 optional int32 supl_aiding_request_milliseconds = 16; 3552 optional int32 supl_aiding_inject_milliseconds = 17; 3553 optional int32 vendor_aiding_request_milliseconds = 18; 3554 optional int32 vendor_aiding_inject_milliseconds = 19; 3555 /* The aiding data without precise timestamp */ 3556 optional bool reference_frequency_used = 20; 3557 optional bool almanac_used = 21; 3558 optional bool ephemeris_used = 22; 3559} 3560