blob: 8f084abe71a76cfa1d3f23b66c02442400e5e08c [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";
Joe Onorato99598ee2019-02-11 15:55:13 +000037import "frameworks/base/core/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
Wale Ogunwalebebd8cd2019-10-28 15:53:31 -070091 // To be removed soon.
92 optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true];
Kweku Adams21b8d262018-03-30 12:19:58 -070093 optional int32 id = 2;
94 repeated TaskRecordProto tasks = 3;
95 optional .com.android.server.wm.IdentifierProto resumed_activity = 4;
96 optional int32 display_id = 5;
97 optional bool fullscreen = 6;
98 optional .android.graphics.RectProto bounds = 7;
Wale Ogunwalebebd8cd2019-10-28 15:53:31 -070099 optional .com.android.server.wm.StackProto stack = 8;
Steven Timotius4346f0a2017-09-12 11:07:21 -0700100}
101
102message TaskRecordProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700103 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800104
Wale Ogunwale2322bed2019-10-10 17:24:19 +0200105 // To be removed soon.
106 optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true];
Kweku Adams21b8d262018-03-30 12:19:58 -0700107 optional int32 id = 2;
108 repeated ActivityRecordProto activities = 3;
109 optional int32 stack_id = 4;
110 optional .android.graphics.RectProto last_non_fullscreen_bounds = 5;
111 optional string real_activity = 6;
112 optional string orig_activity = 7;
113 optional int32 activity_type = 8;
114 optional int32 resize_mode = 9;
115 optional bool fullscreen = 10;
116 optional .android.graphics.RectProto bounds = 11;
117 optional int32 min_width = 12;
118 optional int32 min_height = 13;
Wale Ogunwale2322bed2019-10-10 17:24:19 +0200119 optional .com.android.server.wm.TaskProto task = 14;
Steven Timotius4346f0a2017-09-12 11:07:21 -0700120}
121
122message ActivityRecordProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700123 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800124
Wale Ogunwaleda8b8272018-11-29 19:37:37 -0800125 // To be removed soon.
126 optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true];
Kweku Adams21b8d262018-03-30 12:19:58 -0700127 optional .com.android.server.wm.IdentifierProto identifier = 2;
128 optional string state = 3;
Issei Suzuki7b9e2572019-11-14 16:19:54 +0100129 optional bool visible = 4;
Kweku Adams21b8d262018-03-30 12:19:58 -0700130 optional bool front_of_task = 5;
131 optional int32 proc_id = 6;
Wale Ogunwale30eab1f2018-05-24 18:25:25 -0700132 optional bool translucent = 7;
Wale Ogunwaleda8b8272018-11-29 19:37:37 -0800133 optional .com.android.server.wm.AppWindowTokenProto app_window_token = 8;
Steven Timotius4346f0a2017-09-12 11:07:21 -0700134}
135
136message KeyguardControllerProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700137 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800138
Kweku Adams21b8d262018-03-30 12:19:58 -0700139 optional bool keyguard_showing = 1;
wilsonshih0299c8a2018-08-24 15:52:57 +0800140 repeated KeyguardOccludedProto keyguard_occluded_states= 2;
Issei Suzukid6eb5a22019-02-20 23:08:03 +0100141 optional bool aod_showing = 3;
wilsonshih0299c8a2018-08-24 15:52:57 +0800142}
143
144message KeyguardOccludedProto {
145 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
146
147 optional int32 display_id = 1;
Kweku Adams21b8d262018-03-30 12:19:58 -0700148 optional bool keyguard_occluded = 2;
Yi Jin129fc6c2017-09-28 15:48:38 -0700149}
150
Yi Jin6b514142017-10-30 14:54:12 -0700151// "dumpsys activity --proto broadcasts"
Yi Jin2b30f322018-02-20 15:41:47 -0800152message ActivityManagerServiceDumpBroadcastsProto {
Yi Jin69040222018-01-25 14:38:10 -0800153 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
154
Kweku Adams21b8d262018-03-30 12:19:58 -0700155 repeated ReceiverListProto receiver_list = 1;
156
157 optional .com.android.server.IntentResolverProto receiver_resolver = 2;
158
159 repeated BroadcastQueueProto broadcast_queue = 3;
160
161 repeated StickyBroadcastProto sticky_broadcasts = 4;
162
163 message MainHandler {
164 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
165
166 optional string handler = 1;
167 optional .android.os.LooperProto looper = 2;
168 }
169 optional MainHandler handler = 5;
Yi Jin129fc6c2017-09-28 15:48:38 -0700170}
171
172message ReceiverListProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700173 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800174
Kweku Adams21b8d262018-03-30 12:19:58 -0700175 optional ProcessRecordProto app = 1;
176 optional int32 pid = 2;
177 optional int32 uid = 3;
178 optional int32 user = 4;
179 optional BroadcastRecordProto current = 5;
180 optional bool linked_to_death = 6;
181 repeated BroadcastFilterProto filters = 7;
Kweku Adams87c60a02018-06-13 12:13:52 -0700182 // Used to find this ReceiverList object in IntentResolver
183 optional string hex_hash = 8;
Yi Jin129fc6c2017-09-28 15:48:38 -0700184}
185
186message ProcessRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800187 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
188
Kweku Adams598e9a22017-11-02 17:12:20 -0700189 optional int32 pid = 1;
190 optional string process_name = 2;
Kweku Adams21b8d262018-03-30 12:19:58 -0700191 optional int32 uid = 3;
192 optional int32 user_id = 4;
193 optional int32 app_id = 5;
194 optional int32 isolated_app_id = 6;
195 optional bool persistent = 7;
Dianne Hackborn2f55e5a2018-11-30 16:31:31 -0800196 optional int32 lru_index = 8;
Kweku Adams21b8d262018-03-30 12:19:58 -0700197}
Kweku Adams598e9a22017-11-02 17:12:20 -0700198
Kweku Adams21b8d262018-03-30 12:19:58 -0700199message BroadcastRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800200 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
201
Kweku Adams21b8d262018-03-30 12:19:58 -0700202 optional int32 user_id = 1;
203 optional string intent_action = 2;
204}
Kweku Adams983829f2017-12-06 14:53:50 -0800205
Kweku Adams21b8d262018-03-30 12:19:58 -0700206message BroadcastFilterProto {
207 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800208
Kweku Adams21b8d262018-03-30 12:19:58 -0700209 optional .android.content.IntentFilterProto intent_filter = 1;
210 optional string required_permission = 2;
Kweku Adams87c60a02018-06-13 12:13:52 -0700211 // Used to find the BroadcastFilter object in IntentResolver
212 optional string hex_hash = 3;
Kweku Adams21b8d262018-03-30 12:19:58 -0700213 optional int32 owning_user_id = 4;
214}
Kweku Adams983829f2017-12-06 14:53:50 -0800215
Kweku Adams21b8d262018-03-30 12:19:58 -0700216message BroadcastQueueProto {
217 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800218
Kweku Adams21b8d262018-03-30 12:19:58 -0700219 optional string queue_name = 1;
220 repeated BroadcastRecordProto parallel_broadcasts = 2;
221 repeated BroadcastRecordProto ordered_broadcasts = 3;
222 optional BroadcastRecordProto pending_broadcast = 4;
223 repeated BroadcastRecordProto historical_broadcasts = 5;
Kweku Adams983829f2017-12-06 14:53:50 -0800224
Kweku Adams21b8d262018-03-30 12:19:58 -0700225 message BroadcastSummary {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800226 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
227
Kweku Adams21b8d262018-03-30 12:19:58 -0700228 optional .android.content.IntentProto intent = 1;
229 optional int64 enqueue_clock_time_ms = 2;
230 optional int64 dispatch_clock_time_ms = 3;
231 optional int64 finish_clock_time_ms = 4;
Kweku Adams983829f2017-12-06 14:53:50 -0800232 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700233 repeated BroadcastSummary historical_broadcasts_summary = 6;
234}
Kweku Adams983829f2017-12-06 14:53:50 -0800235
Kweku Adams21b8d262018-03-30 12:19:58 -0700236message MemInfoDumpProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800237 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
238
Kweku Adams21b8d262018-03-30 12:19:58 -0700239 optional int64 uptime_duration_ms = 1;
240 optional int64 elapsed_realtime_ms = 2;
Kweku Adams983829f2017-12-06 14:53:50 -0800241
Kweku Adams21b8d262018-03-30 12:19:58 -0700242 message ProcessMemory {
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 int32 pid = 1;
246 optional string process_name = 2;
Kweku Adams983829f2017-12-06 14:53:50 -0800247
Kweku Adams21b8d262018-03-30 12:19:58 -0700248 message MemoryInfo {
249 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Kweku Adams983829f2017-12-06 14:53:50 -0800250
Kweku Adams21b8d262018-03-30 12:19:58 -0700251 optional string name = 1;
252 // The proportional set size for the heap.
253 optional int32 total_pss_kb = 2;
254 // The proportional set size that is swappable for the heap.
255 optional int32 clean_pss_kb = 3;
256 // The private dirty pages used by the heap.
257 optional int32 shared_dirty_kb = 4;
258 // The shared dirty pages used by the heap.
259 optional int32 private_dirty_kb = 5;
260 // The shared clean pages used by the heap.
261 optional int32 shared_clean_kb = 6;
262 // The private clean pages used by the heap.
263 optional int32 private_clean_kb = 7;
264 oneof dirty_swap {
265 // The dirty the pages that have been swapped out.
266 int32 dirty_swap_kb = 8;
267 // The dirty the pages that have been swapped out, proportional.
268 int32 dirty_swap_pss_kb = 9;
269 }
Jing Jia736da82019-08-06 15:08:02 -0700270 // The rss set size for the heap.
271 optional int32 total_rss_kb = 10;
Kweku Adams21b8d262018-03-30 12:19:58 -0700272 }
273 message HeapInfo {
274 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Kweku Adams983829f2017-12-06 14:53:50 -0800275
Kweku Adams21b8d262018-03-30 12:19:58 -0700276 optional MemoryInfo mem_info = 1;
277 optional int32 heap_size_kb = 2;
278 optional int32 heap_alloc_kb = 3;
279 optional int32 heap_free_kb = 4;
280 }
281 optional HeapInfo native_heap = 3;
282 optional HeapInfo dalvik_heap = 4;
283 repeated MemoryInfo other_heaps = 5;
284 optional MemoryInfo unknown_heap = 6;
285 // Summation of native_heap, dalvik_heap, and other_heaps.
286 optional HeapInfo total_heap = 7;
Kweku Adams983829f2017-12-06 14:53:50 -0800287
Kweku Adams21b8d262018-03-30 12:19:58 -0700288 repeated MemoryInfo dalvik_details = 8;
Kweku Adams983829f2017-12-06 14:53:50 -0800289
Kweku Adams21b8d262018-03-30 12:19:58 -0700290 message AppSummary {
291 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Kweku Adams983829f2017-12-06 14:53:50 -0800292
Kweku Adams21b8d262018-03-30 12:19:58 -0700293 optional int32 java_heap_pss_kb = 1;
294 optional int32 native_heap_pss_kb = 2;
295 optional int32 code_pss_kb = 3;
296 optional int32 stack_pss_kb = 4;
297 optional int32 graphics_pss_kb = 5;
298 optional int32 private_other_pss_kb = 6;
299 optional int32 system_pss_kb = 7;
300
301 oneof total_swap {
302 int32 total_swap_pss = 8;
303 int32 total_swap_kb = 9;
304 }
Jing Jia736da82019-08-06 15:08:02 -0700305 optional int32 java_heap_rss_kb = 10;
306 optional int32 native_heap_rss_kb = 11;
307 optional int32 code_rss_kb = 12;
308 optional int32 stack_rss_kb = 13;
309 optional int32 graphics_rss_kb = 14;
310 optional int32 unknown_rss_kb = 15;
Kweku Adams21b8d262018-03-30 12:19:58 -0700311 }
312 optional AppSummary app_summary = 9;
313 }
314 repeated ProcessMemory native_processes = 3;
315
316 message AppData {
317 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
318
319 optional ProcessMemory process_memory = 1;
320
321 message ObjectStats {
322 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
323
324 optional int32 view_instance_count = 1;
325 optional int32 view_root_instance_count = 2;
326 optional int32 app_context_instance_count = 3;
327 optional int32 activity_instance_count = 4;
328 optional int32 global_asset_count = 5;
329 optional int32 global_asset_manager_count = 6;
330 optional int32 local_binder_object_count = 7;
331 optional int32 proxy_binder_object_count = 8;
332 optional int64 parcel_memory_kb = 9;
333 optional int32 parcel_count = 10;
334 optional int32 binder_object_death_count = 11;
335 optional int32 open_ssl_socket_count = 12;
336 optional int32 webview_instance_count = 13;
337 }
338 optional ObjectStats objects = 2;
339
340 message SqlStats {
341 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
342
343 optional int32 memory_used_kb = 1;
344 optional int32 pagecache_overflow_kb = 2;
345 optional int32 malloc_size_kb = 3;
346
347 message Database {
348 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
349
350 optional string name = 1;
351 optional int32 page_size = 2;
352 optional int32 db_size = 3;
353 // Number of lookaside slots:
354 // http://www.sqlite.org/c3ref/c_dbstatus_lookaside_used.html
355 optional int32 lookaside_b = 4;
356 // Statement cache stats: hits/misses/cachesize
357 optional string cache = 5;
358 }
359 repeated Database databases = 4;
360 }
361 optional SqlStats sql = 3;
362
363 optional string asset_allocations = 4;
364 optional string unreachable_memory = 5;
365 }
366 repeated AppData app_processes = 4;
367
368 message MemItem {
369 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
370
371 optional string tag = 1;
372 optional string label = 2;
373 optional int32 id = 3;
374 optional bool is_proc = 4;
375 optional bool has_activities = 5;
Jing Ji3a7338f2019-08-12 10:50:27 -0700376 optional int64 pss_kb = 6;
377 optional int64 rss_kb = 9;
Kweku Adams21b8d262018-03-30 12:19:58 -0700378 optional int64 swap_pss_kb = 7;
379 repeated MemItem sub_items = 8;
380 }
Jing Jia736da82019-08-06 15:08:02 -0700381 repeated MemItem total_rss_by_process = 29;
382 repeated MemItem total_rss_by_oom_adjustment = 30;
383 repeated MemItem total_rss_by_category = 31;
Kweku Adams21b8d262018-03-30 12:19:58 -0700384 repeated MemItem total_pss_by_process = 5;
385 repeated MemItem total_pss_by_oom_adjustment = 6;
386 repeated MemItem total_pss_by_category = 7;
387
388 optional int64 total_ram_kb = 8;
389 optional .com.android.internal.app.procstats.ProcessStatsProto.MemoryFactor status = 9;
390 // Total free RAM = cached_pss_kb + cached_kernel_kb + free_kb.
391 optional int64 cached_pss_kb = 10;
392 optional int64 cached_kernel_kb = 11;
393 optional int64 free_kb = 12;
394 // Total used RAM = used_pss_kb + used_kernel_kb.
395 optional int64 used_pss_kb = 13;
396 optional int64 used_kernel_kb = 14;
397
398 optional int64 lost_ram_kb = 15;
399
400 optional int64 total_zram_kb = 16;
401 optional int64 zram_physical_used_in_swap_kb = 17;
402 optional int64 total_zram_swap_kb = 18;
403
404 optional int64 ksm_sharing_kb = 19;
405 optional int64 ksm_shared_kb = 20;
406 optional int64 ksm_unshared_kb = 21;
407 optional int64 ksm_volatile_kb = 22;
408
409 // The approximate per-application memory class of the current device. This
410 // gives developers an idea of how hard a memory limit you should impose on
411 // their application to let the overall system work best. The value is in
412 // megabytes; the baseline Android memory class is 16 (which happens to be the
413 // Java heap limit of those devices); some devices with more memory may have
414 // 24 or even higher numbers.
415 optional int32 tuning_mb = 23;
416 // The approximate per-application memory class of the current device when an
417 // application is running with a large heap. This is the space available for
418 // memory-intensive applications; most applications should not need this
419 // amount of memory, and should instead stay with the tuning_mb limit. The
420 // value is in megabytes. This may be the same size as tuning_mb on memory
421 // constrained devices, or it may be significantly larger on devices with a
422 // large amount of available RAM.
423 // This is the size of the application's Dalvik heap if it has specified
424 // 'android:largeHeap="true"' in its manifest.
425 optional int32 tuning_large_mb = 24;
426
427 optional int64 oom_kb = 25;
428
429 // The maximum pss size in kb that we consider a process acceptable to restore
430 // from its cached state for running in the background when RAM is low.
431 optional int64 restore_limit_kb = 26;
432
433 optional bool is_low_ram_device = 27;
434 optional bool is_high_end_gfx = 28;
Jing Jia736da82019-08-06 15:08:02 -0700435
436 // Next Tag: 32
Kweku Adams598e9a22017-11-02 17:12:20 -0700437}
438
Yi Jin129fc6c2017-09-28 15:48:38 -0700439message StickyBroadcastProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800440 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
441
Kweku Adams21b8d262018-03-30 12:19:58 -0700442 optional int32 user = 1;
443
444 message StickyAction {
445 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
446
Kweku Adams87c60a02018-06-13 12:13:52 -0700447 // The action of the sticky Intent.
Kweku Adams21b8d262018-03-30 12:19:58 -0700448 optional string name = 1;
449 repeated .android.content.IntentProto intents = 2;
450 }
451 repeated StickyAction actions = 2;
Yi Jin129fc6c2017-09-28 15:48:38 -0700452}
453
Yi Jin6b514142017-10-30 14:54:12 -0700454// "dumpsys activity --proto service"
Yi Jin2b30f322018-02-20 15:41:47 -0800455message ActivityManagerServiceDumpServicesProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700456 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin2b30f322018-02-20 15:41:47 -0800457
Kweku Adams21b8d262018-03-30 12:19:58 -0700458 optional ActiveServicesProto active_services = 1;
Yi Jin2b30f322018-02-20 15:41:47 -0800459}
460
Yi Jin6b514142017-10-30 14:54:12 -0700461message ActiveServicesProto {
Yi Jin83fb1d52018-03-16 12:03:53 -0700462 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
463
Kweku Adams21b8d262018-03-30 12:19:58 -0700464 message ServicesByUser {
465 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
466
467 optional int32 user_id = 1;
468 repeated ServiceRecordProto service_records = 2;
469 }
470 repeated ServicesByUser services_by_users = 1;
Yi Jin129fc6c2017-09-28 15:48:38 -0700471}
472
Yi Jin6b514142017-10-30 14:54:12 -0700473// corresponds to ActivityManagerService.GrantUri Java class
474message GrantUriProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700475 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800476
Kweku Adams21b8d262018-03-30 12:19:58 -0700477 optional int32 source_user_id = 1;
478 optional string uri = 2 [ (.android.privacy).dest = DEST_EXPLICIT ];
Yi Jin6b514142017-10-30 14:54:12 -0700479}
480
481message NeededUriGrantsProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700482 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800483
Kweku Adams21b8d262018-03-30 12:19:58 -0700484 optional string target_package = 1;
485 optional int32 target_uid = 2;
486 optional int32 flags = 3;
Yi Jin6b514142017-10-30 14:54:12 -0700487
Kweku Adams21b8d262018-03-30 12:19:58 -0700488 repeated GrantUriProto grants = 4;
Yi Jin6b514142017-10-30 14:54:12 -0700489}
490
491message UriPermissionOwnerProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700492 option (.android.msg_privacy).dest = DEST_EXPLICIT;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800493
Kweku Adams21b8d262018-03-30 12:19:58 -0700494 optional string owner = 1;
495 repeated GrantUriProto read_perms = 2;
496 repeated GrantUriProto write_perms = 3;
Yi Jin6b514142017-10-30 14:54:12 -0700497}
498
499message ServiceRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800500 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
501
Kweku Adams21b8d262018-03-30 12:19:58 -0700502 optional string short_name = 1;
503 optional bool is_running = 2; // false if the application service is null
504 optional int32 pid = 3;
505 optional .android.content.IntentProto intent = 4;
506 optional string package_name = 5;
507 optional string process_name = 6;
508 optional string permission = 7;
Yi Jin6b514142017-10-30 14:54:12 -0700509
Kweku Adams21b8d262018-03-30 12:19:58 -0700510 message AppInfo {
511 option (.android.msg_privacy).dest = DEST_EXPLICIT;
Yi Jin6b514142017-10-30 14:54:12 -0700512
Kweku Adams21b8d262018-03-30 12:19:58 -0700513 optional string base_dir = 1;
514 optional string res_dir = 2;
515 optional string data_dir = 3;
516 }
517 optional AppInfo appinfo = 8;
518 optional ProcessRecordProto app = 9;
519 optional ProcessRecordProto isolated_proc = 10;
520 optional bool whitelist_manager = 11;
521 optional bool delayed = 12;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800522
Kweku Adams21b8d262018-03-30 12:19:58 -0700523 message Foreground {
524 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin6b514142017-10-30 14:54:12 -0700525
Kweku Adams21b8d262018-03-30 12:19:58 -0700526 optional int32 id = 1;
527 optional .android.app.NotificationProto notification = 2;
528 }
529 optional Foreground foreground = 13;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800530
Kweku Adams21b8d262018-03-30 12:19:58 -0700531 optional .android.util.Duration create_real_time = 14;
532 optional .android.util.Duration starting_bg_timeout = 15;
533 optional .android.util.Duration last_activity_time = 16;
534 optional .android.util.Duration restart_time = 17;
535 optional bool created_from_fg = 18;
Yi Jin6b514142017-10-30 14:54:12 -0700536
Kweku Adams21b8d262018-03-30 12:19:58 -0700537 // variables used to track states related to service start
538 message Start {
539 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin6b514142017-10-30 14:54:12 -0700540
Kweku Adams21b8d262018-03-30 12:19:58 -0700541 optional bool start_requested = 1;
542 optional bool delayed_stop = 2;
543 optional bool stop_if_killed = 3;
544 optional bool call_start = 4;
545 optional int32 last_start_id = 5;
546 }
547 optional Start start = 19;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800548
Kweku Adams21b8d262018-03-30 12:19:58 -0700549 message ExecuteNesting {
550 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin6b514142017-10-30 14:54:12 -0700551
Kweku Adams21b8d262018-03-30 12:19:58 -0700552 optional int32 execute_nesting = 1;
553 optional bool execute_fg = 2;
554 optional .android.util.Duration executing_start = 3;
555 }
556 optional ExecuteNesting execute = 20;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800557
Kweku Adams21b8d262018-03-30 12:19:58 -0700558 optional .android.util.Duration destory_time = 21;
Yi Jin6b514142017-10-30 14:54:12 -0700559
Kweku Adams21b8d262018-03-30 12:19:58 -0700560 message Crash {
561 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin163967f2018-03-15 13:49:44 -0700562
Kweku Adams21b8d262018-03-30 12:19:58 -0700563 optional int32 restart_count = 1;
564 optional .android.util.Duration restart_delay = 2;
565 optional .android.util.Duration next_restart_time = 3;
566 optional int32 crash_count = 4;
567 }
568 optional Crash crash = 22;
569
570 message StartItem {
571 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
572
573 optional int32 id = 1;
574 optional .android.util.Duration duration = 2;
575 optional int32 delivery_count = 3;
576 optional int32 done_executing_count = 4;
577 optional .android.content.IntentProto intent = 5;
578 optional NeededUriGrantsProto needed_grants = 6;
579 optional UriPermissionOwnerProto uri_permissions = 7;
580 }
581 repeated StartItem delivered_starts = 23;
582 repeated StartItem pending_starts = 24;
583
584 repeated IntentBindRecordProto bindings = 25;
585 repeated ConnectionRecordProto connections = 26;
586
587 // Next Tag: 27
Yi Jin6b514142017-10-30 14:54:12 -0700588}
589
590message ConnectionRecordProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700591 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800592
Kweku Adams87c60a02018-06-13 12:13:52 -0700593 // Used to find same record, e.g. AppBindRecord has the hex_hash
Kweku Adams21b8d262018-03-30 12:19:58 -0700594 optional string hex_hash = 1; // cross reference the object and avoid double logging.
595 optional int32 user_id = 2;
Yi Jin6b514142017-10-30 14:54:12 -0700596
Kweku Adams21b8d262018-03-30 12:19:58 -0700597 enum Flag {
598 AUTO_CREATE = 0;
599 DEBUG_UNBIND = 1;
600 NOT_FG = 2;
601 IMPORTANT_BG = 3;
602 ABOVE_CLIENT = 4;
603 ALLOW_OOM_MANAGEMENT = 5;
604 WAIVE_PRIORITY = 6;
605 IMPORTANT = 7;
606 ADJUST_WITH_ACTIVITY = 8;
607 FG_SERVICE_WHILE_AWAKE = 9;
608 FG_SERVICE = 10;
609 TREAT_LIKE_ACTIVITY = 11;
610 VISIBLE = 12;
611 SHOWING_UI = 13;
612 NOT_VISIBLE = 14;
613 DEAD = 15;
Amith Yamasani5016a782019-06-17 16:20:24 -0700614 NOT_PERCEPTIBLE = 16;
615 INCLUDE_CAPABILITIES = 17;
Kweku Adams21b8d262018-03-30 12:19:58 -0700616 }
617 repeated Flag flags = 3;
618 optional string service_name = 4;
Yi Jin6b514142017-10-30 14:54:12 -0700619}
620
621message AppBindRecordProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700622 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800623
Kweku Adams21b8d262018-03-30 12:19:58 -0700624 optional string service_name = 1;
625 optional string client_proc_name = 2;
626 repeated string connections = 3; // hex_hash of ConnectionRecordProto
Yi Jin6b514142017-10-30 14:54:12 -0700627}
628
629message IntentBindRecordProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700630 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800631
Kweku Adams21b8d262018-03-30 12:19:58 -0700632 optional .android.content.IntentProto intent = 1;
633 optional string binder = 2;
634 optional bool auto_create = 3; // value of BIND_AUTO_CREATE flag.
635 optional bool requested = 4;
636 optional bool received = 5;
637 optional bool has_bound = 6;
638 optional bool do_rebind = 7;
Yi Jin6b514142017-10-30 14:54:12 -0700639
Kweku Adams21b8d262018-03-30 12:19:58 -0700640 repeated AppBindRecordProto apps = 8;
Yi Jin6b514142017-10-30 14:54:12 -0700641}
642
643// TODO: "dumpsys activity --proto processes"
Yi Jin2b30f322018-02-20 15:41:47 -0800644message ActivityManagerServiceDumpProcessesProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800645 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
646
Kweku Adams21b8d262018-03-30 12:19:58 -0700647 repeated ProcessRecordProto procs = 1;
648 repeated ProcessRecordProto isolated_procs = 2;
649 repeated ActiveInstrumentationProto active_instrumentations = 3;
650 repeated UidRecordProto active_uids = 4;
651 repeated UidRecordProto validate_uids = 5;
Yi Jin148d7f42017-11-28 14:23:56 -0800652
Kweku Adams21b8d262018-03-30 12:19:58 -0700653 // Process LRU list (sorted by oom_adj)
654 message LruProcesses {
655 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin148d7f42017-11-28 14:23:56 -0800656
Kweku Adams21b8d262018-03-30 12:19:58 -0700657 optional int32 size = 1;
658 optional int32 non_act_at = 2;
659 optional int32 non_svc_at = 3;
660 repeated ProcessOomProto list = 4;
Yi Jin148d7f42017-11-28 14:23:56 -0800661 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700662 optional LruProcesses lru_procs = 6;
663 repeated ProcessRecordProto pids_self_locked = 7;
664 // Foreground Processes
665 repeated ImportanceTokenProto important_procs = 8;
666 // Persisent processes that are starting
667 repeated ProcessRecordProto persistent_starting_procs = 9;
668 // Processes that are being removed
669 repeated ProcessRecordProto removed_procs = 10;
670 // Processes that are on old until the system is ready
671 repeated ProcessRecordProto on_hold_procs = 11;
672 // Processes that are waiting to GC
673 repeated ProcessToGcProto gc_procs = 12;
674 optional AppErrorsProto app_errors = 13;
675 optional UserControllerProto user_controller = 14;
676 optional ProcessRecordProto home_proc = 15;
677 optional ProcessRecordProto previous_proc = 16;
678 optional int64 previous_proc_visible_time_ms = 17;
679 optional ProcessRecordProto heavy_weight_proc = 18;
680 optional .android.content.ConfigurationProto global_configuration = 19;
681 // ActivityStackSupervisorProto dumps these values as well, still here?
682 // repeated ActivityDisplayProto displays = 20;
Yi Jin148d7f42017-11-28 14:23:56 -0800683
Kweku Adams21b8d262018-03-30 12:19:58 -0700684 optional bool config_will_change = 21;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800685
Kweku Adams21b8d262018-03-30 12:19:58 -0700686 message ScreenCompatPackage {
687 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin148d7f42017-11-28 14:23:56 -0800688
Kweku Adams21b8d262018-03-30 12:19:58 -0700689 optional string package = 1;
690 optional int32 mode = 2;
691 }
692 repeated ScreenCompatPackage screen_compat_packages = 22;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800693
Kweku Adams21b8d262018-03-30 12:19:58 -0700694 message UidObserverRegistrationProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800695 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
696
Yi Jin148d7f42017-11-28 14:23:56 -0800697 optional int32 uid = 1;
Kweku Adams21b8d262018-03-30 12:19:58 -0700698 optional string package = 2;
699 repeated .android.app.UidObserverFlag flags = 3;
700 optional int32 cut_point = 4; // only available when UID_OBSERVER_PROCSTATE is on
701
702 message ProcState {
703 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
704
705 optional int32 uid = 1;
706 optional int32 state = 2;
707 }
708 repeated ProcState last_proc_states = 5;
Yi Jin148d7f42017-11-28 14:23:56 -0800709 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700710 repeated UidObserverRegistrationProto uid_observers = 23;
711 repeated int32 device_idle_whitelist = 24;
712 repeated int32 device_idle_temp_whitelist = 25;
Yi Jin148d7f42017-11-28 14:23:56 -0800713
Kweku Adams21b8d262018-03-30 12:19:58 -0700714 message PendingTempWhitelist {
715 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800716
Kweku Adams21b8d262018-03-30 12:19:58 -0700717 optional int32 target_uid = 1;
718 optional int64 duration_ms = 2;
719 optional string tag = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800720 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700721 repeated PendingTempWhitelist pending_temp_whitelist = 26;
Yi Jin148d7f42017-11-28 14:23:56 -0800722
Kweku Adams21b8d262018-03-30 12:19:58 -0700723 message SleepStatus {
724 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800725
Kweku Adams21b8d262018-03-30 12:19:58 -0700726 optional .android.os.PowerManagerInternalProto.Wakefulness wakefulness = 1;
727 repeated string sleep_tokens = 2 [ (.android.privacy).dest = DEST_EXPLICIT ];
728 optional bool sleeping = 3;
729 optional bool shutting_down = 4;
730 optional bool test_pss_mode = 5;
731 }
732 optional SleepStatus sleep_status = 27;
Yi Jin148d7f42017-11-28 14:23:56 -0800733
Kweku Adams21b8d262018-03-30 12:19:58 -0700734 message Voice {
735 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800736
Kweku Adams21b8d262018-03-30 12:19:58 -0700737 optional string session = 1;
738 optional .android.os.PowerManagerProto.WakeLock wakelock = 2;
739 }
740 optional Voice running_voice = 28;
Yi Jin148d7f42017-11-28 14:23:56 -0800741
Kweku Adams21b8d262018-03-30 12:19:58 -0700742 optional VrControllerProto vr_controller = 29;
743
744 message DebugApp {
745 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
746
747 optional string debug_app = 1;
748 optional string orig_debug_app = 2;
749 optional bool debug_transient = 3;
750 optional bool orig_wait_for_debugger = 4;
751 }
752 optional DebugApp debug = 30;
753 optional AppTimeTrackerProto current_tracker = 31;
754
755 message MemWatchProcess {
756 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
757
758 message Process {
759 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
760
761 optional string name = 1;
762
763 message MemStats {
764 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
765
766 optional int32 uid = 1;
767 optional string size = 2;
768 optional string report_to = 3;
769 }
770 repeated MemStats mem_stats = 2;
771 }
772 repeated Process procs = 1;
773
774 message Dump {
775 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
776
777 optional string proc_name = 1;
Kweku Adams6d4bd8e2019-06-26 17:05:55 -0700778 reserved 2; // file, DEST_EXPLICIT
Kweku Adams21b8d262018-03-30 12:19:58 -0700779 optional int32 pid = 3;
780 optional int32 uid = 4;
Kweku Adamsa3513f02019-03-21 12:48:08 -0700781 optional bool is_user_initiated = 5;
Kweku Adams6d4bd8e2019-06-26 17:05:55 -0700782 optional string uri = 6 [ (.android.privacy).dest = DEST_EXPLICIT ];
Kweku Adams21b8d262018-03-30 12:19:58 -0700783 }
784 optional Dump dump = 2;
785 }
786 optional MemWatchProcess mem_watch_processes = 32;
787 optional string track_allocation_app = 33;
788
789 message Profile {
790 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
791
792 optional string app_name = 1;
793 optional ProcessRecordProto proc = 2;
794 optional .android.app.ProfilerInfoProto info = 3;
795 optional int32 type = 4;
796 }
797 optional Profile profile = 34;
798 optional string native_debugging_app = 35;
799 optional bool always_finish_activities = 36;
800
801 message Controller {
802 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
803
804 optional string controller = 1;
805 optional bool is_a_monkey = 2;
806 }
807 optional Controller controller = 37;
808
809 optional int32 total_persistent_procs = 38;
810 optional bool processes_ready = 39;
811 optional bool system_ready = 40;
812 optional bool booted = 41;
813 optional int32 factory_test = 42;
814 optional bool booting = 43;
815 optional bool call_finish_booting = 44;
816 optional bool boot_animation_complete = 45;
817 optional int64 last_power_check_uptime_ms = 46;
818 optional .android.os.PowerManagerProto.WakeLock going_to_sleep = 47;
819 optional .android.os.PowerManagerProto.WakeLock launching_activity = 48;
820 optional int32 adj_seq = 49;
821 optional int32 lru_seq = 50;
822 optional int32 num_non_cached_procs = 51;
823 optional int32 num_cached_hidden_procs = 52;
824 optional int32 num_service_procs = 53;
825 optional int32 new_num_service_procs = 54;
826 optional bool allow_lower_mem_level = 55;
827 optional int32 last_memory_level = 56;
828 optional int32 last_num_processes = 57;
829 optional .android.util.Duration last_idle_time = 58;
830 optional int64 low_ram_since_last_idle_ms = 59;
Yi Jin148d7f42017-11-28 14:23:56 -0800831}
832
833message ActiveInstrumentationProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700834 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800835
Kweku Adams21b8d262018-03-30 12:19:58 -0700836 optional .android.content.ComponentNameProto class = 1;
837 optional bool finished = 2;
838 repeated ProcessRecordProto running_processes = 3;
839 repeated string target_processes = 4;
840 optional .android.content.pm.ApplicationInfoProto target_info = 5;
841 optional string profile_file = 6;
842 optional string watcher = 7;
843 optional string ui_automation_connection = 8;
Kweku Adams87c60a02018-06-13 12:13:52 -0700844 // Arguments as given to the ActiveInstrumentation object in Bundle
845 // toString format.
846 reserved 9; // arguments (in String format).
847 // Arguments as given to the ActiveInstrumentation object.
848 optional .android.os.BundleProto arguments = 10;
Yi Jin148d7f42017-11-28 14:23:56 -0800849}
850
851// Proto definition of com.android.server.am.UidRecord.java
852message UidRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800853 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
854
Kweku Adams21b8d262018-03-30 12:19:58 -0700855 optional int32 uid = 1;
856 optional .android.app.ProcessStateEnum current = 2;
857 optional bool ephemeral = 3;
858 optional bool fg_services = 4;
859 optional bool whilelist = 5;
860 optional .android.util.Duration last_background_time = 6;
861 optional bool idle = 7;
Yi Jin163967f2018-03-15 13:49:44 -0700862
Kweku Adams21b8d262018-03-30 12:19:58 -0700863 enum Change {
864 CHANGE_GONE = 0;
865 CHANGE_IDLE = 1;
866 CHANGE_ACTIVE = 2;
867 CHANGE_CACHED = 3;
868 CHANGE_UNCACHED = 4;
869 }
870 repeated Change last_reported_changes = 8;
871 optional int32 num_procs = 9;
872
873 message ProcStateSequence {
874 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
875
876 optional int64 cururent = 1;
877 optional int64 last_network_updated = 2;
878 optional int64 last_dispatched = 3;
879 }
880 optional ProcStateSequence network_state_update = 10;
881
882 // Next Tag: 11
Yi Jin148d7f42017-11-28 14:23:56 -0800883}
884
885// proto of class ImportanceToken in ActivityManagerService
886message ImportanceTokenProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700887 option (.android.msg_privacy).dest = DEST_EXPLICIT;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800888
Kweku Adams21b8d262018-03-30 12:19:58 -0700889 optional int32 pid = 1;
890 optional string token = 2;
891 optional string reason = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800892}
893
Yi Jin6c6e9ca2018-03-20 16:53:35 -0700894// proto of class VrController.java
895message VrControllerProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700896 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin6c6e9ca2018-03-20 16:53:35 -0700897
Kweku Adams21b8d262018-03-30 12:19:58 -0700898 enum VrMode {
899 FLAG_NON_VR_MODE = 0;
900 FLAG_VR_MODE = 1;
901 FLAG_PERSISTENT_VR_MODE = 2;
902 }
903 repeated VrMode vr_mode = 1;
904 optional int32 render_thread_id = 2;
Yi Jin6c6e9ca2018-03-20 16:53:35 -0700905}
906
Yi Jin148d7f42017-11-28 14:23:56 -0800907message ProcessOomProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800908 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
909
Kweku Adams21b8d262018-03-30 12:19:58 -0700910 optional bool persistent = 1;
911 optional int32 num = 2;
912 optional string oom_adj = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800913
Kweku Adams21b8d262018-03-30 12:19:58 -0700914 // Activity manager's version of Process enum, see ProcessList.java
915 enum SchedGroup {
916 SCHED_GROUP_UNKNOWN = -1;
917 SCHED_GROUP_BACKGROUND = 0;
918 SCHED_GROUP_DEFAULT = 1;
919 SCHED_GROUP_TOP_APP = 2;
920 SCHED_GROUP_TOP_APP_BOUND = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800921 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700922 optional SchedGroup sched_group = 4 [ default = SCHED_GROUP_UNKNOWN];
923
924 oneof Foreground {
925 bool activities = 5;
926 bool services = 6;
927 }
928
929 optional .android.app.ProcessStateEnum state = 7;
930 optional int32 trim_memory_level = 8;
931 optional ProcessRecordProto proc = 9;
932 optional string adj_type = 10;
933
934 oneof AdjTarget {
935 .android.content.ComponentNameProto adj_target_component_name = 11;
936 string adj_target_object = 12;
937 }
938
939 oneof AdjSource {
940 ProcessRecordProto adj_source_proc = 13;
941 string adj_source_object = 14;
942 }
943
944 message Detail {
945 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
946
947 optional int32 max_adj = 1;
948 optional int32 cur_raw_adj = 2;
949 optional int32 set_raw_adj = 3;
950 optional int32 cur_adj = 4;
951 optional int32 set_adj = 5;
952 optional .android.app.ProcessStateEnum current_state = 7;
953 optional .android.app.ProcessStateEnum set_state = 8;
954 optional string last_pss = 9;
955 optional string last_swap_pss = 10;
956 optional string last_cached_pss = 11;
957 optional bool cached = 12;
958 optional bool empty = 13;
959 optional bool has_above_client = 14;
960
961 // only make sense if process is a service
962 message CpuRunTime {
963 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
964
965 optional int64 over_ms = 1;
966 optional int64 used_ms = 2;
967 optional float ultilization = 3; // ratio of cpu time usage
968 }
969 optional CpuRunTime service_run_time = 15;
970 }
971 optional Detail detail = 15;
Yi Jin148d7f42017-11-28 14:23:56 -0800972}
973
974message ProcessToGcProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700975 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800976
Kweku Adams21b8d262018-03-30 12:19:58 -0700977 optional ProcessRecordProto proc = 1;
978 optional bool report_low_memory = 2;
979 optional int64 now_uptime_ms = 3;
980 optional int64 last_gced_ms = 4;
981 optional int64 last_low_memory_ms = 5;
Yi Jin148d7f42017-11-28 14:23:56 -0800982}
983
984// sync with com.android.server.am.AppErrors.java
985message AppErrorsProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800986 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
987
Kweku Adams21b8d262018-03-30 12:19:58 -0700988 optional int64 now_uptime_ms = 1;
Yi Jin148d7f42017-11-28 14:23:56 -0800989
Kweku Adams21b8d262018-03-30 12:19:58 -0700990 message ProcessCrashTime {
991 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800992
Kweku Adams21b8d262018-03-30 12:19:58 -0700993 optional string process_name = 1;
994
995 message Entry {
996 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
997
998 optional int32 uid = 1;
999 optional int64 last_crashed_at_ms = 2;
1000 }
1001 repeated Entry entries = 2;
Yi Jin148d7f42017-11-28 14:23:56 -08001002 }
Kweku Adams21b8d262018-03-30 12:19:58 -07001003 repeated ProcessCrashTime process_crash_times = 2;
Yi Jin148d7f42017-11-28 14:23:56 -08001004
Kweku Adams21b8d262018-03-30 12:19:58 -07001005 message BadProcess {
1006 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -08001007
Kweku Adams21b8d262018-03-30 12:19:58 -07001008 optional string process_name = 1;
Yi Jin148d7f42017-11-28 14:23:56 -08001009
Kweku Adams21b8d262018-03-30 12:19:58 -07001010 message Entry {
1011 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -08001012
Kweku Adams21b8d262018-03-30 12:19:58 -07001013 optional int32 uid = 1;
1014 optional int64 crashed_at_ms = 2;
1015 optional string short_msg = 3;
1016 optional string long_msg = 4 [ (.android.privacy).dest = DEST_EXPLICIT ];
1017 optional string stack = 5 [ (.android.privacy).dest = DEST_EXPLICIT ];
1018 }
1019 repeated Entry entries = 2;
Yi Jin148d7f42017-11-28 14:23:56 -08001020 }
Kweku Adams21b8d262018-03-30 12:19:58 -07001021 repeated BadProcess bad_processes = 3;
Yi Jin148d7f42017-11-28 14:23:56 -08001022}
1023
1024// sync with com.android.server.am.UserState.java
1025message UserStateProto {
Kweku Adams21b8d262018-03-30 12:19:58 -07001026 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -08001027
Kweku Adams21b8d262018-03-30 12:19:58 -07001028 enum State {
1029 STATE_BOOTING = 0;
1030 STATE_RUNNING_LOCKED = 1;
1031 STATE_RUNNING_UNLOCKING = 2;
1032 STATE_RUNNING_UNLOCKED = 3;
1033 STATE_STOPPING = 4;
1034 STATE_SHUTDOWN = 5;
1035 }
1036 optional State state = 1;
1037 optional bool switching = 2;
Yi Jin148d7f42017-11-28 14:23:56 -08001038}
1039
1040// sync with com.android.server.am.UserController.java
1041message UserControllerProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -08001042 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
1043
Kweku Adams21b8d262018-03-30 12:19:58 -07001044 message User {
1045 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin148d7f42017-11-28 14:23:56 -08001046
Kweku Adams21b8d262018-03-30 12:19:58 -07001047 optional int32 id = 1;
1048 optional UserStateProto state = 2;
1049 }
1050 repeated User started_users = 1;
1051 repeated int32 started_user_array = 2;
1052 repeated int32 user_lru = 3;
Yi Jin0d7bc2d12018-01-23 17:35:19 -08001053
Kweku Adams21b8d262018-03-30 12:19:58 -07001054 message UserProfile {
1055 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
1056
1057 optional int32 user = 1;
1058 optional int32 profile = 2;
1059 }
1060 repeated UserProfile user_profile_group_ids = 4;
Yi Jin148d7f42017-11-28 14:23:56 -08001061}
1062
1063// sync with com.android.server.am.AppTimeTracker.java
1064message AppTimeTrackerProto {
Yi Jin69040222018-01-25 14:38:10 -08001065 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
1066
Kweku Adams21b8d262018-03-30 12:19:58 -07001067 optional string receiver = 1;
1068 optional int64 total_duration_ms = 2;
Yi Jin148d7f42017-11-28 14:23:56 -08001069
Kweku Adams21b8d262018-03-30 12:19:58 -07001070 message PackageTime {
1071 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
1072
1073 optional string package = 1;
1074 optional int64 duration_ms = 2;
1075 }
1076 repeated PackageTime package_times = 3;
1077
1078 optional .android.util.Duration started_time = 4;
1079 optional string started_package = 5;
Yi Jin129fc6c2017-09-28 15:48:38 -07001080}