diff --git a/core/proto/android/app/activitymanager.proto b/core/proto/android/app/activitymanager.proto index 4756c13d71db1..ead7e1633c56b 100644 --- a/core/proto/android/app/activitymanager.proto +++ b/core/proto/android/app/activitymanager.proto @@ -23,14 +23,14 @@ option java_outer_classname = "ActivityManagerProto"; // ActivityManager.java UID_OBSERVERs flags enum UidObserverFlag { - // report changes in process state, original value is 1 << 0 - UID_OBSERVER_FLAG_PROCSTATE = 1; - // report uid gone, original value is 1 << 1 - UID_OBSERVER_FLAG_GONE = 2; - // report uid has become idle, original value is 1 << 2 - UID_OBSERVER_FLAG_IDLE = 3; - // report uid has become active, original value is 1 << 3 - UID_OBSERVER_FLAG_ACTIVE = 4; - // report uid cached state has changed, original value is 1 << 4 - UID_OBSERVER_FLAG_CACHED = 5; + // report changes in process state, original value is 1 << 0 + UID_OBSERVER_FLAG_PROCSTATE = 1; + // report uid gone, original value is 1 << 1 + UID_OBSERVER_FLAG_GONE = 2; + // report uid has become idle, original value is 1 << 2 + UID_OBSERVER_FLAG_IDLE = 3; + // report uid has become active, original value is 1 << 3 + UID_OBSERVER_FLAG_ACTIVE = 4; + // report uid cached state has changed, original value is 1 << 4 + UID_OBSERVER_FLAG_CACHED = 5; } diff --git a/core/proto/android/app/alarmmanager.proto b/core/proto/android/app/alarmmanager.proto index 7ef08cae435a6..53be1ee7a93ab 100644 --- a/core/proto/android/app/alarmmanager.proto +++ b/core/proto/android/app/alarmmanager.proto @@ -27,31 +27,31 @@ package android.app; * An android.app.AlarmManager object. */ message AlarmManagerProto { - enum AlarmType { - // Alarm time in System.currentTimeMillis() (wall clock time in UTC), which - // will wake up the device when it goes off. - RTC_WAKEUP = 0; - // Alarm time in System.currentTimeMillis() (wall clock time in UTC). This - // alarm does not wake the device up; if it goes off while the device is - // asleep, it will not be delivered until the next time the device wakes up. - RTC = 1; - // Alarm time in SystemClock.elapsedRealtime() (time since boot, including - // sleep), which will wake up the device when it goes off. - ELAPSED_REALTIME_WAKEUP = 2; - // Alarm time in SystemClock.elapsedRealtime() (time since boot, including - // sleep). This alarm does not wake the device up; if it goes off while the - // device is asleep, it will not be delivered until the next time the device - // wakes up. - ELAPSED_REALTIME = 3; - } + enum AlarmType { + // Alarm time in System.currentTimeMillis() (wall clock time in UTC), which + // will wake up the device when it goes off. + RTC_WAKEUP = 0; + // Alarm time in System.currentTimeMillis() (wall clock time in UTC). This + // alarm does not wake the device up; if it goes off while the device is + // asleep, it will not be delivered until the next time the device wakes up. + RTC = 1; + // Alarm time in SystemClock.elapsedRealtime() (time since boot, including + // sleep), which will wake up the device when it goes off. + ELAPSED_REALTIME_WAKEUP = 2; + // Alarm time in SystemClock.elapsedRealtime() (time since boot, including + // sleep). This alarm does not wake the device up; if it goes off while the + // device is asleep, it will not be delivered until the next time the device + // wakes up. + ELAPSED_REALTIME = 3; + } } // An android.app.AlarmManager.AlarmClockInfo object. message AlarmClockInfoProto { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + option (android.msg_privacy).dest = DEST_AUTOMATIC; - // This value is UTC wall clock time in milliseconds, as returned by - // System#currentTimeMillis() for example. - optional int64 trigger_time_ms = 1; - optional android.app.PendingIntentProto show_intent = 2; + // This value is UTC wall clock time in milliseconds, as returned by + // System#currentTimeMillis() for example. + optional int64 trigger_time_ms = 1; + optional android.app.PendingIntentProto show_intent = 2; } diff --git a/core/proto/android/app/job/enums.proto b/core/proto/android/app/job/enums.proto index 17bf4fb1cb6a2..2290b2f8974a2 100644 --- a/core/proto/android/app/job/enums.proto +++ b/core/proto/android/app/job/enums.proto @@ -24,10 +24,10 @@ option java_multiple_files = true; // Reasons a job is stopped. // Primarily used in android.app.job.JobParameters.java. enum StopReasonEnum { - STOP_REASON_UNKNOWN = -1; - STOP_REASON_CANCELLED = 0; - STOP_REASON_CONSTRAINTS_NOT_SATISFIED = 1; - STOP_REASON_PREEMPT = 2; - STOP_REASON_TIMEOUT = 3; - STOP_REASON_DEVICE_IDLE = 4; + STOP_REASON_UNKNOWN = -1; + STOP_REASON_CANCELLED = 0; + STOP_REASON_CONSTRAINTS_NOT_SATISFIED = 1; + STOP_REASON_PREEMPT = 2; + STOP_REASON_TIMEOUT = 3; + STOP_REASON_DEVICE_IDLE = 4; } diff --git a/core/proto/android/app/pendingintent.proto b/core/proto/android/app/pendingintent.proto index ab0d34eda5dfe..04ce8507cd637 100644 --- a/core/proto/android/app/pendingintent.proto +++ b/core/proto/android/app/pendingintent.proto @@ -26,7 +26,7 @@ import "frameworks/base/libs/incident/proto/android/privacy.proto"; * An android.app.PendingIntent object. */ message PendingIntentProto { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + option (android.msg_privacy).dest = DEST_AUTOMATIC; - optional string target = 1; + optional string target = 1; } diff --git a/core/proto/android/app/statusbarmanager.proto b/core/proto/android/app/statusbarmanager.proto index 3d1447aee54fe..1108508d9becd 100644 --- a/core/proto/android/app/statusbarmanager.proto +++ b/core/proto/android/app/statusbarmanager.proto @@ -19,15 +19,15 @@ package android.app; option java_multiple_files = true; message StatusBarManagerProto { - enum WindowState { - WINDOW_STATE_SHOWING = 0; - WINDOW_STATE_HIDING = 1; - WINDOW_STATE_HIDDEN = 2; - } - enum TransientWindowState { - TRANSIENT_BAR_NONE = 0; - TRANSIENT_BAR_SHOW_REQUESTED = 1; - TRANSIENT_BAR_SHOWING = 2; - TRANSIENT_BAR_HIDING = 3; - } + enum WindowState { + WINDOW_STATE_SHOWING = 0; + WINDOW_STATE_HIDING = 1; + WINDOW_STATE_HIDDEN = 2; + } + enum TransientWindowState { + TRANSIENT_BAR_NONE = 0; + TRANSIENT_BAR_SHOW_REQUESTED = 1; + TRANSIENT_BAR_SHOWING = 2; + TRANSIENT_BAR_HIDING = 3; + } } diff --git a/core/proto/android/app/window_configuration.proto b/core/proto/android/app/window_configuration.proto index 1e8ace4fa06b9..c9f3986b60049 100644 --- a/core/proto/android/app/window_configuration.proto +++ b/core/proto/android/app/window_configuration.proto @@ -25,9 +25,9 @@ import "frameworks/base/libs/incident/proto/android/privacy.proto"; /** Proto representation for WindowConfiguration.java class. */ message WindowConfigurationProto { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + option (android.msg_privacy).dest = DEST_AUTOMATIC; - optional .android.graphics.RectProto app_bounds = 1; - optional int32 windowing_mode = 2; - optional int32 activity_type = 3; + optional .android.graphics.RectProto app_bounds = 1; + optional int32 windowing_mode = 2; + optional int32 activity_type = 3; } diff --git a/core/proto/android/bluetooth/enums.proto b/core/proto/android/bluetooth/enums.proto index 9e459e6c1e5c1..d0c9226643516 100644 --- a/core/proto/android/bluetooth/enums.proto +++ b/core/proto/android/bluetooth/enums.proto @@ -22,22 +22,22 @@ option java_multiple_files = true; // Bluetooth connection states. enum ConnectionStateEnum { - CONNECTION_STATE_DISCONNECTED = 0; - CONNECTION_STATE_CONNECTING = 1; - CONNECTION_STATE_CONNECTED = 2; - CONNECTION_STATE_DISCONNECTING = 3; + CONNECTION_STATE_DISCONNECTED = 0; + CONNECTION_STATE_CONNECTING = 1; + CONNECTION_STATE_CONNECTED = 2; + CONNECTION_STATE_DISCONNECTING = 3; } // Bluetooth Adapter Enable and Disable Reasons enum EnableDisableReasonEnum { - ENABLE_DISABLE_REASON_UNSPECIFIED = 0; - ENABLE_DISABLE_REASON_APPLICATION_REQUEST = 1; - ENABLE_DISABLE_REASON_AIRPLANE_MODE = 2; - ENABLE_DISABLE_REASON_DISALLOWED = 3; - ENABLE_DISABLE_REASON_RESTARTED = 4; - ENABLE_DISABLE_REASON_START_ERROR = 5; - ENABLE_DISABLE_REASON_SYSTEM_BOOT = 6; - ENABLE_DISABLE_REASON_CRASH = 7; - ENABLE_DISABLE_REASON_USER_SWITCH = 8; - ENABLE_DISABLE_REASON_RESTORE_USER_SETTING = 9; -} \ No newline at end of file + ENABLE_DISABLE_REASON_UNSPECIFIED = 0; + ENABLE_DISABLE_REASON_APPLICATION_REQUEST = 1; + ENABLE_DISABLE_REASON_AIRPLANE_MODE = 2; + ENABLE_DISABLE_REASON_DISALLOWED = 3; + ENABLE_DISABLE_REASON_RESTARTED = 4; + ENABLE_DISABLE_REASON_START_ERROR = 5; + ENABLE_DISABLE_REASON_SYSTEM_BOOT = 6; + ENABLE_DISABLE_REASON_CRASH = 7; + ENABLE_DISABLE_REASON_USER_SWITCH = 8; + ENABLE_DISABLE_REASON_RESTORE_USER_SETTING = 9; +} diff --git a/core/proto/android/content/activityinfo.proto b/core/proto/android/content/activityinfo.proto index 012752a085549..87acd84a5411e 100644 --- a/core/proto/android/content/activityinfo.proto +++ b/core/proto/android/content/activityinfo.proto @@ -19,24 +19,24 @@ package android.content; option java_multiple_files = true; message ActivityInfoProto { - enum ScreenOrientation { - SCREEN_ORIENTATION_UNSET = -2; - SCREEN_ORIENTATION_UNSPECIFIED = -1; - SCREEN_ORIENTATION_LANDSCAPE = 0; - SCREEN_ORIENTATION_PORTRAIT = 1; - SCREEN_ORIENTATION_USER = 2; - SCREEN_ORIENTATION_BEHIND = 3; - SCREEN_ORIENTATION_SENSOR = 4; - SCREEN_ORIENTATION_NOSENSOR = 5; - SCREEN_ORIENTATION_SENSOR_LANDSCAPE = 6; - SCREEN_ORIENTATION_SENSOR_PORTRAIT = 7; - SCREEN_ORIENTATION_REVERSE_LANDSCAPE = 8; - SCREEN_ORIENTATION_REVERSE_PORTRAIT = 9; - SCREEN_ORIENTATION_FULL_SENSOR = 10; - SCREEN_ORIENTATION_USER_LANDSCAPE = 11; - SCREEN_ORIENTATION_USER_PORTRAIT = 12; - SCREEN_ORIENTATION_FULL_USER = 13; - SCREEN_ORIENTATION_LOCKED = 14; - } + enum ScreenOrientation { + SCREEN_ORIENTATION_UNSET = -2; + SCREEN_ORIENTATION_UNSPECIFIED = -1; + SCREEN_ORIENTATION_LANDSCAPE = 0; + SCREEN_ORIENTATION_PORTRAIT = 1; + SCREEN_ORIENTATION_USER = 2; + SCREEN_ORIENTATION_BEHIND = 3; + SCREEN_ORIENTATION_SENSOR = 4; + SCREEN_ORIENTATION_NOSENSOR = 5; + SCREEN_ORIENTATION_SENSOR_LANDSCAPE = 6; + SCREEN_ORIENTATION_SENSOR_PORTRAIT = 7; + SCREEN_ORIENTATION_REVERSE_LANDSCAPE = 8; + SCREEN_ORIENTATION_REVERSE_PORTRAIT = 9; + SCREEN_ORIENTATION_FULL_SENSOR = 10; + SCREEN_ORIENTATION_USER_LANDSCAPE = 11; + SCREEN_ORIENTATION_USER_PORTRAIT = 12; + SCREEN_ORIENTATION_FULL_USER = 13; + SCREEN_ORIENTATION_LOCKED = 14; + } } diff --git a/core/proto/android/content/configuration.proto b/core/proto/android/content/configuration.proto index 6a174e868a5e5..5755c5974a000 100644 --- a/core/proto/android/content/configuration.proto +++ b/core/proto/android/content/configuration.proto @@ -28,63 +28,63 @@ import "frameworks/base/libs/incident/proto/android/privacy.proto"; * An android Configuration object. */ message ConfigurationProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional float font_scale = 1; - optional uint32 mcc = 2; - optional uint32 mnc = 3 [ (.android.privacy).dest = DEST_EXPLICIT ]; - repeated LocaleProto locales = 4; - optional uint32 screen_layout = 5; - optional uint32 color_mode = 6; - optional uint32 touchscreen = 7; - optional uint32 keyboard = 8; - optional uint32 keyboard_hidden = 9; - optional uint32 hard_keyboard_hidden = 10; - optional uint32 navigation = 11; - optional uint32 navigation_hidden = 12; - optional uint32 orientation = 13; - optional uint32 ui_mode = 14; - optional uint32 screen_width_dp = 15; - optional uint32 screen_height_dp = 16; - optional uint32 smallest_screen_width_dp = 17; - optional uint32 density_dpi = 18; - optional .android.app.WindowConfigurationProto window_configuration = 19; + optional float font_scale = 1; + optional uint32 mcc = 2; + optional uint32 mnc = 3 [ (.android.privacy).dest = DEST_EXPLICIT ]; + repeated LocaleProto locales = 4; + optional uint32 screen_layout = 5; + optional uint32 color_mode = 6; + optional uint32 touchscreen = 7; + optional uint32 keyboard = 8; + optional uint32 keyboard_hidden = 9; + optional uint32 hard_keyboard_hidden = 10; + optional uint32 navigation = 11; + optional uint32 navigation_hidden = 12; + optional uint32 orientation = 13; + optional uint32 ui_mode = 14; + optional uint32 screen_width_dp = 15; + optional uint32 screen_height_dp = 16; + optional uint32 smallest_screen_width_dp = 17; + optional uint32 density_dpi = 18; + optional .android.app.WindowConfigurationProto window_configuration = 19; } /** * All current configuration data used to select resources. */ message ResourcesConfigurationProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - required ConfigurationProto configuration = 1; + required ConfigurationProto configuration = 1; - optional uint32 sdk_version = 2; - optional uint32 screen_width_px = 3; - optional uint32 screen_height_px = 4; + optional uint32 sdk_version = 2; + optional uint32 screen_width_px = 3; + optional uint32 screen_height_px = 4; } /** * Overall device configuration data. */ message DeviceConfigurationProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional uint32 stable_screen_width_px = 1; - optional uint32 stable_screen_height_px = 2; - optional uint32 stable_density_dpi = 3; + optional uint32 stable_screen_width_px = 1; + optional uint32 stable_screen_height_px = 2; + optional uint32 stable_density_dpi = 3; - optional uint64 total_ram = 4; - optional bool low_ram = 5; - optional uint32 max_cores = 6; - optional bool has_secure_screen_lock = 7; + optional uint64 total_ram = 4; + optional bool low_ram = 5; + optional uint32 max_cores = 6; + optional bool has_secure_screen_lock = 7; - optional uint32 opengl_version = 8; - repeated string opengl_extensions = 9; + optional uint32 opengl_version = 8; + repeated string opengl_extensions = 9; - repeated string shared_libraries = 10; - repeated string features = 11; - repeated string cpu_architectures = 12; + repeated string shared_libraries = 10; + repeated string features = 11; + repeated string cpu_architectures = 12; } /** @@ -92,8 +92,8 @@ message DeviceConfigurationProto { * to filter and target apps. */ message GlobalConfigurationProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional ResourcesConfigurationProto resources = 1; - optional DeviceConfigurationProto device = 2; + optional ResourcesConfigurationProto resources = 1; + optional DeviceConfigurationProto device = 2; } diff --git a/core/proto/android/content/locale.proto b/core/proto/android/content/locale.proto index 2be3ab9797331..87b555c315b45 100644 --- a/core/proto/android/content/locale.proto +++ b/core/proto/android/content/locale.proto @@ -23,10 +23,10 @@ import "frameworks/base/libs/incident/proto/android/privacy.proto"; package android.content; message LocaleProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional string language = 1; - optional string country = 2; - optional string variant = 3; + optional string language = 1; + optional string country = 2; + optional string variant = 3; } diff --git a/core/proto/android/graphics/pixelformat.proto b/core/proto/android/graphics/pixelformat.proto index 4e42c926a95fa..d7f5f0c36ea61 100644 --- a/core/proto/android/graphics/pixelformat.proto +++ b/core/proto/android/graphics/pixelformat.proto @@ -19,16 +19,16 @@ package android.graphics; option java_multiple_files = true; message PixelFormatProto { - enum Format { - UNKNOWN = 0; - TRANSLUCENT = -3; - TRANSPARENT = -2; - OPAQUE = -1; - RGBA_8888 = 1; - RGBX_8888 = 2; - RGB_888 = 3; - RGB_565 = 4; - RGBA_F16 = 0x16; - RGBA_1010102 = 0x2B; - } + enum Format { + UNKNOWN = 0; + TRANSLUCENT = -3; + TRANSPARENT = -2; + OPAQUE = -1; + RGBA_8888 = 1; + RGBX_8888 = 2; + RGB_888 = 3; + RGB_565 = 4; + RGBA_F16 = 0x16; + RGBA_1010102 = 0x2B; + } } diff --git a/core/proto/android/graphics/point.proto b/core/proto/android/graphics/point.proto index 035b9fe36cd12..04d879fd405c9 100644 --- a/core/proto/android/graphics/point.proto +++ b/core/proto/android/graphics/point.proto @@ -22,9 +22,9 @@ import "frameworks/base/libs/incident/proto/android/privacy.proto"; option java_multiple_files = true; message PointProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 x = 1; - optional int32 y = 2; + optional int32 x = 1; + optional int32 y = 2; } diff --git a/core/proto/android/graphics/rect.proto b/core/proto/android/graphics/rect.proto index eb403fe953ff3..c216b2bdbda12 100644 --- a/core/proto/android/graphics/rect.proto +++ b/core/proto/android/graphics/rect.proto @@ -22,11 +22,11 @@ import "frameworks/base/libs/incident/proto/android/privacy.proto"; option java_multiple_files = true; message RectProto { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + option (android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 left = 1; - optional int32 top = 2; - optional int32 right = 3; - optional int32 bottom = 4; + optional int32 left = 1; + optional int32 top = 2; + optional int32 right = 3; + optional int32 bottom = 4; } diff --git a/core/proto/android/internal/locallog.proto b/core/proto/android/internal/locallog.proto index 73d1492c68e1a..df0b90b058cda 100644 --- a/core/proto/android/internal/locallog.proto +++ b/core/proto/android/internal/locallog.proto @@ -22,7 +22,7 @@ option java_multiple_files = true; import "frameworks/base/libs/incident/proto/android/privacy.proto"; message LocalLogProto { - option (.android.msg_privacy).dest = DEST_EXPLICIT; + option (.android.msg_privacy).dest = DEST_EXPLICIT; - repeated string lines = 1; + repeated string lines = 1; } diff --git a/core/proto/android/internal/processstats.proto b/core/proto/android/internal/processstats.proto index 5629c2d291f79..7c1ac3f109bca 100644 --- a/core/proto/android/internal/processstats.proto +++ b/core/proto/android/internal/processstats.proto @@ -19,10 +19,10 @@ syntax = "proto2"; package com.android.internal.app.procstats; message ProcessStatsProto { - enum MemoryFactor { - MEM_FACTOR_NORMAL = 0; - MEM_FACTOR_MODERATE = 1; - MEM_FACTOR_LOW = 2; - MEM_FACTOR_CRITICAL = 3; - } + enum MemoryFactor { + MEM_FACTOR_NORMAL = 0; + MEM_FACTOR_MODERATE = 1; + MEM_FACTOR_LOW = 2; + MEM_FACTOR_CRITICAL = 3; + } } diff --git a/core/proto/android/os/batterystats.proto b/core/proto/android/os/batterystats.proto index b06b143bfef88..0970bd5e2c278 100644 --- a/core/proto/android/os/batterystats.proto +++ b/core/proto/android/os/batterystats.proto @@ -25,860 +25,860 @@ import "frameworks/base/core/proto/android/telephony/enums.proto"; import "frameworks/base/libs/incident/proto/android/privacy.proto"; message BatteryStatsProto { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + option (android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 report_version = 1; - optional int64 parcel_version = 2; - optional string start_platform_version = 3; - optional string end_platform_version = 4; - repeated UidProto uids = 5; - optional SystemProto system = 6; + optional int32 report_version = 1; + optional int64 parcel_version = 2; + optional string start_platform_version = 3; + optional string end_platform_version = 4; + repeated UidProto uids = 5; + optional SystemProto system = 6; } message ControllerActivityProto { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - // Time (milliseconds) spent in the idle state. - optional int64 idle_duration_ms = 1; - // Time (milliseconds) spent in the receive state. - optional int64 rx_duration_ms = 2; - // Total power (mAh) consumed by the controller in all states. The value may - // always be 0 if the device doesn't support power calculations. - optional int64 power_mah = 3; - - // Represents a transmit level, where each level may draw a different amount - // of power. The levels themselves are controller-specific (and may possibly - // be device specific...yet to be confirmed). - message TxLevel { option (android.msg_privacy).dest = DEST_AUTOMATIC; - // Transmit level. Higher levels draw more power. - optional int32 level = 1; - // Time spent in this specific transmit level state. - optional int64 duration_ms = 2; - } - repeated TxLevel tx = 4; + // Time (milliseconds) spent in the idle state. + optional int64 idle_duration_ms = 1; + // Time (milliseconds) spent in the receive state. + optional int64 rx_duration_ms = 2; + // Total power (mAh) consumed by the controller in all states. The value may + // always be 0 if the device doesn't support power calculations. + optional int64 power_mah = 3; + + // Represents a transmit level, where each level may draw a different amount + // of power. The levels themselves are controller-specific (and may possibly + // be device specific...yet to be confirmed). + message TxLevel { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + // Transmit level. Higher levels draw more power. + optional int32 level = 1; + // Time spent in this specific transmit level state. + optional int64 duration_ms = 2; + } + repeated TxLevel tx = 4; } message SystemProto { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - message Battery { option (android.msg_privacy).dest = DEST_AUTOMATIC; - // Wall clock time when the data collection started. - // In case of device time manually reset by users: - // start_clock_time_ms keeps the same value in the current collection - // period and changes for later collection periods. - optional int64 start_clock_time_ms = 1; - // #times the device has been started since start_clock_time_millis. - optional int64 start_count = 2; - // Total realtime duration (= SINCE_UNPLUGGED battery_realtime_millis.) - optional int64 total_realtime_ms = 3; - optional int64 total_uptime_ms = 4; - // Realtime duration on battery. - optional int64 battery_realtime_ms = 5; - // Uptime duration (i.e., not suspend). - // Uptime is anytime the CPUs were on. The radio and Wifi chip - // can be running while the CPUs are off. - optional int64 battery_uptime_ms = 6; - // Total realtime duration measured with screen off or dozing. - optional int64 screen_off_realtime_ms = 7; - // Total uptime duration measured with screen off or dozing. - optional int64 screen_off_uptime_ms = 8; - // Total time the screen was dozing while the device was running on battery. - // For historical reasons, screen_doze_duration_msec is a subset of - // screen_off_realtime_msec. - optional int64 screen_doze_duration_ms = 9; - // The estimated real battery capacity, which may be less than the declared - // battery capacity (for example, because of battery aging). This field is - // less reliable than min(max)_learned_battery_capacity_uah, use those two - // fields whenever possible. - optional int64 estimated_battery_capacity_mah = 10; - // The minimum learned battery capacity in uAh. - optional int64 min_learned_battery_capacity_uah = 11; - // The maximum learned battery capacity in uAh. - optional int64 max_learned_battery_capacity_uah = 12; - }; - optional Battery battery = 1; + message Battery { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - message BatteryDischarge { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + // Wall clock time when the data collection started. + // In case of device time manually reset by users: + // start_clock_time_ms keeps the same value in the current collection + // period and changes for later collection periods. + optional int64 start_clock_time_ms = 1; + // #times the device has been started since start_clock_time_millis. + optional int64 start_count = 2; + // Total realtime duration (= SINCE_UNPLUGGED battery_realtime_millis.) + optional int64 total_realtime_ms = 3; + optional int64 total_uptime_ms = 4; + // Realtime duration on battery. + optional int64 battery_realtime_ms = 5; + // Uptime duration (i.e., not suspend). + // Uptime is anytime the CPUs were on. The radio and Wifi chip + // can be running while the CPUs are off. + optional int64 battery_uptime_ms = 6; + // Total realtime duration measured with screen off or dozing. + optional int64 screen_off_realtime_ms = 7; + // Total uptime duration measured with screen off or dozing. + optional int64 screen_off_uptime_ms = 8; + // Total time the screen was dozing while the device was running on battery. + // For historical reasons, screen_doze_duration_msec is a subset of + // screen_off_realtime_msec. + optional int64 screen_doze_duration_ms = 9; + // The estimated real battery capacity, which may be less than the declared + // battery capacity (for example, because of battery aging). This field is + // less reliable than min(max)_learned_battery_capacity_uah, use those two + // fields whenever possible. + optional int64 estimated_battery_capacity_mah = 10; + // The minimum learned battery capacity in uAh. + optional int64 min_learned_battery_capacity_uah = 11; + // The maximum learned battery capacity in uAh. + optional int64 max_learned_battery_capacity_uah = 12; + }; + optional Battery battery = 1; - // Discharged battery percentage points since the stats were last reset - // after charging (lower bound approximation). - optional int32 lower_bound_since_charge = 1; - // Upper bound approximation. - optional int32 upper_bound_since_charge = 2; - // Discharged points while screen is on. - optional int32 screen_on_since_charge = 3; - // Discharged points while screen is off. - optional int32 screen_off_since_charge = 4; - // Discharged points while screen was dozing. For historical reasons, - // screen_doze_since_charge is a subset of screen_off_since_charge. - optional int32 screen_doze_since_charge = 5; - // Total amount of battery discharged in mAh. This will only be non-zero for - // devices that report battery discharge via a coulomb counter. - optional int64 total_mah = 6; - // Total amount of battery discharged while the screen was off in mAh. - // This will only be non-zero for devices that report battery discharge - // via a coulomb counter. - optional int64 total_mah_screen_off = 7; - // Total amount of battery discharged while the screen was dozing in mAh. - // This will only be non-zero for devices that report battery discharge - // via a coulomb counter. For historical reasons, total_mah_screen_doze is - // a subset of total_mah_screen_off. - optional int64 total_mah_screen_doze = 8; - // Total amount of battery discharged in mAh while the device was in light doze mode. - // This will only be non-zero for devices that report battery discharge - // via a coulomb counter. - optional int64 total_mah_light_doze = 9; - // Total amount of battery discharged in mAh while the device was in deep doze mode. - // This will only be non-zero for devices that report battery discharge - // via a coulomb counter. - optional int64 total_mah_deep_doze = 10; - }; - optional BatteryDischarge battery_discharge = 2; + message BatteryDischarge { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - oneof time_remaining { - // Approximation for how much time remains until the battery is fully - // charged. The device will print -1 if there wasn't enough data to - // calculate an estimate, or if the battery is currently discharging. - int64 charge_time_remaining_ms = 3; - // Approximation for how much time remains until the battery is fully - // discharged. The device will print -1 if there wasn't enough data to - // calculate an estimate, or if the battery is currently charging. - int64 discharge_time_remaining_ms = 4; - } + // Discharged battery percentage points since the stats were last reset + // after charging (lower bound approximation). + optional int32 lower_bound_since_charge = 1; + // Upper bound approximation. + optional int32 upper_bound_since_charge = 2; + // Discharged points while screen is on. + optional int32 screen_on_since_charge = 3; + // Discharged points while screen is off. + optional int32 screen_off_since_charge = 4; + // Discharged points while screen was dozing. For historical reasons, + // screen_doze_since_charge is a subset of screen_off_since_charge. + optional int32 screen_doze_since_charge = 5; + // Total amount of battery discharged in mAh. This will only be non-zero for + // devices that report battery discharge via a coulomb counter. + optional int64 total_mah = 6; + // Total amount of battery discharged while the screen was off in mAh. + // This will only be non-zero for devices that report battery discharge + // via a coulomb counter. + optional int64 total_mah_screen_off = 7; + // Total amount of battery discharged while the screen was dozing in mAh. + // This will only be non-zero for devices that report battery discharge + // via a coulomb counter. For historical reasons, total_mah_screen_doze is + // a subset of total_mah_screen_off. + optional int64 total_mah_screen_doze = 8; + // Total amount of battery discharged in mAh while the device was in light doze mode. + // This will only be non-zero for devices that report battery discharge + // via a coulomb counter. + optional int64 total_mah_light_doze = 9; + // Total amount of battery discharged in mAh while the device was in deep doze mode. + // This will only be non-zero for devices that report battery discharge + // via a coulomb counter. + optional int64 total_mah_deep_doze = 10; + }; + optional BatteryDischarge battery_discharge = 2; - // BatteryLevelStep tracks data for which conditions were continuously held for - // the entire duration. Field for which the conditions were not consistent - // for the entire duration should be marked MIXED. - message BatteryLevelStep { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - // How long the battery was at the current level. - optional int64 duration_ms = 1; - // Battery level - optional int32 level = 2; - - // State of the display. A special enum is used rather than - // DisplayProto.State because a MIXED value needs to be in the enum, and - // batterystats doesn't care about all of the different display states. - enum DisplayState { - DS_MIXED = 0; - DS_ON = 1; - DS_OFF = 2; - DS_DOZE = 3; - DS_DOZE_SUSPEND = 4; - // Any display state error that comes through should be sent to hackbod@. - DS_ERROR = 5; + oneof time_remaining { + // Approximation for how much time remains until the battery is fully + // charged. The device will print -1 if there wasn't enough data to + // calculate an estimate, or if the battery is currently discharging. + int64 charge_time_remaining_ms = 3; + // Approximation for how much time remains until the battery is fully + // discharged. The device will print -1 if there wasn't enough data to + // calculate an estimate, or if the battery is currently charging. + int64 discharge_time_remaining_ms = 4; } - // The state of the display for the entire battery level step. MIXED is used - // if there were multiple states for this step. - optional DisplayState display_state = 3; - // Indicates status in power save mode. - enum PowerSaveMode { - PSM_MIXED = 0; - PSM_ON = 1; - PSM_OFF = 2; + // BatteryLevelStep tracks data for which conditions were continuously held for + // the entire duration. Field for which the conditions were not consistent + // for the entire duration should be marked MIXED. + message BatteryLevelStep { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + // How long the battery was at the current level. + optional int64 duration_ms = 1; + // Battery level + optional int32 level = 2; + + // State of the display. A special enum is used rather than + // DisplayProto.State because a MIXED value needs to be in the enum, and + // batterystats doesn't care about all of the different display states. + enum DisplayState { + DS_MIXED = 0; + DS_ON = 1; + DS_OFF = 2; + DS_DOZE = 3; + DS_DOZE_SUSPEND = 4; + // Any display state error that comes through should be sent to hackbod@. + DS_ERROR = 5; + } + // The state of the display for the entire battery level step. MIXED is used + // if there were multiple states for this step. + optional DisplayState display_state = 3; + + // Indicates status in power save mode. + enum PowerSaveMode { + PSM_MIXED = 0; + PSM_ON = 1; + PSM_OFF = 2; + } + // Battery Saver mode for the entire battery level step. MIXED is used + // if there were multiple states for this step. + optional PowerSaveMode power_save_mode = 4; + + // Indicates status in idle mode. + enum IdleMode { + IM_MIXED = 0; + IM_ON = 2; + IM_OFF = 3; + } + // Doze mode for the entire battery level step. MIXED is used if there were + // multiple states for this step. + optional IdleMode idle_mode = 5; + }; + // Battery level steps when the device was charging. + repeated BatteryLevelStep charge_step = 5; + // Battery level steps when the device was discharging. + repeated BatteryLevelStep discharge_step = 6; + + // All CPU frequencies of the device. + repeated int64 cpu_frequency = 7; + + message DataConnection { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + oneof type { + android.telephony.NetworkTypeEnum name = 1; + // If is_none is not set, then the name is a valid network type. + bool is_none = 2; + } + optional TimerProto total = 3; + }; + repeated DataConnection data_connection = 8; + + optional ControllerActivityProto global_bluetooth_controller = 9; + optional ControllerActivityProto global_modem_controller = 10; + optional ControllerActivityProto global_wifi_controller = 11; + + message GlobalNetwork { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + // Total Bytes received on mobile connections. + optional int64 mobile_bytes_rx = 1; + // Total Bytes transmitted on mobile connections. + optional int64 mobile_bytes_tx = 2; + // Total Bytes received on wifi connections. + optional int64 wifi_bytes_rx = 3; + // Total Bytes transmitted on wifi connections. + optional int64 wifi_bytes_tx = 4; + // Total Packets received on mobile connections. + optional int64 mobile_packets_rx = 5; + // Total Packets transmitted on mobile connections. + optional int64 mobile_packets_tx = 6; + // Total Packets received on wifi connections. + optional int64 wifi_packets_rx = 7; + // Total Packets transmitted on wifi connections. + optional int64 wifi_packets_tx = 8; + // Total Bytes received on bluetooth connections. + optional int64 bt_bytes_rx = 9; + // Total Bytes transmitted on bluetooth connections. + optional int64 bt_bytes_tx = 10; + }; + optional GlobalNetwork global_network = 12; + + message GlobalWifi { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + // The amount of time that wifi has been on while the device was running on + // battery. + optional int64 on_duration_ms = 1; + // The amount of time that wifi has been on and the driver has been in the + // running state while the device was running on battery. + optional int64 running_duration_ms = 2; } - // Battery Saver mode for the entire battery level step. MIXED is used - // if there were multiple states for this step. - optional PowerSaveMode power_save_mode = 4; + optional GlobalWifi global_wifi = 13; - // Indicates status in idle mode. - enum IdleMode { - IM_MIXED = 0; - IM_ON = 2; - IM_OFF = 3; + // Kernel wakelock metrics are only recorded when the device is unplugged + // *and* the screen is off. + message KernelWakelock { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + optional string name = 1; + // Kernel wakelock stats aren't apportioned across all kernel wakelocks (as + // app wakelocks stats are). + optional TimerProto total = 2; + // The kernel doesn't have the data to enable printing out current and max + // durations. + }; + repeated KernelWakelock kernel_wakelock = 14; + + message Misc { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int64 screen_on_duration_ms = 1; + optional int64 phone_on_duration_ms = 2; + optional int64 full_wakelock_total_duration_ms = 3; + // The total elapsed time that a partial wakelock was held. This duration + // does not double count wakelocks held at the same time. + optional int64 partial_wakelock_total_duration_ms = 4; + optional int64 mobile_radio_active_duration_ms = 5; + // The time that is the difference between the mobile radio time we saw + // based on the elapsed timestamp when going down vs. the given time stamp + // from the radio. + optional int64 mobile_radio_active_adjusted_time_ms = 6; + optional int32 mobile_radio_active_count = 7; + // The amount of time that the mobile network has been active (in a high + // power state) but not being able to blame on an app. + optional int32 mobile_radio_active_unknown_duration_ms = 8; + // Total amount of time the device was in the interactive state. + optional int64 interactive_duration_ms = 9; + optional int64 battery_saver_mode_enabled_duration_ms = 10; + optional int32 num_connectivity_changes = 11; + // Amount of time the device was in deep Doze. + optional int64 deep_doze_enabled_duration_ms = 12; + // How many times the device went into deep Doze mode. + optional int32 deep_doze_count = 13; + // Amount of time the device was idling in deep Doze. Idling time + // encompasses "doze" time and the maintenance windows that allow apps to + // operate. + optional int64 deep_doze_idling_duration_ms = 14; + // How many times the device idling for deep Doze mode. + optional int32 deep_doze_idling_count = 15; + optional int64 longest_deep_doze_duration_ms = 16; + // Amount of time the device was in Doze Light. + optional int64 light_doze_enabled_duration_ms = 17; + // How many times the device went into Doze Light mode. + optional int32 light_doze_count = 18; + // Amount of time the device was idling in Doze Light. Idling time + // encompasses "doze" time and the maintenance windows that allow apps to + // operate. + optional int64 light_doze_idling_duration_ms = 19; + // How many times the device idling for Doze Light mode. + optional int32 light_doze_idling_count = 20; + optional int64 longest_light_doze_duration_ms = 21; } - // Doze mode for the entire battery level step. MIXED is used if there were - // multiple states for this step. - optional IdleMode idle_mode = 5; - }; - // Battery level steps when the device was charging. - repeated BatteryLevelStep charge_step = 5; - // Battery level steps when the device was discharging. - repeated BatteryLevelStep discharge_step = 6; + optional Misc misc = 15; - // All CPU frequencies of the device. - repeated int64 cpu_frequency = 7; + message PhoneSignalStrength { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - message DataConnection { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - oneof type { - android.telephony.NetworkTypeEnum name = 1; - // If is_none is not set, then the name is a valid network type. - bool is_none = 2; + optional android.telephony.SignalStrengthEnum name = 1; + optional TimerProto total = 2; + }; + repeated PhoneSignalStrength phone_signal_strength = 16; + + message PowerUseItem { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + enum Sipper { + UNKNOWN_SIPPER = 0; + IDLE = 1; + CELL = 2; + PHONE = 3; + WIFI = 4; + BLUETOOTH = 5; + FLASHLIGHT = 6; + SCREEN = 7; + USER = 8; + UNACCOUNTED = 9; + OVERCOUNTED = 10; + CAMERA = 11; + MEMORY = 12; + AMBIENT_DISPLAY = 13; + }; + optional Sipper name = 1; + // UID, only valid for the USER sipper. + optional int32 uid = 2; + // Estimated power use in mAh. + optional double computed_power_mah = 3; + // Starting in Oreo, Battery Settings has two modes to display the battery + // info. The first is "app usage list". In this mode, items with should_hide + // enabled are hidden. + optional bool should_hide = 4; + // Smeared power from screen usage. Screen usage power is split and smeared + // among apps, based on activity time. + optional double screen_power_mah = 5; + // Smeared power using proportional method. Power usage from hidden sippers + // is smeared to all apps proportionally (except for screen usage). + optional double proportional_smear_mah = 6; + }; + repeated PowerUseItem power_use_item = 17; + + message PowerUseSummary { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + optional double battery_capacity_mah = 1; + optional double computed_power_mah = 2; + // Lower bound of actual power drained. + optional double min_drained_power_mah = 3; + // Upper bound of actual power drained. + optional double max_drained_power_mah = 4; + }; + optional PowerUseSummary power_use_summary = 18; + + message ResourcePowerManager { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + // Either StateName or StateName.VoterName. + optional string name = 1; + optional TimerProto total = 2; + optional TimerProto screen_off = 3; } - optional TimerProto total = 3; - }; - repeated DataConnection data_connection = 8; + repeated ResourcePowerManager resource_power_manager = 19; - optional ControllerActivityProto global_bluetooth_controller = 9; - optional ControllerActivityProto global_modem_controller = 10; - optional ControllerActivityProto global_wifi_controller = 11; + message ScreenBrightness { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - message GlobalNetwork { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - // Total Bytes received on mobile connections. - optional int64 mobile_bytes_rx = 1; - // Total Bytes transmitted on mobile connections. - optional int64 mobile_bytes_tx = 2; - // Total Bytes received on wifi connections. - optional int64 wifi_bytes_rx = 3; - // Total Bytes transmitted on wifi connections. - optional int64 wifi_bytes_tx = 4; - // Total Packets received on mobile connections. - optional int64 mobile_packets_rx = 5; - // Total Packets transmitted on mobile connections. - optional int64 mobile_packets_tx = 6; - // Total Packets received on wifi connections. - optional int64 wifi_packets_rx = 7; - // Total Packets transmitted on wifi connections. - optional int64 wifi_packets_tx = 8; - // Total Bytes received on bluetooth connections. - optional int64 bt_bytes_rx = 9; - // Total Bytes transmitted on bluetooth connections. - optional int64 bt_bytes_tx = 10; - }; - optional GlobalNetwork global_network = 12; - - message GlobalWifi { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - // The amount of time that wifi has been on while the device was running on - // battery. - optional int64 on_duration_ms = 1; - // The amount of time that wifi has been on and the driver has been in the - // running state while the device was running on battery. - optional int64 running_duration_ms = 2; - } - optional GlobalWifi global_wifi = 13; - - // Kernel wakelock metrics are only recorded when the device is unplugged - // *and* the screen is off. - message KernelWakelock { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - optional string name = 1; - // Kernel wakelock stats aren't apportioned across all kernel wakelocks (as - // app wakelocks stats are). - optional TimerProto total = 2; - // The kernel doesn't have the data to enable printing out current and max - // durations. - }; - repeated KernelWakelock kernel_wakelock = 14; - - message Misc { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - optional int64 screen_on_duration_ms = 1; - optional int64 phone_on_duration_ms = 2; - optional int64 full_wakelock_total_duration_ms = 3; - // The total elapsed time that a partial wakelock was held. This duration - // does not double count wakelocks held at the same time. - optional int64 partial_wakelock_total_duration_ms = 4; - optional int64 mobile_radio_active_duration_ms = 5; - // The time that is the difference between the mobile radio time we saw - // based on the elapsed timestamp when going down vs. the given time stamp - // from the radio. - optional int64 mobile_radio_active_adjusted_time_ms = 6; - optional int32 mobile_radio_active_count = 7; - // The amount of time that the mobile network has been active (in a high - // power state) but not being able to blame on an app. - optional int32 mobile_radio_active_unknown_duration_ms = 8; - // Total amount of time the device was in the interactive state. - optional int64 interactive_duration_ms = 9; - optional int64 battery_saver_mode_enabled_duration_ms = 10; - optional int32 num_connectivity_changes = 11; - // Amount of time the device was in deep Doze. - optional int64 deep_doze_enabled_duration_ms = 12; - // How many times the device went into deep Doze mode. - optional int32 deep_doze_count = 13; - // Amount of time the device was idling in deep Doze. Idling time - // encompasses "doze" time and the maintenance windows that allow apps to - // operate. - optional int64 deep_doze_idling_duration_ms = 14; - // How many times the device idling for deep Doze mode. - optional int32 deep_doze_idling_count = 15; - optional int64 longest_deep_doze_duration_ms = 16; - // Amount of time the device was in Doze Light. - optional int64 light_doze_enabled_duration_ms = 17; - // How many times the device went into Doze Light mode. - optional int32 light_doze_count = 18; - // Amount of time the device was idling in Doze Light. Idling time - // encompasses "doze" time and the maintenance windows that allow apps to - // operate. - optional int64 light_doze_idling_duration_ms = 19; - // How many times the device idling for Doze Light mode. - optional int32 light_doze_idling_count = 20; - optional int64 longest_light_doze_duration_ms = 21; - } - optional Misc misc = 15; - - message PhoneSignalStrength { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - optional android.telephony.SignalStrengthEnum name = 1; - optional TimerProto total = 2; - }; - repeated PhoneSignalStrength phone_signal_strength = 16; - - message PowerUseItem { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - enum Sipper { - UNKNOWN_SIPPER = 0; - IDLE = 1; - CELL = 2; - PHONE = 3; - WIFI = 4; - BLUETOOTH = 5; - FLASHLIGHT = 6; - SCREEN = 7; - USER = 8; - UNACCOUNTED = 9; - OVERCOUNTED = 10; - CAMERA = 11; - MEMORY = 12; - AMBIENT_DISPLAY = 13; + enum Name { + DARK = 0; // Not screen-off. + DIM = 1; + MEDIUM = 2; + LIGHT = 3; + BRIGHT = 4; + }; + optional Name name = 1; + optional TimerProto total = 2; }; - optional Sipper name = 1; - // UID, only valid for the USER sipper. - optional int32 uid = 2; - // Estimated power use in mAh. - optional double computed_power_mah = 3; - // Starting in Oreo, Battery Settings has two modes to display the battery - // info. The first is "app usage list". In this mode, items with should_hide - // enabled are hidden. - optional bool should_hide = 4; - // Smeared power from screen usage. Screen usage power is split and smeared - // among apps, based on activity time. - optional double screen_power_mah = 5; - // Smeared power using proportional method. Power usage from hidden sippers - // is smeared to all apps proportionally (except for screen usage). - optional double proportional_smear_mah = 6; - }; - repeated PowerUseItem power_use_item = 17; + repeated ScreenBrightness screen_brightness = 20; - message PowerUseSummary { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + // Duration and number of times trying to acquire a signal + optional TimerProto signal_scanning = 21; - optional double battery_capacity_mah = 1; - optional double computed_power_mah = 2; - // Lower bound of actual power drained. - optional double min_drained_power_mah = 3; - // Upper bound of actual power drained. - optional double max_drained_power_mah = 4; - }; - optional PowerUseSummary power_use_summary = 18; + message WakeupReason { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - message ResourcePowerManager { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - // Either StateName or StateName.VoterName. - optional string name = 1; - optional TimerProto total = 2; - optional TimerProto screen_off = 3; - } - repeated ResourcePowerManager resource_power_manager = 19; - - message ScreenBrightness { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - enum Name { - DARK = 0; // Not screen-off. - DIM = 1; - MEDIUM = 2; - LIGHT = 3; - BRIGHT = 4; + optional string name = 1; + optional TimerProto total = 2; }; - optional Name name = 1; - optional TimerProto total = 2; - }; - repeated ScreenBrightness screen_brightness = 20; + repeated WakeupReason wakeup_reason = 22; - // Duration and number of times trying to acquire a signal - optional TimerProto signal_scanning = 21; + message WifiMulticastWakelockTotal { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - message WakeupReason { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + optional int64 duration_ms = 1; + optional int32 count = 2; + } + optional WifiMulticastWakelockTotal wifi_multicast_wakelock_total = 23; - optional string name = 1; - optional TimerProto total = 2; - }; - repeated WakeupReason wakeup_reason = 22; + message WifiSignalStrength { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - message WifiMulticastWakelockTotal { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - optional int64 duration_ms = 1; - optional int32 count = 2; - } - optional WifiMulticastWakelockTotal wifi_multicast_wakelock_total = 23; - - message WifiSignalStrength { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - enum Name { - NONE = 0; - POOR = 1; - MODERATE = 2; - GOOD = 3; - GREAT = 4; + enum Name { + NONE = 0; + POOR = 1; + MODERATE = 2; + GOOD = 3; + GREAT = 4; + }; + optional Name name = 1; + optional TimerProto total = 2; }; - optional Name name = 1; - optional TimerProto total = 2; - }; - repeated WifiSignalStrength wifi_signal_strength = 24; + repeated WifiSignalStrength wifi_signal_strength = 24; - message WifiState { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + message WifiState { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - enum Name { - OFF = 0; - OFF_SCANNING = 1; - ON_NO_NETWORKS = 2; - ON_DISCONNECTED = 3; - ON_CONNECTED_STA = 4; - ON_CONNECTED_P2P = 5; - ON_CONNECTED_STA_P2P = 6; - SOFT_AP = 7; + enum Name { + OFF = 0; + OFF_SCANNING = 1; + ON_NO_NETWORKS = 2; + ON_DISCONNECTED = 3; + ON_CONNECTED_STA = 4; + ON_CONNECTED_P2P = 5; + ON_CONNECTED_STA_P2P = 6; + SOFT_AP = 7; + }; + optional Name name = 1; + optional TimerProto total = 2; }; - optional Name name = 1; - optional TimerProto total = 2; - }; - repeated WifiState wifi_state = 25; + repeated WifiState wifi_state = 25; - message WifiSupplicantState { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + message WifiSupplicantState { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - enum Name { - INVALID = 0; - DISCONNECTED = 1; - INTERFACE_DISABLED = 2; - INACTIVE = 3; - SCANNING = 4; - AUTHENTICATING = 5; - ASSOCIATING = 6; - ASSOCIATED = 7; - FOUR_WAY_HANDSHAKE = 8; - GROUP_HANDSHAKE = 9; - COMPLETED = 10; - DORMANT = 11; - UNINITIALIZED = 12; + enum Name { + INVALID = 0; + DISCONNECTED = 1; + INTERFACE_DISABLED = 2; + INACTIVE = 3; + SCANNING = 4; + AUTHENTICATING = 5; + ASSOCIATING = 6; + ASSOCIATED = 7; + FOUR_WAY_HANDSHAKE = 8; + GROUP_HANDSHAKE = 9; + COMPLETED = 10; + DORMANT = 11; + UNINITIALIZED = 12; + }; + optional Name name = 1; + optional TimerProto total = 2; }; - optional Name name = 1; - optional TimerProto total = 2; - }; - repeated WifiSupplicantState wifi_supplicant_state = 26; + repeated WifiSupplicantState wifi_supplicant_state = 26; } message TimerProto { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + option (android.msg_privacy).dest = DEST_AUTOMATIC; - // This may be an apportioned time. - optional int64 duration_ms = 1; - optional int64 count = 2; - // The max duration if it is being tracked. Not all Timer subclasses - // track the max duration. - optional int64 max_duration_ms = 3; - // The current time the timer has been active, if it is being tracked. - // Not all Timer subclasses track the current duration. - optional int64 current_duration_ms = 4; - // The total cumulative duration (i.e. sum of past durations) that this timer - // has been on since reset. This may differ from duration_ms since, depending - // on the Timer, getTotalTimeLocked may represent the total 'blamed' or - // 'pooled' time, rather than the actual time. By contrast, total_duration_ms - // always gives the actual total time. Not all Timer subclasses track the - // total duration. - optional int64 total_duration_ms = 5; + // This may be an apportioned time. + optional int64 duration_ms = 1; + optional int64 count = 2; + // The max duration if it is being tracked. Not all Timer subclasses + // track the max duration. + optional int64 max_duration_ms = 3; + // The current time the timer has been active, if it is being tracked. + // Not all Timer subclasses track the current duration. + optional int64 current_duration_ms = 4; + // The total cumulative duration (i.e. sum of past durations) that this timer + // has been on since reset. This may differ from duration_ms since, depending + // on the Timer, getTotalTimeLocked may represent the total 'blamed' or + // 'pooled' time, rather than the actual time. By contrast, total_duration_ms + // always gives the actual total time. Not all Timer subclasses track the + // total duration. + optional int64 total_duration_ms = 5; } message UidProto { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - // Combination of app ID and user ID. - optional int32 uid = 1; - - // The statistics associated with a particular package. - message Package { option (android.msg_privacy).dest = DEST_AUTOMATIC; - optional string name = 1; + // Combination of app ID and user ID. + optional int32 uid = 1; - message Service { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + // The statistics associated with a particular package. + message Package { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - optional string name = 1; - // Time spent started. - optional int64 start_duration_ms = 2; - optional int32 start_count = 3; - optional int32 launch_count = 4; + optional string name = 1; + + message Service { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + optional string name = 1; + // Time spent started. + optional int64 start_duration_ms = 2; + optional int32 start_count = 3; + optional int32 launch_count = 4; + } + repeated Service services = 2; } - repeated Service services = 2; - } - repeated Package packages = 2; + repeated Package packages = 2; - optional ControllerActivityProto bluetooth_controller = 3; - optional ControllerActivityProto modem_controller = 4; - optional ControllerActivityProto wifi_controller = 5; + optional ControllerActivityProto bluetooth_controller = 3; + optional ControllerActivityProto modem_controller = 4; + optional ControllerActivityProto wifi_controller = 5; - // Bluetooth misc data. - message BluetoothMisc { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + // Bluetooth misc data. + message BluetoothMisc { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - // Duration spent BLE scanning blamed on this App (i.e. apportioned to this - // app amongst all apps doing BLE scanning; see explanation of 'apportioned' - // in App's comment). - optional TimerProto apportioned_ble_scan = 1; - // Background times aren't apportioned. - optional TimerProto background_ble_scan = 2; - // Running unoptimized BLE scanning, as defined by Bluetooth's - // AppScanStats.recordScanStart. As of May 2017, these are unfiltered, - // non-opportunistic, non-first-match scans. Durations are not - // pooled/apportioned. - optional TimerProto unoptimized_ble_scan = 3; - // Running unoptimized BLE scanning when app is in background. Durations are - // not pooled/apportioned. - optional TimerProto background_unoptimized_ble_scan = 4; - // Count of results returned by BLE scanning. - optional int32 ble_scan_result_count = 5; - // Count of results returned by BLE scans when app is in background. - // (Included in ble_scan_result_count.) - optional int32 background_ble_scan_result_count = 6; - } - optional BluetoothMisc bluetooth_misc = 6; - - message Cpu { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - // Total CPU time with processes executing in userspace. Summed up across - // multiple cores. - optional int64 user_duration_ms = 1; - // Total CPU time with processes executing kernel syscalls. Summed up across - // multiple cores. - optional int64 system_duration_ms = 2; - - // CPU time broken down by CPU frequency (go/cpu-battery-metrics). - // - // These are real CPU time measurement from the kernel, so their sum can - // be different from the sum of user_duration_millis and - // system_duration_millis, which are just approximations. Data is not - // tracked when device is charging. - message ByFrequency { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - // Index of the frequency in system.cpu_frequency. It starts from 1, to - // make it easier to analyze. - optional int32 frequency_index = 1; - // CPU time in milliseconds. - optional int64 total_duration_ms = 2; - // Screen-off CPU time in milliseconds. - optional int64 screen_off_duration_ms = 3; + // Duration spent BLE scanning blamed on this App (i.e. apportioned to this + // app amongst all apps doing BLE scanning; see explanation of 'apportioned' + // in App's comment). + optional TimerProto apportioned_ble_scan = 1; + // Background times aren't apportioned. + optional TimerProto background_ble_scan = 2; + // Running unoptimized BLE scanning, as defined by Bluetooth's + // AppScanStats.recordScanStart. As of May 2017, these are unfiltered, + // non-opportunistic, non-first-match scans. Durations are not + // pooled/apportioned. + optional TimerProto unoptimized_ble_scan = 3; + // Running unoptimized BLE scanning when app is in background. Durations are + // not pooled/apportioned. + optional TimerProto background_unoptimized_ble_scan = 4; + // Count of results returned by BLE scanning. + optional int32 ble_scan_result_count = 5; + // Count of results returned by BLE scans when app is in background. + // (Included in ble_scan_result_count.) + optional int32 background_ble_scan_result_count = 6; } - // CPU times accumulated across all process states. - repeated ByFrequency by_frequency = 3; + optional BluetoothMisc bluetooth_misc = 6; - enum ProcessState { - TOP = 0; - FOREGROUND_SERVICE = 1; - FOREGROUND = 2; - BACKGROUND = 3; - TOP_SLEEPING = 4; - HEAVY_WEIGHT = 5; - CACHED = 6; + message Cpu { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + // Total CPU time with processes executing in userspace. Summed up across + // multiple cores. + optional int64 user_duration_ms = 1; + // Total CPU time with processes executing kernel syscalls. Summed up across + // multiple cores. + optional int64 system_duration_ms = 2; + + // CPU time broken down by CPU frequency (go/cpu-battery-metrics). + // + // These are real CPU time measurement from the kernel, so their sum can + // be different from the sum of user_duration_millis and + // system_duration_millis, which are just approximations. Data is not + // tracked when device is charging. + message ByFrequency { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + // Index of the frequency in system.cpu_frequency. It starts from 1, to + // make it easier to analyze. + optional int32 frequency_index = 1; + // CPU time in milliseconds. + optional int64 total_duration_ms = 2; + // Screen-off CPU time in milliseconds. + optional int64 screen_off_duration_ms = 3; + } + // CPU times accumulated across all process states. + repeated ByFrequency by_frequency = 3; + + enum ProcessState { + TOP = 0; + FOREGROUND_SERVICE = 1; + FOREGROUND = 2; + BACKGROUND = 3; + TOP_SLEEPING = 4; + HEAVY_WEIGHT = 5; + CACHED = 6; + } + // CPU times at different process states. + message ByProcessState { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + optional ProcessState process_state = 1; + repeated ByFrequency by_frequency = 2; + } + repeated ByProcessState by_process_state = 4; } - // CPU times at different process states. - message ByProcessState { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + optional Cpu cpu = 7; - optional ProcessState process_state = 1; - repeated ByFrequency by_frequency = 2; + // Duration is pooled/apportioned. + optional TimerProto audio = 8; + // Duration is pooled/apportioned. + optional TimerProto camera = 9; + // Duration is pooled/apportioned. + optional TimerProto flashlight = 10; + // Duration is not pooled/apportioned. + optional TimerProto foreground_activity = 11; + // Duration is not pooled/apportioned. + optional TimerProto foreground_service = 12; + // Duration is not pooled/apportioned. + optional TimerProto vibrator = 13; + // Duration is pooled/apportioned. + optional TimerProto video = 14; + + message Job { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + optional string name = 1; + // Job times aren't apportioned. + optional TimerProto total = 2; + optional TimerProto background = 3; } - repeated ByProcessState by_process_state = 4; - } - optional Cpu cpu = 7; + repeated Job jobs = 15; - // Duration is pooled/apportioned. - optional TimerProto audio = 8; - // Duration is pooled/apportioned. - optional TimerProto camera = 9; - // Duration is pooled/apportioned. - optional TimerProto flashlight = 10; - // Duration is not pooled/apportioned. - optional TimerProto foreground_activity = 11; - // Duration is not pooled/apportioned. - optional TimerProto foreground_service = 12; - // Duration is not pooled/apportioned. - optional TimerProto vibrator = 13; - // Duration is pooled/apportioned. - optional TimerProto video = 14; + message JobCompletion { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - message Job { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + // Job name. + optional string name = 1; - optional string name = 1; - // Job times aren't apportioned. - optional TimerProto total = 2; - optional TimerProto background = 3; - } - repeated Job jobs = 15; + message ReasonCount { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - message JobCompletion { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + optional android.app.job.StopReasonEnum name = 1; + optional int32 count = 2; + } + repeated ReasonCount reason_count = 2; + }; + repeated JobCompletion job_completion = 16; - // Job name. - optional string name = 1; + message Network { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - message ReasonCount { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + // Mobile data traffic (total, background + foreground). + optional int64 mobile_bytes_rx = 1; + optional int64 mobile_bytes_tx = 2; + // Wifi data traffic (total, background + foreground). + optional int64 wifi_bytes_rx = 3; + optional int64 wifi_bytes_tx = 4; + // Bluetooth data traffic (total, background + foreground). + optional int64 bt_bytes_rx = 5; + optional int64 bt_bytes_tx = 6; + // In packets (total, background + foreground). + optional int64 mobile_packets_rx = 7; + optional int64 mobile_packets_tx = 8; + optional int64 wifi_packets_rx = 9; + optional int64 wifi_packets_tx = 10; + // Radio active duration. + optional int64 mobile_active_duration_ms = 11; + optional int32 mobile_active_count = 12; + // Number of times the app woke up the mobile radio. + optional int32 mobile_wakeup_count = 13; + // Number of times the app woke up the wifi radio. + optional int32 wifi_wakeup_count = 14; + // Mobile data traffic in the background only, included in total above. + optional int64 mobile_bytes_bg_rx = 15; + optional int64 mobile_bytes_bg_tx = 16; + // Wifi data traffic in the background only, included in total above. + optional int64 wifi_bytes_bg_rx = 17; + optional int64 wifi_bytes_bg_tx = 18; + // In packets (background only, included in total packets above). + optional int64 mobile_packets_bg_rx = 19; + optional int64 mobile_packets_bg_tx = 20; + optional int64 wifi_packets_bg_rx = 21; + optional int64 wifi_packets_bg_tx = 22; + }; + optional Network network = 17; - optional android.app.job.StopReasonEnum name = 1; - optional int32 count = 2; + // TODO: combine System and App messages? + message PowerUseItem { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + // Estimated power use in mAh. + optional double computed_power_mah = 1; + // Starting in Oreo, Battery Settings has two modes to display the battery + // info. The first is "app usage list". In this mode, items with should_hide + // enabled are hidden. + optional bool should_hide = 2; + // Smeared power from screen usage. Screen usage power is split and smeared + // among apps, based on activity time. + optional double screen_power_mah = 3; + // Smeared power using proportional method. Power usage from hidden sippers + // is smeared to all apps proportionally (except for screen usage). + optional double proportional_smear_mah = 4; + }; + optional PowerUseItem power_use_item = 18; + + // Durations are not pooled/apportioned. + message Process { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + optional string name = 1; + // Time spent executing in user code. + optional int64 user_duration_ms = 2; + // Time spent executing in kernel code. + optional int64 system_duration_ms = 3; + // Time the process was running in the foreground. + optional int64 foreground_duration_ms = 4; + // Number of times the process has been started. + optional int32 start_count = 5; + // Number of times the process has had an ANR. + optional int32 anr_count = 6; + // Number of times the process has crashed. + optional int32 crash_count = 7; + }; + repeated Process process = 19; + + message StateTime { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + // All of these (non-deprecated) states are mutually exclusive and can be + // added together to find the total time a uid has had any processes running + // at all. + + // In approximate order or priority (top being what the framework considers + // most important and is thus least likely to kill when resources are + // needed: + // top > foreground service > foreground > background > top sleeping > heavy weight > cache + enum State { + // Time this uid has any processes in the top state. + PROCESS_STATE_TOP = 0; + // Time this uid has any process with a started foreground service, but + // none in the "top" state. + PROCESS_STATE_FOREGROUND_SERVICE = 1; + // Time this uid has any process in an active foreground state, but none in the + // "foreground service" or better state. Persistent and other foreground states go here. + PROCESS_STATE_FOREGROUND = 2; + // Time this uid has any process in an active background state, but none + // in the "foreground" or better state. + PROCESS_STATE_BACKGROUND = 3; + // Time this uid has any process that is top while the device is sleeping, + // but not active for any other reason. We consider is a kind of cached + // process for execution restrictions. Sleeping is mostly screen off, but + // also includes the time when the screen is on but the device has not yet + // been unlocked. + PROCESS_STATE_TOP_SLEEPING = 4; + // Time this uid has any process that is in the background but it has an + // activity marked as "can't save state". This is essentially a cached + // process, though the system will try much harder than normal to avoid + // killing it. + PROCESS_STATE_HEAVY_WEIGHT = 5; + // Time this uid has any processes that are sitting around cached, not in + // one of the other active states. + PROCESS_STATE_CACHED = 6; + } + optional State state = 1; + optional int64 duration_ms = 2; } - repeated ReasonCount reason_count = 2; - }; - repeated JobCompletion job_completion = 16; + repeated StateTime states = 20; - message Network { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + message Sensor { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - // Mobile data traffic (total, background + foreground). - optional int64 mobile_bytes_rx = 1; - optional int64 mobile_bytes_tx = 2; - // Wifi data traffic (total, background + foreground). - optional int64 wifi_bytes_rx = 3; - optional int64 wifi_bytes_tx = 4; - // Bluetooth data traffic (total, background + foreground). - optional int64 bt_bytes_rx = 5; - optional int64 bt_bytes_tx = 6; - // In packets (total, background + foreground). - optional int64 mobile_packets_rx = 7; - optional int64 mobile_packets_tx = 8; - optional int64 wifi_packets_rx = 9; - optional int64 wifi_packets_tx = 10; - // Radio active duration. - optional int64 mobile_active_duration_ms = 11; - optional int32 mobile_active_count = 12; - // Number of times the app woke up the mobile radio. - optional int32 mobile_wakeup_count = 13; - // Number of times the app woke up the wifi radio. - optional int32 wifi_wakeup_count = 14; - // Mobile data traffic in the background only, included in total above. - optional int64 mobile_bytes_bg_rx = 15; - optional int64 mobile_bytes_bg_tx = 16; - // Wifi data traffic in the background only, included in total above. - optional int64 wifi_bytes_bg_rx = 17; - optional int64 wifi_bytes_bg_tx = 18; - // In packets (background only, included in total packets above). - optional int64 mobile_packets_bg_rx = 19; - optional int64 mobile_packets_bg_tx = 20; - optional int64 wifi_packets_bg_rx = 21; - optional int64 wifi_packets_bg_tx = 22; - }; - optional Network network = 17; - - // TODO: combine System and App messages? - message PowerUseItem { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - // Estimated power use in mAh. - optional double computed_power_mah = 1; - // Starting in Oreo, Battery Settings has two modes to display the battery - // info. The first is "app usage list". In this mode, items with should_hide - // enabled are hidden. - optional bool should_hide = 2; - // Smeared power from screen usage. Screen usage power is split and smeared - // among apps, based on activity time. - optional double screen_power_mah = 3; - // Smeared power using proportional method. Power usage from hidden sippers - // is smeared to all apps proportionally (except for screen usage). - optional double proportional_smear_mah = 4; - }; - optional PowerUseItem power_use_item = 18; - - // Durations are not pooled/apportioned. - message Process { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - optional string name = 1; - // Time spent executing in user code. - optional int64 user_duration_ms = 2; - // Time spent executing in kernel code. - optional int64 system_duration_ms = 3; - // Time the process was running in the foreground. - optional int64 foreground_duration_ms = 4; - // Number of times the process has been started. - optional int32 start_count = 5; - // Number of times the process has had an ANR. - optional int32 anr_count = 6; - // Number of times the process has crashed. - optional int32 crash_count = 7; - }; - repeated Process process = 19; - - message StateTime { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - // All of these (non-deprecated) states are mutually exclusive and can be - // added together to find the total time a uid has had any processes running - // at all. - - // In approximate order or priority (top being what the framework considers - // most important and is thus least likely to kill when resources are - // needed: - // top > foreground service > foreground > background > top sleeping > heavy weight > cache - enum State { - // Time this uid has any processes in the top state. - PROCESS_STATE_TOP = 0; - // Time this uid has any process with a started foreground service, but - // none in the "top" state. - PROCESS_STATE_FOREGROUND_SERVICE = 1; - // Time this uid has any process in an active foreground state, but none in the - // "foreground service" or better state. Persistent and other foreground states go here. - PROCESS_STATE_FOREGROUND = 2; - // Time this uid has any process in an active background state, but none - // in the "foreground" or better state. - PROCESS_STATE_BACKGROUND = 3; - // Time this uid has any process that is top while the device is sleeping, - // but not active for any other reason. We consider is a kind of cached - // process for execution restrictions. Sleeping is mostly screen off, but - // also includes the time when the screen is on but the device has not yet - // been unlocked. - PROCESS_STATE_TOP_SLEEPING = 4; - // Time this uid has any process that is in the background but it has an - // activity marked as "can't save state". This is essentially a cached - // process, though the system will try much harder than normal to avoid - // killing it. - PROCESS_STATE_HEAVY_WEIGHT = 5; - // Time this uid has any processes that are sitting around cached, not in - // one of the other active states. - PROCESS_STATE_CACHED = 6; + optional int32 id = 1; + optional TimerProto apportioned = 2; + // Background times aren't apportioned. + optional TimerProto background = 3; } - optional State state = 1; - optional int64 duration_ms = 2; - } - repeated StateTime states = 20; + repeated Sensor sensors = 21; - message Sensor { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + message Sync { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 id = 1; - optional TimerProto apportioned = 2; - // Background times aren't apportioned. - optional TimerProto background = 3; - } - repeated Sensor sensors = 21; + optional string name = 1; + // Sync times aren't apportioned. + optional TimerProto total = 2; + optional TimerProto background = 3; + } + repeated Sync syncs = 22; - message Sync { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + message UserActivity { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - optional string name = 1; - // Sync times aren't apportioned. - optional TimerProto total = 2; - optional TimerProto background = 3; - } - repeated Sync syncs = 22; + optional android.os.PowerManagerProto.UserActivityEvent name = 1; + optional int32 count = 2; + }; + repeated UserActivity user_activity = 23; - message UserActivity { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + // Aggregated wakelock data for an app overall, across all of its wakelocks. + // The Wakelock message holds data about each *individual* wakelock, but it + // cannot be used to ascertain the aggregated time the app spent holding + // wakelocks, since merely summing Wakelock data will either underestimate (in + // the case of wakelock.partial.duration_ms) or overestimate (in the case of + // wakelock.partial.total_duration_ms) the total time, due to overlapping + // wakelocks. AggregatedWakelock, on the other hand, holds overall per-app + // wakelock data. + message AggregatedWakelock { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - optional android.os.PowerManagerProto.UserActivityEvent name = 1; - optional int32 count = 2; - }; - repeated UserActivity user_activity = 23; + // The total duration that the app spent holding partial wakelocks. + // It includes both foreground + background use. + optional int64 partial_duration_ms = 1; + // The total duration that the app spent holding partial wakelocks while the + // app was in the background. Subtracting from partial_duration_ms will + // yield foreground usage. + optional int64 background_partial_duration_ms = 2; + }; + optional AggregatedWakelock aggregated_wakelock = 24; - // Aggregated wakelock data for an app overall, across all of its wakelocks. - // The Wakelock message holds data about each *individual* wakelock, but it - // cannot be used to ascertain the aggregated time the app spent holding - // wakelocks, since merely summing Wakelock data will either underestimate (in - // the case of wakelock.partial.duration_ms) or overestimate (in the case of - // wakelock.partial.total_duration_ms) the total time, due to overlapping - // wakelocks. AggregatedWakelock, on the other hand, holds overall per-app - // wakelock data. - message AggregatedWakelock { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + message Wakelock { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - // The total duration that the app spent holding partial wakelocks. - // It includes both foreground + background use. - optional int64 partial_duration_ms = 1; - // The total duration that the app spent holding partial wakelocks while the - // app was in the background. Subtracting from partial_duration_ms will - // yield foreground usage. - optional int64 background_partial_duration_ms = 2; - }; - optional AggregatedWakelock aggregated_wakelock = 24; + optional string name = 1; - message Wakelock { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + // Full wakelocks keep the screen on. Based on + // PowerManager.SCREEN_BRIGHT_WAKE_LOCK (deprecated in API 13) and + // PowerManager.SCREEN_DIM_WAKE_LOCK (deprecated in API 17). Current, max, + // and total durations are not tracked for full wakelocks. + optional TimerProto full = 2; - optional string name = 1; + // Partial wakelocks ensure the CPU is running while allowing the screen + // to turn off. Based on PowerManager.PARTIAL_WAKE_LOCK. + // Partial wakelock metrics are only recorded when the device is unplugged + // *and* the screen is off. Current, max, and total durations are tracked + // for partial wakelocks. + optional TimerProto partial = 3; - // Full wakelocks keep the screen on. Based on - // PowerManager.SCREEN_BRIGHT_WAKE_LOCK (deprecated in API 13) and - // PowerManager.SCREEN_DIM_WAKE_LOCK (deprecated in API 17). Current, max, - // and total durations are not tracked for full wakelocks. - optional TimerProto full = 2; + // These fields are for tracking partial wakelocks (see above), but only + // the time the wakelock was held while the app was in a background state. + // Since all background tracking is 'actual', not 'apportioned', + // background_partial.duration_ms is identical to + // background_partial.total_duration_ms. + optional TimerProto background_partial = 4; - // Partial wakelocks ensure the CPU is running while allowing the screen - // to turn off. Based on PowerManager.PARTIAL_WAKE_LOCK. - // Partial wakelock metrics are only recorded when the device is unplugged - // *and* the screen is off. Current, max, and total durations are tracked - // for partial wakelocks. - optional TimerProto partial = 3; + // Window wakelocks keep the screen on. Current, max, and total durations + // are not tracked for window wakelocks. + optional TimerProto window = 5; + }; + repeated Wakelock wakelocks = 25; - // These fields are for tracking partial wakelocks (see above), but only - // the time the wakelock was held while the app was in a background state. - // Since all background tracking is 'actual', not 'apportioned', - // background_partial.duration_ms is identical to - // background_partial.total_duration_ms. - optional TimerProto background_partial = 4; + message WakeupAlarm { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - // Window wakelocks keep the screen on. Current, max, and total durations - // are not tracked for window wakelocks. - optional TimerProto window = 5; - }; - repeated Wakelock wakelocks = 25; + // Wakeup alarm name. + optional string name = 1; + // Only includes counts when screen-off (& on battery). + optional int32 count = 2; + } + repeated WakeupAlarm wakeup_alarm = 26; - message WakeupAlarm { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + message Wifi { + option (android.msg_privacy).dest = DEST_AUTOMATIC; - // Wakeup alarm name. - optional string name = 1; - // Only includes counts when screen-off (& on battery). - optional int32 count = 2; - } - repeated WakeupAlarm wakeup_alarm = 26; + // Duration holding Wifi-lock. This time is apportioned. + optional int64 full_wifi_lock_duration_ms = 1; + // Duration running Wifi. This time is apportioned. + optional int64 running_duration_ms = 2; + // Duration performing Wifi-scan blamed on this App (i.e. apportioned to + // this app amongst all apps doing Wifi-scanning; see explanation of + // 'apportioned' in App's comment). + optional TimerProto apportioned_scan = 3; + // Scans performed when app is in background. (Included in + // apportioned_scan). This value is not apportioned. Subtracting + // background_scan.total_duration_ms from apportioned_scan.total_duration_ms + // will yield foreground usage. + optional TimerProto background_scan = 4; + }; + optional Wifi wifi = 27; - message Wifi { - option (android.msg_privacy).dest = DEST_AUTOMATIC; - - // Duration holding Wifi-lock. This time is apportioned. - optional int64 full_wifi_lock_duration_ms = 1; - // Duration running Wifi. This time is apportioned. - optional int64 running_duration_ms = 2; - // Duration performing Wifi-scan blamed on this App (i.e. apportioned to - // this app amongst all apps doing Wifi-scanning; see explanation of - // 'apportioned' in App's comment). - optional TimerProto apportioned_scan = 3; - // Scans performed when app is in background. (Included in - // apportioned_scan). This value is not apportioned. Subtracting - // background_scan.total_duration_ms from apportioned_scan.total_duration_ms - // will yield foreground usage. - optional TimerProto background_scan = 4; - }; - optional Wifi wifi = 27; - - // WiFi Multicast Wakelock - // This timer tracks the duration and count for the app to request the - // wakelock for wifi multicast traffic. - // This wakelock disables the filtering of multicast packets to reach the host - // processor, and results in a power penalty. - // It is useful to monitor the applications resulting in that - optional TimerProto wifi_multicast_wakelock = 28; + // WiFi Multicast Wakelock + // This timer tracks the duration and count for the app to request the + // wakelock for wifi multicast traffic. + // This wakelock disables the filtering of multicast packets to reach the host + // processor, and results in a power penalty. + // It is useful to monitor the applications resulting in that + optional TimerProto wifi_multicast_wakelock = 28; } diff --git a/core/proto/android/server/activitymanagerservice.proto b/core/proto/android/server/activitymanagerservice.proto index 0c617fff6b97b..418e15be8504c 100644 --- a/core/proto/android/server/activitymanagerservice.proto +++ b/core/proto/android/server/activitymanagerservice.proto @@ -38,995 +38,995 @@ import "frameworks/base/libs/incident/proto/android/privacy.proto"; option java_multiple_files = true; message ActivityManagerServiceProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional ActivityManagerServiceDumpActivitiesProto activities = 1; + optional ActivityManagerServiceDumpActivitiesProto activities = 1; - optional ActivityManagerServiceDumpBroadcastsProto broadcasts = 2; + optional ActivityManagerServiceDumpBroadcastsProto broadcasts = 2; - optional ActivityManagerServiceDumpServicesProto services = 3; + optional ActivityManagerServiceDumpServicesProto services = 3; - optional ActivityManagerServiceDumpProcessesProto processes = 4; + optional ActivityManagerServiceDumpProcessesProto processes = 4; } // "dumpsys activity --proto activities" message ActivityManagerServiceDumpActivitiesProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional ActivityStackSupervisorProto activity_stack_supervisor = 1; + optional ActivityStackSupervisorProto activity_stack_supervisor = 1; } message ActivityStackSupervisorProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1; - repeated ActivityDisplayProto displays = 2; - optional KeyguardControllerProto keyguard_controller = 3; - optional int32 focused_stack_id = 4; - optional .com.android.server.wm.IdentifierProto resumed_activity = 5; - // Whether or not the home activity is the recents activity. This is needed for the CTS tests to - // know what activity types to check for when invoking splitscreen multi-window. - optional bool is_home_recents_component = 6; + optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1; + repeated ActivityDisplayProto displays = 2; + optional KeyguardControllerProto keyguard_controller = 3; + optional int32 focused_stack_id = 4; + optional .com.android.server.wm.IdentifierProto resumed_activity = 5; + // Whether or not the home activity is the recents activity. This is needed for the CTS tests to + // know what activity types to check for when invoking splitscreen multi-window. + optional bool is_home_recents_component = 6; } /* represents ActivityStackSupervisor.ActivityDisplay */ message ActivityDisplayProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1; - optional int32 id = 2; - repeated ActivityStackProto stacks = 3; + optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1; + optional int32 id = 2; + repeated ActivityStackProto stacks = 3; } message ActivityStackProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1; - optional int32 id = 2; - repeated TaskRecordProto tasks = 3; - optional .com.android.server.wm.IdentifierProto resumed_activity = 4; - optional int32 display_id = 5; - optional bool fullscreen = 6; - optional .android.graphics.RectProto bounds = 7; + optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1; + optional int32 id = 2; + repeated TaskRecordProto tasks = 3; + optional .com.android.server.wm.IdentifierProto resumed_activity = 4; + optional int32 display_id = 5; + optional bool fullscreen = 6; + optional .android.graphics.RectProto bounds = 7; } message TaskRecordProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1; - optional int32 id = 2; - repeated ActivityRecordProto activities = 3; - optional int32 stack_id = 4; - optional .android.graphics.RectProto last_non_fullscreen_bounds = 5; - optional string real_activity = 6; - optional string orig_activity = 7; - optional int32 activity_type = 8; - optional int32 resize_mode = 9; - optional bool fullscreen = 10; - optional .android.graphics.RectProto bounds = 11; - optional int32 min_width = 12; - optional int32 min_height = 13; + optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1; + optional int32 id = 2; + repeated ActivityRecordProto activities = 3; + optional int32 stack_id = 4; + optional .android.graphics.RectProto last_non_fullscreen_bounds = 5; + optional string real_activity = 6; + optional string orig_activity = 7; + optional int32 activity_type = 8; + optional int32 resize_mode = 9; + optional bool fullscreen = 10; + optional .android.graphics.RectProto bounds = 11; + optional int32 min_width = 12; + optional int32 min_height = 13; } message ActivityRecordProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1; - optional .com.android.server.wm.IdentifierProto identifier = 2; - optional string state = 3; - optional bool visible = 4; - optional bool front_of_task = 5; - optional int32 proc_id = 6; + optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1; + optional .com.android.server.wm.IdentifierProto identifier = 2; + optional string state = 3; + optional bool visible = 4; + optional bool front_of_task = 5; + optional int32 proc_id = 6; } message KeyguardControllerProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional bool keyguard_showing = 1; - optional bool keyguard_occluded = 2; + optional bool keyguard_showing = 1; + optional bool keyguard_occluded = 2; } // "dumpsys activity --proto broadcasts" message ActivityManagerServiceDumpBroadcastsProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - repeated ReceiverListProto receiver_list = 1; - - optional .com.android.server.IntentResolverProto receiver_resolver = 2; - - repeated BroadcastQueueProto broadcast_queue = 3; - - repeated StickyBroadcastProto sticky_broadcasts = 4; - - message MainHandler { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional string handler = 1; - optional .android.os.LooperProto looper = 2; - } - optional MainHandler handler = 5; + repeated ReceiverListProto receiver_list = 1; + + optional .com.android.server.IntentResolverProto receiver_resolver = 2; + + repeated BroadcastQueueProto broadcast_queue = 3; + + repeated StickyBroadcastProto sticky_broadcasts = 4; + + message MainHandler { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional string handler = 1; + optional .android.os.LooperProto looper = 2; + } + optional MainHandler handler = 5; } message ReceiverListProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional ProcessRecordProto app = 1; - optional int32 pid = 2; - optional int32 uid = 3; - optional int32 user = 4; - optional BroadcastRecordProto current = 5; - optional bool linked_to_death = 6; - repeated BroadcastFilterProto filters = 7; - optional string hex_hash = 8; // used to find this ReceiverList object in IntentResolver + optional ProcessRecordProto app = 1; + optional int32 pid = 2; + optional int32 uid = 3; + optional int32 user = 4; + optional BroadcastRecordProto current = 5; + optional bool linked_to_death = 6; + repeated BroadcastFilterProto filters = 7; + optional string hex_hash = 8; // used to find this ReceiverList object in IntentResolver } message ProcessRecordProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional int32 pid = 1; - optional string process_name = 2; - optional int32 uid = 3; - optional int32 user_id = 4; - optional int32 app_id = 5; - optional int32 isolated_app_id = 6; - optional bool persistent = 7; -} - -message BroadcastRecordProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional int32 user_id = 1; - optional string intent_action = 2; -} - -message BroadcastFilterProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional .android.content.IntentFilterProto intent_filter = 1; - optional string required_permission = 2; - optional string hex_hash = 3; // used to find the BroadcastFilter object in IntentResolver - optional int32 owning_user_id = 4; -} - -message BroadcastQueueProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional string queue_name = 1; - repeated BroadcastRecordProto parallel_broadcasts = 2; - repeated BroadcastRecordProto ordered_broadcasts = 3; - optional BroadcastRecordProto pending_broadcast = 4; - repeated BroadcastRecordProto historical_broadcasts = 5; - - message BroadcastSummary { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional .android.content.IntentProto intent = 1; - optional int64 enqueue_clock_time_ms = 2; - optional int64 dispatch_clock_time_ms = 3; - optional int64 finish_clock_time_ms = 4; - } - repeated BroadcastSummary historical_broadcasts_summary = 6; -} - -message MemInfoDumpProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional int64 uptime_duration_ms = 1; - optional int64 elapsed_realtime_ms = 2; - - message ProcessMemory { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional int32 pid = 1; optional string process_name = 2; + optional int32 uid = 3; + optional int32 user_id = 4; + optional int32 app_id = 5; + optional int32 isolated_app_id = 6; + optional bool persistent = 7; +} - message MemoryInfo { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional string name = 1; - // The proportional set size for the heap. - optional int32 total_pss_kb = 2; - // The proportional set size that is swappable for the heap. - optional int32 clean_pss_kb = 3; - // The private dirty pages used by the heap. - optional int32 shared_dirty_kb = 4; - // The shared dirty pages used by the heap. - optional int32 private_dirty_kb = 5; - // The shared clean pages used by the heap. - optional int32 shared_clean_kb = 6; - // The private clean pages used by the heap. - optional int32 private_clean_kb = 7; - oneof dirty_swap { - // The dirty the pages that have been swapped out. - int32 dirty_swap_kb = 8; - // The dirty the pages that have been swapped out, proportional. - int32 dirty_swap_pss_kb = 9; - } - } - message HeapInfo { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional MemoryInfo mem_info = 1; - optional int32 heap_size_kb = 2; - optional int32 heap_alloc_kb = 3; - optional int32 heap_free_kb = 4; - } - optional HeapInfo native_heap = 3; - optional HeapInfo dalvik_heap = 4; - repeated MemoryInfo other_heaps = 5; - optional MemoryInfo unknown_heap = 6; - // Summation of native_heap, dalvik_heap, and other_heaps. - optional HeapInfo total_heap = 7; - - repeated MemoryInfo dalvik_details = 8; - - message AppSummary { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional int32 java_heap_pss_kb = 1; - optional int32 native_heap_pss_kb = 2; - optional int32 code_pss_kb = 3; - optional int32 stack_pss_kb = 4; - optional int32 graphics_pss_kb = 5; - optional int32 private_other_pss_kb = 6; - optional int32 system_pss_kb = 7; - - oneof total_swap { - int32 total_swap_pss = 8; - int32 total_swap_kb = 9; - } - } - optional AppSummary app_summary = 9; - } - repeated ProcessMemory native_processes = 3; - - message AppData { +message BroadcastRecordProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional ProcessMemory process_memory = 1; + optional int32 user_id = 1; + optional string intent_action = 2; +} - message ObjectStats { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; +message BroadcastFilterProto { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 view_instance_count = 1; - optional int32 view_root_instance_count = 2; - optional int32 app_context_instance_count = 3; - optional int32 activity_instance_count = 4; - optional int32 global_asset_count = 5; - optional int32 global_asset_manager_count = 6; - optional int32 local_binder_object_count = 7; - optional int32 proxy_binder_object_count = 8; - optional int64 parcel_memory_kb = 9; - optional int32 parcel_count = 10; - optional int32 binder_object_death_count = 11; - optional int32 open_ssl_socket_count = 12; - optional int32 webview_instance_count = 13; - } - optional ObjectStats objects = 2; + optional .android.content.IntentFilterProto intent_filter = 1; + optional string required_permission = 2; + optional string hex_hash = 3; // used to find the BroadcastFilter object in IntentResolver + optional int32 owning_user_id = 4; +} - message SqlStats { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; +message BroadcastQueueProto { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 memory_used_kb = 1; - optional int32 pagecache_overflow_kb = 2; - optional int32 malloc_size_kb = 3; + optional string queue_name = 1; + repeated BroadcastRecordProto parallel_broadcasts = 2; + repeated BroadcastRecordProto ordered_broadcasts = 3; + optional BroadcastRecordProto pending_broadcast = 4; + repeated BroadcastRecordProto historical_broadcasts = 5; - message Database { + message BroadcastSummary { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional string name = 1; - optional int32 page_size = 2; - optional int32 db_size = 3; - // Number of lookaside slots: - // http://www.sqlite.org/c3ref/c_dbstatus_lookaside_used.html - optional int32 lookaside_b = 4; - // Statement cache stats: hits/misses/cachesize - optional string cache = 5; - } - repeated Database databases = 4; + optional .android.content.IntentProto intent = 1; + optional int64 enqueue_clock_time_ms = 2; + optional int64 dispatch_clock_time_ms = 3; + optional int64 finish_clock_time_ms = 4; } - optional SqlStats sql = 3; + repeated BroadcastSummary historical_broadcasts_summary = 6; +} - optional string asset_allocations = 4; - optional string unreachable_memory = 5; - } - repeated AppData app_processes = 4; - - message MemItem { +message MemInfoDumpProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional string tag = 1; - optional string label = 2; - optional int32 id = 3; - optional bool is_proc = 4; - optional bool has_activities = 5; - optional int64 pss_kb = 6; - optional int64 swap_pss_kb = 7; - repeated MemItem sub_items = 8; - } - repeated MemItem total_pss_by_process = 5; - repeated MemItem total_pss_by_oom_adjustment = 6; - repeated MemItem total_pss_by_category = 7; + optional int64 uptime_duration_ms = 1; + optional int64 elapsed_realtime_ms = 2; - optional int64 total_ram_kb = 8; - optional .com.android.internal.app.procstats.ProcessStatsProto.MemoryFactor status = 9; - // Total free RAM = cached_pss_kb + cached_kernel_kb + free_kb. - optional int64 cached_pss_kb = 10; - optional int64 cached_kernel_kb = 11; - optional int64 free_kb = 12; - // Total used RAM = used_pss_kb + used_kernel_kb. - optional int64 used_pss_kb = 13; - optional int64 used_kernel_kb = 14; + message ProcessMemory { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int64 lost_ram_kb = 15; + optional int32 pid = 1; + optional string process_name = 2; - optional int64 total_zram_kb = 16; - optional int64 zram_physical_used_in_swap_kb = 17; - optional int64 total_zram_swap_kb = 18; + message MemoryInfo { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int64 ksm_sharing_kb = 19; - optional int64 ksm_shared_kb = 20; - optional int64 ksm_unshared_kb = 21; - optional int64 ksm_volatile_kb = 22; + optional string name = 1; + // The proportional set size for the heap. + optional int32 total_pss_kb = 2; + // The proportional set size that is swappable for the heap. + optional int32 clean_pss_kb = 3; + // The private dirty pages used by the heap. + optional int32 shared_dirty_kb = 4; + // The shared dirty pages used by the heap. + optional int32 private_dirty_kb = 5; + // The shared clean pages used by the heap. + optional int32 shared_clean_kb = 6; + // The private clean pages used by the heap. + optional int32 private_clean_kb = 7; + oneof dirty_swap { + // The dirty the pages that have been swapped out. + int32 dirty_swap_kb = 8; + // The dirty the pages that have been swapped out, proportional. + int32 dirty_swap_pss_kb = 9; + } + } + message HeapInfo { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - // The approximate per-application memory class of the current device. This - // gives developers an idea of how hard a memory limit you should impose on - // their application to let the overall system work best. The value is in - // megabytes; the baseline Android memory class is 16 (which happens to be the - // Java heap limit of those devices); some devices with more memory may have - // 24 or even higher numbers. - optional int32 tuning_mb = 23; - // The approximate per-application memory class of the current device when an - // application is running with a large heap. This is the space available for - // memory-intensive applications; most applications should not need this - // amount of memory, and should instead stay with the tuning_mb limit. The - // value is in megabytes. This may be the same size as tuning_mb on memory - // constrained devices, or it may be significantly larger on devices with a - // large amount of available RAM. - // This is the size of the application's Dalvik heap if it has specified - // 'android:largeHeap="true"' in its manifest. - optional int32 tuning_large_mb = 24; + optional MemoryInfo mem_info = 1; + optional int32 heap_size_kb = 2; + optional int32 heap_alloc_kb = 3; + optional int32 heap_free_kb = 4; + } + optional HeapInfo native_heap = 3; + optional HeapInfo dalvik_heap = 4; + repeated MemoryInfo other_heaps = 5; + optional MemoryInfo unknown_heap = 6; + // Summation of native_heap, dalvik_heap, and other_heaps. + optional HeapInfo total_heap = 7; - optional int64 oom_kb = 25; + repeated MemoryInfo dalvik_details = 8; - // The maximum pss size in kb that we consider a process acceptable to restore - // from its cached state for running in the background when RAM is low. - optional int64 restore_limit_kb = 26; + message AppSummary { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional bool is_low_ram_device = 27; - optional bool is_high_end_gfx = 28; + optional int32 java_heap_pss_kb = 1; + optional int32 native_heap_pss_kb = 2; + optional int32 code_pss_kb = 3; + optional int32 stack_pss_kb = 4; + optional int32 graphics_pss_kb = 5; + optional int32 private_other_pss_kb = 6; + optional int32 system_pss_kb = 7; + + oneof total_swap { + int32 total_swap_pss = 8; + int32 total_swap_kb = 9; + } + } + optional AppSummary app_summary = 9; + } + repeated ProcessMemory native_processes = 3; + + message AppData { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional ProcessMemory process_memory = 1; + + message ObjectStats { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int32 view_instance_count = 1; + optional int32 view_root_instance_count = 2; + optional int32 app_context_instance_count = 3; + optional int32 activity_instance_count = 4; + optional int32 global_asset_count = 5; + optional int32 global_asset_manager_count = 6; + optional int32 local_binder_object_count = 7; + optional int32 proxy_binder_object_count = 8; + optional int64 parcel_memory_kb = 9; + optional int32 parcel_count = 10; + optional int32 binder_object_death_count = 11; + optional int32 open_ssl_socket_count = 12; + optional int32 webview_instance_count = 13; + } + optional ObjectStats objects = 2; + + message SqlStats { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int32 memory_used_kb = 1; + optional int32 pagecache_overflow_kb = 2; + optional int32 malloc_size_kb = 3; + + message Database { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional string name = 1; + optional int32 page_size = 2; + optional int32 db_size = 3; + // Number of lookaside slots: + // http://www.sqlite.org/c3ref/c_dbstatus_lookaside_used.html + optional int32 lookaside_b = 4; + // Statement cache stats: hits/misses/cachesize + optional string cache = 5; + } + repeated Database databases = 4; + } + optional SqlStats sql = 3; + + optional string asset_allocations = 4; + optional string unreachable_memory = 5; + } + repeated AppData app_processes = 4; + + message MemItem { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional string tag = 1; + optional string label = 2; + optional int32 id = 3; + optional bool is_proc = 4; + optional bool has_activities = 5; + optional int64 pss_kb = 6; + optional int64 swap_pss_kb = 7; + repeated MemItem sub_items = 8; + } + repeated MemItem total_pss_by_process = 5; + repeated MemItem total_pss_by_oom_adjustment = 6; + repeated MemItem total_pss_by_category = 7; + + optional int64 total_ram_kb = 8; + optional .com.android.internal.app.procstats.ProcessStatsProto.MemoryFactor status = 9; + // Total free RAM = cached_pss_kb + cached_kernel_kb + free_kb. + optional int64 cached_pss_kb = 10; + optional int64 cached_kernel_kb = 11; + optional int64 free_kb = 12; + // Total used RAM = used_pss_kb + used_kernel_kb. + optional int64 used_pss_kb = 13; + optional int64 used_kernel_kb = 14; + + optional int64 lost_ram_kb = 15; + + optional int64 total_zram_kb = 16; + optional int64 zram_physical_used_in_swap_kb = 17; + optional int64 total_zram_swap_kb = 18; + + optional int64 ksm_sharing_kb = 19; + optional int64 ksm_shared_kb = 20; + optional int64 ksm_unshared_kb = 21; + optional int64 ksm_volatile_kb = 22; + + // The approximate per-application memory class of the current device. This + // gives developers an idea of how hard a memory limit you should impose on + // their application to let the overall system work best. The value is in + // megabytes; the baseline Android memory class is 16 (which happens to be the + // Java heap limit of those devices); some devices with more memory may have + // 24 or even higher numbers. + optional int32 tuning_mb = 23; + // The approximate per-application memory class of the current device when an + // application is running with a large heap. This is the space available for + // memory-intensive applications; most applications should not need this + // amount of memory, and should instead stay with the tuning_mb limit. The + // value is in megabytes. This may be the same size as tuning_mb on memory + // constrained devices, or it may be significantly larger on devices with a + // large amount of available RAM. + // This is the size of the application's Dalvik heap if it has specified + // 'android:largeHeap="true"' in its manifest. + optional int32 tuning_large_mb = 24; + + optional int64 oom_kb = 25; + + // The maximum pss size in kb that we consider a process acceptable to restore + // from its cached state for running in the background when RAM is low. + optional int64 restore_limit_kb = 26; + + optional bool is_low_ram_device = 27; + optional bool is_high_end_gfx = 28; } message StickyBroadcastProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional int32 user = 1; - - message StickyAction { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional string name = 1; - repeated .android.content.IntentProto intents = 2; - } - repeated StickyAction actions = 2; + optional int32 user = 1; + + message StickyAction { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional string name = 1; + repeated .android.content.IntentProto intents = 2; + } + repeated StickyAction actions = 2; } // "dumpsys activity --proto service" message ActivityManagerServiceDumpServicesProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional ActiveServicesProto active_services = 1; + optional ActiveServicesProto active_services = 1; } message ActiveServicesProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - message ServicesByUser { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 user_id = 1; - repeated ServiceRecordProto service_records = 2; - } - repeated ServicesByUser services_by_users = 1; + message ServicesByUser { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int32 user_id = 1; + repeated ServiceRecordProto service_records = 2; + } + repeated ServicesByUser services_by_users = 1; } // corresponds to ActivityManagerService.GrantUri Java class message GrantUriProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 source_user_id = 1; - optional string uri = 2 [ (.android.privacy).dest = DEST_EXPLICIT ]; + optional int32 source_user_id = 1; + optional string uri = 2 [ (.android.privacy).dest = DEST_EXPLICIT ]; } message NeededUriGrantsProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional string target_package = 1; - optional int32 target_uid = 2; - optional int32 flags = 3; + optional string target_package = 1; + optional int32 target_uid = 2; + optional int32 flags = 3; - repeated GrantUriProto grants = 4; + repeated GrantUriProto grants = 4; } message UriPermissionOwnerProto { - option (.android.msg_privacy).dest = DEST_EXPLICIT; + option (.android.msg_privacy).dest = DEST_EXPLICIT; - optional string owner = 1; - repeated GrantUriProto read_perms = 2; - repeated GrantUriProto write_perms = 3; + optional string owner = 1; + repeated GrantUriProto read_perms = 2; + repeated GrantUriProto write_perms = 3; } message ServiceRecordProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional string short_name = 1; - optional bool is_running = 2; // false if the application service is null - optional int32 pid = 3; - optional .android.content.IntentProto intent = 4; - optional string package_name = 5; - optional string process_name = 6; - optional string permission = 7; - - message AppInfo { - option (.android.msg_privacy).dest = DEST_EXPLICIT; - - optional string base_dir = 1; - optional string res_dir = 2; - optional string data_dir = 3; - } - optional AppInfo appinfo = 8; - optional ProcessRecordProto app = 9; - optional ProcessRecordProto isolated_proc = 10; - optional bool whitelist_manager = 11; - optional bool delayed = 12; - - message Foreground { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 id = 1; - optional .android.app.NotificationProto notification = 2; - } - optional Foreground foreground = 13; + optional string short_name = 1; + optional bool is_running = 2; // false if the application service is null + optional int32 pid = 3; + optional .android.content.IntentProto intent = 4; + optional string package_name = 5; + optional string process_name = 6; + optional string permission = 7; - optional .android.util.Duration create_real_time = 14; - optional .android.util.Duration starting_bg_timeout = 15; - optional .android.util.Duration last_activity_time = 16; - optional .android.util.Duration restart_time = 17; - optional bool created_from_fg = 18; + message AppInfo { + option (.android.msg_privacy).dest = DEST_EXPLICIT; - // variables used to track states related to service start - message Start { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + optional string base_dir = 1; + optional string res_dir = 2; + optional string data_dir = 3; + } + optional AppInfo appinfo = 8; + optional ProcessRecordProto app = 9; + optional ProcessRecordProto isolated_proc = 10; + optional bool whitelist_manager = 11; + optional bool delayed = 12; - optional bool start_requested = 1; - optional bool delayed_stop = 2; - optional bool stop_if_killed = 3; - optional bool call_start = 4; - optional int32 last_start_id = 5; - } - optional Start start = 19; + message Foreground { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - message ExecuteNesting { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + optional int32 id = 1; + optional .android.app.NotificationProto notification = 2; + } + optional Foreground foreground = 13; - optional int32 execute_nesting = 1; - optional bool execute_fg = 2; - optional .android.util.Duration executing_start = 3; - } - optional ExecuteNesting execute = 20; + optional .android.util.Duration create_real_time = 14; + optional .android.util.Duration starting_bg_timeout = 15; + optional .android.util.Duration last_activity_time = 16; + optional .android.util.Duration restart_time = 17; + optional bool created_from_fg = 18; - optional .android.util.Duration destory_time = 21; + // variables used to track states related to service start + message Start { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - message Crash { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + optional bool start_requested = 1; + optional bool delayed_stop = 2; + optional bool stop_if_killed = 3; + optional bool call_start = 4; + optional int32 last_start_id = 5; + } + optional Start start = 19; - optional int32 restart_count = 1; - optional .android.util.Duration restart_delay = 2; - optional .android.util.Duration next_restart_time = 3; - optional int32 crash_count = 4; - } - optional Crash crash = 22; + message ExecuteNesting { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - message StartItem { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + optional int32 execute_nesting = 1; + optional bool execute_fg = 2; + optional .android.util.Duration executing_start = 3; + } + optional ExecuteNesting execute = 20; - optional int32 id = 1; - optional .android.util.Duration duration = 2; - optional int32 delivery_count = 3; - optional int32 done_executing_count = 4; - optional .android.content.IntentProto intent = 5; - optional NeededUriGrantsProto needed_grants = 6; - optional UriPermissionOwnerProto uri_permissions = 7; - } - repeated StartItem delivered_starts = 23; - repeated StartItem pending_starts = 24; + optional .android.util.Duration destory_time = 21; - repeated IntentBindRecordProto bindings = 25; - repeated ConnectionRecordProto connections = 26; + message Crash { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - // Next Tag: 27 + optional int32 restart_count = 1; + optional .android.util.Duration restart_delay = 2; + optional .android.util.Duration next_restart_time = 3; + optional int32 crash_count = 4; + } + optional Crash crash = 22; + + message StartItem { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int32 id = 1; + optional .android.util.Duration duration = 2; + optional int32 delivery_count = 3; + optional int32 done_executing_count = 4; + optional .android.content.IntentProto intent = 5; + optional NeededUriGrantsProto needed_grants = 6; + optional UriPermissionOwnerProto uri_permissions = 7; + } + repeated StartItem delivered_starts = 23; + repeated StartItem pending_starts = 24; + + repeated IntentBindRecordProto bindings = 25; + repeated ConnectionRecordProto connections = 26; + + // Next Tag: 27 } message ConnectionRecordProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - // used to find same record, e.g. AppBindRecord has the hex_hash - optional string hex_hash = 1; // cross reference the object and avoid double logging. - optional int32 user_id = 2; + // used to find same record, e.g. AppBindRecord has the hex_hash + optional string hex_hash = 1; // cross reference the object and avoid double logging. + optional int32 user_id = 2; - enum Flag { - AUTO_CREATE = 0; - DEBUG_UNBIND = 1; - NOT_FG = 2; - IMPORTANT_BG = 3; - ABOVE_CLIENT = 4; - ALLOW_OOM_MANAGEMENT = 5; - WAIVE_PRIORITY = 6; - IMPORTANT = 7; - ADJUST_WITH_ACTIVITY = 8; - FG_SERVICE_WHILE_AWAKE = 9; - FG_SERVICE = 10; - TREAT_LIKE_ACTIVITY = 11; - VISIBLE = 12; - SHOWING_UI = 13; - NOT_VISIBLE = 14; - DEAD = 15; - } - repeated Flag flags = 3; - optional string service_name = 4; + enum Flag { + AUTO_CREATE = 0; + DEBUG_UNBIND = 1; + NOT_FG = 2; + IMPORTANT_BG = 3; + ABOVE_CLIENT = 4; + ALLOW_OOM_MANAGEMENT = 5; + WAIVE_PRIORITY = 6; + IMPORTANT = 7; + ADJUST_WITH_ACTIVITY = 8; + FG_SERVICE_WHILE_AWAKE = 9; + FG_SERVICE = 10; + TREAT_LIKE_ACTIVITY = 11; + VISIBLE = 12; + SHOWING_UI = 13; + NOT_VISIBLE = 14; + DEAD = 15; + } + repeated Flag flags = 3; + optional string service_name = 4; } message AppBindRecordProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional string service_name = 1; - optional string client_proc_name = 2; - repeated string connections = 3; // hex_hash of ConnectionRecordProto + optional string service_name = 1; + optional string client_proc_name = 2; + repeated string connections = 3; // hex_hash of ConnectionRecordProto } message IntentBindRecordProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional .android.content.IntentProto intent = 1; - optional string binder = 2; - optional bool auto_create = 3; // value of BIND_AUTO_CREATE flag. - optional bool requested = 4; - optional bool received = 5; - optional bool has_bound = 6; - optional bool do_rebind = 7; + optional .android.content.IntentProto intent = 1; + optional string binder = 2; + optional bool auto_create = 3; // value of BIND_AUTO_CREATE flag. + optional bool requested = 4; + optional bool received = 5; + optional bool has_bound = 6; + optional bool do_rebind = 7; - repeated AppBindRecordProto apps = 8; + repeated AppBindRecordProto apps = 8; } // TODO: "dumpsys activity --proto processes" message ActivityManagerServiceDumpProcessesProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - repeated ProcessRecordProto procs = 1; - repeated ProcessRecordProto isolated_procs = 2; - repeated ActiveInstrumentationProto active_instrumentations = 3; - repeated UidRecordProto active_uids = 4; - repeated UidRecordProto validate_uids = 5; - - // Process LRU list (sorted by oom_adj) - message LruProcesses { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 size = 1; - optional int32 non_act_at = 2; - optional int32 non_svc_at = 3; - repeated ProcessOomProto list = 4; - } - optional LruProcesses lru_procs = 6; - repeated ProcessRecordProto pids_self_locked = 7; - // Foreground Processes - repeated ImportanceTokenProto important_procs = 8; - // Persisent processes that are starting - repeated ProcessRecordProto persistent_starting_procs = 9; - // Processes that are being removed - repeated ProcessRecordProto removed_procs = 10; - // Processes that are on old until the system is ready - repeated ProcessRecordProto on_hold_procs = 11; - // Processes that are waiting to GC - repeated ProcessToGcProto gc_procs = 12; - optional AppErrorsProto app_errors = 13; - optional UserControllerProto user_controller = 14; - optional ProcessRecordProto home_proc = 15; - optional ProcessRecordProto previous_proc = 16; - optional int64 previous_proc_visible_time_ms = 17; - optional ProcessRecordProto heavy_weight_proc = 18; - optional .android.content.ConfigurationProto global_configuration = 19; - // ActivityStackSupervisorProto dumps these values as well, still here? - // repeated ActivityDisplayProto displays = 20; + repeated ProcessRecordProto procs = 1; + repeated ProcessRecordProto isolated_procs = 2; + repeated ActiveInstrumentationProto active_instrumentations = 3; + repeated UidRecordProto active_uids = 4; + repeated UidRecordProto validate_uids = 5; - optional bool config_will_change = 21; + // Process LRU list (sorted by oom_adj) + message LruProcesses { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - message ScreenCompatPackage { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional string package = 1; - optional int32 mode = 2; - } - repeated ScreenCompatPackage screen_compat_packages = 22; - - message UidObserverRegistrationProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional int32 uid = 1; - optional string package = 2; - repeated .android.app.UidObserverFlag flags = 3; - optional int32 cut_point = 4; // only available when UID_OBSERVER_PROCSTATE is on - - message ProcState { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional int32 uid = 1; - optional int32 state = 2; + optional int32 size = 1; + optional int32 non_act_at = 2; + optional int32 non_svc_at = 3; + repeated ProcessOomProto list = 4; } - repeated ProcState last_proc_states = 5; - } - repeated UidObserverRegistrationProto uid_observers = 23; - repeated int32 device_idle_whitelist = 24; - repeated int32 device_idle_temp_whitelist = 25; + optional LruProcesses lru_procs = 6; + repeated ProcessRecordProto pids_self_locked = 7; + // Foreground Processes + repeated ImportanceTokenProto important_procs = 8; + // Persisent processes that are starting + repeated ProcessRecordProto persistent_starting_procs = 9; + // Processes that are being removed + repeated ProcessRecordProto removed_procs = 10; + // Processes that are on old until the system is ready + repeated ProcessRecordProto on_hold_procs = 11; + // Processes that are waiting to GC + repeated ProcessToGcProto gc_procs = 12; + optional AppErrorsProto app_errors = 13; + optional UserControllerProto user_controller = 14; + optional ProcessRecordProto home_proc = 15; + optional ProcessRecordProto previous_proc = 16; + optional int64 previous_proc_visible_time_ms = 17; + optional ProcessRecordProto heavy_weight_proc = 18; + optional .android.content.ConfigurationProto global_configuration = 19; + // ActivityStackSupervisorProto dumps these values as well, still here? + // repeated ActivityDisplayProto displays = 20; - message PendingTempWhitelist { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + optional bool config_will_change = 21; - optional int32 target_uid = 1; - optional int64 duration_ms = 2; - optional string tag = 3; - } - repeated PendingTempWhitelist pending_temp_whitelist = 26; + message ScreenCompatPackage { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - message SleepStatus { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + optional string package = 1; + optional int32 mode = 2; + } + repeated ScreenCompatPackage screen_compat_packages = 22; - optional .android.os.PowerManagerInternalProto.Wakefulness wakefulness = 1; - repeated string sleep_tokens = 2 [ (.android.privacy).dest = DEST_EXPLICIT ]; - optional bool sleeping = 3; - optional bool shutting_down = 4; - optional bool test_pss_mode = 5; - } - optional SleepStatus sleep_status = 27; - - message Voice { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional string session = 1; - optional .android.os.PowerManagerProto.WakeLock wakelock = 2; - } - optional Voice running_voice = 28; - - optional VrControllerProto vr_controller = 29; - - message DebugApp { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional string debug_app = 1; - optional string orig_debug_app = 2; - optional bool debug_transient = 3; - optional bool orig_wait_for_debugger = 4; - } - optional DebugApp debug = 30; - optional AppTimeTrackerProto current_tracker = 31; - - message MemWatchProcess { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - message Process { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional string name = 1; - - message MemStats { + message UidObserverRegistrationProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional int32 uid = 1; - optional string size = 2; - optional string report_to = 3; - } - repeated MemStats mem_stats = 2; + optional string package = 2; + repeated .android.app.UidObserverFlag flags = 3; + optional int32 cut_point = 4; // only available when UID_OBSERVER_PROCSTATE is on + + message ProcState { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int32 uid = 1; + optional int32 state = 2; + } + repeated ProcState last_proc_states = 5; } - repeated Process procs = 1; + repeated UidObserverRegistrationProto uid_observers = 23; + repeated int32 device_idle_whitelist = 24; + repeated int32 device_idle_temp_whitelist = 25; - message Dump { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + message PendingTempWhitelist { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional string proc_name = 1; - optional string file = 2 [ (.android.privacy).dest = DEST_EXPLICIT ]; - optional int32 pid = 3; - optional int32 uid = 4; + optional int32 target_uid = 1; + optional int64 duration_ms = 2; + optional string tag = 3; } - optional Dump dump = 2; - } - optional MemWatchProcess mem_watch_processes = 32; - optional string track_allocation_app = 33; + repeated PendingTempWhitelist pending_temp_whitelist = 26; - message Profile { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + message SleepStatus { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional string app_name = 1; - optional ProcessRecordProto proc = 2; - optional .android.app.ProfilerInfoProto info = 3; - optional int32 type = 4; - } - optional Profile profile = 34; - optional string native_debugging_app = 35; - optional bool always_finish_activities = 36; + optional .android.os.PowerManagerInternalProto.Wakefulness wakefulness = 1; + repeated string sleep_tokens = 2 [ (.android.privacy).dest = DEST_EXPLICIT ]; + optional bool sleeping = 3; + optional bool shutting_down = 4; + optional bool test_pss_mode = 5; + } + optional SleepStatus sleep_status = 27; - message Controller { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + message Voice { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional string controller = 1; - optional bool is_a_monkey = 2; - } - optional Controller controller = 37; + optional string session = 1; + optional .android.os.PowerManagerProto.WakeLock wakelock = 2; + } + optional Voice running_voice = 28; - optional int32 total_persistent_procs = 38; - optional bool processes_ready = 39; - optional bool system_ready = 40; - optional bool booted = 41; - optional int32 factory_test = 42; - optional bool booting = 43; - optional bool call_finish_booting = 44; - optional bool boot_animation_complete = 45; - optional int64 last_power_check_uptime_ms = 46; - optional .android.os.PowerManagerProto.WakeLock going_to_sleep = 47; - optional .android.os.PowerManagerProto.WakeLock launching_activity = 48; - optional int32 adj_seq = 49; - optional int32 lru_seq = 50; - optional int32 num_non_cached_procs = 51; - optional int32 num_cached_hidden_procs = 52; - optional int32 num_service_procs = 53; - optional int32 new_num_service_procs = 54; - optional bool allow_lower_mem_level = 55; - optional int32 last_memory_level = 56; - optional int32 last_num_processes = 57; - optional .android.util.Duration last_idle_time = 58; - optional int64 low_ram_since_last_idle_ms = 59; + optional VrControllerProto vr_controller = 29; + + message DebugApp { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional string debug_app = 1; + optional string orig_debug_app = 2; + optional bool debug_transient = 3; + optional bool orig_wait_for_debugger = 4; + } + optional DebugApp debug = 30; + optional AppTimeTrackerProto current_tracker = 31; + + message MemWatchProcess { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + message Process { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional string name = 1; + + message MemStats { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int32 uid = 1; + optional string size = 2; + optional string report_to = 3; + } + repeated MemStats mem_stats = 2; + } + repeated Process procs = 1; + + message Dump { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional string proc_name = 1; + optional string file = 2 [ (.android.privacy).dest = DEST_EXPLICIT ]; + optional int32 pid = 3; + optional int32 uid = 4; + } + optional Dump dump = 2; + } + optional MemWatchProcess mem_watch_processes = 32; + optional string track_allocation_app = 33; + + message Profile { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional string app_name = 1; + optional ProcessRecordProto proc = 2; + optional .android.app.ProfilerInfoProto info = 3; + optional int32 type = 4; + } + optional Profile profile = 34; + optional string native_debugging_app = 35; + optional bool always_finish_activities = 36; + + message Controller { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional string controller = 1; + optional bool is_a_monkey = 2; + } + optional Controller controller = 37; + + optional int32 total_persistent_procs = 38; + optional bool processes_ready = 39; + optional bool system_ready = 40; + optional bool booted = 41; + optional int32 factory_test = 42; + optional bool booting = 43; + optional bool call_finish_booting = 44; + optional bool boot_animation_complete = 45; + optional int64 last_power_check_uptime_ms = 46; + optional .android.os.PowerManagerProto.WakeLock going_to_sleep = 47; + optional .android.os.PowerManagerProto.WakeLock launching_activity = 48; + optional int32 adj_seq = 49; + optional int32 lru_seq = 50; + optional int32 num_non_cached_procs = 51; + optional int32 num_cached_hidden_procs = 52; + optional int32 num_service_procs = 53; + optional int32 new_num_service_procs = 54; + optional bool allow_lower_mem_level = 55; + optional int32 last_memory_level = 56; + optional int32 last_num_processes = 57; + optional .android.util.Duration last_idle_time = 58; + optional int64 low_ram_since_last_idle_ms = 59; } message ActiveInstrumentationProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional .android.content.ComponentNameProto class = 1; - optional bool finished = 2; - repeated ProcessRecordProto running_processes = 3; - repeated string target_processes = 4; - optional .android.content.pm.ApplicationInfoProto target_info = 5; - optional string profile_file = 6; - optional string watcher = 7; - optional string ui_automation_connection = 8; - optional string arguments = 9 [ (.android.privacy).dest = DEST_EXPLICIT ]; + optional .android.content.ComponentNameProto class = 1; + optional bool finished = 2; + repeated ProcessRecordProto running_processes = 3; + repeated string target_processes = 4; + optional .android.content.pm.ApplicationInfoProto target_info = 5; + optional string profile_file = 6; + optional string watcher = 7; + optional string ui_automation_connection = 8; + optional string arguments = 9 [ (.android.privacy).dest = DEST_EXPLICIT ]; } // Proto definition of com.android.server.am.UidRecord.java message UidRecordProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional int32 uid = 1; - optional .android.app.ProcessStateEnum current = 2; - optional bool ephemeral = 3; - optional bool fg_services = 4; - optional bool whilelist = 5; - optional .android.util.Duration last_background_time = 6; - optional bool idle = 7; - - enum Change { - CHANGE_GONE = 0; - CHANGE_IDLE = 1; - CHANGE_ACTIVE = 2; - CHANGE_CACHED = 3; - CHANGE_UNCACHED = 4; - } - repeated Change last_reported_changes = 8; - optional int32 num_procs = 9; - - message ProcStateSequence { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int64 cururent = 1; - optional int64 last_network_updated = 2; - optional int64 last_dispatched = 3; - } - optional ProcStateSequence network_state_update = 10; + optional int32 uid = 1; + optional .android.app.ProcessStateEnum current = 2; + optional bool ephemeral = 3; + optional bool fg_services = 4; + optional bool whilelist = 5; + optional .android.util.Duration last_background_time = 6; + optional bool idle = 7; - // Next Tag: 11 + enum Change { + CHANGE_GONE = 0; + CHANGE_IDLE = 1; + CHANGE_ACTIVE = 2; + CHANGE_CACHED = 3; + CHANGE_UNCACHED = 4; + } + repeated Change last_reported_changes = 8; + optional int32 num_procs = 9; + + message ProcStateSequence { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int64 cururent = 1; + optional int64 last_network_updated = 2; + optional int64 last_dispatched = 3; + } + optional ProcStateSequence network_state_update = 10; + + // Next Tag: 11 } // proto of class ImportanceToken in ActivityManagerService message ImportanceTokenProto { - option (.android.msg_privacy).dest = DEST_EXPLICIT; + option (.android.msg_privacy).dest = DEST_EXPLICIT; - optional int32 pid = 1; - optional string token = 2; - optional string reason = 3; + optional int32 pid = 1; + optional string token = 2; + optional string reason = 3; } // proto of class VrController.java message VrControllerProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - enum VrMode { - FLAG_NON_VR_MODE = 0; - FLAG_VR_MODE = 1; - FLAG_PERSISTENT_VR_MODE = 2; - } - repeated VrMode vr_mode = 1; - optional int32 render_thread_id = 2; + enum VrMode { + FLAG_NON_VR_MODE = 0; + FLAG_VR_MODE = 1; + FLAG_PERSISTENT_VR_MODE = 2; + } + repeated VrMode vr_mode = 1; + optional int32 render_thread_id = 2; } message ProcessOomProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional bool persistent = 1; - optional int32 num = 2; - optional string oom_adj = 3; - - // Activity manager's version of Process enum, see ProcessList.java - enum SchedGroup { - SCHED_GROUP_UNKNOWN = -1; - SCHED_GROUP_BACKGROUND = 0; - SCHED_GROUP_DEFAULT = 1; - SCHED_GROUP_TOP_APP = 2; - SCHED_GROUP_TOP_APP_BOUND = 3; - } - optional SchedGroup sched_group = 4 [ default = SCHED_GROUP_UNKNOWN]; - - oneof Foreground { - bool activities = 5; - bool services = 6; - } - - optional .android.app.ProcessStateEnum state = 7; - optional int32 trim_memory_level = 8; - optional ProcessRecordProto proc = 9; - optional string adj_type = 10; - - oneof AdjTarget { - .android.content.ComponentNameProto adj_target_component_name = 11; - string adj_target_object = 12; - } - - oneof AdjSource { - ProcessRecordProto adj_source_proc = 13; - string adj_source_object = 14; - } - - message Detail { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 max_adj = 1; - optional int32 cur_raw_adj = 2; - optional int32 set_raw_adj = 3; - optional int32 cur_adj = 4; - optional int32 set_adj = 5; - optional .android.app.ProcessStateEnum current_state = 7; - optional .android.app.ProcessStateEnum set_state = 8; - optional string last_pss = 9; - optional string last_swap_pss = 10; - optional string last_cached_pss = 11; - optional bool cached = 12; - optional bool empty = 13; - optional bool has_above_client = 14; + optional bool persistent = 1; + optional int32 num = 2; + optional string oom_adj = 3; - // only make sense if process is a service - message CpuRunTime { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional int64 over_ms = 1; - optional int64 used_ms = 2; - optional float ultilization = 3; // ratio of cpu time usage + // Activity manager's version of Process enum, see ProcessList.java + enum SchedGroup { + SCHED_GROUP_UNKNOWN = -1; + SCHED_GROUP_BACKGROUND = 0; + SCHED_GROUP_DEFAULT = 1; + SCHED_GROUP_TOP_APP = 2; + SCHED_GROUP_TOP_APP_BOUND = 3; } - optional CpuRunTime service_run_time = 15; - } - optional Detail detail = 15; + optional SchedGroup sched_group = 4 [ default = SCHED_GROUP_UNKNOWN]; + + oneof Foreground { + bool activities = 5; + bool services = 6; + } + + optional .android.app.ProcessStateEnum state = 7; + optional int32 trim_memory_level = 8; + optional ProcessRecordProto proc = 9; + optional string adj_type = 10; + + oneof AdjTarget { + .android.content.ComponentNameProto adj_target_component_name = 11; + string adj_target_object = 12; + } + + oneof AdjSource { + ProcessRecordProto adj_source_proc = 13; + string adj_source_object = 14; + } + + message Detail { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int32 max_adj = 1; + optional int32 cur_raw_adj = 2; + optional int32 set_raw_adj = 3; + optional int32 cur_adj = 4; + optional int32 set_adj = 5; + optional .android.app.ProcessStateEnum current_state = 7; + optional .android.app.ProcessStateEnum set_state = 8; + optional string last_pss = 9; + optional string last_swap_pss = 10; + optional string last_cached_pss = 11; + optional bool cached = 12; + optional bool empty = 13; + optional bool has_above_client = 14; + + // only make sense if process is a service + message CpuRunTime { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int64 over_ms = 1; + optional int64 used_ms = 2; + optional float ultilization = 3; // ratio of cpu time usage + } + optional CpuRunTime service_run_time = 15; + } + optional Detail detail = 15; } message ProcessToGcProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional ProcessRecordProto proc = 1; - optional bool report_low_memory = 2; - optional int64 now_uptime_ms = 3; - optional int64 last_gced_ms = 4; - optional int64 last_low_memory_ms = 5; + optional ProcessRecordProto proc = 1; + optional bool report_low_memory = 2; + optional int64 now_uptime_ms = 3; + optional int64 last_gced_ms = 4; + optional int64 last_low_memory_ms = 5; } // sync with com.android.server.am.AppErrors.java message AppErrorsProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional int64 now_uptime_ms = 1; - - message ProcessCrashTime { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional string process_name = 1; + optional int64 now_uptime_ms = 1; - message Entry { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + message ProcessCrashTime { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 uid = 1; - optional int64 last_crashed_at_ms = 2; + optional string process_name = 1; + + message Entry { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int32 uid = 1; + optional int64 last_crashed_at_ms = 2; + } + repeated Entry entries = 2; } - repeated Entry entries = 2; - } - repeated ProcessCrashTime process_crash_times = 2; + repeated ProcessCrashTime process_crash_times = 2; - message BadProcess { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + message BadProcess { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional string process_name = 1; + optional string process_name = 1; - message Entry { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + message Entry { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 uid = 1; - optional int64 crashed_at_ms = 2; - optional string short_msg = 3; - optional string long_msg = 4 [ (.android.privacy).dest = DEST_EXPLICIT ]; - optional string stack = 5 [ (.android.privacy).dest = DEST_EXPLICIT ]; + optional int32 uid = 1; + optional int64 crashed_at_ms = 2; + optional string short_msg = 3; + optional string long_msg = 4 [ (.android.privacy).dest = DEST_EXPLICIT ]; + optional string stack = 5 [ (.android.privacy).dest = DEST_EXPLICIT ]; + } + repeated Entry entries = 2; } - repeated Entry entries = 2; - } - repeated BadProcess bad_processes = 3; + repeated BadProcess bad_processes = 3; } // sync with com.android.server.am.UserState.java message UserStateProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - enum State { - STATE_BOOTING = 0; - STATE_RUNNING_LOCKED = 1; - STATE_RUNNING_UNLOCKING = 2; - STATE_RUNNING_UNLOCKED = 3; - STATE_STOPPING = 4; - STATE_SHUTDOWN = 5; - } - optional State state = 1; - optional bool switching = 2; + enum State { + STATE_BOOTING = 0; + STATE_RUNNING_LOCKED = 1; + STATE_RUNNING_UNLOCKING = 2; + STATE_RUNNING_UNLOCKED = 3; + STATE_STOPPING = 4; + STATE_SHUTDOWN = 5; + } + optional State state = 1; + optional bool switching = 2; } // sync with com.android.server.am.UserController.java message UserControllerProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - message User { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 id = 1; - optional UserStateProto state = 2; - } - repeated User started_users = 1; - repeated int32 started_user_array = 2; - repeated int32 user_lru = 3; + message User { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - message UserProfile { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + optional int32 id = 1; + optional UserStateProto state = 2; + } + repeated User started_users = 1; + repeated int32 started_user_array = 2; + repeated int32 user_lru = 3; - optional int32 user = 1; - optional int32 profile = 2; - } - repeated UserProfile user_profile_group_ids = 4; + message UserProfile { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int32 user = 1; + optional int32 profile = 2; + } + repeated UserProfile user_profile_group_ids = 4; } // sync with com.android.server.am.AppTimeTracker.java message AppTimeTrackerProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional string receiver = 1; - optional int64 total_duration_ms = 2; - - message PackageTime { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional string package = 1; - optional int64 duration_ms = 2; - } - repeated PackageTime package_times = 3; + optional string receiver = 1; + optional int64 total_duration_ms = 2; - optional .android.util.Duration started_time = 4; - optional string started_package = 5; + message PackageTime { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional string package = 1; + optional int64 duration_ms = 2; + } + repeated PackageTime package_times = 3; + + optional .android.util.Duration started_time = 4; + optional string started_package = 5; } diff --git a/core/proto/android/server/alarmmanagerservice.proto b/core/proto/android/server/alarmmanagerservice.proto index 53e3ba965120f..eef78d1aa7dee 100644 --- a/core/proto/android/server/alarmmanagerservice.proto +++ b/core/proto/android/server/alarmmanagerservice.proto @@ -29,254 +29,254 @@ option java_multiple_files = true; // next ID: 43 message AlarmManagerServiceDumpProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional int64 current_time = 1; - optional int64 elapsed_realtime = 2; - optional int64 last_time_change_clock_time = 3; - optional int64 last_time_change_realtime = 4; - // Current settings - optional ConstantsProto settings = 5; - - // Dump from ForceAppStandbyTracker. - optional ForceAppStandbyTrackerProto force_app_standby_tracker = 6; - - optional bool is_interactive = 7; - // Only valid if is_interactive is false. - optional int64 time_since_non_interactive_ms = 8; - // Only valid if is_interactive is false. - optional int64 max_wakeup_delay_ms = 9; - // Only valid if is_interactive is false. - optional int64 time_since_last_dispatch_ms = 10; - // Only valid if is_interactive is false. - optional int64 time_until_next_non_wakeup_delivery_ms = 11; - - // Can be negative if the non-wakeup alarm time is in the past (non-wakeup - // alarms aren't delivered unil the next time the device wakes up). - optional int64 time_until_next_non_wakeup_alarm_ms = 12; - optional int64 time_until_next_wakeup_ms = 13; - optional int64 time_since_last_wakeup_ms = 14; - // Time since the last wakeup was set. - optional int64 time_since_last_wakeup_set_ms = 15; - optional int64 time_change_event_count = 16; - // The current set of user whitelisted apps for device idle mode, meaning - // these are allowed to freely schedule alarms. These are app IDs, not UIDs. - repeated int32 device_idle_user_whitelist_app_ids = 17; - - repeated AlarmClockMetadataProto next_alarm_clock_metadata = 18; - - repeated BatchProto pending_alarm_batches = 19; - - // List of alarms per uid deferred due to user applied background restrictions - // on the source app. - repeated AlarmProto pending_user_blocked_background_alarms = 20; - - // When idling mode will end. Will be empty if the device is not currently - // idling. - optional AlarmProto pending_idle_until = 21; - - // Any alarms that we don't want to run during idle mode. Will be empty if the - // device is not currently idling. - repeated AlarmProto pending_while_idle_alarms = 22; - - // This is a special alarm that will put the system into idle until it goes - // off. The caller has given the time they want this to happen at. - optional AlarmProto next_wake_from_idle = 23; - - repeated AlarmProto past_due_non_wakeup_alarms = 24; - - // Number of delayed alarms. - optional int32 delayed_alarm_count = 25; - // The total amount of time alarms had been delayed. Overlapping alarms are - // only counted once (ie. If two alarms were meant to trigger at the same time - // but were delayed by 5 seconds, the total time would be 5 seconds). - optional int64 total_delay_time_ms = 26; - optional int64 max_delay_duration_ms = 27; - optional int64 max_non_interactive_duration_ms = 28; - - optional int32 broadcast_ref_count = 29; - // Canonical count of (operation.send() - onSendFinished()) and listener - // send/complete/timeout invocations. - optional int32 pending_intent_send_count = 30; - optional int32 pending_intent_finish_count = 31; - optional int32 listener_send_count = 32; - optional int32 listener_finish_count = 33; - - repeated InFlightProto outstanding_deliveries = 34; - - message LastAllowWhileIdleDispatch { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 uid = 1; - // In the 'elapsed' timebase. - optional int64 time_ms = 2; + optional int64 current_time = 1; + optional int64 elapsed_realtime = 2; + optional int64 last_time_change_clock_time = 3; + optional int64 last_time_change_realtime = 4; + // Current settings + optional ConstantsProto settings = 5; - // Time when the next while-idle is allowed, in the 'elapsed' timebase. - optional int64 next_allowed_ms = 3; - } + // Dump from ForceAppStandbyTracker. + optional ForceAppStandbyTrackerProto force_app_standby_tracker = 6; - // Whether the short or long while-idle timeout should be used for each UID. - repeated int32 use_allow_while_idle_short_time = 35; + optional bool is_interactive = 7; + // Only valid if is_interactive is false. + optional int64 time_since_non_interactive_ms = 8; + // Only valid if is_interactive is false. + optional int64 max_wakeup_delay_ms = 9; + // Only valid if is_interactive is false. + optional int64 time_since_last_dispatch_ms = 10; + // Only valid if is_interactive is false. + optional int64 time_until_next_non_wakeup_delivery_ms = 11; - // For each uid, this is the last time we dispatched an "allow while idle" - // alarm, used to determine the earliest we can dispatch the next such alarm. - repeated LastAllowWhileIdleDispatch last_allow_while_idle_dispatch_times = 36; + // Can be negative if the non-wakeup alarm time is in the past (non-wakeup + // alarms aren't delivered unil the next time the device wakes up). + optional int64 time_until_next_non_wakeup_alarm_ms = 12; + optional int64 time_until_next_wakeup_ms = 13; + optional int64 time_since_last_wakeup_ms = 14; + // Time since the last wakeup was set. + optional int64 time_since_last_wakeup_set_ms = 15; + optional int64 time_change_event_count = 16; + // The current set of user whitelisted apps for device idle mode, meaning + // these are allowed to freely schedule alarms. These are app IDs, not UIDs. + repeated int32 device_idle_user_whitelist_app_ids = 17; - optional com.android.internal.util.LocalLogProto recent_problems = 37; + repeated AlarmClockMetadataProto next_alarm_clock_metadata = 18; - message TopAlarm { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + repeated BatchProto pending_alarm_batches = 19; - optional int32 uid = 1; - optional string package_name = 2; - optional FilterStatsProto filter = 3; - } - repeated TopAlarm top_alarms = 38; + // List of alarms per uid deferred due to user applied background restrictions + // on the source app. + repeated AlarmProto pending_user_blocked_background_alarms = 20; - message AlarmStat { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + // When idling mode will end. Will be empty if the device is not currently + // idling. + optional AlarmProto pending_idle_until = 21; - optional BroadcastStatsProto broadcast = 1; - repeated FilterStatsProto filters = 2; - } - repeated AlarmStat alarm_stats = 39; + // Any alarms that we don't want to run during idle mode. Will be empty if the + // device is not currently idling. + repeated AlarmProto pending_while_idle_alarms = 22; - repeated IdleDispatchEntryProto allow_while_idle_dispatches = 40; - repeated WakeupEventProto recent_wakeup_history = 41; + // This is a special alarm that will put the system into idle until it goes + // off. The caller has given the time they want this to happen at. + optional AlarmProto next_wake_from_idle = 23; + + repeated AlarmProto past_due_non_wakeup_alarms = 24; + + // Number of delayed alarms. + optional int32 delayed_alarm_count = 25; + // The total amount of time alarms had been delayed. Overlapping alarms are + // only counted once (ie. If two alarms were meant to trigger at the same time + // but were delayed by 5 seconds, the total time would be 5 seconds). + optional int64 total_delay_time_ms = 26; + optional int64 max_delay_duration_ms = 27; + optional int64 max_non_interactive_duration_ms = 28; + + optional int32 broadcast_ref_count = 29; + // Canonical count of (operation.send() - onSendFinished()) and listener + // send/complete/timeout invocations. + optional int32 pending_intent_send_count = 30; + optional int32 pending_intent_finish_count = 31; + optional int32 listener_send_count = 32; + optional int32 listener_finish_count = 33; + + repeated InFlightProto outstanding_deliveries = 34; + + message LastAllowWhileIdleDispatch { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int32 uid = 1; + // In the 'elapsed' timebase. + optional int64 time_ms = 2; + + // Time when the next while-idle is allowed, in the 'elapsed' timebase. + optional int64 next_allowed_ms = 3; + } + + // Whether the short or long while-idle timeout should be used for each UID. + repeated int32 use_allow_while_idle_short_time = 35; + + // For each uid, this is the last time we dispatched an "allow while idle" + // alarm, used to determine the earliest we can dispatch the next such alarm. + repeated LastAllowWhileIdleDispatch last_allow_while_idle_dispatch_times = 36; + + optional com.android.internal.util.LocalLogProto recent_problems = 37; + + message TopAlarm { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int32 uid = 1; + optional string package_name = 2; + optional FilterStatsProto filter = 3; + } + repeated TopAlarm top_alarms = 38; + + message AlarmStat { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional BroadcastStatsProto broadcast = 1; + repeated FilterStatsProto filters = 2; + } + repeated AlarmStat alarm_stats = 39; + + repeated IdleDispatchEntryProto allow_while_idle_dispatches = 40; + repeated WakeupEventProto recent_wakeup_history = 41; } // This is a soft wrapper for alarm clock information. It is not representative // of an android.app.AlarmManager.AlarmClockInfo object. message AlarmClockMetadataProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 user = 1; - optional bool is_pending_send = 2; - // This value is UTC wall clock time in milliseconds, as returned by - // System#currentTimeMillis() for example. - optional int64 trigger_time_ms = 3; + optional int32 user = 1; + optional bool is_pending_send = 2; + // This value is UTC wall clock time in milliseconds, as returned by + // System#currentTimeMillis() for example. + optional int64 trigger_time_ms = 3; } // A com.android.server.AlarmManagerService.Alarm object. message AlarmProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional string tag = 1 [ (.android.privacy).dest = DEST_EXPLICIT ]; - optional .android.app.AlarmManagerProto.AlarmType type = 2; - // How long until the alarm goes off, in the 'elapsed' timebase. Can be - // negative if 'when' is in the past. - optional int64 time_until_when_elapsed_ms = 3; - optional int64 window_length_ms = 4; - optional int64 repeat_interval_ms = 5; - optional int32 count = 6; - optional int32 flags = 7; - optional .android.app.AlarmClockInfoProto alarm_clock = 8; - optional .android.app.PendingIntentProto operation = 9; - optional string listener = 10 [ (.android.privacy).dest = DEST_EXPLICIT ]; + optional string tag = 1 [ (.android.privacy).dest = DEST_EXPLICIT ]; + optional .android.app.AlarmManagerProto.AlarmType type = 2; + // How long until the alarm goes off, in the 'elapsed' timebase. Can be + // negative if 'when' is in the past. + optional int64 time_until_when_elapsed_ms = 3; + optional int64 window_length_ms = 4; + optional int64 repeat_interval_ms = 5; + optional int32 count = 6; + optional int32 flags = 7; + optional .android.app.AlarmClockInfoProto alarm_clock = 8; + optional .android.app.PendingIntentProto operation = 9; + optional string listener = 10 [ (.android.privacy).dest = DEST_EXPLICIT ]; } // A com.android.server.AlarmManagerService.Batch object. message BatchProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - // Start time in terms of elapsed realtime. - optional int64 start_realtime = 1; - // End time in terms of elapsed realtime. - optional int64 end_realtime = 2; - optional int32 flags = 3; - repeated AlarmProto alarms = 4; + // Start time in terms of elapsed realtime. + optional int64 start_realtime = 1; + // End time in terms of elapsed realtime. + optional int64 end_realtime = 2; + optional int32 flags = 3; + repeated AlarmProto alarms = 4; } // A com.android.server.AlarmManagerService.BroadcastStats object. message BroadcastStatsProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 uid = 1; - optional string package_name = 2; - // The total amount of time this broadcast was in flight. - optional int64 total_flight_duration_ms = 3; - optional int32 count = 4; - optional int32 wakeup_count = 5; - // The last time this first became active (when nesting changed from 0 to 1) - // in terms of elapsed realtime. - optional int64 start_time_realtime = 6; - // The broadcast is active if nesting > 0. - optional int32 nesting = 7; + optional int32 uid = 1; + optional string package_name = 2; + // The total amount of time this broadcast was in flight. + optional int64 total_flight_duration_ms = 3; + optional int32 count = 4; + optional int32 wakeup_count = 5; + // The last time this first became active (when nesting changed from 0 to 1) + // in terms of elapsed realtime. + optional int64 start_time_realtime = 6; + // The broadcast is active if nesting > 0. + optional int32 nesting = 7; } // A com.android.server.AlarmManagerService.Constants object. message ConstantsProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - // Minimum futurity of a new alarm. - optional int64 min_futurity_duration_ms = 1; - // Minimum alarm recurrence interval. - optional int64 min_interval_duration_ms = 2; - // Direct alarm listener callback timeout. - optional int64 listener_timeout_duration_ms = 3; - // Minimum time between ALLOW_WHILE_IDLE alarms when system is not idle. - optional int64 allow_while_idle_short_duration_ms = 4; - // Minimum time between ALLOW_WHILE_IDLE alarms when system is idling. - optional int64 allow_while_idle_long_duration_ms = 5; - // BroadcastOptions.setTemporaryAppWhitelistDuration() to use for FLAG_ALLOW_WHILE_IDLE. - optional int64 allow_while_idle_whitelist_duration_ms = 6; - // Maximum alarm recurrence interval. - optional int64 max_interval_duration_ms = 7; + // Minimum futurity of a new alarm. + optional int64 min_futurity_duration_ms = 1; + // Minimum alarm recurrence interval. + optional int64 min_interval_duration_ms = 2; + // Direct alarm listener callback timeout. + optional int64 listener_timeout_duration_ms = 3; + // Minimum time between ALLOW_WHILE_IDLE alarms when system is not idle. + optional int64 allow_while_idle_short_duration_ms = 4; + // Minimum time between ALLOW_WHILE_IDLE alarms when system is idling. + optional int64 allow_while_idle_long_duration_ms = 5; + // BroadcastOptions.setTemporaryAppWhitelistDuration() to use for FLAG_ALLOW_WHILE_IDLE. + optional int64 allow_while_idle_whitelist_duration_ms = 6; + // Maximum alarm recurrence interval. + optional int64 max_interval_duration_ms = 7; } // A com.android.server.AlarmManagerService.FilterStats object. message FilterStatsProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional string tag = 1 [ (.android.privacy).dest = DEST_EXPLICIT ]; - // The last time this filter when in flight, in terms of elapsed realtime. - optional int64 last_flight_time_realtime = 2; - // The total amount of time this filter was in flight. - optional int64 total_flight_duration_ms = 3; - optional int32 count = 4; - optional int32 wakeup_count = 5; - // The last time this first became active (when nesting changed from 0 to 1) - // in terms of elapsed realtime. - optional int64 start_time_realtime = 6; - // The filter is active if nesting > 0. - optional int32 nesting = 7; + optional string tag = 1 [ (.android.privacy).dest = DEST_EXPLICIT ]; + // The last time this filter when in flight, in terms of elapsed realtime. + optional int64 last_flight_time_realtime = 2; + // The total amount of time this filter was in flight. + optional int64 total_flight_duration_ms = 3; + optional int32 count = 4; + optional int32 wakeup_count = 5; + // The last time this first became active (when nesting changed from 0 to 1) + // in terms of elapsed realtime. + optional int64 start_time_realtime = 6; + // The filter is active if nesting > 0. + optional int32 nesting = 7; } // A com.android.server.AlarmManagerService.IdleDispatchEntry object. message IdleDispatchEntryProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 uid = 1; - optional string pkg = 2; - optional string tag = 3 [ (.android.privacy).dest = DEST_EXPLICIT ]; - optional string op = 4; - // Time when this entry was created, in terms of elapsed realtime. - optional int64 entry_creation_realtime = 5; - // For a RESCHEDULED op, this is the last time we dispatched an "allow while - // idle" alarm for the UID. For a SET op, this is when the alarm was - // triggered. Times are in the 'elapsed' timebase. - optional int64 arg_realtime = 6; + optional int32 uid = 1; + optional string pkg = 2; + optional string tag = 3 [ (.android.privacy).dest = DEST_EXPLICIT ]; + optional string op = 4; + // Time when this entry was created, in terms of elapsed realtime. + optional int64 entry_creation_realtime = 5; + // For a RESCHEDULED op, this is the last time we dispatched an "allow while + // idle" alarm for the UID. For a SET op, this is when the alarm was + // triggered. Times are in the 'elapsed' timebase. + optional int64 arg_realtime = 6; } // A com.android.server.AlarmManagerService.InFlight object. message InFlightProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 uid = 1; - optional string tag = 2 [ (.android.privacy).dest = DEST_EXPLICIT ]; - optional int64 when_elapsed_ms = 3; - optional .android.app.AlarmManagerProto.AlarmType alarm_type = 4; - optional .android.app.PendingIntentProto pending_intent = 5; - optional BroadcastStatsProto broadcast_stats = 6; - optional FilterStatsProto filter_stats = 7; - optional .android.os.WorkSourceProto work_source = 8; + optional int32 uid = 1; + optional string tag = 2 [ (.android.privacy).dest = DEST_EXPLICIT ]; + optional int64 when_elapsed_ms = 3; + optional .android.app.AlarmManagerProto.AlarmType alarm_type = 4; + optional .android.app.PendingIntentProto pending_intent = 5; + optional BroadcastStatsProto broadcast_stats = 6; + optional FilterStatsProto filter_stats = 7; + optional .android.os.WorkSourceProto work_source = 8; } // A com.android.server.AlarmManagerService.WakeupEvent object. message WakeupEventProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 uid = 1; - optional string action = 2; - optional int64 when = 3; + optional int32 uid = 1; + optional string action = 2; + optional int64 when = 3; } diff --git a/core/proto/android/server/animationadapter.proto b/core/proto/android/server/animationadapter.proto index 9bfa79455e0b2..0bcc488871015 100644 --- a/core/proto/android/server/animationadapter.proto +++ b/core/proto/android/server/animationadapter.proto @@ -24,55 +24,55 @@ package com.android.server.wm; option java_multiple_files = true; message AnimationAdapterProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional LocalAnimationAdapterProto local = 1; - optional RemoteAnimationAdapterWrapperProto remote = 2; + optional LocalAnimationAdapterProto local = 1; + optional RemoteAnimationAdapterWrapperProto remote = 2; } /* represents RemoteAnimationAdapterWrapper */ message RemoteAnimationAdapterWrapperProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional .android.view.RemoteAnimationTargetProto target = 1; + optional .android.view.RemoteAnimationTargetProto target = 1; } /* represents LocalAnimationAdapter */ message LocalAnimationAdapterProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional AnimationSpecProto animation_spec = 1; + optional AnimationSpecProto animation_spec = 1; } message AnimationSpecProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional WindowAnimationSpecProto window = 1; - optional MoveAnimationSpecProto move = 2; - optional AlphaAnimationSpecProto alpha = 3; + optional WindowAnimationSpecProto window = 1; + optional MoveAnimationSpecProto move = 2; + optional AlphaAnimationSpecProto alpha = 3; } /* represents WindowAnimationSpec */ message WindowAnimationSpecProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional string animation = 1; + optional string animation = 1; } /* represents MoveAnimationSpec*/ message MoveAnimationSpecProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional .android.graphics.PointProto from = 1; - optional .android.graphics.PointProto to = 2; - optional int64 duration = 3; + optional .android.graphics.PointProto from = 1; + optional .android.graphics.PointProto to = 2; + optional int64 duration_ms = 3; } /* represents AlphaAnimationSpec */ message AlphaAnimationSpecProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional float from = 1; - optional float to = 2; - optional int64 duration = 3; -} \ No newline at end of file + optional float from = 1; + optional float to = 2; + optional int64 duration_ms = 3; +} diff --git a/core/proto/android/server/appwindowthumbnail.proto b/core/proto/android/server/appwindowthumbnail.proto index 54ad193675e9e..a1be7218893cc 100644 --- a/core/proto/android/server/appwindowthumbnail.proto +++ b/core/proto/android/server/appwindowthumbnail.proto @@ -26,9 +26,9 @@ option java_multiple_files = true; * Represents a {@link com.android.server.wm.AppWindowThumbnail} object. */ message AppWindowThumbnailProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 width = 1; - optional int32 height = 2; - optional SurfaceAnimatorProto surface_animator = 3; -} \ No newline at end of file + optional int32 width = 1; + optional int32 height = 2; + optional SurfaceAnimatorProto surface_animator = 3; +} diff --git a/core/proto/android/server/forceappstandbytracker.proto b/core/proto/android/server/forceappstandbytracker.proto index 5296e4764f0cd..1113d6a9ef398 100644 --- a/core/proto/android/server/forceappstandbytracker.proto +++ b/core/proto/android/server/forceappstandbytracker.proto @@ -27,51 +27,51 @@ option java_multiple_files = true; // // Next ID: 12 message ForceAppStandbyTrackerProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - // Whether all apps are forced standby or not. - optional bool force_all_apps_standby = 1; - - // UIDs currently active. - repeated int32 active_uids = 2; - - // UIDs currently in the foreground. - repeated int32 foreground_uids = 11; - - // App ids that are in power-save whitelist. - repeated int32 power_save_whitelist_app_ids = 3; - - // App ids that are in temporary power-save whitelist. - repeated int32 temp_power_save_whitelist_app_ids = 4; - - message RunAnyInBackgroundRestrictedPackages { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 uid = 1; - optional string package_name = 2; - } - // Packages that are disallowed OP_RUN_ANY_IN_BACKGROUND. - repeated RunAnyInBackgroundRestrictedPackages run_any_in_background_restricted_packages = 5; + // Whether all apps are forced standby or not. + optional bool force_all_apps_standby = 1; - // Whether device is a small battery device - optional bool is_small_battery_device = 6; + // UIDs currently active. + repeated int32 active_uids = 2; - // Whether force app standby for small battery device setting is enabled - optional bool force_all_apps_standby_for_small_battery = 7; + // UIDs currently in the foreground. + repeated int32 foreground_uids = 11; - // Whether device is plugged in to the charger - optional bool is_plugged_in = 8; + // App ids that are in power-save whitelist. + repeated int32 power_save_whitelist_app_ids = 3; - // Performance stats. - optional StatLoggerProto stats = 9; + // App ids that are in temporary power-save whitelist. + repeated int32 temp_power_save_whitelist_app_ids = 4; - message ExemptedPackage { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + message RunAnyInBackgroundRestrictedPackages { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 userId = 1; - optional string package_name = 2; - } + optional int32 uid = 1; + optional string package_name = 2; + } + // Packages that are disallowed OP_RUN_ANY_IN_BACKGROUND. + repeated RunAnyInBackgroundRestrictedPackages run_any_in_background_restricted_packages = 5; - // Packages that are in the EXEMPT bucket. - repeated ExemptedPackage exempted_packages = 10; + // Whether device is a small battery device + optional bool is_small_battery_device = 6; + + // Whether force app standby for small battery device setting is enabled + optional bool force_all_apps_standby_for_small_battery = 7; + + // Whether device is plugged in to the charger + optional bool is_plugged_in = 8; + + // Performance stats. + optional StatLoggerProto stats = 9; + + message ExemptedPackage { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int32 userId = 1; + optional string package_name = 2; + } + + // Packages that are in the EXEMPT bucket. + repeated ExemptedPackage exempted_packages = 10; } diff --git a/core/proto/android/server/jobscheduler.proto b/core/proto/android/server/jobscheduler.proto index 4df3b63a3eab8..0a10cece0caba 100644 --- a/core/proto/android/server/jobscheduler.proto +++ b/core/proto/android/server/jobscheduler.proto @@ -219,23 +219,6 @@ message ConstantsProto { message StateControllerProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - message AppIdleController { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional bool is_parole_on = 1; - - message TrackedJob { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - optional JobStatusShortInfoProto info = 1; - optional int32 source_uid = 2; - optional string source_package_name = 3; - // If the constraints are satisfied, then the controller will mark - // the job as RUNNABLE, otherwise, it will be WAITING. - optional bool are_constraints_satisfied = 4; - } - repeated TrackedJob tracked_jobs = 2; - } message BackgroundJobsController { option (.android.msg_privacy).dest = DEST_AUTOMATIC; @@ -413,15 +396,14 @@ message StateControllerProto { repeated TrackedJob tracked_jobs = 4; } oneof controller { - AppIdleController app_idle = 1; - BackgroundJobsController background = 2; - BatteryController battery = 3; - ConnectivityController connectivity = 4; - ContentObserverController content_observer = 5; - DeviceIdleJobsController device_idle = 6; - IdleController idle = 7; - StorageController storage = 8; - TimeController time = 9; + BackgroundJobsController background = 1; + BatteryController battery = 2; + ConnectivityController connectivity = 3; + ContentObserverController content_observer = 4; + DeviceIdleJobsController device_idle = 5; + IdleController idle = 6; + StorageController storage = 7; + TimeController time = 8; } } @@ -618,8 +600,8 @@ message JobStatusDumpProto { CONSTRAINT_DEADLINE = 5; CONSTRAINT_IDLE = 6; CONSTRAINT_CONNECTIVITY = 7; - CONSTRAINT_CONTENT_TRIGGER = 9; - CONSTRAINT_DEVICE_NOT_DOZING = 10; + CONSTRAINT_CONTENT_TRIGGER = 8; + CONSTRAINT_DEVICE_NOT_DOZING = 9; } repeated Constraint required_constraints = 7; repeated Constraint satisfied_constraints = 8; diff --git a/core/proto/android/server/powermanagerservice.proto b/core/proto/android/server/powermanagerservice.proto index eb60942ba8496..cee556a7b67f7 100644 --- a/core/proto/android/server/powermanagerservice.proto +++ b/core/proto/android/server/powermanagerservice.proto @@ -313,36 +313,41 @@ message PowerServiceSettingsAndConfigurationDumpProto { } message BatterySaverStateMachineProto { - // Whether battery saver is enabled. - optional bool enabled = 1; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - // Whether system has booted. - optional bool boot_completed = 2; + // Whether battery saver is enabled. + optional bool enabled = 1; - // Whether settings have been loaded already. - optional bool settings_loaded = 3; + // Whether system has booted. + optional bool boot_completed = 2; - // Whether battery status has been set at least once. - optional bool battery_status_set = 4; + // Whether settings have been loaded already. + optional bool settings_loaded = 3; - // Whether automatic battery saver has been canceled by the user. - optional bool battery_saver_snoozing = 5; + // Whether battery status has been set at least once. + optional bool battery_status_set = 4; - // Whether the device is connected to any power source. - optional bool is_powered = 6; + // Whether automatic battery saver has been canceled by the user. + optional bool battery_saver_snoozing = 5; - // Current battery level in %, 0-100. - optional int32 battery_level = 7; + // Whether the device is connected to any power source. + optional bool is_powered = 6; - // Whether battery level is low or not. - optional bool is_battery_level_low = 8; + // Current battery level in %, 0-100. + optional int32 battery_level = 7; - // The value of Global.LOW_POWER_MODE. - optional bool setting_battery_saver_enabled = 9; + // Whether battery level is low or not. + optional bool is_battery_level_low = 8; - // The value of Global.LOW_POWER_MODE_STICKY. - optional bool setting_battery_saver_enabled_sticky = 10; + // The value of Global.LOW_POWER_MODE. This is a cached value, so it could + // be slightly different from what's in GlobalSettingsProto.LowPowerMode. + optional bool setting_battery_saver_enabled = 9; - // The value of Global.LOW_POWER_MODE_TRIGGER_LEVEL. - optional int32 setting_battery_saver_trigger_threshold = 11; -} \ No newline at end of file + // The value of Global.LOW_POWER_MODE_STICKY. This is a cached value, so it could + // be slightly different from what's in GlobalSettingsProto.LowPowerMode. + optional bool setting_battery_saver_enabled_sticky = 10; + + // The value of Global.LOW_POWER_MODE_TRIGGER_LEVEL. This is a cached value, so it could + // be slightly different from what's in GlobalSettingsProto.LowPowerMode. + optional int32 setting_battery_saver_trigger_threshold = 11; +} diff --git a/core/proto/android/server/statlogger.proto b/core/proto/android/server/statlogger.proto index 2b7daea00a6c9..46badc47afc48 100644 --- a/core/proto/android/server/statlogger.proto +++ b/core/proto/android/server/statlogger.proto @@ -24,17 +24,17 @@ import "frameworks/base/libs/incident/proto/android/privacy.proto"; // Dump from StatLogger. message StatLoggerProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - message Event { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 eventId = 1; - // Labels are hard-coded in Android framework code. - optional string label = 2; - optional int32 count = 3; - optional int64 total_duration_micros = 4; - } + message Event { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - repeated Event events = 1; + optional int32 eventId = 1; + // Labels are hard-coded in Android framework code. + optional string label = 2; + optional int32 count = 3; + optional int64 total_duration_micros = 4; + } + + repeated Event events = 1; } diff --git a/core/proto/android/server/surfaceanimator.proto b/core/proto/android/server/surfaceanimator.proto index 84560bc0eef20..e3e8baae77edf 100644 --- a/core/proto/android/server/surfaceanimator.proto +++ b/core/proto/android/server/surfaceanimator.proto @@ -27,10 +27,9 @@ option java_multiple_files = true; * Represents a {@link com.android.server.wm.SurfaceAnimator} object. */ message SurfaceAnimatorProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - reserved 1; // Was string animation_adapter = 1 - optional .android.view.SurfaceControlProto leash = 2; - optional bool animation_start_delayed = 3; - optional AnimationAdapterProto animation_adapter = 4; -} \ No newline at end of file + optional .android.view.SurfaceControlProto leash = 1; + optional bool animation_start_delayed = 2; + optional AnimationAdapterProto animation_adapter = 3; +} diff --git a/core/proto/android/server/windowmanagerservice.proto b/core/proto/android/server/windowmanagerservice.proto index ee371c17bb788..7467d8f2e961f 100644 --- a/core/proto/android/server/windowmanagerservice.proto +++ b/core/proto/android/server/windowmanagerservice.proto @@ -33,350 +33,350 @@ package com.android.server.wm; option java_multiple_files = true; message WindowManagerServiceDumpProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional WindowManagerPolicyProto policy = 1; - /* window hierarchy root */ - optional RootWindowContainerProto root_window_container = 2; - optional IdentifierProto focused_window = 3; - optional string focused_app = 4; - optional IdentifierProto input_method_window = 5; - optional bool display_frozen = 6; - optional int32 rotation = 7; - optional int32 last_orientation = 8; - optional AppTransitionProto app_transition = 9; + optional WindowManagerPolicyProto policy = 1; + /* window hierarchy root */ + optional RootWindowContainerProto root_window_container = 2; + optional IdentifierProto focused_window = 3; + optional string focused_app = 4; + optional IdentifierProto input_method_window = 5; + optional bool display_frozen = 6; + optional int32 rotation = 7; + optional int32 last_orientation = 8; + optional AppTransitionProto app_transition = 9; } /* represents DisplayContent */ message RootWindowContainerProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional WindowContainerProto window_container = 1; - repeated DisplayProto displays = 2; - /* window references in top down z order */ - repeated IdentifierProto windows = 3; + optional WindowContainerProto window_container = 1; + repeated DisplayProto displays = 2; + /* window references in top down z order */ + repeated IdentifierProto windows = 3; } message BarControllerProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional .android.app.StatusBarManagerProto.WindowState state = 1; - optional .android.app.StatusBarManagerProto.TransientWindowState transient_state = 2; + optional .android.app.StatusBarManagerProto.WindowState state = 1; + optional .android.app.StatusBarManagerProto.TransientWindowState transient_state = 2; } message WindowOrientationListenerProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional bool enabled = 1; - optional .android.view.SurfaceProto.Rotation rotation = 2; + optional bool enabled = 1; + optional .android.view.SurfaceProto.Rotation rotation = 2; } message KeyguardServiceDelegateProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional bool showing = 1; - optional bool occluded = 2; - optional bool secure = 3; - enum ScreenState { - SCREEN_STATE_OFF = 0; - SCREEN_STATE_TURNING_ON = 1; - SCREEN_STATE_ON = 2; - SCREEN_STATE_TURNING_OFF = 3; - } - optional ScreenState screen_state = 4; - enum InteractiveState { - INTERACTIVE_STATE_SLEEP = 0; - INTERACTIVE_STATE_WAKING = 1; - INTERACTIVE_STATE_AWAKE = 2; - INTERACTIVE_STATE_GOING_TO_SLEEP = 3; - } - optional InteractiveState interactive_state = 5; + optional bool showing = 1; + optional bool occluded = 2; + optional bool secure = 3; + enum ScreenState { + SCREEN_STATE_OFF = 0; + SCREEN_STATE_TURNING_ON = 1; + SCREEN_STATE_ON = 2; + SCREEN_STATE_TURNING_OFF = 3; + } + optional ScreenState screen_state = 4; + enum InteractiveState { + INTERACTIVE_STATE_SLEEP = 0; + INTERACTIVE_STATE_WAKING = 1; + INTERACTIVE_STATE_AWAKE = 2; + INTERACTIVE_STATE_GOING_TO_SLEEP = 3; + } + optional InteractiveState interactive_state = 5; } /* represents PhoneWindowManager */ message WindowManagerPolicyProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 last_system_ui_flags = 1; - enum UserRotationMode { - USER_ROTATION_FREE = 0; - USER_ROTATION_LOCKED = 1; - } - optional UserRotationMode rotation_mode = 2; - optional .android.view.SurfaceProto.Rotation rotation = 3; - optional .android.content.ActivityInfoProto.ScreenOrientation orientation = 4; - optional bool screen_on_fully = 5; - optional bool keyguard_draw_complete = 6; - optional bool window_manager_draw_complete = 7; - optional string focused_app_token = 8; - optional IdentifierProto focused_window = 9; - optional IdentifierProto top_fullscreen_opaque_window = 10; - optional IdentifierProto top_fullscreen_opaque_or_dimming_window = 11; - optional bool keyguard_occluded = 12; - optional bool keyguard_occluded_changed = 13; - optional bool keyguard_occluded_pending = 14; - optional bool force_status_bar = 15; - optional bool force_status_bar_from_keyguard = 16; - optional BarControllerProto status_bar = 17; - optional BarControllerProto navigation_bar = 18; - optional WindowOrientationListenerProto orientation_listener = 19; - optional KeyguardServiceDelegateProto keyguard_delegate = 20; + optional int32 last_system_ui_flags = 1; + enum UserRotationMode { + USER_ROTATION_FREE = 0; + USER_ROTATION_LOCKED = 1; + } + optional UserRotationMode rotation_mode = 2; + optional .android.view.SurfaceProto.Rotation rotation = 3; + optional .android.content.ActivityInfoProto.ScreenOrientation orientation = 4; + optional bool screen_on_fully = 5; + optional bool keyguard_draw_complete = 6; + optional bool window_manager_draw_complete = 7; + optional string focused_app_token = 8; + optional IdentifierProto focused_window = 9; + optional IdentifierProto top_fullscreen_opaque_window = 10; + optional IdentifierProto top_fullscreen_opaque_or_dimming_window = 11; + optional bool keyguard_occluded = 12; + optional bool keyguard_occluded_changed = 13; + optional bool keyguard_occluded_pending = 14; + optional bool force_status_bar = 15; + optional bool force_status_bar_from_keyguard = 16; + optional BarControllerProto status_bar = 17; + optional BarControllerProto navigation_bar = 18; + optional WindowOrientationListenerProto orientation_listener = 19; + optional KeyguardServiceDelegateProto keyguard_delegate = 20; } /* represents AppTransition */ message AppTransitionProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - enum AppState { - APP_STATE_IDLE = 0; - APP_STATE_READY = 1; - APP_STATE_RUNNING = 2; - APP_STATE_TIMEOUT = 3; - } - optional AppState app_transition_state = 1; - /* definitions for constants found in {@link com.android.server.wm.AppTransition} */ - enum TransitionType { - TRANSIT_NONE = 0; - TRANSIT_UNSET = -1; - TRANSIT_ACTIVITY_OPEN = 6; - TRANSIT_ACTIVITY_CLOSE = 7; - TRANSIT_TASK_OPEN = 8; - TRANSIT_TASK_CLOSE = 9; - TRANSIT_TASK_TO_FRONT = 10; - TRANSIT_TASK_TO_BACK = 11; - TRANSIT_WALLPAPER_CLOSE = 12; - TRANSIT_WALLPAPER_OPEN = 13; - TRANSIT_WALLPAPER_INTRA_OPEN = 14; - TRANSIT_WALLPAPER_INTRA_CLOSE = 15; - TRANSIT_TASK_OPEN_BEHIND = 16; - TRANSIT_TASK_IN_PLACE = 17; - TRANSIT_ACTIVITY_RELAUNCH = 18; - TRANSIT_DOCK_TASK_FROM_RECENTS = 19; - TRANSIT_KEYGUARD_GOING_AWAY = 20; - TRANSIT_KEYGUARD_GOING_AWAY_ON_WALLPAPER = 21; - TRANSIT_KEYGUARD_OCCLUDE = 22; - TRANSIT_KEYGUARD_UNOCCLUDE = 23; - TRANSIT_TRANSLUCENT_ACTIVITY_OPEN = 24; - TRANSIT_TRANSLUCENT_ACTIVITY_CLOSE = 25; - } - optional TransitionType last_used_app_transition = 2; + enum AppState { + APP_STATE_IDLE = 0; + APP_STATE_READY = 1; + APP_STATE_RUNNING = 2; + APP_STATE_TIMEOUT = 3; + } + optional AppState app_transition_state = 1; + /* definitions for constants found in {@link com.android.server.wm.AppTransition} */ + enum TransitionType { + TRANSIT_NONE = 0; + TRANSIT_UNSET = -1; + TRANSIT_ACTIVITY_OPEN = 6; + TRANSIT_ACTIVITY_CLOSE = 7; + TRANSIT_TASK_OPEN = 8; + TRANSIT_TASK_CLOSE = 9; + TRANSIT_TASK_TO_FRONT = 10; + TRANSIT_TASK_TO_BACK = 11; + TRANSIT_WALLPAPER_CLOSE = 12; + TRANSIT_WALLPAPER_OPEN = 13; + TRANSIT_WALLPAPER_INTRA_OPEN = 14; + TRANSIT_WALLPAPER_INTRA_CLOSE = 15; + TRANSIT_TASK_OPEN_BEHIND = 16; + TRANSIT_TASK_IN_PLACE = 17; + TRANSIT_ACTIVITY_RELAUNCH = 18; + TRANSIT_DOCK_TASK_FROM_RECENTS = 19; + TRANSIT_KEYGUARD_GOING_AWAY = 20; + TRANSIT_KEYGUARD_GOING_AWAY_ON_WALLPAPER = 21; + TRANSIT_KEYGUARD_OCCLUDE = 22; + TRANSIT_KEYGUARD_UNOCCLUDE = 23; + TRANSIT_TRANSLUCENT_ACTIVITY_OPEN = 24; + TRANSIT_TRANSLUCENT_ACTIVITY_CLOSE = 25; + } + optional TransitionType last_used_app_transition = 2; } /* represents DisplayContent */ message DisplayProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional WindowContainerProto window_container = 1; - optional int32 id = 2; - repeated StackProto stacks = 3; - optional DockedStackDividerControllerProto docked_stack_divider_controller = 4; - optional PinnedStackControllerProto pinned_stack_controller = 5; - /* non app windows */ - repeated WindowTokenProto above_app_windows = 6; - repeated WindowTokenProto below_app_windows = 7; - repeated WindowTokenProto ime_windows = 8; - optional int32 dpi = 9; - optional .android.view.DisplayInfoProto display_info = 10; - optional int32 rotation = 11; - optional ScreenRotationAnimationProto screen_rotation_animation = 12; - optional DisplayFramesProto display_frames = 13; + optional WindowContainerProto window_container = 1; + optional int32 id = 2; + repeated StackProto stacks = 3; + optional DockedStackDividerControllerProto docked_stack_divider_controller = 4; + optional PinnedStackControllerProto pinned_stack_controller = 5; + /* non app windows */ + repeated WindowTokenProto above_app_windows = 6; + repeated WindowTokenProto below_app_windows = 7; + repeated WindowTokenProto ime_windows = 8; + optional int32 dpi = 9; + optional .android.view.DisplayInfoProto display_info = 10; + optional int32 rotation = 11; + optional ScreenRotationAnimationProto screen_rotation_animation = 12; + optional DisplayFramesProto display_frames = 13; } /* represents DisplayFrames */ message DisplayFramesProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional .android.graphics.RectProto stable_bounds = 1; + optional .android.graphics.RectProto stable_bounds = 1; } /* represents DockedStackDividerController */ message DockedStackDividerControllerProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional bool minimized_dock = 1; + optional bool minimized_dock = 1; } /* represents PinnedStackController */ message PinnedStackControllerProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional .android.graphics.RectProto default_bounds = 1; - optional .android.graphics.RectProto movement_bounds = 2; + optional .android.graphics.RectProto default_bounds = 1; + optional .android.graphics.RectProto movement_bounds = 2; } /* represents TaskStack */ message StackProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional WindowContainerProto window_container = 1; - optional int32 id = 2; - repeated TaskProto tasks = 3; - optional bool fills_parent = 4; - optional .android.graphics.RectProto bounds = 5; - optional bool animation_background_surface_is_dimming = 6; - optional bool defer_removal = 7; - optional float minimize_amount = 8; - optional bool adjusted_for_ime = 9; - optional float adjust_ime_amount = 10; - optional float adjust_divider_amount = 11; - optional .android.graphics.RectProto adjusted_bounds = 12; - optional bool animating_bounds = 13; + optional WindowContainerProto window_container = 1; + optional int32 id = 2; + repeated TaskProto tasks = 3; + optional bool fills_parent = 4; + optional .android.graphics.RectProto bounds = 5; + optional bool animation_background_surface_is_dimming = 6; + optional bool defer_removal = 7; + optional float minimize_amount = 8; + optional bool adjusted_for_ime = 9; + optional float adjust_ime_amount = 10; + optional float adjust_divider_amount = 11; + optional .android.graphics.RectProto adjusted_bounds = 12; + optional bool animating_bounds = 13; } /* represents Task */ message TaskProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional WindowContainerProto window_container = 1; - optional int32 id = 2; - repeated AppWindowTokenProto app_window_tokens = 3; - optional bool fills_parent = 4; - optional .android.graphics.RectProto bounds = 5; - optional .android.graphics.RectProto temp_inset_bounds = 6; - optional bool defer_removal = 7; + optional WindowContainerProto window_container = 1; + optional int32 id = 2; + repeated AppWindowTokenProto app_window_tokens = 3; + optional bool fills_parent = 4; + optional .android.graphics.RectProto bounds = 5; + optional .android.graphics.RectProto temp_inset_bounds = 6; + optional bool defer_removal = 7; } /* represents AppWindowToken */ message AppWindowTokenProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - /* obtained from ActivityRecord */ - optional string name = 1 [ (.android.privacy).dest = DEST_EXPLICIT ]; - optional WindowTokenProto window_token = 2; - optional bool last_surface_showing = 3; - optional bool is_waiting_for_transition_start = 4; - optional bool is_really_animating = 5; - optional AppWindowThumbnailProto thumbnail = 6; - optional bool fills_parent = 7; - optional bool app_stopped = 8; - optional bool hidden_requested = 9; - optional bool client_hidden = 10; - optional bool defer_hiding_client = 11; - optional bool reported_drawn = 12; - optional bool reported_visible = 13; - optional int32 num_interesting_windows = 14; - optional int32 num_drawn_windows = 15; - optional bool all_drawn = 16; - optional bool last_all_drawn = 17; - optional bool removed = 18; - optional IdentifierProto starting_window = 19; - optional bool starting_displayed = 20; - optional bool starting_moved = 21; - optional bool hidden_set_from_transferred_starting_window = 22; - repeated .android.graphics.RectProto frozen_bounds = 23; + /* obtained from ActivityRecord */ + optional string name = 1 [ (.android.privacy).dest = DEST_EXPLICIT ]; + optional WindowTokenProto window_token = 2; + optional bool last_surface_showing = 3; + optional bool is_waiting_for_transition_start = 4; + optional bool is_really_animating = 5; + optional AppWindowThumbnailProto thumbnail = 6; + optional bool fills_parent = 7; + optional bool app_stopped = 8; + optional bool hidden_requested = 9; + optional bool client_hidden = 10; + optional bool defer_hiding_client = 11; + optional bool reported_drawn = 12; + optional bool reported_visible = 13; + optional int32 num_interesting_windows = 14; + optional int32 num_drawn_windows = 15; + optional bool all_drawn = 16; + optional bool last_all_drawn = 17; + optional bool removed = 18; + optional IdentifierProto starting_window = 19; + optional bool starting_displayed = 20; + optional bool starting_moved = 21; + optional bool hidden_set_from_transferred_starting_window = 22; + repeated .android.graphics.RectProto frozen_bounds = 23; } /* represents WindowToken */ message WindowTokenProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional WindowContainerProto window_container = 1; - optional int32 hash_code = 2; - repeated WindowStateProto windows = 3; - optional bool hidden = 4; - optional bool waiting_to_show = 5; - optional bool paused = 6; + optional WindowContainerProto window_container = 1; + optional int32 hash_code = 2; + repeated WindowStateProto windows = 3; + optional bool hidden = 4; + optional bool waiting_to_show = 5; + optional bool paused = 6; } /* represents WindowState */ message WindowStateProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional WindowContainerProto window_container = 1; - optional IdentifierProto identifier = 2; - optional int32 display_id = 3; - optional int32 stack_id = 4; - optional .android.view.WindowLayoutParamsProto attributes = 5; - optional .android.graphics.RectProto given_content_insets = 6; - optional .android.graphics.RectProto frame = 7; - optional .android.graphics.RectProto containing_frame = 8; - optional .android.graphics.RectProto parent_frame = 9; - optional .android.graphics.RectProto content_frame = 10; - optional .android.graphics.RectProto content_insets = 11; - optional .android.graphics.RectProto surface_insets = 12; - optional WindowStateAnimatorProto animator = 13; - optional bool animating_exit = 14; - repeated WindowStateProto child_windows = 15; - optional .android.graphics.RectProto surface_position = 16; - optional int32 requested_width = 18; - optional int32 requested_height = 19; - optional int32 view_visibility = 20; - optional int32 system_ui_visibility = 21; - optional bool has_surface = 22; - optional bool is_ready_for_display = 23; - optional .android.graphics.RectProto display_frame = 24; - optional .android.graphics.RectProto overscan_frame = 25; - optional .android.graphics.RectProto visible_frame = 26; - optional .android.graphics.RectProto decor_frame = 27; - optional .android.graphics.RectProto outset_frame = 28; - optional .android.graphics.RectProto overscan_insets = 29; - optional .android.graphics.RectProto visible_insets = 30; - optional .android.graphics.RectProto stable_insets = 31; - optional .android.graphics.RectProto outsets = 32; - optional .android.view.DisplayCutoutProto cutout = 33; - optional bool remove_on_exit = 34; - optional bool destroying = 35; - optional bool removed = 36; - optional bool is_on_screen = 37; - optional bool is_visible = 38; + optional WindowContainerProto window_container = 1; + optional IdentifierProto identifier = 2; + optional int32 display_id = 3; + optional int32 stack_id = 4; + optional .android.view.WindowLayoutParamsProto attributes = 5; + optional .android.graphics.RectProto given_content_insets = 6; + optional .android.graphics.RectProto frame = 7; + optional .android.graphics.RectProto containing_frame = 8; + optional .android.graphics.RectProto parent_frame = 9; + optional .android.graphics.RectProto content_frame = 10; + optional .android.graphics.RectProto content_insets = 11; + optional .android.graphics.RectProto surface_insets = 12; + optional WindowStateAnimatorProto animator = 13; + optional bool animating_exit = 14; + repeated WindowStateProto child_windows = 15; + optional .android.graphics.RectProto surface_position = 16; + optional int32 requested_width = 18; + optional int32 requested_height = 19; + optional int32 view_visibility = 20; + optional int32 system_ui_visibility = 21; + optional bool has_surface = 22; + optional bool is_ready_for_display = 23; + optional .android.graphics.RectProto display_frame = 24; + optional .android.graphics.RectProto overscan_frame = 25; + optional .android.graphics.RectProto visible_frame = 26; + optional .android.graphics.RectProto decor_frame = 27; + optional .android.graphics.RectProto outset_frame = 28; + optional .android.graphics.RectProto overscan_insets = 29; + optional .android.graphics.RectProto visible_insets = 30; + optional .android.graphics.RectProto stable_insets = 31; + optional .android.graphics.RectProto outsets = 32; + optional .android.view.DisplayCutoutProto cutout = 33; + optional bool remove_on_exit = 34; + optional bool destroying = 35; + optional bool removed = 36; + optional bool is_on_screen = 37; + optional bool is_visible = 38; } message IdentifierProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 hash_code = 1; - optional int32 user_id = 2; - optional string title = 3 [ (.android.privacy).dest = DEST_EXPLICIT ]; + optional int32 hash_code = 1; + optional int32 user_id = 2; + optional string title = 3 [ (.android.privacy).dest = DEST_EXPLICIT ]; } /* represents WindowStateAnimator */ message WindowStateAnimatorProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional .android.graphics.RectProto last_clip_rect = 1; - optional WindowSurfaceControllerProto surface = 2; - enum DrawState { - NO_SURFACE = 0; - DRAW_PENDING = 1; - COMMIT_DRAW_PENDING = 2; - READY_TO_SHOW = 3; - HAS_DRAWN = 4; - } - optional DrawState draw_state = 3; - optional .android.graphics.RectProto system_decor_rect = 4; + optional .android.graphics.RectProto last_clip_rect = 1; + optional WindowSurfaceControllerProto surface = 2; + enum DrawState { + NO_SURFACE = 0; + DRAW_PENDING = 1; + COMMIT_DRAW_PENDING = 2; + READY_TO_SHOW = 3; + HAS_DRAWN = 4; + } + optional DrawState draw_state = 3; + optional .android.graphics.RectProto system_decor_rect = 4; } /* represents WindowSurfaceController */ message WindowSurfaceControllerProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional bool shown = 1; - optional int32 layer = 2; + optional bool shown = 1; + optional int32 layer = 2; } /* represents ScreenRotationAnimation */ message ScreenRotationAnimationProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional bool started = 1; - optional bool animation_running = 2; + optional bool started = 1; + optional bool animation_running = 2; } /* represents WindowContainer */ message WindowContainerProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional ConfigurationContainerProto configuration_container = 1; - optional int32 orientation = 2; - optional bool visible = 3; - optional SurfaceAnimatorProto surface_animator = 4; + optional ConfigurationContainerProto configuration_container = 1; + optional int32 orientation = 2; + optional bool visible = 3; + optional SurfaceAnimatorProto surface_animator = 4; } /* represents ConfigurationContainer */ message ConfigurationContainerProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional .android.content.ConfigurationProto override_configuration = 1; - optional .android.content.ConfigurationProto full_configuration = 2; - optional .android.content.ConfigurationProto merged_override_configuration = 3; + optional .android.content.ConfigurationProto override_configuration = 1; + optional .android.content.ConfigurationProto full_configuration = 2; + optional .android.content.ConfigurationProto merged_override_configuration = 3; } diff --git a/core/proto/android/service/appwidget.proto b/core/proto/android/service/appwidget.proto index 3f46d2b76d9ba..cd7173a94a70d 100644 --- a/core/proto/android/service/appwidget.proto +++ b/core/proto/android/service/appwidget.proto @@ -22,18 +22,18 @@ option java_outer_classname = "AppWidgetServiceProto"; // represents the object holding the dump info of the app widget service message AppWidgetServiceDumpProto { - repeated WidgetProto widgets = 1; // the array of bound widgets + repeated WidgetProto widgets = 1; // the array of bound widgets } // represents a bound widget message WidgetProto { - optional bool isCrossProfile = 1; // true if host and provider belong to diff users - optional bool isHostStopped = 2; // true if host has not called startListening yet - optional string hostPackage = 3; - optional string providerPackage = 4; - optional string providerClass = 5; - optional int32 minWidth = 6; - optional int32 minHeight = 7; - optional int32 maxWidth = 8; - optional int32 maxHeight = 9; + optional bool isCrossProfile = 1; // true if host and provider belong to diff users + optional bool isHostStopped = 2; // true if host has not called startListening yet + optional string hostPackage = 3; + optional string providerPackage = 4; + optional string providerClass = 5; + optional int32 minWidth = 6; + optional int32 minHeight = 7; + optional int32 maxWidth = 8; + optional int32 maxHeight = 9; } diff --git a/core/proto/android/service/batterystats.proto b/core/proto/android/service/batterystats.proto index e31e7f3e0c1e7..5586263d0facd 100644 --- a/core/proto/android/service/batterystats.proto +++ b/core/proto/android/service/batterystats.proto @@ -24,7 +24,7 @@ import "frameworks/base/core/proto/android/os/batterystats.proto"; import "frameworks/base/libs/incident/proto/android/privacy.proto"; message BatteryStatsServiceDumpProto { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + option (android.msg_privacy).dest = DEST_AUTOMATIC; - optional android.os.BatteryStatsProto batterystats = 1; + optional android.os.BatteryStatsProto batterystats = 1; } diff --git a/core/proto/android/service/network_watchlist.proto b/core/proto/android/service/network_watchlist.proto index fb03b93974aad..66d79bdbed5a0 100644 --- a/core/proto/android/service/network_watchlist.proto +++ b/core/proto/android/service/network_watchlist.proto @@ -23,14 +23,14 @@ option java_multiple_files = true; // generate network watchlist report. message NetworkWatchlistReportProto { - optional int32 report_version = 1; + optional int32 report_version = 1; - optional string watchlist_config_hash = 2; + optional string watchlist_config_hash = 2; - repeated NetworkWatchlistAppResultProto app_result = 3; + repeated NetworkWatchlistAppResultProto app_result = 3; } message NetworkWatchlistAppResultProto { - optional string app_digest = 1; - optional bool encoded_result = 2; + optional string app_digest = 1; + optional bool encoded_result = 2; } diff --git a/core/proto/android/view/displaycutout.proto b/core/proto/android/view/displaycutout.proto index ee258b7369a0b..f4744daa42856 100644 --- a/core/proto/android/view/displaycutout.proto +++ b/core/proto/android/view/displaycutout.proto @@ -23,8 +23,8 @@ package android.view; option java_multiple_files = true; message DisplayCutoutProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional .android.graphics.RectProto insets = 1; - optional .android.graphics.RectProto bounds = 2; + optional .android.graphics.RectProto insets = 1; + optional .android.graphics.RectProto bounds = 2; } diff --git a/core/proto/android/view/displayinfo.proto b/core/proto/android/view/displayinfo.proto index 2a030509e617a..8583955f174fd 100644 --- a/core/proto/android/view/displayinfo.proto +++ b/core/proto/android/view/displayinfo.proto @@ -23,11 +23,11 @@ option java_multiple_files = true; /* represents DisplayInfo */ message DisplayInfoProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 logical_width = 1; - optional int32 logical_height = 2; - optional int32 app_width = 3; - optional int32 app_height = 4; - optional string name = 5 [ (.android.privacy).dest = DEST_EXPLICIT ]; + optional int32 logical_width = 1; + optional int32 logical_height = 2; + optional int32 app_width = 3; + optional int32 app_height = 4; + optional string name = 5 [ (.android.privacy).dest = DEST_EXPLICIT ]; } diff --git a/core/proto/android/view/remote_animation_target.proto b/core/proto/android/view/remote_animation_target.proto index d5da0a9a7f73f..9139f25c1bd3b 100644 --- a/core/proto/android/view/remote_animation_target.proto +++ b/core/proto/android/view/remote_animation_target.proto @@ -28,16 +28,16 @@ import "frameworks/base/libs/incident/proto/android/privacy.proto"; /** Proto representation for RemoteAnimationTarget.java class. */ message RemoteAnimationTargetProto { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + option (android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 task_id = 1; - optional int32 mode = 2; - optional .android.view.SurfaceControlProto leash = 3; - optional bool is_translucent = 4; - optional .android.graphics.RectProto clip_rect = 5; - optional .android.graphics.RectProto contentInsets = 6; - optional int32 prefix_order_index = 7; - optional .android.graphics.PointProto position = 8; - optional .android.graphics.RectProto source_container_bounds = 9; - optional .android.app.WindowConfigurationProto window_configuration = 10; + optional int32 task_id = 1; + optional int32 mode = 2; + optional .android.view.SurfaceControlProto leash = 3; + optional bool is_translucent = 4; + optional .android.graphics.RectProto clip_rect = 5; + optional .android.graphics.RectProto contentInsets = 6; + optional int32 prefix_order_index = 7; + optional .android.graphics.PointProto position = 8; + optional .android.graphics.RectProto source_container_bounds = 9; + optional .android.app.WindowConfigurationProto window_configuration = 10; } diff --git a/core/proto/android/view/surface.proto b/core/proto/android/view/surface.proto index 8f5f695098fae..e20b0947974c9 100644 --- a/core/proto/android/view/surface.proto +++ b/core/proto/android/view/surface.proto @@ -19,10 +19,10 @@ package android.view; option java_multiple_files = true; message SurfaceProto { - enum Rotation { - ROTATION_0 = 0; - ROTATION_90 = 1; - ROTATION_180 = 2; - ROTATION_270 = 3; - } + enum Rotation { + ROTATION_0 = 0; + ROTATION_90 = 1; + ROTATION_180 = 2; + ROTATION_270 = 3; + } } diff --git a/core/proto/android/view/surfacecontrol.proto b/core/proto/android/view/surfacecontrol.proto index 665d688b05ac4..8a252beeae590 100644 --- a/core/proto/android/view/surfacecontrol.proto +++ b/core/proto/android/view/surfacecontrol.proto @@ -25,8 +25,8 @@ import "frameworks/base/libs/incident/proto/android/privacy.proto"; * Represents a {@link android.view.SurfaceControl} object. */ message SurfaceControlProto { - option (android.msg_privacy).dest = DEST_AUTOMATIC; + option (android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 hash_code = 1; - optional string name = 2 [ (android.privacy).dest = DEST_EXPLICIT ]; + optional int32 hash_code = 1; + optional string name = 2 [ (android.privacy).dest = DEST_EXPLICIT ]; } diff --git a/core/proto/android/view/windowlayoutparams.proto b/core/proto/android/view/windowlayoutparams.proto index 0362ab176666b..586321d3fd493 100644 --- a/core/proto/android/view/windowlayoutparams.proto +++ b/core/proto/android/view/windowlayoutparams.proto @@ -25,43 +25,47 @@ option java_multiple_files = true; /* represents WindowManager.LayoutParams */ message WindowLayoutParamsProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; + option (.android.msg_privacy).dest = DEST_AUTOMATIC; - optional int32 type = 1; - optional int32 x = 2; - optional int32 y = 3; - optional int32 width = 4; - optional int32 height = 5; - optional float horizontal_margin = 6; - optional float vertical_margin = 7; - optional int32 gravity = 8; - optional int32 soft_input_mode = 9; - optional .android.graphics.PixelFormatProto.Format format = 10; - optional int32 window_animations = 11; - optional float alpha = 12; - optional float screen_brightness = 13; - optional float button_brightness = 14; - enum RotationAnimation { - ROTATION_ANIMATION_UNSPECIFIED = -1; - ROTATION_ANIMATION_CROSSFADE = 1; - ROTATION_ANIMATION_JUMPCUT = 2; - ROTATION_ANIMATION_SEAMLESS = 3; - } - optional RotationAnimation rotation_animation = 15; - optional float preferred_refresh_rate = 16; - optional int32 preferred_display_mode_id = 17; - optional bool has_system_ui_listeners = 18; - optional uint32 input_feature_flags = 19; - optional int64 user_activity_timeout = 20; - enum NeedsMenuState { - NEEDS_MENU_UNSET = 0; - NEEDS_MENU_SET_TRUE = 1; - NEEDS_MENU_SET_FALSE = 2; - } - optional NeedsMenuState needs_menu_key = 22; - optional .android.view.DisplayProto.ColorMode color_mode = 23; - optional uint32 flags = 24; - optional uint32 private_flags = 26; - optional uint32 system_ui_visibility_flags = 27; - optional uint32 subtree_system_ui_visibility_flags = 28; + optional int32 type = 1; + optional int32 x = 2; + optional int32 y = 3; + optional int32 width = 4; + optional int32 height = 5; + optional float horizontal_margin = 6; + optional float vertical_margin = 7; + optional int32 gravity = 8; + optional int32 soft_input_mode = 9; + optional .android.graphics.PixelFormatProto.Format format = 10; + optional int32 window_animations = 11; + optional float alpha = 12; + optional float screen_brightness = 13; + optional float button_brightness = 14; + + enum RotationAnimation { + ROTATION_ANIMATION_UNSPECIFIED = -1; + ROTATION_ANIMATION_CROSSFADE = 1; + ROTATION_ANIMATION_JUMPCUT = 2; + ROTATION_ANIMATION_SEAMLESS = 3; + } + optional RotationAnimation rotation_animation = 15; + + optional float preferred_refresh_rate = 16; + optional int32 preferred_display_mode_id = 17; + optional bool has_system_ui_listeners = 18; + optional uint32 input_feature_flags = 19; + optional int64 user_activity_timeout = 20; + + enum NeedsMenuState { + NEEDS_MENU_UNSET = 0; + NEEDS_MENU_SET_TRUE = 1; + NEEDS_MENU_SET_FALSE = 2; + } + optional NeedsMenuState needs_menu_key = 22; + + optional .android.view.DisplayProto.ColorMode color_mode = 23; + optional uint32 flags = 24; + optional uint32 private_flags = 26; + optional uint32 system_ui_visibility_flags = 27; + optional uint32 subtree_system_ui_visibility_flags = 28; } diff --git a/services/core/java/com/android/server/wm/Dimmer.java b/services/core/java/com/android/server/wm/Dimmer.java index 1f95868de79ec..b8431b1d8ad8a 100644 --- a/services/core/java/com/android/server/wm/Dimmer.java +++ b/services/core/java/com/android/server/wm/Dimmer.java @@ -16,7 +16,7 @@ package com.android.server.wm; -import static com.android.server.wm.AlphaAnimationSpecProto.DURATION; +import static com.android.server.wm.AlphaAnimationSpecProto.DURATION_MS; import static com.android.server.wm.AlphaAnimationSpecProto.FROM; import static com.android.server.wm.AlphaAnimationSpecProto.TO; import static com.android.server.wm.AnimationSpecProto.ALPHA; @@ -35,6 +35,7 @@ import java.io.PrintWriter; */ class Dimmer { private static final String TAG = "WindowManager"; + // This is in milliseconds. private static final int DEFAULT_DIM_ANIM_DURATION = 200; private class DimAnimatable implements SurfaceAnimator.Animatable { @@ -370,7 +371,7 @@ class Dimmer { final long token = proto.start(ALPHA); proto.write(FROM, mFromAlpha); proto.write(TO, mToAlpha); - proto.write(DURATION, mDuration); + proto.write(DURATION_MS, mDuration); proto.end(token); } } diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index da5bc73e869e7..9d3a49d8c6759 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -112,7 +112,7 @@ import static com.android.server.wm.IdentifierProto.HASH_CODE; import static com.android.server.wm.IdentifierProto.TITLE; import static com.android.server.wm.IdentifierProto.USER_ID; import static com.android.server.wm.AnimationSpecProto.MOVE; -import static com.android.server.wm.MoveAnimationSpecProto.DURATION; +import static com.android.server.wm.MoveAnimationSpecProto.DURATION_MS; import static com.android.server.wm.MoveAnimationSpecProto.FROM; import static com.android.server.wm.MoveAnimationSpecProto.TO; import static com.android.server.wm.WindowStateProto.ANIMATING_EXIT; @@ -4826,7 +4826,7 @@ class WindowState extends WindowContainer implements WindowManagerP final long token = proto.start(MOVE); mFrom.writeToProto(proto, FROM); mTo.writeToProto(proto, TO); - proto.write(DURATION, mDuration); + proto.write(DURATION_MS, mDuration); proto.end(token); } }