blob: 6f9a5649d4acf00defd10a9c6acaaf82cdef6151 [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;
135}
136
137message KeyguardOccludedProto {
138 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
139
140 optional int32 display_id = 1;
Kweku Adams21b8d262018-03-30 12:19:58 -0700141 optional bool keyguard_occluded = 2;
Yi Jin129fc6c2017-09-28 15:48:38 -0700142}
143
Yi Jin6b514142017-10-30 14:54:12 -0700144// "dumpsys activity --proto broadcasts"
Yi Jin2b30f322018-02-20 15:41:47 -0800145message ActivityManagerServiceDumpBroadcastsProto {
Yi Jin69040222018-01-25 14:38:10 -0800146 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
147
Kweku Adams21b8d262018-03-30 12:19:58 -0700148 repeated ReceiverListProto receiver_list = 1;
149
150 optional .com.android.server.IntentResolverProto receiver_resolver = 2;
151
152 repeated BroadcastQueueProto broadcast_queue = 3;
153
154 repeated StickyBroadcastProto sticky_broadcasts = 4;
155
156 message MainHandler {
157 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
158
159 optional string handler = 1;
160 optional .android.os.LooperProto looper = 2;
161 }
162 optional MainHandler handler = 5;
Yi Jin129fc6c2017-09-28 15:48:38 -0700163}
164
165message ReceiverListProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700166 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800167
Kweku Adams21b8d262018-03-30 12:19:58 -0700168 optional ProcessRecordProto app = 1;
169 optional int32 pid = 2;
170 optional int32 uid = 3;
171 optional int32 user = 4;
172 optional BroadcastRecordProto current = 5;
173 optional bool linked_to_death = 6;
174 repeated BroadcastFilterProto filters = 7;
Kweku Adams87c60a02018-06-13 12:13:52 -0700175 // Used to find this ReceiverList object in IntentResolver
176 optional string hex_hash = 8;
Yi Jin129fc6c2017-09-28 15:48:38 -0700177}
178
179message ProcessRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800180 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
181
Kweku Adams598e9a22017-11-02 17:12:20 -0700182 optional int32 pid = 1;
183 optional string process_name = 2;
Kweku Adams21b8d262018-03-30 12:19:58 -0700184 optional int32 uid = 3;
185 optional int32 user_id = 4;
186 optional int32 app_id = 5;
187 optional int32 isolated_app_id = 6;
188 optional bool persistent = 7;
Dianne Hackborn2f55e5a2018-11-30 16:31:31 -0800189 optional int32 lru_index = 8;
Kweku Adams21b8d262018-03-30 12:19:58 -0700190}
Kweku Adams598e9a22017-11-02 17:12:20 -0700191
Kweku Adams21b8d262018-03-30 12:19:58 -0700192message BroadcastRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800193 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
194
Kweku Adams21b8d262018-03-30 12:19:58 -0700195 optional int32 user_id = 1;
196 optional string intent_action = 2;
197}
Kweku Adams983829f2017-12-06 14:53:50 -0800198
Kweku Adams21b8d262018-03-30 12:19:58 -0700199message BroadcastFilterProto {
200 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800201
Kweku Adams21b8d262018-03-30 12:19:58 -0700202 optional .android.content.IntentFilterProto intent_filter = 1;
203 optional string required_permission = 2;
Kweku Adams87c60a02018-06-13 12:13:52 -0700204 // Used to find the BroadcastFilter object in IntentResolver
205 optional string hex_hash = 3;
Kweku Adams21b8d262018-03-30 12:19:58 -0700206 optional int32 owning_user_id = 4;
207}
Kweku Adams983829f2017-12-06 14:53:50 -0800208
Kweku Adams21b8d262018-03-30 12:19:58 -0700209message BroadcastQueueProto {
210 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800211
Kweku Adams21b8d262018-03-30 12:19:58 -0700212 optional string queue_name = 1;
213 repeated BroadcastRecordProto parallel_broadcasts = 2;
214 repeated BroadcastRecordProto ordered_broadcasts = 3;
215 optional BroadcastRecordProto pending_broadcast = 4;
216 repeated BroadcastRecordProto historical_broadcasts = 5;
Kweku Adams983829f2017-12-06 14:53:50 -0800217
Kweku Adams21b8d262018-03-30 12:19:58 -0700218 message BroadcastSummary {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800219 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
220
Kweku Adams21b8d262018-03-30 12:19:58 -0700221 optional .android.content.IntentProto intent = 1;
222 optional int64 enqueue_clock_time_ms = 2;
223 optional int64 dispatch_clock_time_ms = 3;
224 optional int64 finish_clock_time_ms = 4;
Kweku Adams983829f2017-12-06 14:53:50 -0800225 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700226 repeated BroadcastSummary historical_broadcasts_summary = 6;
227}
Kweku Adams983829f2017-12-06 14:53:50 -0800228
Kweku Adams21b8d262018-03-30 12:19:58 -0700229message MemInfoDumpProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800230 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
231
Kweku Adams21b8d262018-03-30 12:19:58 -0700232 optional int64 uptime_duration_ms = 1;
233 optional int64 elapsed_realtime_ms = 2;
Kweku Adams983829f2017-12-06 14:53:50 -0800234
Kweku Adams21b8d262018-03-30 12:19:58 -0700235 message ProcessMemory {
236 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Kweku Adams983829f2017-12-06 14:53:50 -0800237
Kweku Adams21b8d262018-03-30 12:19:58 -0700238 optional int32 pid = 1;
239 optional string process_name = 2;
Kweku Adams983829f2017-12-06 14:53:50 -0800240
Kweku Adams21b8d262018-03-30 12:19:58 -0700241 message MemoryInfo {
242 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Kweku Adams983829f2017-12-06 14:53:50 -0800243
Kweku Adams21b8d262018-03-30 12:19:58 -0700244 optional string name = 1;
245 // The proportional set size for the heap.
246 optional int32 total_pss_kb = 2;
247 // The proportional set size that is swappable for the heap.
248 optional int32 clean_pss_kb = 3;
249 // The private dirty pages used by the heap.
250 optional int32 shared_dirty_kb = 4;
251 // The shared dirty pages used by the heap.
252 optional int32 private_dirty_kb = 5;
253 // The shared clean pages used by the heap.
254 optional int32 shared_clean_kb = 6;
255 // The private clean pages used by the heap.
256 optional int32 private_clean_kb = 7;
257 oneof dirty_swap {
258 // The dirty the pages that have been swapped out.
259 int32 dirty_swap_kb = 8;
260 // The dirty the pages that have been swapped out, proportional.
261 int32 dirty_swap_pss_kb = 9;
262 }
263 }
264 message HeapInfo {
265 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Kweku Adams983829f2017-12-06 14:53:50 -0800266
Kweku Adams21b8d262018-03-30 12:19:58 -0700267 optional MemoryInfo mem_info = 1;
268 optional int32 heap_size_kb = 2;
269 optional int32 heap_alloc_kb = 3;
270 optional int32 heap_free_kb = 4;
271 }
272 optional HeapInfo native_heap = 3;
273 optional HeapInfo dalvik_heap = 4;
274 repeated MemoryInfo other_heaps = 5;
275 optional MemoryInfo unknown_heap = 6;
276 // Summation of native_heap, dalvik_heap, and other_heaps.
277 optional HeapInfo total_heap = 7;
Kweku Adams983829f2017-12-06 14:53:50 -0800278
Kweku Adams21b8d262018-03-30 12:19:58 -0700279 repeated MemoryInfo dalvik_details = 8;
Kweku Adams983829f2017-12-06 14:53:50 -0800280
Kweku Adams21b8d262018-03-30 12:19:58 -0700281 message AppSummary {
282 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Kweku Adams983829f2017-12-06 14:53:50 -0800283
Kweku Adams21b8d262018-03-30 12:19:58 -0700284 optional int32 java_heap_pss_kb = 1;
285 optional int32 native_heap_pss_kb = 2;
286 optional int32 code_pss_kb = 3;
287 optional int32 stack_pss_kb = 4;
288 optional int32 graphics_pss_kb = 5;
289 optional int32 private_other_pss_kb = 6;
290 optional int32 system_pss_kb = 7;
291
292 oneof total_swap {
293 int32 total_swap_pss = 8;
294 int32 total_swap_kb = 9;
295 }
296 }
297 optional AppSummary app_summary = 9;
298 }
299 repeated ProcessMemory native_processes = 3;
300
301 message AppData {
302 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
303
304 optional ProcessMemory process_memory = 1;
305
306 message ObjectStats {
307 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
308
309 optional int32 view_instance_count = 1;
310 optional int32 view_root_instance_count = 2;
311 optional int32 app_context_instance_count = 3;
312 optional int32 activity_instance_count = 4;
313 optional int32 global_asset_count = 5;
314 optional int32 global_asset_manager_count = 6;
315 optional int32 local_binder_object_count = 7;
316 optional int32 proxy_binder_object_count = 8;
317 optional int64 parcel_memory_kb = 9;
318 optional int32 parcel_count = 10;
319 optional int32 binder_object_death_count = 11;
320 optional int32 open_ssl_socket_count = 12;
321 optional int32 webview_instance_count = 13;
322 }
323 optional ObjectStats objects = 2;
324
325 message SqlStats {
326 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
327
328 optional int32 memory_used_kb = 1;
329 optional int32 pagecache_overflow_kb = 2;
330 optional int32 malloc_size_kb = 3;
331
332 message Database {
333 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
334
335 optional string name = 1;
336 optional int32 page_size = 2;
337 optional int32 db_size = 3;
338 // Number of lookaside slots:
339 // http://www.sqlite.org/c3ref/c_dbstatus_lookaside_used.html
340 optional int32 lookaside_b = 4;
341 // Statement cache stats: hits/misses/cachesize
342 optional string cache = 5;
343 }
344 repeated Database databases = 4;
345 }
346 optional SqlStats sql = 3;
347
348 optional string asset_allocations = 4;
349 optional string unreachable_memory = 5;
350 }
351 repeated AppData app_processes = 4;
352
353 message MemItem {
354 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
355
356 optional string tag = 1;
357 optional string label = 2;
358 optional int32 id = 3;
359 optional bool is_proc = 4;
360 optional bool has_activities = 5;
361 optional int64 pss_kb = 6;
362 optional int64 swap_pss_kb = 7;
363 repeated MemItem sub_items = 8;
364 }
365 repeated MemItem total_pss_by_process = 5;
366 repeated MemItem total_pss_by_oom_adjustment = 6;
367 repeated MemItem total_pss_by_category = 7;
368
369 optional int64 total_ram_kb = 8;
370 optional .com.android.internal.app.procstats.ProcessStatsProto.MemoryFactor status = 9;
371 // Total free RAM = cached_pss_kb + cached_kernel_kb + free_kb.
372 optional int64 cached_pss_kb = 10;
373 optional int64 cached_kernel_kb = 11;
374 optional int64 free_kb = 12;
375 // Total used RAM = used_pss_kb + used_kernel_kb.
376 optional int64 used_pss_kb = 13;
377 optional int64 used_kernel_kb = 14;
378
379 optional int64 lost_ram_kb = 15;
380
381 optional int64 total_zram_kb = 16;
382 optional int64 zram_physical_used_in_swap_kb = 17;
383 optional int64 total_zram_swap_kb = 18;
384
385 optional int64 ksm_sharing_kb = 19;
386 optional int64 ksm_shared_kb = 20;
387 optional int64 ksm_unshared_kb = 21;
388 optional int64 ksm_volatile_kb = 22;
389
390 // The approximate per-application memory class of the current device. This
391 // gives developers an idea of how hard a memory limit you should impose on
392 // their application to let the overall system work best. The value is in
393 // megabytes; the baseline Android memory class is 16 (which happens to be the
394 // Java heap limit of those devices); some devices with more memory may have
395 // 24 or even higher numbers.
396 optional int32 tuning_mb = 23;
397 // The approximate per-application memory class of the current device when an
398 // application is running with a large heap. This is the space available for
399 // memory-intensive applications; most applications should not need this
400 // amount of memory, and should instead stay with the tuning_mb limit. The
401 // value is in megabytes. This may be the same size as tuning_mb on memory
402 // constrained devices, or it may be significantly larger on devices with a
403 // large amount of available RAM.
404 // This is the size of the application's Dalvik heap if it has specified
405 // 'android:largeHeap="true"' in its manifest.
406 optional int32 tuning_large_mb = 24;
407
408 optional int64 oom_kb = 25;
409
410 // The maximum pss size in kb that we consider a process acceptable to restore
411 // from its cached state for running in the background when RAM is low.
412 optional int64 restore_limit_kb = 26;
413
414 optional bool is_low_ram_device = 27;
415 optional bool is_high_end_gfx = 28;
Kweku Adams598e9a22017-11-02 17:12:20 -0700416}
417
Yi Jin129fc6c2017-09-28 15:48:38 -0700418message StickyBroadcastProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800419 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
420
Kweku Adams21b8d262018-03-30 12:19:58 -0700421 optional int32 user = 1;
422
423 message StickyAction {
424 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
425
Kweku Adams87c60a02018-06-13 12:13:52 -0700426 // The action of the sticky Intent.
Kweku Adams21b8d262018-03-30 12:19:58 -0700427 optional string name = 1;
428 repeated .android.content.IntentProto intents = 2;
429 }
430 repeated StickyAction actions = 2;
Yi Jin129fc6c2017-09-28 15:48:38 -0700431}
432
Yi Jin6b514142017-10-30 14:54:12 -0700433// "dumpsys activity --proto service"
Yi Jin2b30f322018-02-20 15:41:47 -0800434message ActivityManagerServiceDumpServicesProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700435 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin2b30f322018-02-20 15:41:47 -0800436
Kweku Adams21b8d262018-03-30 12:19:58 -0700437 optional ActiveServicesProto active_services = 1;
Yi Jin2b30f322018-02-20 15:41:47 -0800438}
439
Yi Jin6b514142017-10-30 14:54:12 -0700440message ActiveServicesProto {
Yi Jin83fb1d52018-03-16 12:03:53 -0700441 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
442
Kweku Adams21b8d262018-03-30 12:19:58 -0700443 message ServicesByUser {
444 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
445
446 optional int32 user_id = 1;
447 repeated ServiceRecordProto service_records = 2;
448 }
449 repeated ServicesByUser services_by_users = 1;
Yi Jin129fc6c2017-09-28 15:48:38 -0700450}
451
Yi Jin6b514142017-10-30 14:54:12 -0700452// corresponds to ActivityManagerService.GrantUri Java class
453message GrantUriProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700454 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800455
Kweku Adams21b8d262018-03-30 12:19:58 -0700456 optional int32 source_user_id = 1;
457 optional string uri = 2 [ (.android.privacy).dest = DEST_EXPLICIT ];
Yi Jin6b514142017-10-30 14:54:12 -0700458}
459
460message NeededUriGrantsProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700461 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800462
Kweku Adams21b8d262018-03-30 12:19:58 -0700463 optional string target_package = 1;
464 optional int32 target_uid = 2;
465 optional int32 flags = 3;
Yi Jin6b514142017-10-30 14:54:12 -0700466
Kweku Adams21b8d262018-03-30 12:19:58 -0700467 repeated GrantUriProto grants = 4;
Yi Jin6b514142017-10-30 14:54:12 -0700468}
469
470message UriPermissionOwnerProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700471 option (.android.msg_privacy).dest = DEST_EXPLICIT;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800472
Kweku Adams21b8d262018-03-30 12:19:58 -0700473 optional string owner = 1;
474 repeated GrantUriProto read_perms = 2;
475 repeated GrantUriProto write_perms = 3;
Yi Jin6b514142017-10-30 14:54:12 -0700476}
477
478message ServiceRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800479 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
480
Kweku Adams21b8d262018-03-30 12:19:58 -0700481 optional string short_name = 1;
482 optional bool is_running = 2; // false if the application service is null
483 optional int32 pid = 3;
484 optional .android.content.IntentProto intent = 4;
485 optional string package_name = 5;
486 optional string process_name = 6;
487 optional string permission = 7;
Yi Jin6b514142017-10-30 14:54:12 -0700488
Kweku Adams21b8d262018-03-30 12:19:58 -0700489 message AppInfo {
490 option (.android.msg_privacy).dest = DEST_EXPLICIT;
Yi Jin6b514142017-10-30 14:54:12 -0700491
Kweku Adams21b8d262018-03-30 12:19:58 -0700492 optional string base_dir = 1;
493 optional string res_dir = 2;
494 optional string data_dir = 3;
495 }
496 optional AppInfo appinfo = 8;
497 optional ProcessRecordProto app = 9;
498 optional ProcessRecordProto isolated_proc = 10;
499 optional bool whitelist_manager = 11;
500 optional bool delayed = 12;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800501
Kweku Adams21b8d262018-03-30 12:19:58 -0700502 message Foreground {
503 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin6b514142017-10-30 14:54:12 -0700504
Kweku Adams21b8d262018-03-30 12:19:58 -0700505 optional int32 id = 1;
506 optional .android.app.NotificationProto notification = 2;
507 }
508 optional Foreground foreground = 13;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800509
Kweku Adams21b8d262018-03-30 12:19:58 -0700510 optional .android.util.Duration create_real_time = 14;
511 optional .android.util.Duration starting_bg_timeout = 15;
512 optional .android.util.Duration last_activity_time = 16;
513 optional .android.util.Duration restart_time = 17;
514 optional bool created_from_fg = 18;
Yi Jin6b514142017-10-30 14:54:12 -0700515
Kweku Adams21b8d262018-03-30 12:19:58 -0700516 // variables used to track states related to service start
517 message Start {
518 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin6b514142017-10-30 14:54:12 -0700519
Kweku Adams21b8d262018-03-30 12:19:58 -0700520 optional bool start_requested = 1;
521 optional bool delayed_stop = 2;
522 optional bool stop_if_killed = 3;
523 optional bool call_start = 4;
524 optional int32 last_start_id = 5;
525 }
526 optional Start start = 19;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800527
Kweku Adams21b8d262018-03-30 12:19:58 -0700528 message ExecuteNesting {
529 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin6b514142017-10-30 14:54:12 -0700530
Kweku Adams21b8d262018-03-30 12:19:58 -0700531 optional int32 execute_nesting = 1;
532 optional bool execute_fg = 2;
533 optional .android.util.Duration executing_start = 3;
534 }
535 optional ExecuteNesting execute = 20;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800536
Kweku Adams21b8d262018-03-30 12:19:58 -0700537 optional .android.util.Duration destory_time = 21;
Yi Jin6b514142017-10-30 14:54:12 -0700538
Kweku Adams21b8d262018-03-30 12:19:58 -0700539 message Crash {
540 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin163967f2018-03-15 13:49:44 -0700541
Kweku Adams21b8d262018-03-30 12:19:58 -0700542 optional int32 restart_count = 1;
543 optional .android.util.Duration restart_delay = 2;
544 optional .android.util.Duration next_restart_time = 3;
545 optional int32 crash_count = 4;
546 }
547 optional Crash crash = 22;
548
549 message StartItem {
550 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
551
552 optional int32 id = 1;
553 optional .android.util.Duration duration = 2;
554 optional int32 delivery_count = 3;
555 optional int32 done_executing_count = 4;
556 optional .android.content.IntentProto intent = 5;
557 optional NeededUriGrantsProto needed_grants = 6;
558 optional UriPermissionOwnerProto uri_permissions = 7;
559 }
560 repeated StartItem delivered_starts = 23;
561 repeated StartItem pending_starts = 24;
562
563 repeated IntentBindRecordProto bindings = 25;
564 repeated ConnectionRecordProto connections = 26;
565
566 // Next Tag: 27
Yi Jin6b514142017-10-30 14:54:12 -0700567}
568
569message ConnectionRecordProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700570 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800571
Kweku Adams87c60a02018-06-13 12:13:52 -0700572 // Used to find same record, e.g. AppBindRecord has the hex_hash
Kweku Adams21b8d262018-03-30 12:19:58 -0700573 optional string hex_hash = 1; // cross reference the object and avoid double logging.
574 optional int32 user_id = 2;
Yi Jin6b514142017-10-30 14:54:12 -0700575
Kweku Adams21b8d262018-03-30 12:19:58 -0700576 enum Flag {
577 AUTO_CREATE = 0;
578 DEBUG_UNBIND = 1;
579 NOT_FG = 2;
580 IMPORTANT_BG = 3;
581 ABOVE_CLIENT = 4;
582 ALLOW_OOM_MANAGEMENT = 5;
583 WAIVE_PRIORITY = 6;
584 IMPORTANT = 7;
585 ADJUST_WITH_ACTIVITY = 8;
586 FG_SERVICE_WHILE_AWAKE = 9;
587 FG_SERVICE = 10;
588 TREAT_LIKE_ACTIVITY = 11;
589 VISIBLE = 12;
590 SHOWING_UI = 13;
591 NOT_VISIBLE = 14;
592 DEAD = 15;
593 }
594 repeated Flag flags = 3;
595 optional string service_name = 4;
Yi Jin6b514142017-10-30 14:54:12 -0700596}
597
598message AppBindRecordProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700599 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800600
Kweku Adams21b8d262018-03-30 12:19:58 -0700601 optional string service_name = 1;
602 optional string client_proc_name = 2;
603 repeated string connections = 3; // hex_hash of ConnectionRecordProto
Yi Jin6b514142017-10-30 14:54:12 -0700604}
605
606message IntentBindRecordProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700607 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800608
Kweku Adams21b8d262018-03-30 12:19:58 -0700609 optional .android.content.IntentProto intent = 1;
610 optional string binder = 2;
611 optional bool auto_create = 3; // value of BIND_AUTO_CREATE flag.
612 optional bool requested = 4;
613 optional bool received = 5;
614 optional bool has_bound = 6;
615 optional bool do_rebind = 7;
Yi Jin6b514142017-10-30 14:54:12 -0700616
Kweku Adams21b8d262018-03-30 12:19:58 -0700617 repeated AppBindRecordProto apps = 8;
Yi Jin6b514142017-10-30 14:54:12 -0700618}
619
620// TODO: "dumpsys activity --proto processes"
Yi Jin2b30f322018-02-20 15:41:47 -0800621message ActivityManagerServiceDumpProcessesProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800622 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
623
Kweku Adams21b8d262018-03-30 12:19:58 -0700624 repeated ProcessRecordProto procs = 1;
625 repeated ProcessRecordProto isolated_procs = 2;
626 repeated ActiveInstrumentationProto active_instrumentations = 3;
627 repeated UidRecordProto active_uids = 4;
628 repeated UidRecordProto validate_uids = 5;
Yi Jin148d7f42017-11-28 14:23:56 -0800629
Kweku Adams21b8d262018-03-30 12:19:58 -0700630 // Process LRU list (sorted by oom_adj)
631 message LruProcesses {
632 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin148d7f42017-11-28 14:23:56 -0800633
Kweku Adams21b8d262018-03-30 12:19:58 -0700634 optional int32 size = 1;
635 optional int32 non_act_at = 2;
636 optional int32 non_svc_at = 3;
637 repeated ProcessOomProto list = 4;
Yi Jin148d7f42017-11-28 14:23:56 -0800638 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700639 optional LruProcesses lru_procs = 6;
640 repeated ProcessRecordProto pids_self_locked = 7;
641 // Foreground Processes
642 repeated ImportanceTokenProto important_procs = 8;
643 // Persisent processes that are starting
644 repeated ProcessRecordProto persistent_starting_procs = 9;
645 // Processes that are being removed
646 repeated ProcessRecordProto removed_procs = 10;
647 // Processes that are on old until the system is ready
648 repeated ProcessRecordProto on_hold_procs = 11;
649 // Processes that are waiting to GC
650 repeated ProcessToGcProto gc_procs = 12;
651 optional AppErrorsProto app_errors = 13;
652 optional UserControllerProto user_controller = 14;
653 optional ProcessRecordProto home_proc = 15;
654 optional ProcessRecordProto previous_proc = 16;
655 optional int64 previous_proc_visible_time_ms = 17;
656 optional ProcessRecordProto heavy_weight_proc = 18;
657 optional .android.content.ConfigurationProto global_configuration = 19;
658 // ActivityStackSupervisorProto dumps these values as well, still here?
659 // repeated ActivityDisplayProto displays = 20;
Yi Jin148d7f42017-11-28 14:23:56 -0800660
Kweku Adams21b8d262018-03-30 12:19:58 -0700661 optional bool config_will_change = 21;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800662
Kweku Adams21b8d262018-03-30 12:19:58 -0700663 message ScreenCompatPackage {
664 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin148d7f42017-11-28 14:23:56 -0800665
Kweku Adams21b8d262018-03-30 12:19:58 -0700666 optional string package = 1;
667 optional int32 mode = 2;
668 }
669 repeated ScreenCompatPackage screen_compat_packages = 22;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800670
Kweku Adams21b8d262018-03-30 12:19:58 -0700671 message UidObserverRegistrationProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800672 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
673
Yi Jin148d7f42017-11-28 14:23:56 -0800674 optional int32 uid = 1;
Kweku Adams21b8d262018-03-30 12:19:58 -0700675 optional string package = 2;
676 repeated .android.app.UidObserverFlag flags = 3;
677 optional int32 cut_point = 4; // only available when UID_OBSERVER_PROCSTATE is on
678
679 message ProcState {
680 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
681
682 optional int32 uid = 1;
683 optional int32 state = 2;
684 }
685 repeated ProcState last_proc_states = 5;
Yi Jin148d7f42017-11-28 14:23:56 -0800686 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700687 repeated UidObserverRegistrationProto uid_observers = 23;
688 repeated int32 device_idle_whitelist = 24;
689 repeated int32 device_idle_temp_whitelist = 25;
Yi Jin148d7f42017-11-28 14:23:56 -0800690
Kweku Adams21b8d262018-03-30 12:19:58 -0700691 message PendingTempWhitelist {
692 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800693
Kweku Adams21b8d262018-03-30 12:19:58 -0700694 optional int32 target_uid = 1;
695 optional int64 duration_ms = 2;
696 optional string tag = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800697 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700698 repeated PendingTempWhitelist pending_temp_whitelist = 26;
Yi Jin148d7f42017-11-28 14:23:56 -0800699
Kweku Adams21b8d262018-03-30 12:19:58 -0700700 message SleepStatus {
701 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800702
Kweku Adams21b8d262018-03-30 12:19:58 -0700703 optional .android.os.PowerManagerInternalProto.Wakefulness wakefulness = 1;
704 repeated string sleep_tokens = 2 [ (.android.privacy).dest = DEST_EXPLICIT ];
705 optional bool sleeping = 3;
706 optional bool shutting_down = 4;
707 optional bool test_pss_mode = 5;
708 }
709 optional SleepStatus sleep_status = 27;
Yi Jin148d7f42017-11-28 14:23:56 -0800710
Kweku Adams21b8d262018-03-30 12:19:58 -0700711 message Voice {
712 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800713
Kweku Adams21b8d262018-03-30 12:19:58 -0700714 optional string session = 1;
715 optional .android.os.PowerManagerProto.WakeLock wakelock = 2;
716 }
717 optional Voice running_voice = 28;
Yi Jin148d7f42017-11-28 14:23:56 -0800718
Kweku Adams21b8d262018-03-30 12:19:58 -0700719 optional VrControllerProto vr_controller = 29;
720
721 message DebugApp {
722 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
723
724 optional string debug_app = 1;
725 optional string orig_debug_app = 2;
726 optional bool debug_transient = 3;
727 optional bool orig_wait_for_debugger = 4;
728 }
729 optional DebugApp debug = 30;
730 optional AppTimeTrackerProto current_tracker = 31;
731
732 message MemWatchProcess {
733 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
734
735 message Process {
736 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
737
738 optional string name = 1;
739
740 message MemStats {
741 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
742
743 optional int32 uid = 1;
744 optional string size = 2;
745 optional string report_to = 3;
746 }
747 repeated MemStats mem_stats = 2;
748 }
749 repeated Process procs = 1;
750
751 message Dump {
752 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
753
754 optional string proc_name = 1;
755 optional string file = 2 [ (.android.privacy).dest = DEST_EXPLICIT ];
756 optional int32 pid = 3;
757 optional int32 uid = 4;
758 }
759 optional Dump dump = 2;
760 }
761 optional MemWatchProcess mem_watch_processes = 32;
762 optional string track_allocation_app = 33;
763
764 message Profile {
765 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
766
767 optional string app_name = 1;
768 optional ProcessRecordProto proc = 2;
769 optional .android.app.ProfilerInfoProto info = 3;
770 optional int32 type = 4;
771 }
772 optional Profile profile = 34;
773 optional string native_debugging_app = 35;
774 optional bool always_finish_activities = 36;
775
776 message Controller {
777 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
778
779 optional string controller = 1;
780 optional bool is_a_monkey = 2;
781 }
782 optional Controller controller = 37;
783
784 optional int32 total_persistent_procs = 38;
785 optional bool processes_ready = 39;
786 optional bool system_ready = 40;
787 optional bool booted = 41;
788 optional int32 factory_test = 42;
789 optional bool booting = 43;
790 optional bool call_finish_booting = 44;
791 optional bool boot_animation_complete = 45;
792 optional int64 last_power_check_uptime_ms = 46;
793 optional .android.os.PowerManagerProto.WakeLock going_to_sleep = 47;
794 optional .android.os.PowerManagerProto.WakeLock launching_activity = 48;
795 optional int32 adj_seq = 49;
796 optional int32 lru_seq = 50;
797 optional int32 num_non_cached_procs = 51;
798 optional int32 num_cached_hidden_procs = 52;
799 optional int32 num_service_procs = 53;
800 optional int32 new_num_service_procs = 54;
801 optional bool allow_lower_mem_level = 55;
802 optional int32 last_memory_level = 56;
803 optional int32 last_num_processes = 57;
804 optional .android.util.Duration last_idle_time = 58;
805 optional int64 low_ram_since_last_idle_ms = 59;
Yi Jin148d7f42017-11-28 14:23:56 -0800806}
807
808message ActiveInstrumentationProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700809 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800810
Kweku Adams21b8d262018-03-30 12:19:58 -0700811 optional .android.content.ComponentNameProto class = 1;
812 optional bool finished = 2;
813 repeated ProcessRecordProto running_processes = 3;
814 repeated string target_processes = 4;
815 optional .android.content.pm.ApplicationInfoProto target_info = 5;
816 optional string profile_file = 6;
817 optional string watcher = 7;
818 optional string ui_automation_connection = 8;
Kweku Adams87c60a02018-06-13 12:13:52 -0700819 // Arguments as given to the ActiveInstrumentation object in Bundle
820 // toString format.
821 reserved 9; // arguments (in String format).
822 // Arguments as given to the ActiveInstrumentation object.
823 optional .android.os.BundleProto arguments = 10;
Yi Jin148d7f42017-11-28 14:23:56 -0800824}
825
826// Proto definition of com.android.server.am.UidRecord.java
827message UidRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800828 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
829
Kweku Adams21b8d262018-03-30 12:19:58 -0700830 optional int32 uid = 1;
831 optional .android.app.ProcessStateEnum current = 2;
832 optional bool ephemeral = 3;
833 optional bool fg_services = 4;
834 optional bool whilelist = 5;
835 optional .android.util.Duration last_background_time = 6;
836 optional bool idle = 7;
Yi Jin163967f2018-03-15 13:49:44 -0700837
Kweku Adams21b8d262018-03-30 12:19:58 -0700838 enum Change {
839 CHANGE_GONE = 0;
840 CHANGE_IDLE = 1;
841 CHANGE_ACTIVE = 2;
842 CHANGE_CACHED = 3;
843 CHANGE_UNCACHED = 4;
844 }
845 repeated Change last_reported_changes = 8;
846 optional int32 num_procs = 9;
847
848 message ProcStateSequence {
849 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
850
851 optional int64 cururent = 1;
852 optional int64 last_network_updated = 2;
853 optional int64 last_dispatched = 3;
854 }
855 optional ProcStateSequence network_state_update = 10;
856
857 // Next Tag: 11
Yi Jin148d7f42017-11-28 14:23:56 -0800858}
859
860// proto of class ImportanceToken in ActivityManagerService
861message ImportanceTokenProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700862 option (.android.msg_privacy).dest = DEST_EXPLICIT;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800863
Kweku Adams21b8d262018-03-30 12:19:58 -0700864 optional int32 pid = 1;
865 optional string token = 2;
866 optional string reason = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800867}
868
Yi Jin6c6e9ca2018-03-20 16:53:35 -0700869// proto of class VrController.java
870message VrControllerProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700871 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin6c6e9ca2018-03-20 16:53:35 -0700872
Kweku Adams21b8d262018-03-30 12:19:58 -0700873 enum VrMode {
874 FLAG_NON_VR_MODE = 0;
875 FLAG_VR_MODE = 1;
876 FLAG_PERSISTENT_VR_MODE = 2;
877 }
878 repeated VrMode vr_mode = 1;
879 optional int32 render_thread_id = 2;
Yi Jin6c6e9ca2018-03-20 16:53:35 -0700880}
881
Yi Jin148d7f42017-11-28 14:23:56 -0800882message ProcessOomProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800883 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
884
Kweku Adams21b8d262018-03-30 12:19:58 -0700885 optional bool persistent = 1;
886 optional int32 num = 2;
887 optional string oom_adj = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800888
Kweku Adams21b8d262018-03-30 12:19:58 -0700889 // Activity manager's version of Process enum, see ProcessList.java
890 enum SchedGroup {
891 SCHED_GROUP_UNKNOWN = -1;
892 SCHED_GROUP_BACKGROUND = 0;
893 SCHED_GROUP_DEFAULT = 1;
894 SCHED_GROUP_TOP_APP = 2;
895 SCHED_GROUP_TOP_APP_BOUND = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800896 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700897 optional SchedGroup sched_group = 4 [ default = SCHED_GROUP_UNKNOWN];
898
899 oneof Foreground {
900 bool activities = 5;
901 bool services = 6;
902 }
903
904 optional .android.app.ProcessStateEnum state = 7;
905 optional int32 trim_memory_level = 8;
906 optional ProcessRecordProto proc = 9;
907 optional string adj_type = 10;
908
909 oneof AdjTarget {
910 .android.content.ComponentNameProto adj_target_component_name = 11;
911 string adj_target_object = 12;
912 }
913
914 oneof AdjSource {
915 ProcessRecordProto adj_source_proc = 13;
916 string adj_source_object = 14;
917 }
918
919 message Detail {
920 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
921
922 optional int32 max_adj = 1;
923 optional int32 cur_raw_adj = 2;
924 optional int32 set_raw_adj = 3;
925 optional int32 cur_adj = 4;
926 optional int32 set_adj = 5;
927 optional .android.app.ProcessStateEnum current_state = 7;
928 optional .android.app.ProcessStateEnum set_state = 8;
929 optional string last_pss = 9;
930 optional string last_swap_pss = 10;
931 optional string last_cached_pss = 11;
932 optional bool cached = 12;
933 optional bool empty = 13;
934 optional bool has_above_client = 14;
935
936 // only make sense if process is a service
937 message CpuRunTime {
938 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
939
940 optional int64 over_ms = 1;
941 optional int64 used_ms = 2;
942 optional float ultilization = 3; // ratio of cpu time usage
943 }
944 optional CpuRunTime service_run_time = 15;
945 }
946 optional Detail detail = 15;
Yi Jin148d7f42017-11-28 14:23:56 -0800947}
948
949message ProcessToGcProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700950 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800951
Kweku Adams21b8d262018-03-30 12:19:58 -0700952 optional ProcessRecordProto proc = 1;
953 optional bool report_low_memory = 2;
954 optional int64 now_uptime_ms = 3;
955 optional int64 last_gced_ms = 4;
956 optional int64 last_low_memory_ms = 5;
Yi Jin148d7f42017-11-28 14:23:56 -0800957}
958
959// sync with com.android.server.am.AppErrors.java
960message AppErrorsProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800961 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
962
Kweku Adams21b8d262018-03-30 12:19:58 -0700963 optional int64 now_uptime_ms = 1;
Yi Jin148d7f42017-11-28 14:23:56 -0800964
Kweku Adams21b8d262018-03-30 12:19:58 -0700965 message ProcessCrashTime {
966 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800967
Kweku Adams21b8d262018-03-30 12:19:58 -0700968 optional string process_name = 1;
969
970 message Entry {
971 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
972
973 optional int32 uid = 1;
974 optional int64 last_crashed_at_ms = 2;
975 }
976 repeated Entry entries = 2;
Yi Jin148d7f42017-11-28 14:23:56 -0800977 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700978 repeated ProcessCrashTime process_crash_times = 2;
Yi Jin148d7f42017-11-28 14:23:56 -0800979
Kweku Adams21b8d262018-03-30 12:19:58 -0700980 message BadProcess {
981 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800982
Kweku Adams21b8d262018-03-30 12:19:58 -0700983 optional string process_name = 1;
Yi Jin148d7f42017-11-28 14:23:56 -0800984
Kweku Adams21b8d262018-03-30 12:19:58 -0700985 message Entry {
986 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800987
Kweku Adams21b8d262018-03-30 12:19:58 -0700988 optional int32 uid = 1;
989 optional int64 crashed_at_ms = 2;
990 optional string short_msg = 3;
991 optional string long_msg = 4 [ (.android.privacy).dest = DEST_EXPLICIT ];
992 optional string stack = 5 [ (.android.privacy).dest = DEST_EXPLICIT ];
993 }
994 repeated Entry entries = 2;
Yi Jin148d7f42017-11-28 14:23:56 -0800995 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700996 repeated BadProcess bad_processes = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800997}
998
999// sync with com.android.server.am.UserState.java
1000message UserStateProto {
Kweku Adams21b8d262018-03-30 12:19:58 -07001001 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -08001002
Kweku Adams21b8d262018-03-30 12:19:58 -07001003 enum State {
1004 STATE_BOOTING = 0;
1005 STATE_RUNNING_LOCKED = 1;
1006 STATE_RUNNING_UNLOCKING = 2;
1007 STATE_RUNNING_UNLOCKED = 3;
1008 STATE_STOPPING = 4;
1009 STATE_SHUTDOWN = 5;
1010 }
1011 optional State state = 1;
1012 optional bool switching = 2;
Yi Jin148d7f42017-11-28 14:23:56 -08001013}
1014
1015// sync with com.android.server.am.UserController.java
1016message UserControllerProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -08001017 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
1018
Kweku Adams21b8d262018-03-30 12:19:58 -07001019 message User {
1020 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin148d7f42017-11-28 14:23:56 -08001021
Kweku Adams21b8d262018-03-30 12:19:58 -07001022 optional int32 id = 1;
1023 optional UserStateProto state = 2;
1024 }
1025 repeated User started_users = 1;
1026 repeated int32 started_user_array = 2;
1027 repeated int32 user_lru = 3;
Yi Jin0d7bc2d12018-01-23 17:35:19 -08001028
Kweku Adams21b8d262018-03-30 12:19:58 -07001029 message UserProfile {
1030 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
1031
1032 optional int32 user = 1;
1033 optional int32 profile = 2;
1034 }
1035 repeated UserProfile user_profile_group_ids = 4;
Yi Jin148d7f42017-11-28 14:23:56 -08001036}
1037
1038// sync with com.android.server.am.AppTimeTracker.java
1039message AppTimeTrackerProto {
Yi Jin69040222018-01-25 14:38:10 -08001040 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
1041
Kweku Adams21b8d262018-03-30 12:19:58 -07001042 optional string receiver = 1;
1043 optional int64 total_duration_ms = 2;
Yi Jin148d7f42017-11-28 14:23:56 -08001044
Kweku Adams21b8d262018-03-30 12:19:58 -07001045 message PackageTime {
1046 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
1047
1048 optional string package = 1;
1049 optional int64 duration_ms = 2;
1050 }
1051 repeated PackageTime package_times = 3;
1052
1053 optional .android.util.Duration started_time = 4;
1054 optional string started_package = 5;
Yi Jin129fc6c2017-09-28 15:48:38 -07001055}