File: power.proto

package info (click to toggle)
android-platform-frameworks-base 1%3A8.1.0%2Br23-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 179,108 kB
  • sloc: java: 783,264; cpp: 234,851; xml: 204,638; python: 2,837; ansic: 366; sh: 274; makefile: 43; sed: 19
file content (408 lines) | stat: -rw-r--r-- 18,336 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
/*
 * Copyright (C) 2017 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

syntax = "proto3";

package android.service.power;

option java_multiple_files = true;
option java_outer_classname = "PowerServiceProto";

import "frameworks/base/core/proto/android/os/looper.proto";
import "frameworks/base/core/proto/android/os/worksource.proto";
import "frameworks/base/core/proto/android/service/wirelesschargerdetector.proto";

message PowerServiceDumpProto {
    message ConstantsProto {
        bool is_no_cached_wake_locks = 1;
    }
    message ActiveWakeLocksProto {
        bool is_cpu = 1;
        bool is_screen_bright = 2;
        bool is_screen_dim = 3;
        bool is_button_bright = 4;
        bool is_proximity_screen_off = 5;
        // only set if already awake
        bool is_stay_awake = 6;
        bool is_doze = 7;
        bool is_draw = 8;
    }
    message UserActivityProto {
        bool is_screen_bright = 1;
        bool is_screen_dim = 2;
        bool is_screen_dream = 3;
    }
    message UidProto {
        // Enum values gotten from ActivityManager.java
        enum ProcessState {
            // Process is a persistent system process.
            PROCESS_STATE_PERSISTENT = 0;
            // Process is a persistent system process and is doing UI.
            PROCESS_STATE_PERSISTENT_UI = 1;
            // Process is hosting the current top activities. Note that this
            // covers all activities that are visible to the user.
            PROCESS_STATE_TOP = 2;
            // Process is hosting a foreground service due to a system binding.
            PROCESS_STATE_BOUND_FOREGROUND_SERVICE = 3;
            // Process is hosting a foreground service.
            PROCESS_STATE_FOREGROUND_SERVICE = 4;
            // Same as {@link #PROCESS_STATE_TOP} but while device is sleeping.
            PROCESS_STATE_TOP_SLEEPING = 5;
            // Process is important to the user, and something they are aware of.
            PROCESS_STATE_IMPORTANT_FOREGROUND = 6;
            // Process is important to the user, but not something they are aware of.
            PROCESS_STATE_IMPORTANT_BACKGROUND = 7;
            // Process is in the background running a backup/restore operation.
            PROCESS_STATE_BACKUP = 8;
            // Process is in the background, but it can't restore its state so
            // we want to try to avoid killing it.
            PROCESS_STATE_HEAVY_WEIGHT = 9;
            // Process is in the background running a service.
            PROCESS_STATE_SERVICE = 10;
            // Process is in the background running a receiver.
            PROCESS_STATE_RECEIVER = 11;
            // Process is in the background but hosts the home activity.
            PROCESS_STATE_HOME = 12;
            // Process is in the background but hosts the last shown activity.
            PROCESS_STATE_LAST_ACTIVITY = 13;
            // Process is being cached for later use and contains activities.
            PROCESS_STATE_CACHED_ACTIVITY = 14;
            // Process is being cached for later use and is a client of another
            // cached process that contains activities.
            PROCESS_STATE_CACHED_ACTIVITY_CLIENT = 15;
            // Process is being cached for later use and is empty.
            PROCESS_STATE_CACHED_EMPTY = 16;
            // Process does not exist.
            PROCESS_STATE_NONEXISTENT = 17;
        }
        int32 uid = 1;
        string uid_string = 2;
        bool is_active = 3;
        int32 num_wake_locks = 4;
        bool is_process_state_unknown = 5;
        ProcessState process_state = 6;
    }

    // Enum values gotten from PowerManagerInternal.java
    enum Wakefulness {
        WAKEFULNESS_ASLEEP = 0;
        WAKEFULNESS_AWAKE = 1;
        WAKEFULNESS_DREAMING = 2;
        WAKEFULNESS_DOZING = 3;
        WAKEFULNESS_UNKNOWN = 4;
    }
    // Enum values gotten from BatteryManager.java
    enum PlugType {
        PLUG_TYPE_NONE = 0;
        PLUG_TYPE_PLUGGED_AC = 1;
        PLUG_TYPE_PLUGGED_USB = 2;
        PLUG_TYPE_PLUGGED_WIRELESS = 4;
    }
    // Enum values gotten from Intent.java
    enum DockState {
        DOCK_STATE_UNDOCKED = 0;
        DOCK_STATE_DESK = 1;
        DOCK_STATE_CAR = 2;
        DOCK_STATE_LE_DESK = 3;
        DOCK_STATE_HE_DESK = 4;
    }

    ConstantsProto constants = 1;
    // A bitfield that indicates what parts of the power state have
    // changed and need to be recalculated.
    int32 dirty = 2;
    // Indicates whether the device is awake or asleep or somewhere in between.
    Wakefulness wakefulness = 3;
    bool is_wakefulness_changing = 4;
    // True if the device is plugged into a power source.
    bool is_powered = 5;
    // The current plug type
    PlugType plug_type = 6;
    // The current battery level percentage.
    int32 battery_level = 7;
    // The battery level percentage at the time the dream started.
    int32 battery_level_when_dream_started = 8;
    // The current dock state.
    DockState dock_state = 9;
    // True if the device should stay on.
    bool is_stay_on = 10;
    // True if the proximity sensor reads a positive result.
    bool is_proximity_positive = 11;
    // True if boot completed occurred.  We keep the screen on until this happens.
    bool is_boot_completed = 12;
    // True if systemReady() has been called.
    bool is_system_ready = 13;
    // True if auto-suspend mode is enabled.
    bool is_hal_auto_suspend_mode_enabled = 14;
    // True if interactive mode is enabled.
    bool is_hal_auto_interactive_mode_enabled = 15;
    // Summarizes the state of all active wakelocks.
    ActiveWakeLocksProto active_wake_locks = 16;
    // Have we scheduled a message to check for long wake locks?  This is when
    // we will check. (In milliseconds timestamp)
    int64 notify_long_scheduled_ms = 17;
    // Last time we checked for long wake locks. (In milliseconds timestamp)
    int64 notify_long_dispatched_ms = 18;
    // The time we decided to do next long check. (In milliseconds timestamp)
    int64 notify_long_next_check_ms = 19;
    // Summarizes the effect of the user activity timer.
    UserActivityProto user_activity = 20;
    // If true, instructs the display controller to wait for the proximity
    // sensor to go negative before turning the screen on.
    bool is_request_wait_for_negative_proximity = 21;
    // True if MSG_SANDMAN has been scheduled.
    bool is_sandman_scheduled = 22;
    // True if the sandman has just been summoned for the first time since entering
    // the dreaming or dozing state.  Indicates whether a new dream should begin.
    bool is_sandman_summoned = 23;
    // If true, the device is in low power mode.
    bool is_low_power_mode_enabled = 24;
    // True if the battery level is currently considered low.
    bool is_battery_level_low = 25;
    // True if we are currently in light device idle mode.
    bool is_light_device_idle_mode = 26;
    // True if we are currently in device idle mode.
    bool is_device_idle_mode = 27;
    // Set of app ids that we will always respect the wake locks for.
    repeated int32 device_idle_whitelist = 28;
    // Set of app ids that are temporarily allowed to acquire wakelocks due to
    // high-pri message
    repeated int32 device_idle_temp_whitelist = 29;
    // Timestamp of the last time the device was awoken.
    int64 last_wake_time_ms = 30;
    // Timestamp of the last time the device was put to sleep.
    int64 last_sleep_time_ms = 31;
    // Timestamp of the last call to user activity.
    int64 last_user_activity_time_ms = 32;
    int64 last_user_activity_time_no_change_lights_ms = 33;
    // Timestamp of last interactive power hint.
    int64 last_interactive_power_hint_time_ms = 34;
    // Timestamp of the last screen brightness boost.
    int64 last_screen_brightness_boost_time_ms = 35;
    // True if screen brightness boost is in progress.
    bool is_screen_brightness_boost_in_progress = 36;
    // True if the display power state has been fully applied, which means the
    // display is actually on or actually off or whatever was requested.
    bool is_display_ready = 37;
    // True if the wake lock suspend blocker has been acquired.
    bool is_holding_wake_lock_suspend_blocker = 38;
    // The suspend blocker used to keep the CPU alive when the display is on, the
    // display is getting ready or there is user activity (in which case the
    // display must be on).
    bool is_holding_display_suspend_blocker = 39;
    // Settings and configuration
    PowerServiceSettingsAndConfigurationDumpProto settings_and_configuration = 40;
    // Sleep timeout in ms
    sint32 sleep_timeout_ms = 41;
    // Screen off timeout in ms
    int32 screen_off_timeout_ms = 42;
    // Screen dim duration in ms
    int32 screen_dim_duration_ms = 43;
    // We are currently in the middle of a batch change of uids.
    bool are_uids_changing = 44;
    // Some uids have actually changed while mUidsChanging was true.
    bool are_uids_changed = 45;
    // List of UIDs and their states
    repeated UidProto uids = 46;
    android.os.LooperProto looper = 47;
    // List of all wake locks acquired by applications.
    repeated WakeLockProto wake_locks = 48;
    // List of all suspend blockers.
    repeated SuspendBlockerProto suspend_blockers = 49;
    WirelessChargerDetectorProto wireless_charger_detector = 50;
}

message SuspendBlockerProto {
    string name = 1;
    int32 reference_count = 2;
}

message WakeLockProto {
    message WakeLockFlagsProto {
        // Turn the screen on when the wake lock is acquired.
        bool is_acquire_causes_wakeup = 1;
        // When this wake lock is released, poke the user activity timer
        // so the screen stays on for a little longer.
        bool is_on_after_release = 2;
    }

    // Enum values gotten from PowerManager.java
    enum LockLevel {
        WAKE_LOCK_INVALID = 0;
        // Ensures that the CPU is running.
        PARTIAL_WAKE_LOCK = 1;
        // Ensures that the screen is on (but may be dimmed).
        SCREEN_DIM_WAKE_LOCK = 6;
        // Ensures that the screen is on at full brightness.
        SCREEN_BRIGHT_WAKE_LOCK = 10;
        // Ensures that the screen and keyboard backlight are on at full brightness.
        FULL_WAKE_LOCK = 26;
        // Turns the screen off when the proximity sensor activates.
        PROXIMITY_SCREEN_OFF_WAKE_LOCK = 32;
        // Put the screen in a low power state and allow the CPU to suspend
        // if no other wake locks are held.
        DOZE_WAKE_LOCK = 64;
        // Keep the device awake enough to allow drawing to occur.
        DRAW_WAKE_LOCK = 128;
    }

    LockLevel lock_level = 1;
    string tag = 2;
    WakeLockFlagsProto flags = 3;
    bool is_disabled = 4;
    // Acquire time in ms
    int64 acq_ms = 5;
    bool is_notified_long = 6;
    // Owner UID
    int32 uid = 7;
    // Owner PID
    int32 pid = 8;
    android.os.WorkSourceProto work_source = 9;
}

message PowerServiceSettingsAndConfigurationDumpProto {
    message StayOnWhilePluggedInProto {
        bool is_stay_on_while_plugged_in_ac = 1;
        bool is_stay_on_while_plugged_in_usb = 2;
        bool is_stay_on_while_plugged_in_wireless = 3;
    }
    message ScreenBrightnessSettingLimitsProto {
        int32 setting_minimum = 1;
        int32 setting_maximum = 2;
        int32 setting_default = 3;
        int32 setting_for_vr_default = 4;
    }

    // Enum values gotten from Settings.java
    enum ScreenBrightnessMode {
        SCREEN_BRIGHTNESS_MODE_MANUAL = 0;
        SCREEN_BRIGHTNESS_MODE_AUTOMATIC = 1;
    }
    // Enum values gotten from Display.java
    enum DisplayState {
        DISPLAY_STATE_UNKNOWN = 0;
        DISPLAY_STATE_OFF = 1;
        DISPLAY_STATE_ON = 2;
        DISPLAY_STATE_DOZE = 3;
        DISPLAY_STATE_DOZE_SUSPEND = 4;
        DISPLAY_STATE_VR = 5;
    }


    // True to decouple auto-suspend mode from the display state.
    bool is_decouple_hal_auto_suspend_mode_from_display_config = 1;
    // True to decouple interactive mode from the display state.
    bool is_decouple_hal_interactive_mode_from_display_config = 2;
    // True if the device should wake up when plugged or unplugged.
    bool is_wake_up_when_plugged_or_unplugged_config = 3;
    // True if the device should wake up when plugged or unplugged in theater mode.
    bool is_wake_up_when_plugged_or_unplugged_in_theater_mode_config = 4;
    // True if theater mode is enabled
    bool is_theater_mode_enabled = 5;
    // True if the device should suspend when the screen is off due to proximity.
    bool is_suspend_when_screen_off_due_to_proximity_config = 6;
    // True if dreams are supported on this device.
    bool are_dreams_supported_config = 7;
    // Default value for dreams enabled
    bool are_dreams_enabled_by_default_config = 8;
    // Default value for dreams activate-on-sleep
    bool are_dreams_activated_on_sleep_by_default_config = 9;
    // Default value for dreams activate-on-dock
    bool are_dreams_activated_on_dock_by_default_config = 10;
    // True if dreams can run while not plugged in.
    bool are_dreams_enabled_on_battery_config = 11;
    // Minimum battery level to allow dreaming when powered.
    // Use -1 to disable this safety feature.
    sint32 dreams_battery_level_minimum_when_powered_config = 12;
    // Minimum battery level to allow dreaming when not powered.
    // Use -1 to disable this safety feature.
    sint32 dreams_battery_level_minimum_when_not_powered_config = 13;
    // If the battery level drops by this percentage and the user activity
    // timeout has expired, then assume the device is receiving insufficient
    // current to charge effectively and terminate the dream.  Use -1 to disable
    // this safety feature.
    sint32 dreams_battery_level_drain_cutoff_config = 14;
    // True if dreams are enabled by the user.
    bool are_dreams_enabled_setting = 15;
    // True if dreams should be activated on sleep.
    bool are_dreams_activate_on_sleep_setting = 16;
    // True if dreams should be activated on dock.
    bool are_dreams_activate_on_dock_setting = 17;
    // True if doze should not be started until after the screen off transition.
    bool is_doze_after_screen_off_config = 18;
    // If true, the device is in low power mode.
    bool is_low_power_mode_setting = 19;
    // Current state of whether the settings are allowing auto low power mode.
    bool is_auto_low_power_mode_configured = 20;
    // The user turned off low power mode below the trigger level
    bool is_auto_low_power_mode_snoozing = 21;
    // The minimum screen off timeout, in milliseconds.
    int32 minimum_screen_off_timeout_config_ms = 22;
    // The screen dim duration, in milliseconds.
    int32 maximum_screen_dim_duration_config_ms = 23;
    // The maximum screen dim time expressed as a ratio relative to the screen off timeout.
    float maximum_screen_dim_ratio_config = 24;
    // The screen off timeout setting value in milliseconds.
    int32 screen_off_timeout_setting_ms = 25;
    // The sleep timeout setting value in milliseconds.
    sint32 sleep_timeout_setting_ms = 26;
    // The maximum allowable screen off timeout according to the device administration policy.
    int32 maximum_screen_off_timeout_from_device_admin_ms = 27;
    bool is_maximum_screen_off_timeout_from_device_admin_enforced_locked = 28;
    // The stay on while plugged in setting.
    // A set of battery conditions under which to make the screen stay on.
    StayOnWhilePluggedInProto stay_on_while_plugged_in = 29;
    // The screen brightness setting, from 0 to 255.
    // Use -1 if no value has been set.
    sint32 screen_brightness_setting = 30;
    // The screen auto-brightness adjustment setting, from -1 to 1.
    // Use 0 if there is no adjustment.
    float screen_auto_brightness_adjustment_setting = 31;
    // The screen brightness mode.
    ScreenBrightnessMode screen_brightness_mode_setting = 32;
    // The screen brightness setting override from the window manager
    // to allow the current foreground activity to override the brightness.
    // Use -1 to disable.
    sint32 screen_brightness_override_from_window_manager = 33;
    // The user activity timeout override from the window manager
    // to allow the current foreground activity to override the user activity
    // timeout. Use -1 to disable.
    sint64 user_activity_timeout_override_from_window_manager_ms = 34;
    // The window manager has determined the user to be inactive via other means.
    // Set this to false to disable.
    bool is_user_inactive_override_from_window_manager = 35;
    // The screen brightness setting override from the settings application
    // to temporarily adjust the brightness until next updated,
    // Use -1 to disable.
    sint32 temporary_screen_brightness_setting_override = 36;
    // The screen brightness adjustment setting override from the settings
    // application to temporarily adjust the auto-brightness adjustment factor
    // until next updated, in the range -1..1.
    // Use NaN to disable.
    float temporary_screen_auto_brightness_adjustment_setting_override = 37;
    // The screen state to use while dozing.
    DisplayState doze_screen_state_override_from_dream_manager = 38;
    // The screen brightness to use while dozing.
    float dozed_screen_brightness_override_from_dream_manager = 39;
    // Screen brightness settings limits.
    ScreenBrightnessSettingLimitsProto screen_brightness_setting_limits = 40;
    // The screen brightness setting, from 0 to 255, to be used while in VR Mode.
    int32 screen_brightness_for_vr_setting = 41;
    // True if double tap to wake is enabled
    bool is_double_tap_wake_enabled = 42;
    // True if we are currently in VR Mode.
    bool is_vr_mode_enabled = 43;
}