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;
}
|