xref: /aosp_15_r20/external/perfetto/protos/perfetto/trace/android/server/windowmanagerservice.proto (revision 6dbdd20afdafa5e3ca9b8809fa73465d530080dc)
1/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17syntax = "proto2";
18
19import "protos/perfetto/trace/android/app/statusbarmanager.proto";
20import "protos/perfetto/trace/android/content/activityinfo.proto";
21import "protos/perfetto/trace/android/content/configuration.proto";
22import "protos/perfetto/trace/android/graphics/rect.proto";
23import "protos/perfetto/trace/android/server/windowcontainerthumbnail.proto";
24import "protos/perfetto/trace/android/server/surfaceanimator.proto";
25import "protos/perfetto/trace/android/view/displaycutout.proto";
26import "protos/perfetto/trace/android/view/displayinfo.proto";
27import "protos/perfetto/trace/android/view/surface.proto";
28import "protos/perfetto/trace/android/view/windowlayoutparams.proto";
29import "protos/perfetto/trace/android/privacy.proto";
30import "protos/perfetto/trace/android/typedef.proto";
31
32import "protos/perfetto/trace/android/view/surfacecontrol.proto";
33import "protos/perfetto/trace/android/view/insetssource.proto";
34import "protos/perfetto/trace/android/view/insetssourcecontrol.proto";
35
36import "protos/perfetto/trace/android/view/enums.proto";
37
38package perfetto.protos;
39
40message WindowManagerServiceDumpProto {
41  optional WindowManagerPolicyProto policy = 1;
42  // window hierarchy root
43  optional RootWindowContainerProto root_window_container = 2;
44  optional IdentifierProto focused_window = 3;
45  optional string focused_app = 4;
46  optional IdentifierProto input_method_window = 5;
47  optional bool display_frozen = 6;
48  optional int32 rotation = 7 [
49    (.perfetto.protos.typedef) = "android.view.Surface.Rotation",
50    deprecated = true
51  ];
52  optional int32 last_orientation = 8 [
53    (.perfetto.protos.typedef) =
54        "android.content.pm.ActivityInfo.ScreenOrientation",
55    deprecated = true
56  ];
57  optional int32 focused_display_id = 9;
58  optional bool hard_keyboard_available = 10;
59  optional bool window_frames_valid = 11;
60  optional BackNavigationProto back_navigation = 12;
61}
62
63// represents RootWindowContainer object
64message RootWindowContainerProto {
65  optional WindowContainerProto window_container = 1;
66  repeated DisplayContentProto displays = 2 [deprecated = true];
67  // IdentifierProto windows
68  reserved 3;
69  // window references in top down z order
70  repeated WindowStateProto windows = 4 [deprecated = true];
71  optional KeyguardControllerProto keyguard_controller = 5;
72  // Whether or not the home activity is the recents activity. This is needed
73  // for the CTS tests to know what activity types to check for when invoking
74  // splitscreen multi-window.
75  optional bool is_home_recents_component = 6;
76  repeated IdentifierProto pending_activities = 7 [deprecated = true];
77  optional int32 default_min_size_resizable_task = 8 [deprecated = true];
78}
79
80message BarControllerProto {
81  optional StatusBarManagerProto.WindowState state = 1;
82  optional StatusBarManagerProto.TransientWindowState transient_state = 2;
83}
84
85message WindowOrientationListenerProto {
86  optional bool enabled = 1;
87  optional SurfaceProto.Rotation rotation = 2;
88}
89
90message KeyguardServiceDelegateProto {
91  optional bool showing = 1;
92  optional bool occluded = 2;
93  optional bool secure = 3;
94  enum ScreenState {
95    SCREEN_STATE_OFF = 0;
96    SCREEN_STATE_TURNING_ON = 1;
97    SCREEN_STATE_ON = 2;
98    SCREEN_STATE_TURNING_OFF = 3;
99  }
100  optional ScreenState screen_state = 4;
101  enum InteractiveState {
102    INTERACTIVE_STATE_SLEEP = 0;
103    INTERACTIVE_STATE_WAKING = 1;
104    INTERACTIVE_STATE_AWAKE = 2;
105    INTERACTIVE_STATE_GOING_TO_SLEEP = 3;
106  }
107  optional InteractiveState interactive_state = 5;
108}
109
110message KeyguardControllerProto {
111  optional bool keyguard_showing = 1;
112  repeated KeyguardOccludedProto keyguard_occluded_states = 2
113      [deprecated = true];
114  optional bool aod_showing = 3;
115  repeated KeyguardPerDisplayProto keyguard_per_display = 4;
116  optional bool keyguard_going_away = 5;
117}
118
119message KeyguardOccludedProto {
120  optional int32 display_id = 1;
121  optional bool keyguard_occluded = 2;
122}
123
124message KeyguardPerDisplayProto {
125  optional int32 display_id = 1;
126  optional bool keyguard_showing = 2;
127  optional bool aod_showing = 3;
128  optional bool keyguard_occluded = 4;
129  optional bool keyguard_going_away = 5;
130}
131
132// represents PhoneWindowManager
133message WindowManagerPolicyProto {
134  optional int32 last_system_ui_flags = 1 [deprecated = true];
135  enum UserRotationMode {
136    USER_ROTATION_FREE = 0;
137    USER_ROTATION_LOCKED = 1;
138  }
139  optional UserRotationMode rotation_mode = 2;
140  optional SurfaceProto.Rotation rotation = 3;
141  optional ActivityInfoProto.ScreenOrientation orientation = 4;
142  optional bool screen_on_fully = 5;
143  optional bool keyguard_draw_complete = 6;
144  optional bool window_manager_draw_complete = 7;
145  optional string focused_app_token = 8 [deprecated = true];
146  optional IdentifierProto focused_window = 9 [deprecated = true];
147  optional IdentifierProto top_fullscreen_opaque_window = 10
148      [deprecated = true];
149  optional IdentifierProto top_fullscreen_opaque_or_dimming_window = 11
150      [deprecated = true];
151  optional bool keyguard_occluded = 12;
152  optional bool keyguard_occluded_changed = 13;
153  optional bool keyguard_occluded_pending = 14;
154  optional bool force_status_bar = 15 [deprecated = true];
155  optional bool force_status_bar_from_keyguard = 16 [deprecated = true];
156  optional BarControllerProto status_bar = 17 [deprecated = true];
157  optional BarControllerProto navigation_bar = 18 [deprecated = true];
158  optional WindowOrientationListenerProto orientation_listener = 19
159      [deprecated = true];
160  optional KeyguardServiceDelegateProto keyguard_delegate = 20;
161}
162
163// represents AppTransition
164message AppTransitionProto {
165  enum AppState {
166    APP_STATE_IDLE = 0;
167    APP_STATE_READY = 1;
168    APP_STATE_RUNNING = 2;
169    APP_STATE_TIMEOUT = 3;
170  }
171  optional AppState app_transition_state = 1;
172
173  optional TransitionTypeEnum last_used_app_transition = 2;
174}
175
176// represents DisplayContent object
177message DisplayContentProto {
178  // Use root_display_area instead
179  optional WindowContainerProto window_container = 1 [deprecated = true];
180  optional int32 id = 2;
181  // RootTasks
182  reserved 3;
183  optional DockedTaskDividerControllerProto docked_task_divider_controller = 4
184      [deprecated = true];
185  // Will be removed soon.
186  optional PinnedTaskControllerProto pinned_task_controller = 5
187      [deprecated = true];
188  // non app windows
189  repeated WindowTokenProto above_app_windows = 6 [deprecated = true];
190  repeated WindowTokenProto below_app_windows = 7 [deprecated = true];
191  repeated WindowTokenProto ime_windows = 8 [deprecated = true];
192  optional int32 dpi = 9;
193  optional DisplayInfoProto display_info = 10;
194  optional int32 rotation = 11 [
195    (.perfetto.protos.typedef) = "android.view.Surface.Rotation",
196    deprecated = true
197  ];
198  optional ScreenRotationAnimationProto screen_rotation_animation = 12;
199  optional DisplayFramesProto display_frames = 13;
200  optional int32 surface_size = 14 [deprecated = true];
201  optional string focused_app = 15;
202  optional AppTransitionProto app_transition = 16;
203  repeated IdentifierProto opening_apps = 17;
204  repeated IdentifierProto closing_apps = 18;
205  repeated IdentifierProto changing_apps = 19;
206  repeated WindowTokenProto overlay_windows = 20 [deprecated = true];
207  optional DisplayAreaProto root_display_area = 21;
208
209  optional bool single_task_instance = 22 [deprecated = true];
210  optional int32 focused_root_task_id = 23;
211  optional IdentifierProto resumed_activity = 24;
212  repeated TaskProto tasks = 25 [deprecated = true];
213  optional bool display_ready = 26;
214  optional WindowStateProto input_method_target = 27;
215  optional WindowStateProto input_method_input_target = 28;
216  optional WindowStateProto input_method_control_target = 29;
217  optional WindowStateProto current_focus = 30;
218  optional ImeInsetsSourceProviderProto ime_insets_source_provider = 31;
219  optional bool can_show_ime = 32 [deprecated = true];
220
221  optional DisplayRotationProto display_rotation = 33;
222  optional int32 ime_policy = 34;
223
224  repeated InsetsSourceProviderProto insets_source_providers = 35;
225  optional bool is_sleeping = 36;
226  repeated string sleep_tokens = 37;
227  repeated RectProto keep_clear_areas = 38;
228  optional int32 min_size_of_resizeable_task_dp = 39;
229}
230
231// represents DisplayArea object
232message DisplayAreaProto {
233  optional WindowContainerProto window_container = 1;
234  optional string name = 2 [(.perfetto.protos.privacy).dest = DEST_EXPLICIT];
235  repeated DisplayAreaChildProto children = 3 [deprecated = true];
236  optional bool is_task_display_area = 4;
237  optional bool is_root_display_area = 5;
238  optional int32 feature_id = 6;
239  optional bool is_organized = 7;
240  optional bool is_ignoring_orientation_request = 8;
241}
242
243// represents a generic child of a DisplayArea
244message DisplayAreaChildProto {
245  // At most one of the following should be present:
246
247  // represents a DisplayArea child
248  optional DisplayAreaProto display_area = 1;
249  // represents a WindowToken child
250  optional WindowTokenProto window = 2;
251  // represents an unknown child - the class name is recorded
252  repeated string unknown = 3;
253}
254
255// represents DisplayFrames
256message DisplayFramesProto {
257  optional RectProto stable_bounds = 1 [deprecated = true];
258  optional RectProto dock = 2 [deprecated = true];
259  optional RectProto current = 3 [deprecated = true];
260}
261
262message DisplayRotationProto {
263  optional int32 rotation = 1
264      [(.perfetto.protos.typedef) = "android.view.Surface.Rotation"];
265  optional bool frozen_to_user_rotation = 2;
266  optional int32 user_rotation = 3
267      [(.perfetto.protos.typedef) = "android.view.Surface.Rotation"];
268  optional int32 fixed_to_user_rotation_mode = 4;
269  optional int32 last_orientation = 5
270      [(.perfetto.protos.typedef) =
271           "android.content.pm.ActivityInfo.ScreenOrientation"];
272  optional bool is_fixed_to_user_rotation = 6;
273}
274
275// represents DockedTaskDividerController
276message DockedTaskDividerControllerProto {
277  optional bool minimized_dock = 1 [deprecated = true];
278}
279
280// represents PinnedTaskController
281message PinnedTaskControllerProto {
282  optional RectProto default_bounds = 1 [deprecated = true];
283  optional RectProto movement_bounds = 2 [deprecated = true];
284}
285
286// represents Task
287message TaskProto {
288  optional WindowContainerProto window_container = 1 [deprecated = true];
289  optional int32 id = 2;
290  // activity
291  reserved 3;
292  optional bool fills_parent = 4;
293  optional RectProto bounds = 5;
294  optional RectProto displayed_bounds = 6 [deprecated = true];
295  optional bool defer_removal = 7;
296  optional int32 surface_width = 8;
297  optional int32 surface_height = 9;
298
299  repeated TaskProto tasks = 10 [deprecated = true];
300  repeated ActivityRecordProto activities = 11 [deprecated = true];
301
302  optional IdentifierProto resumed_activity = 12;
303  optional string real_activity = 13;
304  optional string orig_activity = 14;
305
306  optional int32 display_id = 15 [deprecated = true];
307  optional int32 root_task_id = 16;
308  optional int32 activity_type = 17 [
309    (.perfetto.protos.typedef) = "android.app.WindowConfiguration.ActivityType",
310    deprecated = true
311  ];
312  optional int32 resize_mode = 18
313      [(.perfetto.protos.typedef) =
314           "android.appwidget.AppWidgetProviderInfo.ResizeModeFlags"];
315  optional int32 min_width = 19 [deprecated = true];
316  optional int32 min_height = 20 [deprecated = true];
317
318  optional RectProto adjusted_bounds = 21;
319  optional RectProto last_non_fullscreen_bounds = 22;
320  optional bool adjusted_for_ime = 23;
321  optional float adjust_ime_amount = 24;
322  optional float adjust_divider_amount = 25;
323  optional bool animating_bounds = 26 [deprecated = true];
324  optional float minimize_amount = 27;
325  optional bool created_by_organizer = 28;
326  optional string affinity = 29;
327  optional bool has_child_pip_activity = 30;
328  optional TaskFragmentProto task_fragment = 31;
329}
330
331// represents TaskFragment
332message TaskFragmentProto {
333  optional WindowContainerProto window_container = 1;
334  optional int32 display_id = 2;
335  optional int32 activity_type = 3
336      [(.perfetto.protos.typedef) =
337           "android.app.WindowConfiguration.ActivityType"];
338  optional int32 min_width = 4;
339  optional int32 min_height = 5;
340}
341
342// represents ActivityRecordProto
343message ActivityRecordProto {
344  optional string name = 1 [(.perfetto.protos.privacy).dest = DEST_EXPLICIT];
345  optional WindowTokenProto window_token = 2;
346  optional bool last_surface_showing = 3;
347  optional bool is_waiting_for_transition_start = 4;
348  optional bool is_animating = 5;
349  optional WindowContainerThumbnailProto thumbnail = 6;
350  optional bool fills_parent = 7;
351  optional bool app_stopped = 8;
352  optional bool visible_requested = 9;
353  optional bool client_visible = 10;
354  optional bool defer_hiding_client = 11;
355  optional bool reported_drawn = 12;
356  optional bool reported_visible = 13;
357  optional int32 num_interesting_windows = 14;
358  optional int32 num_drawn_windows = 15;
359  optional bool all_drawn = 16;
360  optional bool last_all_drawn = 17;
361  // removed
362  reserved 18;
363  optional IdentifierProto starting_window = 19;
364  optional bool starting_displayed = 20;
365  optional bool starting_moved = 201;
366  optional bool visible_set_from_transferred_starting_window = 22;
367  repeated RectProto frozen_bounds = 23 [deprecated = true];
368  optional bool visible = 24;
369  // configuration_container
370  reserved 25;
371  optional IdentifierProto identifier = 26 [deprecated = true];
372  optional string state = 27 [(.perfetto.protos.privacy).dest = DEST_EXPLICIT];
373  optional bool front_of_task = 28;
374  optional int32 proc_id = 29;
375  optional bool translucent = 30;
376  optional bool pip_auto_enter_enabled = 31;
377  optional bool in_size_compat_mode = 32;
378  optional float min_aspect_ratio = 33;
379  optional bool provides_max_bounds = 34;
380  optional bool enable_recents_screenshot = 35;
381  optional int32 last_drop_input_mode = 36;
382  optional int32 override_orientation = 37
383      [(.perfetto.protos.typedef) =
384           "android.content.pm.ActivityInfo.ScreenOrientation"];
385  optional bool should_send_compat_fake_focus = 38;
386  optional bool should_force_rotate_for_camera_compat = 39;
387  optional bool should_refresh_activity_for_camera_compat = 40;
388  optional bool should_refresh_activity_via_pause_for_camera_compat = 41;
389  optional bool should_override_min_aspect_ratio = 42;
390  optional bool should_ignore_orientation_request_loop = 43;
391  optional bool should_override_force_resize_app = 44;
392  optional bool should_enable_user_aspect_ratio_settings = 45;
393  optional bool is_user_fullscreen_override_enabled = 46;
394}
395
396// represents WindowToken
397message WindowTokenProto {
398  optional WindowContainerProto window_container = 1;
399  optional int32 hash_code = 2;
400  repeated WindowStateProto windows = 3 [deprecated = true];
401  optional bool waiting_to_show = 5 [deprecated = true];
402  optional bool paused = 6;
403}
404
405// represents WindowState
406message WindowStateProto {
407  optional WindowContainerProto window_container = 1;
408  optional IdentifierProto identifier = 2 [deprecated = true];
409  // Unique identifier of a DisplayContent stack.
410  optional int32 display_id = 3;
411  // Unique identifier for the task stack.
412  optional int32 stack_id = 4;
413  optional WindowLayoutParamsProto attributes = 5;
414  optional RectProto given_content_insets = 6;
415  optional RectProto frame = 7 [deprecated = true];
416  optional RectProto containing_frame = 8 [deprecated = true];
417  optional RectProto parent_frame = 9 [deprecated = true];
418  optional RectProto content_frame = 10 [deprecated = true];
419  optional RectProto content_insets = 11 [deprecated = true];
420  optional RectProto surface_insets = 12;
421  optional WindowStateAnimatorProto animator = 13;
422  optional bool animating_exit = 14;
423  repeated WindowStateProto child_windows = 15 [deprecated = true];
424  optional RectProto surface_position = 16;
425  optional int32 requested_width = 18;
426  optional int32 requested_height = 19;
427  optional int32 view_visibility = 20
428      [(.perfetto.protos.typedef) = "android.view.View.Visibility"];
429  optional int32 system_ui_visibility = 21 [deprecated = true];
430  optional bool has_surface = 22;
431  optional bool is_ready_for_display = 23;
432  optional RectProto display_frame = 24 [deprecated = true];
433  optional RectProto overscan_frame = 25 [deprecated = true];
434  optional RectProto visible_frame = 26 [deprecated = true];
435  optional RectProto decor_frame = 27 [deprecated = true];
436  optional RectProto outset_frame = 28 [deprecated = true];
437  optional RectProto overscan_insets = 29 [deprecated = true];
438  optional RectProto visible_insets = 30 [deprecated = true];
439  optional RectProto stable_insets = 31 [deprecated = true];
440  optional RectProto outsets = 32 [deprecated = true];
441  optional DisplayCutoutProto cutout = 33 [deprecated = true];
442  optional bool remove_on_exit = 34;
443  optional bool destroying = 35;
444  optional bool removed = 36;
445  optional bool is_on_screen = 37;
446  optional bool is_visible = 38;
447  optional bool pending_seamless_rotation = 39;
448  optional int64 finished_seamless_rotation_frame = 40 [deprecated = true];
449  optional WindowFramesProto window_frames = 41;
450  optional bool force_seamless_rotation = 42;
451  optional bool has_compat_scale = 43;
452  optional float global_scale = 44;
453  repeated RectProto keep_clear_areas = 45;
454  repeated RectProto unrestricted_keep_clear_areas = 46;
455  repeated InsetsSourceProto mergedLocalInsetsSources = 47;
456  optional int32 requested_visible_types = 48;
457  optional RectProto dim_bounds = 49;
458}
459
460message IdentifierProto {
461  optional int32 hash_code = 1;
462  optional int32 user_id = 2;
463  // Either a component name/string (eg: "com.android.settings/.FallbackHome")
464  // or a window title ("NavigationBar").
465  optional string title = 3 [(.perfetto.protos.privacy).dest = DEST_EXPLICIT];
466}
467
468// represents WindowStateAnimator
469message WindowStateAnimatorProto {
470  optional RectProto last_clip_rect = 1;
471  optional WindowSurfaceControllerProto surface = 2;
472  enum DrawState {
473    NO_SURFACE = 0;
474    DRAW_PENDING = 1;
475    COMMIT_DRAW_PENDING = 2;
476    READY_TO_SHOW = 3;
477    HAS_DRAWN = 4;
478  }
479  optional DrawState draw_state = 3;
480  optional RectProto system_decor_rect = 4;
481}
482
483// represents WindowSurfaceController
484message WindowSurfaceControllerProto {
485  optional bool shown = 1;
486  optional int32 layer = 2;
487}
488
489// represents ScreenRotationAnimation
490message ScreenRotationAnimationProto {
491  optional bool started = 1;
492  optional bool animation_running = 2;
493}
494
495// represents WindowContainer
496message WindowContainerProto {
497  optional ConfigurationContainerProto configuration_container = 1;
498  optional int32 orientation = 2
499      [(.perfetto.protos.typedef) =
500           "android.content.pm.ActivityInfo.ScreenOrientation"];
501  optional bool visible = 3;
502  optional SurfaceAnimatorProto surface_animator = 4;
503  repeated WindowContainerChildProto children = 5;
504  optional IdentifierProto identifier = 6;
505  optional SurfaceControlProto surface_control = 7;
506}
507
508// represents a generic child of a WindowContainer
509message WindowContainerChildProto {
510  // A window container can have multiple children of different types stored as
511  // a WindowContainerChildProto but each instance of WindowContainerChildProto
512  // can only contain a single type.
513  //
514  // We do not know the derived type and the class is dumped
515  // as a WindowContainer
516  optional WindowContainerProto window_container = 2;
517  // represents a DisplayContent child
518  optional DisplayContentProto display_content = 3;
519  // represents a DisplayArea child
520  optional DisplayAreaProto display_area = 4;
521  // represents a Task child
522  optional TaskProto task = 5;
523  // represents an ActivityRecord child
524  optional ActivityRecordProto activity = 6;
525  // represents a WindowToken child
526  optional WindowTokenProto window_token = 7;
527  // represents a WindowState child
528  optional WindowStateProto window = 8;
529  // represents a WindowState child
530  optional TaskFragmentProto task_fragment = 9;
531}
532
533// represents ConfigurationContainer
534message ConfigurationContainerProto {
535  optional ConfigurationProto override_configuration = 1;
536  optional ConfigurationProto full_configuration = 2;
537  optional ConfigurationProto merged_override_configuration = 3;
538}
539
540// represents WindowFrames
541message WindowFramesProto {
542  optional RectProto containing_frame = 1 [deprecated = true];
543  optional RectProto content_frame = 2 [deprecated = true];
544  optional RectProto decor_frame = 3 [deprecated = true];
545  optional RectProto display_frame = 4;
546  optional RectProto frame = 5;
547  optional RectProto outset_frame = 6;
548  optional RectProto overscan_frame = 7 [deprecated = true];
549  optional RectProto parent_frame = 8;
550  optional RectProto visible_frame = 9 [deprecated = true];
551  optional DisplayCutoutProto cutout = 10 [deprecated = true];
552  optional RectProto content_insets = 11 [deprecated = true];
553  optional RectProto overscan_insets = 12 [deprecated = true];
554  optional RectProto visible_insets = 13 [deprecated = true];
555  optional RectProto stable_insets = 14 [deprecated = true];
556  optional RectProto outsets = 15;
557  optional RectProto compat_frame = 16;
558}
559
560message InsetsSourceProviderProto {
561  optional InsetsSourceProto source = 1;
562  optional RectProto frame = 2;
563  optional InsetsSourceControlProto fake_control = 3;
564  optional InsetsSourceControlProto control = 4;
565  optional WindowStateProto control_target = 5;
566  optional WindowStateProto pending_control_target = 6;
567  optional WindowStateProto fake_control_target = 7;
568  optional SurfaceControlProto captured_leash = 8;
569  optional RectProto ime_overridden_frame = 9 [deprecated = true];
570  optional bool is_leash_ready_for_dispatching = 10;
571  optional bool client_visible = 11;
572  optional bool server_visible = 12;
573  optional bool seamless_rotating = 13;
574  optional int64 finish_seamless_rotate_frame_number = 14;
575  optional bool controllable = 15;
576  optional WindowStateProto source_window_state = 16;
577}
578
579message ImeInsetsSourceProviderProto {
580  optional InsetsSourceProviderProto insets_source_provider = 1;
581  optional WindowStateProto ime_target_from_ime = 2;
582  optional bool is_ime_layout_drawn = 3 [deprecated = true];
583}
584
585message BackNavigationProto {
586  optional bool animation_in_progress = 1;
587  optional int32 last_back_type = 2;
588  optional bool show_wallpaper = 3;
589  optional string main_open_activity = 4;
590  optional bool animation_running = 5;
591}