blob: 79a5dd78ffb39e3dec63a50525563fa128a8c636 [file] [log] [blame]
Steven Timotius4346f0a2017-09-12 11:07:21 -07001/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
Yi Jinc7f93072017-09-29 15:29:38 -070017syntax = "proto2";
Yi Jin6b514142017-10-30 14:54:12 -070018
Yi Jin6c6e9ca2018-03-20 16:53:35 -070019package com.android.server.am;
Kweku Adams598e9a22017-11-02 17:12:20 -070020
Yi Jin148d7f42017-11-28 14:23:56 -080021import "frameworks/base/core/proto/android/app/activitymanager.proto";
Bookatzdb026a22018-01-10 19:01:56 -080022import "frameworks/base/core/proto/android/app/enums.proto";
Yi Jin6b514142017-10-30 14:54:12 -070023import "frameworks/base/core/proto/android/app/notification.proto";
Yi Jin148d7f42017-11-28 14:23:56 -080024import "frameworks/base/core/proto/android/app/profilerinfo.proto";
25import "frameworks/base/core/proto/android/content/component_name.proto";
26import "frameworks/base/core/proto/android/content/configuration.proto";
Yi Jin129fc6c2017-09-28 15:48:38 -070027import "frameworks/base/core/proto/android/content/intent.proto";
Yi Jin148d7f42017-11-28 14:23:56 -080028import "frameworks/base/core/proto/android/content/package_item_info.proto";
Steven Timotius4346f0a2017-09-12 11:07:21 -070029import "frameworks/base/core/proto/android/graphics/rect.proto";
Kweku Adams983829f2017-12-06 14:53:50 -080030import "frameworks/base/core/proto/android/internal/processstats.proto";
Kweku Adams87c60a02018-06-13 12:13:52 -070031import "frameworks/base/core/proto/android/os/bundle.proto";
Yi Jin129fc6c2017-09-28 15:48:38 -070032import "frameworks/base/core/proto/android/os/looper.proto";
Yi Jin148d7f42017-11-28 14:23:56 -080033import "frameworks/base/core/proto/android/os/powermanager.proto";
Kweku Adams598e9a22017-11-02 17:12:20 -070034import "frameworks/base/core/proto/android/server/intentresolver.proto";
35import "frameworks/base/core/proto/android/server/windowmanagerservice.proto";
Yi Jin6b514142017-10-30 14:54:12 -070036import "frameworks/base/core/proto/android/util/common.proto";
Yi Jin0d7bc2d12018-01-23 17:35:19 -080037import "frameworks/base/libs/incident/proto/android/privacy.proto";
Steven Timotius4346f0a2017-09-12 11:07:21 -070038
Steven Timotius4346f0a2017-09-12 11:07:21 -070039option java_multiple_files = true;
40
41message ActivityManagerServiceProto {
Kweku Adams21b8d262018-03-30 12:19:58 -070042 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -080043
Kweku Adams21b8d262018-03-30 12:19:58 -070044 optional ActivityManagerServiceDumpActivitiesProto activities = 1;
Yi Jin129fc6c2017-09-28 15:48:38 -070045
Kweku Adams21b8d262018-03-30 12:19:58 -070046 optional ActivityManagerServiceDumpBroadcastsProto broadcasts = 2;
Yi Jin129fc6c2017-09-28 15:48:38 -070047
Kweku Adams21b8d262018-03-30 12:19:58 -070048 optional ActivityManagerServiceDumpServicesProto services = 3;
Yi Jin129fc6c2017-09-28 15:48:38 -070049
Kweku Adams21b8d262018-03-30 12:19:58 -070050 optional ActivityManagerServiceDumpProcessesProto processes = 4;
Steven Timotius4346f0a2017-09-12 11:07:21 -070051}
52
Yi Jin6b514142017-10-30 14:54:12 -070053// "dumpsys activity --proto activities"
Yi Jin2b30f322018-02-20 15:41:47 -080054message ActivityManagerServiceDumpActivitiesProto {
Kweku Adams21b8d262018-03-30 12:19:58 -070055 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin2b30f322018-02-20 15:41:47 -080056
Kweku Adams21b8d262018-03-30 12:19:58 -070057 optional ActivityStackSupervisorProto activity_stack_supervisor = 1;
Yi Jin2b30f322018-02-20 15:41:47 -080058}
59
Steven Timotius4346f0a2017-09-12 11:07:21 -070060message ActivityStackSupervisorProto {
Kweku Adams21b8d262018-03-30 12:19:58 -070061 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -080062
Kweku Adams21b8d262018-03-30 12:19:58 -070063 optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1;
64 repeated ActivityDisplayProto displays = 2;
65 optional KeyguardControllerProto keyguard_controller = 3;
Andrii Kulianab132ee2018-07-24 22:10:21 +080066 // TODO(b/111541062): Focused stack and resumed activity are now per-display. Topmost instances
67 // can be obtained from top display and these fields can be removed.
Kweku Adams21b8d262018-03-30 12:19:58 -070068 optional int32 focused_stack_id = 4;
69 optional .com.android.server.wm.IdentifierProto resumed_activity = 5;
70 // Whether or not the home activity is the recents activity. This is needed for the CTS tests to
71 // know what activity types to check for when invoking splitscreen multi-window.
72 optional bool is_home_recents_component = 6;
wilsonshih468b7c02018-06-29 10:21:40 +080073 repeated .com.android.server.wm.IdentifierProto pending_activities = 7;
Steven Timotius4346f0a2017-09-12 11:07:21 -070074}
75
76/* represents ActivityStackSupervisor.ActivityDisplay */
77message ActivityDisplayProto {
Kweku Adams21b8d262018-03-30 12:19:58 -070078 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -080079
Kweku Adams21b8d262018-03-30 12:19:58 -070080 optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1;
81 optional int32 id = 2;
82 repeated ActivityStackProto stacks = 3;
Andrii Kulianab132ee2018-07-24 22:10:21 +080083 optional int32 focused_stack_id = 4;
84 optional .com.android.server.wm.IdentifierProto resumed_activity = 5;
Wale Ogunwale9e737db2018-12-17 15:42:37 -080085 optional bool single_task_instance = 6;
Steven Timotius4346f0a2017-09-12 11:07:21 -070086}
87
88message ActivityStackProto {
Kweku Adams21b8d262018-03-30 12:19:58 -070089 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -080090
Kweku Adams21b8d262018-03-30 12:19:58 -070091 optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1;
92 optional int32 id = 2;
93 repeated TaskRecordProto tasks = 3;
94 optional .com.android.server.wm.IdentifierProto resumed_activity = 4;
95 optional int32 display_id = 5;
96 optional bool fullscreen = 6;
97 optional .android.graphics.RectProto bounds = 7;
Steven Timotius4346f0a2017-09-12 11:07:21 -070098}
99
100message TaskRecordProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700101 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800102
Kweku Adams21b8d262018-03-30 12:19:58 -0700103 optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1;
104 optional int32 id = 2;
105 repeated ActivityRecordProto activities = 3;
106 optional int32 stack_id = 4;
107 optional .android.graphics.RectProto last_non_fullscreen_bounds = 5;
108 optional string real_activity = 6;
109 optional string orig_activity = 7;
110 optional int32 activity_type = 8;
111 optional int32 resize_mode = 9;
112 optional bool fullscreen = 10;
113 optional .android.graphics.RectProto bounds = 11;
114 optional int32 min_width = 12;
115 optional int32 min_height = 13;
Steven Timotius4346f0a2017-09-12 11:07:21 -0700116}
117
118message ActivityRecordProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700119 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800120
Kweku Adams21b8d262018-03-30 12:19:58 -0700121 optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1;
122 optional .com.android.server.wm.IdentifierProto identifier = 2;
123 optional string state = 3;
124 optional bool visible = 4;
125 optional bool front_of_task = 5;
126 optional int32 proc_id = 6;
Wale Ogunwale30eab1f2018-05-24 18:25:25 -0700127 optional bool translucent = 7;
Steven Timotius4346f0a2017-09-12 11:07:21 -0700128}
129
130message KeyguardControllerProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700131 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800132
Kweku Adams21b8d262018-03-30 12:19:58 -0700133 optional bool keyguard_showing = 1;
wilsonshih0299c8a2018-08-24 15:52:57 +0800134 repeated KeyguardOccludedProto keyguard_occluded_states= 2;
Issei Suzukid6eb5a22019-02-20 23:08:03 +0100135 optional bool aod_showing = 3;
wilsonshih0299c8a2018-08-24 15:52:57 +0800136}
137
138message KeyguardOccludedProto {
139 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
140
141 optional int32 display_id = 1;
Kweku Adams21b8d262018-03-30 12:19:58 -0700142 optional bool keyguard_occluded = 2;
Yi Jin129fc6c2017-09-28 15:48:38 -0700143}
144
Yi Jin6b514142017-10-30 14:54:12 -0700145// "dumpsys activity --proto broadcasts"
Yi Jin2b30f322018-02-20 15:41:47 -0800146message ActivityManagerServiceDumpBroadcastsProto {
Yi Jin69040222018-01-25 14:38:10 -0800147 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
148
Kweku Adams21b8d262018-03-30 12:19:58 -0700149 repeated ReceiverListProto receiver_list = 1;
150
151 optional .com.android.server.IntentResolverProto receiver_resolver = 2;
152
153 repeated BroadcastQueueProto broadcast_queue = 3;
154
155 repeated StickyBroadcastProto sticky_broadcasts = 4;
156
157 message MainHandler {
158 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
159
160 optional string handler = 1;
161 optional .android.os.LooperProto looper = 2;
162 }
163 optional MainHandler handler = 5;
Yi Jin129fc6c2017-09-28 15:48:38 -0700164}
165
166message ReceiverListProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700167 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800168
Kweku Adams21b8d262018-03-30 12:19:58 -0700169 optional ProcessRecordProto app = 1;
170 optional int32 pid = 2;
171 optional int32 uid = 3;
172 optional int32 user = 4;
173 optional BroadcastRecordProto current = 5;
174 optional bool linked_to_death = 6;
175 repeated BroadcastFilterProto filters = 7;
Kweku Adams87c60a02018-06-13 12:13:52 -0700176 // Used to find this ReceiverList object in IntentResolver
177 optional string hex_hash = 8;
Yi Jin129fc6c2017-09-28 15:48:38 -0700178}
179
180message ProcessRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800181 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
182
Kweku Adams598e9a22017-11-02 17:12:20 -0700183 optional int32 pid = 1;
184 optional string process_name = 2;
Kweku Adams21b8d262018-03-30 12:19:58 -0700185 optional int32 uid = 3;
186 optional int32 user_id = 4;
187 optional int32 app_id = 5;
188 optional int32 isolated_app_id = 6;
189 optional bool persistent = 7;
Dianne Hackborn2f55e5a2018-11-30 16:31:31 -0800190 optional int32 lru_index = 8;
Kweku Adams21b8d262018-03-30 12:19:58 -0700191}
Kweku Adams598e9a22017-11-02 17:12:20 -0700192
Kweku Adams21b8d262018-03-30 12:19:58 -0700193message BroadcastRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800194 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
195
Kweku Adams21b8d262018-03-30 12:19:58 -0700196 optional int32 user_id = 1;
197 optional string intent_action = 2;
198}
Kweku Adams983829f2017-12-06 14:53:50 -0800199
Kweku Adams21b8d262018-03-30 12:19:58 -0700200message BroadcastFilterProto {
201 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800202
Kweku Adams21b8d262018-03-30 12:19:58 -0700203 optional .android.content.IntentFilterProto intent_filter = 1;
204 optional string required_permission = 2;
Kweku Adams87c60a02018-06-13 12:13:52 -0700205 // Used to find the BroadcastFilter object in IntentResolver
206 optional string hex_hash = 3;
Kweku Adams21b8d262018-03-30 12:19:58 -0700207 optional int32 owning_user_id = 4;
208}
Kweku Adams983829f2017-12-06 14:53:50 -0800209
Kweku Adams21b8d262018-03-30 12:19:58 -0700210message BroadcastQueueProto {
211 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800212
Kweku Adams21b8d262018-03-30 12:19:58 -0700213 optional string queue_name = 1;
214 repeated BroadcastRecordProto parallel_broadcasts = 2;
215 repeated BroadcastRecordProto ordered_broadcasts = 3;
216 optional BroadcastRecordProto pending_broadcast = 4;
217 repeated BroadcastRecordProto historical_broadcasts = 5;
Kweku Adams983829f2017-12-06 14:53:50 -0800218
Kweku Adams21b8d262018-03-30 12:19:58 -0700219 message BroadcastSummary {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800220 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
221
Kweku Adams21b8d262018-03-30 12:19:58 -0700222 optional .android.content.IntentProto intent = 1;
223 optional int64 enqueue_clock_time_ms = 2;
224 optional int64 dispatch_clock_time_ms = 3;
225 optional int64 finish_clock_time_ms = 4;
Kweku Adams983829f2017-12-06 14:53:50 -0800226 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700227 repeated BroadcastSummary historical_broadcasts_summary = 6;
228}
Kweku Adams983829f2017-12-06 14:53:50 -0800229
Kweku Adams21b8d262018-03-30 12:19:58 -0700230message MemInfoDumpProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800231 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
232
Kweku Adams21b8d262018-03-30 12:19:58 -0700233 optional int64 uptime_duration_ms = 1;
234 optional int64 elapsed_realtime_ms = 2;
Kweku Adams983829f2017-12-06 14:53:50 -0800235
Kweku Adams21b8d262018-03-30 12:19:58 -0700236 message ProcessMemory {
237 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Kweku Adams983829f2017-12-06 14:53:50 -0800238
Kweku Adams21b8d262018-03-30 12:19:58 -0700239 optional int32 pid = 1;
240 optional string process_name = 2;
Kweku Adams983829f2017-12-06 14:53:50 -0800241
Kweku Adams21b8d262018-03-30 12:19:58 -0700242 message MemoryInfo {
243 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Kweku Adams983829f2017-12-06 14:53:50 -0800244
Kweku Adams21b8d262018-03-30 12:19:58 -0700245 optional string name = 1;
246 // The proportional set size for the heap.
247 optional int32 total_pss_kb = 2;
248 // The proportional set size that is swappable for the heap.
249 optional int32 clean_pss_kb = 3;
250 // The private dirty pages used by the heap.
251 optional int32 shared_dirty_kb = 4;
252 // The shared dirty pages used by the heap.
253 optional int32 private_dirty_kb = 5;
254 // The shared clean pages used by the heap.
255 optional int32 shared_clean_kb = 6;
256 // The private clean pages used by the heap.
257 optional int32 private_clean_kb = 7;
258 oneof dirty_swap {
259 // The dirty the pages that have been swapped out.
260 int32 dirty_swap_kb = 8;
261 // The dirty the pages that have been swapped out, proportional.
262 int32 dirty_swap_pss_kb = 9;
263 }
264 }
265 message HeapInfo {
266 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Kweku Adams983829f2017-12-06 14:53:50 -0800267
Kweku Adams21b8d262018-03-30 12:19:58 -0700268 optional MemoryInfo mem_info = 1;
269 optional int32 heap_size_kb = 2;
270 optional int32 heap_alloc_kb = 3;
271 optional int32 heap_free_kb = 4;
272 }
273 optional HeapInfo native_heap = 3;
274 optional HeapInfo dalvik_heap = 4;
275 repeated MemoryInfo other_heaps = 5;
276 optional MemoryInfo unknown_heap = 6;
277 // Summation of native_heap, dalvik_heap, and other_heaps.
278 optional HeapInfo total_heap = 7;
Kweku Adams983829f2017-12-06 14:53:50 -0800279
Kweku Adams21b8d262018-03-30 12:19:58 -0700280 repeated MemoryInfo dalvik_details = 8;
Kweku Adams983829f2017-12-06 14:53:50 -0800281
Kweku Adams21b8d262018-03-30 12:19:58 -0700282 message AppSummary {
283 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Kweku Adams983829f2017-12-06 14:53:50 -0800284
Kweku Adams21b8d262018-03-30 12:19:58 -0700285 optional int32 java_heap_pss_kb = 1;
286 optional int32 native_heap_pss_kb = 2;
287 optional int32 code_pss_kb = 3;
288 optional int32 stack_pss_kb = 4;
289 optional int32 graphics_pss_kb = 5;
290 optional int32 private_other_pss_kb = 6;
291 optional int32 system_pss_kb = 7;
292
293 oneof total_swap {
294 int32 total_swap_pss = 8;
295 int32 total_swap_kb = 9;
296 }
297 }
298 optional AppSummary app_summary = 9;
299 }
300 repeated ProcessMemory native_processes = 3;
301
302 message AppData {
303 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
304
305 optional ProcessMemory process_memory = 1;
306
307 message ObjectStats {
308 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
309
310 optional int32 view_instance_count = 1;
311 optional int32 view_root_instance_count = 2;
312 optional int32 app_context_instance_count = 3;
313 optional int32 activity_instance_count = 4;
314 optional int32 global_asset_count = 5;
315 optional int32 global_asset_manager_count = 6;
316 optional int32 local_binder_object_count = 7;
317 optional int32 proxy_binder_object_count = 8;
318 optional int64 parcel_memory_kb = 9;
319 optional int32 parcel_count = 10;
320 optional int32 binder_object_death_count = 11;
321 optional int32 open_ssl_socket_count = 12;
322 optional int32 webview_instance_count = 13;
323 }
324 optional ObjectStats objects = 2;
325
326 message SqlStats {
327 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
328
329 optional int32 memory_used_kb = 1;
330 optional int32 pagecache_overflow_kb = 2;
331 optional int32 malloc_size_kb = 3;
332
333 message Database {
334 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
335
336 optional string name = 1;
337 optional int32 page_size = 2;
338 optional int32 db_size = 3;
339 // Number of lookaside slots:
340 // http://www.sqlite.org/c3ref/c_dbstatus_lookaside_used.html
341 optional int32 lookaside_b = 4;
342 // Statement cache stats: hits/misses/cachesize
343 optional string cache = 5;
344 }
345 repeated Database databases = 4;
346 }
347 optional SqlStats sql = 3;
348
349 optional string asset_allocations = 4;
350 optional string unreachable_memory = 5;
351 }
352 repeated AppData app_processes = 4;
353
354 message MemItem {
355 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
356
357 optional string tag = 1;
358 optional string label = 2;
359 optional int32 id = 3;
360 optional bool is_proc = 4;
361 optional bool has_activities = 5;
362 optional int64 pss_kb = 6;
363 optional int64 swap_pss_kb = 7;
364 repeated MemItem sub_items = 8;
365 }
366 repeated MemItem total_pss_by_process = 5;
367 repeated MemItem total_pss_by_oom_adjustment = 6;
368 repeated MemItem total_pss_by_category = 7;
369
370 optional int64 total_ram_kb = 8;
371 optional .com.android.internal.app.procstats.ProcessStatsProto.MemoryFactor status = 9;
372 // Total free RAM = cached_pss_kb + cached_kernel_kb + free_kb.
373 optional int64 cached_pss_kb = 10;
374 optional int64 cached_kernel_kb = 11;
375 optional int64 free_kb = 12;
376 // Total used RAM = used_pss_kb + used_kernel_kb.
377 optional int64 used_pss_kb = 13;
378 optional int64 used_kernel_kb = 14;
379
380 optional int64 lost_ram_kb = 15;
381
382 optional int64 total_zram_kb = 16;
383 optional int64 zram_physical_used_in_swap_kb = 17;
384 optional int64 total_zram_swap_kb = 18;
385
386 optional int64 ksm_sharing_kb = 19;
387 optional int64 ksm_shared_kb = 20;
388 optional int64 ksm_unshared_kb = 21;
389 optional int64 ksm_volatile_kb = 22;
390
391 // The approximate per-application memory class of the current device. This
392 // gives developers an idea of how hard a memory limit you should impose on
393 // their application to let the overall system work best. The value is in
394 // megabytes; the baseline Android memory class is 16 (which happens to be the
395 // Java heap limit of those devices); some devices with more memory may have
396 // 24 or even higher numbers.
397 optional int32 tuning_mb = 23;
398 // The approximate per-application memory class of the current device when an
399 // application is running with a large heap. This is the space available for
400 // memory-intensive applications; most applications should not need this
401 // amount of memory, and should instead stay with the tuning_mb limit. The
402 // value is in megabytes. This may be the same size as tuning_mb on memory
403 // constrained devices, or it may be significantly larger on devices with a
404 // large amount of available RAM.
405 // This is the size of the application's Dalvik heap if it has specified
406 // 'android:largeHeap="true"' in its manifest.
407 optional int32 tuning_large_mb = 24;
408
409 optional int64 oom_kb = 25;
410
411 // The maximum pss size in kb that we consider a process acceptable to restore
412 // from its cached state for running in the background when RAM is low.
413 optional int64 restore_limit_kb = 26;
414
415 optional bool is_low_ram_device = 27;
416 optional bool is_high_end_gfx = 28;
Kweku Adams598e9a22017-11-02 17:12:20 -0700417}
418
Yi Jin129fc6c2017-09-28 15:48:38 -0700419message StickyBroadcastProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800420 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
421
Kweku Adams21b8d262018-03-30 12:19:58 -0700422 optional int32 user = 1;
423
424 message StickyAction {
425 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
426
Kweku Adams87c60a02018-06-13 12:13:52 -0700427 // The action of the sticky Intent.
Kweku Adams21b8d262018-03-30 12:19:58 -0700428 optional string name = 1;
429 repeated .android.content.IntentProto intents = 2;
430 }
431 repeated StickyAction actions = 2;
Yi Jin129fc6c2017-09-28 15:48:38 -0700432}
433
Yi Jin6b514142017-10-30 14:54:12 -0700434// "dumpsys activity --proto service"
Yi Jin2b30f322018-02-20 15:41:47 -0800435message ActivityManagerServiceDumpServicesProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700436 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin2b30f322018-02-20 15:41:47 -0800437
Kweku Adams21b8d262018-03-30 12:19:58 -0700438 optional ActiveServicesProto active_services = 1;
Yi Jin2b30f322018-02-20 15:41:47 -0800439}
440
Yi Jin6b514142017-10-30 14:54:12 -0700441message ActiveServicesProto {
Yi Jin83fb1d52018-03-16 12:03:53 -0700442 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
443
Kweku Adams21b8d262018-03-30 12:19:58 -0700444 message ServicesByUser {
445 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
446
447 optional int32 user_id = 1;
448 repeated ServiceRecordProto service_records = 2;
449 }
450 repeated ServicesByUser services_by_users = 1;
Yi Jin129fc6c2017-09-28 15:48:38 -0700451}
452
Yi Jin6b514142017-10-30 14:54:12 -0700453// corresponds to ActivityManagerService.GrantUri Java class
454message GrantUriProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700455 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800456
Kweku Adams21b8d262018-03-30 12:19:58 -0700457 optional int32 source_user_id = 1;
458 optional string uri = 2 [ (.android.privacy).dest = DEST_EXPLICIT ];
Yi Jin6b514142017-10-30 14:54:12 -0700459}
460
461message NeededUriGrantsProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700462 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800463
Kweku Adams21b8d262018-03-30 12:19:58 -0700464 optional string target_package = 1;
465 optional int32 target_uid = 2;
466 optional int32 flags = 3;
Yi Jin6b514142017-10-30 14:54:12 -0700467
Kweku Adams21b8d262018-03-30 12:19:58 -0700468 repeated GrantUriProto grants = 4;
Yi Jin6b514142017-10-30 14:54:12 -0700469}
470
471message UriPermissionOwnerProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700472 option (.android.msg_privacy).dest = DEST_EXPLICIT;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800473
Kweku Adams21b8d262018-03-30 12:19:58 -0700474 optional string owner = 1;
475 repeated GrantUriProto read_perms = 2;
476 repeated GrantUriProto write_perms = 3;
Yi Jin6b514142017-10-30 14:54:12 -0700477}
478
479message ServiceRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800480 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
481
Kweku Adams21b8d262018-03-30 12:19:58 -0700482 optional string short_name = 1;
483 optional bool is_running = 2; // false if the application service is null
484 optional int32 pid = 3;
485 optional .android.content.IntentProto intent = 4;
486 optional string package_name = 5;
487 optional string process_name = 6;
488 optional string permission = 7;
Yi Jin6b514142017-10-30 14:54:12 -0700489
Kweku Adams21b8d262018-03-30 12:19:58 -0700490 message AppInfo {
491 option (.android.msg_privacy).dest = DEST_EXPLICIT;
Yi Jin6b514142017-10-30 14:54:12 -0700492
Kweku Adams21b8d262018-03-30 12:19:58 -0700493 optional string base_dir = 1;
494 optional string res_dir = 2;
495 optional string data_dir = 3;
496 }
497 optional AppInfo appinfo = 8;
498 optional ProcessRecordProto app = 9;
499 optional ProcessRecordProto isolated_proc = 10;
500 optional bool whitelist_manager = 11;
501 optional bool delayed = 12;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800502
Kweku Adams21b8d262018-03-30 12:19:58 -0700503 message Foreground {
504 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin6b514142017-10-30 14:54:12 -0700505
Kweku Adams21b8d262018-03-30 12:19:58 -0700506 optional int32 id = 1;
507 optional .android.app.NotificationProto notification = 2;
508 }
509 optional Foreground foreground = 13;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800510
Kweku Adams21b8d262018-03-30 12:19:58 -0700511 optional .android.util.Duration create_real_time = 14;
512 optional .android.util.Duration starting_bg_timeout = 15;
513 optional .android.util.Duration last_activity_time = 16;
514 optional .android.util.Duration restart_time = 17;
515 optional bool created_from_fg = 18;
Yi Jin6b514142017-10-30 14:54:12 -0700516
Kweku Adams21b8d262018-03-30 12:19:58 -0700517 // variables used to track states related to service start
518 message Start {
519 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin6b514142017-10-30 14:54:12 -0700520
Kweku Adams21b8d262018-03-30 12:19:58 -0700521 optional bool start_requested = 1;
522 optional bool delayed_stop = 2;
523 optional bool stop_if_killed = 3;
524 optional bool call_start = 4;
525 optional int32 last_start_id = 5;
526 }
527 optional Start start = 19;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800528
Kweku Adams21b8d262018-03-30 12:19:58 -0700529 message ExecuteNesting {
530 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin6b514142017-10-30 14:54:12 -0700531
Kweku Adams21b8d262018-03-30 12:19:58 -0700532 optional int32 execute_nesting = 1;
533 optional bool execute_fg = 2;
534 optional .android.util.Duration executing_start = 3;
535 }
536 optional ExecuteNesting execute = 20;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800537
Kweku Adams21b8d262018-03-30 12:19:58 -0700538 optional .android.util.Duration destory_time = 21;
Yi Jin6b514142017-10-30 14:54:12 -0700539
Kweku Adams21b8d262018-03-30 12:19:58 -0700540 message Crash {
541 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin163967f2018-03-15 13:49:44 -0700542
Kweku Adams21b8d262018-03-30 12:19:58 -0700543 optional int32 restart_count = 1;
544 optional .android.util.Duration restart_delay = 2;
545 optional .android.util.Duration next_restart_time = 3;
546 optional int32 crash_count = 4;
547 }
548 optional Crash crash = 22;
549
550 message StartItem {
551 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
552
553 optional int32 id = 1;
554 optional .android.util.Duration duration = 2;
555 optional int32 delivery_count = 3;
556 optional int32 done_executing_count = 4;
557 optional .android.content.IntentProto intent = 5;
558 optional NeededUriGrantsProto needed_grants = 6;
559 optional UriPermissionOwnerProto uri_permissions = 7;
560 }
561 repeated StartItem delivered_starts = 23;
562 repeated StartItem pending_starts = 24;
563
564 repeated IntentBindRecordProto bindings = 25;
565 repeated ConnectionRecordProto connections = 26;
566
567 // Next Tag: 27
Yi Jin6b514142017-10-30 14:54:12 -0700568}
569
570message ConnectionRecordProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700571 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800572
Kweku Adams87c60a02018-06-13 12:13:52 -0700573 // Used to find same record, e.g. AppBindRecord has the hex_hash
Kweku Adams21b8d262018-03-30 12:19:58 -0700574 optional string hex_hash = 1; // cross reference the object and avoid double logging.
575 optional int32 user_id = 2;
Yi Jin6b514142017-10-30 14:54:12 -0700576
Kweku Adams21b8d262018-03-30 12:19:58 -0700577 enum Flag {
578 AUTO_CREATE = 0;
579 DEBUG_UNBIND = 1;
580 NOT_FG = 2;
581 IMPORTANT_BG = 3;
582 ABOVE_CLIENT = 4;
583 ALLOW_OOM_MANAGEMENT = 5;
584 WAIVE_PRIORITY = 6;
585 IMPORTANT = 7;
586 ADJUST_WITH_ACTIVITY = 8;
587 FG_SERVICE_WHILE_AWAKE = 9;
588 FG_SERVICE = 10;
589 TREAT_LIKE_ACTIVITY = 11;
590 VISIBLE = 12;
591 SHOWING_UI = 13;
592 NOT_VISIBLE = 14;
593 DEAD = 15;
594 }
595 repeated Flag flags = 3;
596 optional string service_name = 4;
Yi Jin6b514142017-10-30 14:54:12 -0700597}
598
599message AppBindRecordProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700600 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800601
Kweku Adams21b8d262018-03-30 12:19:58 -0700602 optional string service_name = 1;
603 optional string client_proc_name = 2;
604 repeated string connections = 3; // hex_hash of ConnectionRecordProto
Yi Jin6b514142017-10-30 14:54:12 -0700605}
606
607message IntentBindRecordProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700608 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800609
Kweku Adams21b8d262018-03-30 12:19:58 -0700610 optional .android.content.IntentProto intent = 1;
611 optional string binder = 2;
612 optional bool auto_create = 3; // value of BIND_AUTO_CREATE flag.
613 optional bool requested = 4;
614 optional bool received = 5;
615 optional bool has_bound = 6;
616 optional bool do_rebind = 7;
Yi Jin6b514142017-10-30 14:54:12 -0700617
Kweku Adams21b8d262018-03-30 12:19:58 -0700618 repeated AppBindRecordProto apps = 8;
Yi Jin6b514142017-10-30 14:54:12 -0700619}
620
621// TODO: "dumpsys activity --proto processes"
Yi Jin2b30f322018-02-20 15:41:47 -0800622message ActivityManagerServiceDumpProcessesProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800623 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
624
Kweku Adams21b8d262018-03-30 12:19:58 -0700625 repeated ProcessRecordProto procs = 1;
626 repeated ProcessRecordProto isolated_procs = 2;
627 repeated ActiveInstrumentationProto active_instrumentations = 3;
628 repeated UidRecordProto active_uids = 4;
629 repeated UidRecordProto validate_uids = 5;
Yi Jin148d7f42017-11-28 14:23:56 -0800630
Kweku Adams21b8d262018-03-30 12:19:58 -0700631 // Process LRU list (sorted by oom_adj)
632 message LruProcesses {
633 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin148d7f42017-11-28 14:23:56 -0800634
Kweku Adams21b8d262018-03-30 12:19:58 -0700635 optional int32 size = 1;
636 optional int32 non_act_at = 2;
637 optional int32 non_svc_at = 3;
638 repeated ProcessOomProto list = 4;
Yi Jin148d7f42017-11-28 14:23:56 -0800639 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700640 optional LruProcesses lru_procs = 6;
641 repeated ProcessRecordProto pids_self_locked = 7;
642 // Foreground Processes
643 repeated ImportanceTokenProto important_procs = 8;
644 // Persisent processes that are starting
645 repeated ProcessRecordProto persistent_starting_procs = 9;
646 // Processes that are being removed
647 repeated ProcessRecordProto removed_procs = 10;
648 // Processes that are on old until the system is ready
649 repeated ProcessRecordProto on_hold_procs = 11;
650 // Processes that are waiting to GC
651 repeated ProcessToGcProto gc_procs = 12;
652 optional AppErrorsProto app_errors = 13;
653 optional UserControllerProto user_controller = 14;
654 optional ProcessRecordProto home_proc = 15;
655 optional ProcessRecordProto previous_proc = 16;
656 optional int64 previous_proc_visible_time_ms = 17;
657 optional ProcessRecordProto heavy_weight_proc = 18;
658 optional .android.content.ConfigurationProto global_configuration = 19;
659 // ActivityStackSupervisorProto dumps these values as well, still here?
660 // repeated ActivityDisplayProto displays = 20;
Yi Jin148d7f42017-11-28 14:23:56 -0800661
Kweku Adams21b8d262018-03-30 12:19:58 -0700662 optional bool config_will_change = 21;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800663
Kweku Adams21b8d262018-03-30 12:19:58 -0700664 message ScreenCompatPackage {
665 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin148d7f42017-11-28 14:23:56 -0800666
Kweku Adams21b8d262018-03-30 12:19:58 -0700667 optional string package = 1;
668 optional int32 mode = 2;
669 }
670 repeated ScreenCompatPackage screen_compat_packages = 22;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800671
Kweku Adams21b8d262018-03-30 12:19:58 -0700672 message UidObserverRegistrationProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800673 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
674
Yi Jin148d7f42017-11-28 14:23:56 -0800675 optional int32 uid = 1;
Kweku Adams21b8d262018-03-30 12:19:58 -0700676 optional string package = 2;
677 repeated .android.app.UidObserverFlag flags = 3;
678 optional int32 cut_point = 4; // only available when UID_OBSERVER_PROCSTATE is on
679
680 message ProcState {
681 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
682
683 optional int32 uid = 1;
684 optional int32 state = 2;
685 }
686 repeated ProcState last_proc_states = 5;
Yi Jin148d7f42017-11-28 14:23:56 -0800687 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700688 repeated UidObserverRegistrationProto uid_observers = 23;
689 repeated int32 device_idle_whitelist = 24;
690 repeated int32 device_idle_temp_whitelist = 25;
Yi Jin148d7f42017-11-28 14:23:56 -0800691
Kweku Adams21b8d262018-03-30 12:19:58 -0700692 message PendingTempWhitelist {
693 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800694
Kweku Adams21b8d262018-03-30 12:19:58 -0700695 optional int32 target_uid = 1;
696 optional int64 duration_ms = 2;
697 optional string tag = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800698 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700699 repeated PendingTempWhitelist pending_temp_whitelist = 26;
Yi Jin148d7f42017-11-28 14:23:56 -0800700
Kweku Adams21b8d262018-03-30 12:19:58 -0700701 message SleepStatus {
702 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800703
Kweku Adams21b8d262018-03-30 12:19:58 -0700704 optional .android.os.PowerManagerInternalProto.Wakefulness wakefulness = 1;
705 repeated string sleep_tokens = 2 [ (.android.privacy).dest = DEST_EXPLICIT ];
706 optional bool sleeping = 3;
707 optional bool shutting_down = 4;
708 optional bool test_pss_mode = 5;
709 }
710 optional SleepStatus sleep_status = 27;
Yi Jin148d7f42017-11-28 14:23:56 -0800711
Kweku Adams21b8d262018-03-30 12:19:58 -0700712 message Voice {
713 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800714
Kweku Adams21b8d262018-03-30 12:19:58 -0700715 optional string session = 1;
716 optional .android.os.PowerManagerProto.WakeLock wakelock = 2;
717 }
718 optional Voice running_voice = 28;
Yi Jin148d7f42017-11-28 14:23:56 -0800719
Kweku Adams21b8d262018-03-30 12:19:58 -0700720 optional VrControllerProto vr_controller = 29;
721
722 message DebugApp {
723 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
724
725 optional string debug_app = 1;
726 optional string orig_debug_app = 2;
727 optional bool debug_transient = 3;
728 optional bool orig_wait_for_debugger = 4;
729 }
730 optional DebugApp debug = 30;
731 optional AppTimeTrackerProto current_tracker = 31;
732
733 message MemWatchProcess {
734 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
735
736 message Process {
737 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
738
739 optional string name = 1;
740
741 message MemStats {
742 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
743
744 optional int32 uid = 1;
745 optional string size = 2;
746 optional string report_to = 3;
747 }
748 repeated MemStats mem_stats = 2;
749 }
750 repeated Process procs = 1;
751
752 message Dump {
753 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
754
755 optional string proc_name = 1;
756 optional string file = 2 [ (.android.privacy).dest = DEST_EXPLICIT ];
757 optional int32 pid = 3;
758 optional int32 uid = 4;
759 }
760 optional Dump dump = 2;
761 }
762 optional MemWatchProcess mem_watch_processes = 32;
763 optional string track_allocation_app = 33;
764
765 message Profile {
766 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
767
768 optional string app_name = 1;
769 optional ProcessRecordProto proc = 2;
770 optional .android.app.ProfilerInfoProto info = 3;
771 optional int32 type = 4;
772 }
773 optional Profile profile = 34;
774 optional string native_debugging_app = 35;
775 optional bool always_finish_activities = 36;
776
777 message Controller {
778 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
779
780 optional string controller = 1;
781 optional bool is_a_monkey = 2;
782 }
783 optional Controller controller = 37;
784
785 optional int32 total_persistent_procs = 38;
786 optional bool processes_ready = 39;
787 optional bool system_ready = 40;
788 optional bool booted = 41;
789 optional int32 factory_test = 42;
790 optional bool booting = 43;
791 optional bool call_finish_booting = 44;
792 optional bool boot_animation_complete = 45;
793 optional int64 last_power_check_uptime_ms = 46;
794 optional .android.os.PowerManagerProto.WakeLock going_to_sleep = 47;
795 optional .android.os.PowerManagerProto.WakeLock launching_activity = 48;
796 optional int32 adj_seq = 49;
797 optional int32 lru_seq = 50;
798 optional int32 num_non_cached_procs = 51;
799 optional int32 num_cached_hidden_procs = 52;
800 optional int32 num_service_procs = 53;
801 optional int32 new_num_service_procs = 54;
802 optional bool allow_lower_mem_level = 55;
803 optional int32 last_memory_level = 56;
804 optional int32 last_num_processes = 57;
805 optional .android.util.Duration last_idle_time = 58;
806 optional int64 low_ram_since_last_idle_ms = 59;
Yi Jin148d7f42017-11-28 14:23:56 -0800807}
808
809message ActiveInstrumentationProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700810 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800811
Kweku Adams21b8d262018-03-30 12:19:58 -0700812 optional .android.content.ComponentNameProto class = 1;
813 optional bool finished = 2;
814 repeated ProcessRecordProto running_processes = 3;
815 repeated string target_processes = 4;
816 optional .android.content.pm.ApplicationInfoProto target_info = 5;
817 optional string profile_file = 6;
818 optional string watcher = 7;
819 optional string ui_automation_connection = 8;
Kweku Adams87c60a02018-06-13 12:13:52 -0700820 // Arguments as given to the ActiveInstrumentation object in Bundle
821 // toString format.
822 reserved 9; // arguments (in String format).
823 // Arguments as given to the ActiveInstrumentation object.
824 optional .android.os.BundleProto arguments = 10;
Yi Jin148d7f42017-11-28 14:23:56 -0800825}
826
827// Proto definition of com.android.server.am.UidRecord.java
828message UidRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800829 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
830
Kweku Adams21b8d262018-03-30 12:19:58 -0700831 optional int32 uid = 1;
832 optional .android.app.ProcessStateEnum current = 2;
833 optional bool ephemeral = 3;
834 optional bool fg_services = 4;
835 optional bool whilelist = 5;
836 optional .android.util.Duration last_background_time = 6;
837 optional bool idle = 7;
Yi Jin163967f2018-03-15 13:49:44 -0700838
Kweku Adams21b8d262018-03-30 12:19:58 -0700839 enum Change {
840 CHANGE_GONE = 0;
841 CHANGE_IDLE = 1;
842 CHANGE_ACTIVE = 2;
843 CHANGE_CACHED = 3;
844 CHANGE_UNCACHED = 4;
845 }
846 repeated Change last_reported_changes = 8;
847 optional int32 num_procs = 9;
848
849 message ProcStateSequence {
850 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
851
852 optional int64 cururent = 1;
853 optional int64 last_network_updated = 2;
854 optional int64 last_dispatched = 3;
855 }
856 optional ProcStateSequence network_state_update = 10;
857
858 // Next Tag: 11
Yi Jin148d7f42017-11-28 14:23:56 -0800859}
860
861// proto of class ImportanceToken in ActivityManagerService
862message ImportanceTokenProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700863 option (.android.msg_privacy).dest = DEST_EXPLICIT;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800864
Kweku Adams21b8d262018-03-30 12:19:58 -0700865 optional int32 pid = 1;
866 optional string token = 2;
867 optional string reason = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800868}
869
Yi Jin6c6e9ca2018-03-20 16:53:35 -0700870// proto of class VrController.java
871message VrControllerProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700872 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin6c6e9ca2018-03-20 16:53:35 -0700873
Kweku Adams21b8d262018-03-30 12:19:58 -0700874 enum VrMode {
875 FLAG_NON_VR_MODE = 0;
876 FLAG_VR_MODE = 1;
877 FLAG_PERSISTENT_VR_MODE = 2;
878 }
879 repeated VrMode vr_mode = 1;
880 optional int32 render_thread_id = 2;
Yi Jin6c6e9ca2018-03-20 16:53:35 -0700881}
882
Yi Jin148d7f42017-11-28 14:23:56 -0800883message ProcessOomProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800884 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
885
Kweku Adams21b8d262018-03-30 12:19:58 -0700886 optional bool persistent = 1;
887 optional int32 num = 2;
888 optional string oom_adj = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800889
Kweku Adams21b8d262018-03-30 12:19:58 -0700890 // Activity manager's version of Process enum, see ProcessList.java
891 enum SchedGroup {
892 SCHED_GROUP_UNKNOWN = -1;
893 SCHED_GROUP_BACKGROUND = 0;
894 SCHED_GROUP_DEFAULT = 1;
895 SCHED_GROUP_TOP_APP = 2;
896 SCHED_GROUP_TOP_APP_BOUND = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800897 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700898 optional SchedGroup sched_group = 4 [ default = SCHED_GROUP_UNKNOWN];
899
900 oneof Foreground {
901 bool activities = 5;
902 bool services = 6;
903 }
904
905 optional .android.app.ProcessStateEnum state = 7;
906 optional int32 trim_memory_level = 8;
907 optional ProcessRecordProto proc = 9;
908 optional string adj_type = 10;
909
910 oneof AdjTarget {
911 .android.content.ComponentNameProto adj_target_component_name = 11;
912 string adj_target_object = 12;
913 }
914
915 oneof AdjSource {
916 ProcessRecordProto adj_source_proc = 13;
917 string adj_source_object = 14;
918 }
919
920 message Detail {
921 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
922
923 optional int32 max_adj = 1;
924 optional int32 cur_raw_adj = 2;
925 optional int32 set_raw_adj = 3;
926 optional int32 cur_adj = 4;
927 optional int32 set_adj = 5;
928 optional .android.app.ProcessStateEnum current_state = 7;
929 optional .android.app.ProcessStateEnum set_state = 8;
930 optional string last_pss = 9;
931 optional string last_swap_pss = 10;
932 optional string last_cached_pss = 11;
933 optional bool cached = 12;
934 optional bool empty = 13;
935 optional bool has_above_client = 14;
936
937 // only make sense if process is a service
938 message CpuRunTime {
939 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
940
941 optional int64 over_ms = 1;
942 optional int64 used_ms = 2;
943 optional float ultilization = 3; // ratio of cpu time usage
944 }
945 optional CpuRunTime service_run_time = 15;
946 }
947 optional Detail detail = 15;
Yi Jin148d7f42017-11-28 14:23:56 -0800948}
949
950message ProcessToGcProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700951 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800952
Kweku Adams21b8d262018-03-30 12:19:58 -0700953 optional ProcessRecordProto proc = 1;
954 optional bool report_low_memory = 2;
955 optional int64 now_uptime_ms = 3;
956 optional int64 last_gced_ms = 4;
957 optional int64 last_low_memory_ms = 5;
Yi Jin148d7f42017-11-28 14:23:56 -0800958}
959
960// sync with com.android.server.am.AppErrors.java
961message AppErrorsProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800962 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
963
Kweku Adams21b8d262018-03-30 12:19:58 -0700964 optional int64 now_uptime_ms = 1;
Yi Jin148d7f42017-11-28 14:23:56 -0800965
Kweku Adams21b8d262018-03-30 12:19:58 -0700966 message ProcessCrashTime {
967 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800968
Kweku Adams21b8d262018-03-30 12:19:58 -0700969 optional string process_name = 1;
970
971 message Entry {
972 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
973
974 optional int32 uid = 1;
975 optional int64 last_crashed_at_ms = 2;
976 }
977 repeated Entry entries = 2;
Yi Jin148d7f42017-11-28 14:23:56 -0800978 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700979 repeated ProcessCrashTime process_crash_times = 2;
Yi Jin148d7f42017-11-28 14:23:56 -0800980
Kweku Adams21b8d262018-03-30 12:19:58 -0700981 message BadProcess {
982 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800983
Kweku Adams21b8d262018-03-30 12:19:58 -0700984 optional string process_name = 1;
Yi Jin148d7f42017-11-28 14:23:56 -0800985
Kweku Adams21b8d262018-03-30 12:19:58 -0700986 message Entry {
987 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800988
Kweku Adams21b8d262018-03-30 12:19:58 -0700989 optional int32 uid = 1;
990 optional int64 crashed_at_ms = 2;
991 optional string short_msg = 3;
992 optional string long_msg = 4 [ (.android.privacy).dest = DEST_EXPLICIT ];
993 optional string stack = 5 [ (.android.privacy).dest = DEST_EXPLICIT ];
994 }
995 repeated Entry entries = 2;
Yi Jin148d7f42017-11-28 14:23:56 -0800996 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700997 repeated BadProcess bad_processes = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800998}
999
1000// sync with com.android.server.am.UserState.java
1001message UserStateProto {
Kweku Adams21b8d262018-03-30 12:19:58 -07001002 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -08001003
Kweku Adams21b8d262018-03-30 12:19:58 -07001004 enum State {
1005 STATE_BOOTING = 0;
1006 STATE_RUNNING_LOCKED = 1;
1007 STATE_RUNNING_UNLOCKING = 2;
1008 STATE_RUNNING_UNLOCKED = 3;
1009 STATE_STOPPING = 4;
1010 STATE_SHUTDOWN = 5;
1011 }
1012 optional State state = 1;
1013 optional bool switching = 2;
Yi Jin148d7f42017-11-28 14:23:56 -08001014}
1015
1016// sync with com.android.server.am.UserController.java
1017message UserControllerProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -08001018 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
1019
Kweku Adams21b8d262018-03-30 12:19:58 -07001020 message User {
1021 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin148d7f42017-11-28 14:23:56 -08001022
Kweku Adams21b8d262018-03-30 12:19:58 -07001023 optional int32 id = 1;
1024 optional UserStateProto state = 2;
1025 }
1026 repeated User started_users = 1;
1027 repeated int32 started_user_array = 2;
1028 repeated int32 user_lru = 3;
Yi Jin0d7bc2d12018-01-23 17:35:19 -08001029
Kweku Adams21b8d262018-03-30 12:19:58 -07001030 message UserProfile {
1031 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
1032
1033 optional int32 user = 1;
1034 optional int32 profile = 2;
1035 }
1036 repeated UserProfile user_profile_group_ids = 4;
Yi Jin148d7f42017-11-28 14:23:56 -08001037}
1038
1039// sync with com.android.server.am.AppTimeTracker.java
1040message AppTimeTrackerProto {
Yi Jin69040222018-01-25 14:38:10 -08001041 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
1042
Kweku Adams21b8d262018-03-30 12:19:58 -07001043 optional string receiver = 1;
1044 optional int64 total_duration_ms = 2;
Yi Jin148d7f42017-11-28 14:23:56 -08001045
Kweku Adams21b8d262018-03-30 12:19:58 -07001046 message PackageTime {
1047 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
1048
1049 optional string package = 1;
1050 optional int64 duration_ms = 2;
1051 }
1052 repeated PackageTime package_times = 3;
1053
1054 optional .android.util.Duration started_time = 4;
1055 optional string started_package = 5;
Yi Jin129fc6c2017-09-28 15:48:38 -07001056}