blob: e4e18dea1c80778d0222fcfb768fa69563be81e9 [file] [log] [blame]
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -07001/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17syntax = "proto2";
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070018
Yao Chend54f9dd2017-10-17 17:37:48 +000019// TODO: Not the right package and class name
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070020package android.os.statsd;
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070021option java_package = "com.android.os";
22option java_outer_classname = "StatsEventProto";
23
Yao Chend54f9dd2017-10-17 17:37:48 +000024/**
25 * The master event class. This message defines all of the available
26 * raw stats log events from the Android system, also known as "atoms."
27 *
28 * This field contains a single oneof with all of the available messages.
29 * The stats-log-api-gen tool runs as part of the Android build and
30 * generates the android.util.StatsLog class, which contains the constants
31 * and methods that Android uses to log.
32 *
33 * This StatsEvent class is not actually built into the Android system.
34 * Instead, statsd on Android constructs these messages synthetically,
35 * in the format defined here and in stats_log.proto.
36 */
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070037message StatsEvent {
Yao Chend54f9dd2017-10-17 17:37:48 +000038 oneof event {
Bookatzc1a050a2017-10-10 15:49:28 -070039 // For StatsLog reasons, 1 is illegal and will not work. Must start at 2.
40 BleScanStateChanged ble_scan_state_changed = 2;
41 BleUnoptimizedScanStateChanged ble_unoptimized_scan_state_changed = 3;
42 BleScanResultReceived ble_scan_result_received = 4;
43 SensorStateChanged sensor_state_changed = 5;
44 GpsScanStateChanged gps_scan_state_changed = 6; // TODO: untested
45 SyncStateChanged sync_state_changed = 7;
46 ScheduledJobStateChanged scheduled_job_state_changed = 8;
47 ScreenBrightnessChanged screen_brightness_changed = 9;
48 // 10-20 are temporarily reserved for wakelocks etc.
Bookatzd6746242017-10-24 18:39:35 -070049 WakelockStateChanged wakelock_state_changed = 10;
Bookatzc1a050a2017-10-10 15:49:28 -070050 UidWakelockStateChanged uid_wakelock_state_changed = 11;
51 LongPartialWakelockStateChanged long_partial_wakelock_state_changed = 12;
52 BatterySaverModeStateChanged battery_saver_mode_state_changed = 21;
53 DeviceIdleModeStateChanged device_idle_mode_state_changed = 22;
54 AudioStateChanged audio_state_changed = 23;
55 MediaCodecActivityChanged media_codec_activity_changed = 24;
56 CameraStateChanged camera_state_changed = 25;
57 FlashlightStateChanged flashlight_state_changed = 26;
58 UidProcessStateChanged uid_process_state_changed = 27;
59 ProcessLifeCycleStateChanged process_life_cycle_state_changed = 28;
60 ScreenStateChanged screen_state_changed = 29;
Bookatz8c6571b2017-10-24 15:04:41 -070061 BatteryLevelChanged battery_level_changed = 30;
62 ChargingStateChanged charging_state_changed = 31;
63 PluggedStateChanged plugged_state_changed = 32;
64 DeviceTemperatureReported device_temperature_reported = 33;
65 DeviceOnStatusChanged device_on_status_changed = 34;
66 WakeupAlarmOccurred wakeup_alarm_occurred = 35;
67 KernelWakeupReported kernel_wakeup_reported = 36;
Bookatze5885242017-10-24 20:10:31 -070068 WifiLockStateChanged wifi_lock_state_changed = 37;
69 WifiSignalStrengthChanged wifi_signal_strength_changed = 38;
70 WifiScanStateChanged wifi_scan_state_changed = 39;
71 PhoneSignalStrengthChanged phone_signal_strength_changed = 40;
David Chenc28b2bb2017-10-24 12:52:52 -070072 SettingChanged setting_changed = 41;
Chenjie Yub3dda412017-10-24 13:41:59 -070073 KernelWakelockPulled kernel_wakelock_pulled = 42;
Chenjie Yu3d4f6042017-10-27 15:39:34 -070074 ActivityForegroundStateChanged activity_foreground_state_changed = 43;
Bookatzc1a050a2017-10-10 15:49:28 -070075 // TODO: Reorder the numbering so that the most frequent occur events occur in the first 15.
Yao Chend54f9dd2017-10-17 17:37:48 +000076 }
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070077}
78
Yao Chend54f9dd2017-10-17 17:37:48 +000079/**
80 * A WorkSource represents the chained attribution of applications that
81 * resulted in a particular bit of work being done.
82 */
83message WorkSource {
84 // TODO
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070085}
86
Yao Chend54f9dd2017-10-17 17:37:48 +000087/*
88 * *****************************************************************************
89 * Below are all of the individual atoms that are logged by Android via statsd
90 * and Westworld.
91 *
92 * RULES:
93 * - The field ids for each atom must start at 1, and count upwards by 1.
94 * Skipping field ids is not allowed.
95 * - These form an API, so renaming, renumbering or removing fields is
96 * not allowed between android releases. (This is not currently enforced,
97 * but there will be a tool to enforce this restriction).
98 * - The types must be built-in protocol buffer types, namely, no sub-messages
99 * are allowed (yet). The bytes type is also not allowed.
100 * - The CamelCase name of the message type should match the
101 * underscore_separated name as defined in StatsEvent.
102 * - If an atom represents work that can be attributed to an app, there can
103 * be exactly one WorkSource field. It must be field number 1.
104 * - A field that is a uid should be a string field, tagged with the [xxx]
105 * annotation. The generated code on android will be represented by UIDs,
106 * and those UIDs will be translated in xxx to those strings.
107 *
108 * CONVENTIONS:
Bookatzc1a050a2017-10-10 15:49:28 -0700109 * - Events are past tense. e.g. ScreenStateChanged, not ScreenStateChange.
Yao Chend54f9dd2017-10-17 17:37:48 +0000110 * - If there is a UID, it goes first. Think in an object-oriented fashion.
111 * *****************************************************************************
112 */
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -0700113
Yao Chend54f9dd2017-10-17 17:37:48 +0000114/**
115 * Logs when the screen state changes.
116 *
117 * Logged from:
118 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
119 */
120message ScreenStateChanged {
121 // TODO: Use the real screen state.
122 enum State {
123 STATE_UNKNOWN = 0;
124 STATE_OFF = 1;
125 STATE_ON = 2;
126 STATE_DOZE = 3;
127 STATE_DOZE_SUSPEND = 4;
128 STATE_VR = 5;
129 }
130 // New screen state.
131 optional State display_state = 1;
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -0700132}
Yao Chend54f9dd2017-10-17 17:37:48 +0000133
134/**
Bookatzc1a050a2017-10-10 15:49:28 -0700135 * Logs that the state of a process state, as per the activity manager, has changed.
Yao Chend54f9dd2017-10-17 17:37:48 +0000136 *
137 * Logged from:
138 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
139 */
Bookatzc1a050a2017-10-10 15:49:28 -0700140message UidProcessStateChanged {
Yao Chend54f9dd2017-10-17 17:37:48 +0000141 optional int32 uid = 1; // TODO: should be a string tagged w/ uid annotation
142
143 // The state.
Bookatzc1a050a2017-10-10 15:49:28 -0700144 // TODO: Use the real (mapped) process states.
Yao Chend54f9dd2017-10-17 17:37:48 +0000145 optional int32 state = 2;
146}
147
148/**
Bookatzc1a050a2017-10-10 15:49:28 -0700149 * Logs that a process started, finished, crashed, or ANRed.
150 *
151 * Logged from:
152 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
153 */
154message ProcessLifeCycleStateChanged {
155 // TODO: Use the real (mapped) process states.
156 optional int32 uid = 1; // TODO: should be a string tagged w/ uid annotation
157
158 // TODO: What is this?
159 optional string name = 2;
160
161 // The state.
162 // TODO: Use an enum.
163 optional int32 event = 3;
164}
165
166
167
168/**
169 * Logs when the ble scan state changes.
170 *
171 * Logged from:
172 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
173 */
174message BleScanStateChanged {
175 // TODO: Add attribution instead of uid.
176 optional int32 uid = 1;
177
178 enum State {
179 OFF = 0;
180 ON = 1;
181 }
182 optional State state = 2;
183}
184
185/**
186 * Logs when an unoptimized ble scan state changes.
187 *
188 * Logged from:
189 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
190 */
191// TODO: Consider changing to tracking per-scanner-id (log from AppScanStats).
192message BleUnoptimizedScanStateChanged {
193 // TODO: Add attribution instead of uid.
194 optional int32 uid = 1;
195
196 enum State {
197 OFF = 0;
198 ON = 1;
199 }
200 optional State state = 2;
201}
202
203/**
204 * Logs reporting of a ble scan finding results.
205 *
206 * Logged from:
207 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
208 */
209// TODO: Consider changing to tracking per-scanner-id (log from AppScanStats).
210message BleScanResultReceived {
211 // TODO: Add attribution instead of uid.
212 optional int32 uid = 1;
213
214 // Number of ble scan results returned.
215 optional int32 num_of_results = 2;
216}
217
218/**
219 * Logs when a sensor state changes.
220 *
221 * Logged from:
222 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
223 */
224message SensorStateChanged {
225 // TODO: Add attribution instead of uid.
226 optional int32 uid = 1;
227
228 // TODO: Is there a way to get the actual name of the sensor?
229 // The id (int) of the sensor.
230 optional int32 sensor_id = 2;
231
232 enum State {
233 OFF = 0;
234 ON = 1;
235 }
236 optional State state = 3;
237}
238
239
240/**
241 * Logs when GPS state changes.
242 *
243 * Logged from:
244 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
245 */
246message GpsScanStateChanged {
247 // TODO: Add attribution instead of uid.
248 optional int32 uid = 1;
249
250 enum State {
251 OFF = 0;
252 ON = 1;
253 }
254 optional State state = 2;
255}
256
257
258/**
259 * Logs when a sync manager sync state changes.
260 *
261 * Logged from:
262 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
263 */
264message SyncStateChanged {
265 // TODO: Add attribution instead of uid.
266 optional int32 uid = 1;
267
268 // Name of the sync (as named in the app)
269 optional string name = 2;
270
271 enum State {
272 OFF = 0;
273 ON = 1;
274 }
275 optional State state = 3;
276}
277
278/**
279 * Logs when a job scheduler job state changes.
280 *
281 * Logged from:
282 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
283 */
284message ScheduledJobStateChanged {
285 // TODO: Add attribution instead of uid.
286 optional int32 uid = 1;
287
288 // Name of the job (as named in the app)
289 optional string name = 2;
290
291 enum State {
292 OFF = 0;
293 ON = 1;
294 }
295 optional State state = 3;
296
297 // TODO: Consider adding the stopReason (int)
298}
299
300/**
301 * Logs when the audio state changes.
302 *
303 * Logged from:
304 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
305 */
306message AudioStateChanged {
307 // TODO: Add attribution instead of uid.
308 optional int32 uid = 1;
309
310 enum State {
311 OFF = 0;
312 ON = 1;
313 }
314 optional State state = 2;
315}
316
317/**
318 * Logs when the video codec state changes.
319 *
320 * Logged from:
321 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
322 */
323message MediaCodecActivityChanged {
324 // TODO: Add attribution instead of uid.
325 optional int32 uid = 1;
326
327 enum State {
328 OFF = 0;
329 ON = 1;
330 }
331 optional State state = 2;
332}
333
334/**
335 * Logs when the flashlight state changes.
336 *
337 * Logged from:
338 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
339 */
340message FlashlightStateChanged {
341 // TODO: Add attribution instead of uid.
342 optional int32 uid = 1;
343
344 enum State {
345 OFF = 0;
346 ON = 1;
347 }
348 optional State state = 2;
349}
350
351/**
352 * Logs when the camera state changes.
353 *
354 * Logged from:
355 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
356 */
357message CameraStateChanged {
358 // TODO: Add attribution instead of uid.
359 optional int32 uid = 1;
360
361 enum State {
362 OFF = 0;
363 ON = 1;
364 }
365 optional State state = 2;
366}
367
368/**
369 * Logs that the state of a wakelock (per app and per wakelock name) has changed.
Yao Chend54f9dd2017-10-17 17:37:48 +0000370 *
371 * Logged from:
372 * TODO
373 */
Bookatzd6746242017-10-24 18:39:35 -0700374message WakelockStateChanged {
Yao Chend54f9dd2017-10-17 17:37:48 +0000375 // TODO: Add attribution instead of uid.
376 optional int32 uid = 1;
377
Bookatzc1a050a2017-10-10 15:49:28 -0700378 // Type of wakelock.
379 enum Type {
380 PARTIAL = 0;
381 FULL = 1;
382 WINDOW = 2;
383 }
384 optional int32 type = 2;
385
386 // The wakelock tag (Called tag in the Java API, sometimes name elsewhere).
387 optional string tag = 3;
388
389 enum State {
390 OFF = 0;
391 ON = 1;
392 }
393 optional State state = 4;
394}
395
396/**
397 * Logs when an app is holding a wakelock, regardless of the wakelock's name.
398 *
399 * Logged from:
400 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
401 */
402message UidWakelockStateChanged {
403 // TODO: Add attribution instead of uid.
404 optional int32 uid = 1;
405
406 // Type of wakelock.
407 enum Type {
408 PARTIAL = 0;
409 FULL = 1;
410 WINDOW = 2;
411 }
412 optional int32 type = 2;
413
414 enum State {
415 OFF = 0;
416 ON = 1;
417 }
418 optional State state = 3;
419}
420
421/**
422 * Logs when a partial wakelock is considered 'long' (over 1 min).
423 *
424 * Logged from:
425 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
426 */
427message LongPartialWakelockStateChanged {
428 // TODO: Add attribution instead of uid?
429 optional int32 uid = 1;
430
Yao Chend54f9dd2017-10-17 17:37:48 +0000431 // The wakelock tag (Called tag in the Java API, sometimes name elsewhere).
432 optional string tag = 2;
433
Bookatzc1a050a2017-10-10 15:49:28 -0700434 // TODO: I have no idea what this is.
435 optional string history_tag = 3;
436
437 enum State {
438 OFF = 0;
439 ON = 1;
440 }
441 optional State state = 4;
Yao Chend54f9dd2017-10-17 17:37:48 +0000442}
443
Bookatzc1a050a2017-10-10 15:49:28 -0700444/**
445 * Logs Battery Saver state change.
446 *
447 * Logged from:
448 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
449 */
450message BatterySaverModeStateChanged {
451 enum State {
452 OFF = 0;
453 ON = 1;
454 }
455 optional State state = 1;
456}
457
458/**
459 * Logs Doze mode state change.
460 *
461 * Logged from:
462 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
463 */
464message DeviceIdleModeStateChanged {
465 // TODO: Use the enum matching BatteryStats.DEVICE_IDLE_MODE_.
466 optional int32 state = 1;
467}
468
469/**
470 * Logs screen brightness level.
471 *
472 * Logged from:
473 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
474 */
475message ScreenBrightnessChanged {
476 // Screen brightness level. Should be in [-1, 255] according to PowerManager.java.
477 optional int32 level = 1;
Bookatz8c6571b2017-10-24 15:04:41 -0700478}
479
480/**
481 * Logs battery level (percent full, from 0 to 100).
482 *
483 * Logged from:
David Chenc28b2bb2017-10-24 12:52:52 -0700484 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
Bookatz8c6571b2017-10-24 15:04:41 -0700485 */
486message BatteryLevelChanged {
487 // Battery level. Should be in [0, 100].
488 optional int32 battery_level = 1;
489}
490
491/**
492 * Logs change in charging status of the device.
493 *
494 * Logged from:
David Chenc28b2bb2017-10-24 12:52:52 -0700495 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
Bookatz8c6571b2017-10-24 15:04:41 -0700496 */
497message ChargingStateChanged {
498 // TODO: Link directly to BatteryManager.java's constants (via a proto).
499 enum State {
500 BATTERY_STATUS_UNKNOWN = 1;
501 BATTERY_STATUS_CHARGING = 2;
502 BATTERY_STATUS_DISCHARGING = 3;
503 BATTERY_STATUS_NOT_CHARGING = 4;
504 BATTERY_STATUS_FULL = 5;
505 }
506 optional State charging_state = 1;
507}
508
509/**
510 * Logs whether the device is plugged in, and what power source it is using.
511 *
512 * Logged from:
David Chenc28b2bb2017-10-24 12:52:52 -0700513 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
Bookatz8c6571b2017-10-24 15:04:41 -0700514 */
515message PluggedStateChanged {
516 // TODO: Link directly to BatteryManager.java's constants (via a proto).
517 enum State {
518 // Note that NONE is not in BatteryManager.java's constants.
519 BATTERY_PLUGGED_NONE = 0;
520 // Power source is an AC charger.
521 BATTERY_PLUGGED_AC = 1;
522 // Power source is a USB port.
523 BATTERY_PLUGGED_USB = 2;
524 // Power source is wireless.
525 BATTERY_PLUGGED_WIRELESS = 4;
526 }
527 optional State plugged_state = 1;
528}
529
530/**
531 * Logs the temperature of the device, in tenths of a degree Celsius.
532 *
533 * Logged from:
David Chenc28b2bb2017-10-24 12:52:52 -0700534 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
Bookatz8c6571b2017-10-24 15:04:41 -0700535 */
536message DeviceTemperatureReported {
537 // Temperature in tenths of a degree C.
538 optional int32 temperature = 1;
539}
540
541// TODO: Define this more precisely.
542// TODO: Log the ON state somewhere. It isn't currently logged anywhere.
543/**
544 * Logs when the device turns off or on.
545 *
546 * Logged from:
David Chenc28b2bb2017-10-24 12:52:52 -0700547 * frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java
Bookatz8c6571b2017-10-24 15:04:41 -0700548 */
549message DeviceOnStatusChanged {
550 enum State {
551 OFF = 0;
552 ON = 1;
553 }
554 optional State state = 1;
555}
556
557/**
558 * Logs when an app's wakeup alarm fires.
559 *
560 * Logged from:
David Chenc28b2bb2017-10-24 12:52:52 -0700561 * frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java
Bookatz8c6571b2017-10-24 15:04:41 -0700562 */
563message WakeupAlarmOccurred {
564 // TODO: Add attribution instead of uid?
565 optional int32 uid = 1;
566}
567
568/**
569 * Logs kernel wakeup reasons and aborts.
570 *
571 * Logged from:
572 * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
573 */
574message KernelWakeupReported {
575 // Name of the kernel wakeup reason (or abort).
576 optional string wakeup_reason_name = 1;
577
578 // Duration (in microseconds) for the wake-up interrupt to be serviced.
579 optional int64 duration_usec = 2;
Bookatze5885242017-10-24 20:10:31 -0700580}
581
582/**
583 * Logs wifi locks held by an app.
584 *
585 * Logged from:
David Chenc28b2bb2017-10-24 12:52:52 -0700586 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
Bookatze5885242017-10-24 20:10:31 -0700587 */
588message WifiLockStateChanged {
589 // TODO: Add attribution instead of uid.
590 optional int32 uid = 1;
591
592 enum State {
593 OFF = 0;
594 ON = 1;
595 }
596 optional State state = 2;
597}
598
599/**
600 * Logs wifi signal strength changes.
601 *
602 * Logged from:
David Chenc28b2bb2017-10-24 12:52:52 -0700603 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
Bookatze5885242017-10-24 20:10:31 -0700604 */
605message WifiSignalStrengthChanged {
606 // TODO: Reference the actual telephony/java/android/telephony/SignalStrength.java states.
607 enum SignalStrength {
608 SIGNAL_STRENGTH_NONE_OR_UNKNOWN = 0;
609 SIGNAL_STRENGTH_POOR = 1;
610 SIGNAL_STRENGTH_MODERATE = 2;
611 SIGNAL_STRENGTH_GOOD = 3;
612 SIGNAL_STRENGTH_GREAT = 4;
613 }
614 optional SignalStrength signal_strength = 1;
615}
616
617/**
618 * Logs wifi scans performed by an app.
619 *
620 * Logged from:
David Chenc28b2bb2017-10-24 12:52:52 -0700621 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
Bookatze5885242017-10-24 20:10:31 -0700622 */
623message WifiScanStateChanged {
624 // TODO: Add attribution instead of uid.
625 optional int32 uid = 1;
626
627 enum State {
628 OFF = 0;
629 ON = 1;
630 }
631 optional State state = 2;
632}
633
634/**
635 * Logs phone signal strength changes.
636 *
637 * Logged from:
David Chenc28b2bb2017-10-24 12:52:52 -0700638 * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
Bookatze5885242017-10-24 20:10:31 -0700639 */
640message PhoneSignalStrengthChanged {
641 // TODO: Reference the actual telephony/java/android/telephony/SignalStrength.java states.
642 enum SignalStrength {
643 SIGNAL_STRENGTH_NONE_OR_UNKNOWN = 0;
644 SIGNAL_STRENGTH_POOR = 1;
645 SIGNAL_STRENGTH_MODERATE = 2;
646 SIGNAL_STRENGTH_GOOD = 3;
647 SIGNAL_STRENGTH_GREAT = 4;
648 }
649 optional SignalStrength signal_strength = 1;
David Chenc28b2bb2017-10-24 12:52:52 -0700650}
651
652/**
653 * Logs that a setting was updated.
654 * Logged from:
655 * frameworks/base/core/java/android/provider/Settings.java
656 * The tag and is_default allow resetting of settings to default values based on the specified
657 * tag. See Settings#putString(ContentResolver, String, String, String, boolean) for more details.
658 */
659message SettingChanged {
660 // The name of the setting.
661 optional string setting = 1;
662
663 // The change being imposed on this setting. May represent a number, eg "3".
664 optional string value = 2;
665
666 // The new value of this setting. For most settings, this is same as value. For some settings,
667 // value is +X or -X where X represents an element in a set. For example, if the previous value
668 // is A,B,C and value is -B, then new_value is A,C and prev_value is A,B,C.
669 // The +/- feature is currently only used for location_providers_allowed.
670 optional string new_value = 3;
671
672 // The previous value of this setting.
673 optional string prev_value = 4;
674
675 // The tag used with the is_default for resetting sets of settings. This is generally null.
676 optional string tag = 5;
677
678 // 1 indicates that this setting with tag should be resettable.
679 optional int32 is_default = 6;
680
681 // The user ID associated. Defined in android/os/UserHandle.java
682 optional int32 user = 7;
683}
Chenjie Yub3dda412017-10-24 13:41:59 -0700684
685/*
686 * Pulls kernel wakelock changes.
687 *
688 * Pulled from:
689 * frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java
690 */
691message KernelWakelockPulled {
692 optional int32 count = 1;
693 optional int32 version = 2;
694 optional int64 total_time = 3;
695 optional string name = 4;
696}
Chenjie Yu3d4f6042017-10-27 15:39:34 -0700697
698/*
699 * Logs activity going to foreground or background
700 *
701 * Logged from:
702 * frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java
703 */
704message ActivityForegroundStateChanged {
705 enum Activity {
706 MOVE_TO_BACKGROUND = 0;
707 MOVE_TO_FOREGROUND = 1;
708 }
709 optional int32 uid = 1;
710 optional string pkg_name = 2;
711 optional string class_name = 3;
712 optional Activity activity = 4;
713}