blob: ce2717bb277951824a6343d73bd8c12a3ffd50ae [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 Suzukif2f6c912019-11-08 11:24:18 +0100129 optional bool visible_requested = 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;
Issei Suzukif2f6c912019-11-08 11:24:18 +0100134 optional bool visible = 9;
Steven Timotius4346f0a2017-09-12 11:07:21 -0700135}
136
137message KeyguardControllerProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700138 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800139
Kweku Adams21b8d262018-03-30 12:19:58 -0700140 optional bool keyguard_showing = 1;
wilsonshih0299c8a2018-08-24 15:52:57 +0800141 repeated KeyguardOccludedProto keyguard_occluded_states= 2;
Issei Suzukid6eb5a22019-02-20 23:08:03 +0100142 optional bool aod_showing = 3;
wilsonshih0299c8a2018-08-24 15:52:57 +0800143}
144
145message KeyguardOccludedProto {
146 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
147
148 optional int32 display_id = 1;
Kweku Adams21b8d262018-03-30 12:19:58 -0700149 optional bool keyguard_occluded = 2;
Yi Jin129fc6c2017-09-28 15:48:38 -0700150}
151
Yi Jin6b514142017-10-30 14:54:12 -0700152// "dumpsys activity --proto broadcasts"
Yi Jin2b30f322018-02-20 15:41:47 -0800153message ActivityManagerServiceDumpBroadcastsProto {
Yi Jin69040222018-01-25 14:38:10 -0800154 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
155
Kweku Adams21b8d262018-03-30 12:19:58 -0700156 repeated ReceiverListProto receiver_list = 1;
157
158 optional .com.android.server.IntentResolverProto receiver_resolver = 2;
159
160 repeated BroadcastQueueProto broadcast_queue = 3;
161
162 repeated StickyBroadcastProto sticky_broadcasts = 4;
163
164 message MainHandler {
165 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
166
167 optional string handler = 1;
168 optional .android.os.LooperProto looper = 2;
169 }
170 optional MainHandler handler = 5;
Yi Jin129fc6c2017-09-28 15:48:38 -0700171}
172
173message ReceiverListProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700174 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800175
Kweku Adams21b8d262018-03-30 12:19:58 -0700176 optional ProcessRecordProto app = 1;
177 optional int32 pid = 2;
178 optional int32 uid = 3;
179 optional int32 user = 4;
180 optional BroadcastRecordProto current = 5;
181 optional bool linked_to_death = 6;
182 repeated BroadcastFilterProto filters = 7;
Kweku Adams87c60a02018-06-13 12:13:52 -0700183 // Used to find this ReceiverList object in IntentResolver
184 optional string hex_hash = 8;
Yi Jin129fc6c2017-09-28 15:48:38 -0700185}
186
187message ProcessRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800188 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
189
Kweku Adams598e9a22017-11-02 17:12:20 -0700190 optional int32 pid = 1;
191 optional string process_name = 2;
Kweku Adams21b8d262018-03-30 12:19:58 -0700192 optional int32 uid = 3;
193 optional int32 user_id = 4;
194 optional int32 app_id = 5;
195 optional int32 isolated_app_id = 6;
196 optional bool persistent = 7;
Dianne Hackborn2f55e5a2018-11-30 16:31:31 -0800197 optional int32 lru_index = 8;
Kweku Adams21b8d262018-03-30 12:19:58 -0700198}
Kweku Adams598e9a22017-11-02 17:12:20 -0700199
Kweku Adams21b8d262018-03-30 12:19:58 -0700200message BroadcastRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800201 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
202
Kweku Adams21b8d262018-03-30 12:19:58 -0700203 optional int32 user_id = 1;
204 optional string intent_action = 2;
205}
Kweku Adams983829f2017-12-06 14:53:50 -0800206
Kweku Adams21b8d262018-03-30 12:19:58 -0700207message BroadcastFilterProto {
208 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800209
Kweku Adams21b8d262018-03-30 12:19:58 -0700210 optional .android.content.IntentFilterProto intent_filter = 1;
211 optional string required_permission = 2;
Kweku Adams87c60a02018-06-13 12:13:52 -0700212 // Used to find the BroadcastFilter object in IntentResolver
213 optional string hex_hash = 3;
Kweku Adams21b8d262018-03-30 12:19:58 -0700214 optional int32 owning_user_id = 4;
215}
Kweku Adams983829f2017-12-06 14:53:50 -0800216
Kweku Adams21b8d262018-03-30 12:19:58 -0700217message BroadcastQueueProto {
218 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800219
Kweku Adams21b8d262018-03-30 12:19:58 -0700220 optional string queue_name = 1;
221 repeated BroadcastRecordProto parallel_broadcasts = 2;
222 repeated BroadcastRecordProto ordered_broadcasts = 3;
223 optional BroadcastRecordProto pending_broadcast = 4;
224 repeated BroadcastRecordProto historical_broadcasts = 5;
Kweku Adams983829f2017-12-06 14:53:50 -0800225
Kweku Adams21b8d262018-03-30 12:19:58 -0700226 message BroadcastSummary {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800227 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
228
Kweku Adams21b8d262018-03-30 12:19:58 -0700229 optional .android.content.IntentProto intent = 1;
230 optional int64 enqueue_clock_time_ms = 2;
231 optional int64 dispatch_clock_time_ms = 3;
232 optional int64 finish_clock_time_ms = 4;
Kweku Adams983829f2017-12-06 14:53:50 -0800233 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700234 repeated BroadcastSummary historical_broadcasts_summary = 6;
235}
Kweku Adams983829f2017-12-06 14:53:50 -0800236
Kweku Adams21b8d262018-03-30 12:19:58 -0700237message MemInfoDumpProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800238 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
239
Kweku Adams21b8d262018-03-30 12:19:58 -0700240 optional int64 uptime_duration_ms = 1;
241 optional int64 elapsed_realtime_ms = 2;
Kweku Adams983829f2017-12-06 14:53:50 -0800242
Kweku Adams21b8d262018-03-30 12:19:58 -0700243 message ProcessMemory {
244 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Kweku Adams983829f2017-12-06 14:53:50 -0800245
Kweku Adams21b8d262018-03-30 12:19:58 -0700246 optional int32 pid = 1;
247 optional string process_name = 2;
Kweku Adams983829f2017-12-06 14:53:50 -0800248
Kweku Adams21b8d262018-03-30 12:19:58 -0700249 message MemoryInfo {
250 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Kweku Adams983829f2017-12-06 14:53:50 -0800251
Kweku Adams21b8d262018-03-30 12:19:58 -0700252 optional string name = 1;
253 // The proportional set size for the heap.
254 optional int32 total_pss_kb = 2;
255 // The proportional set size that is swappable for the heap.
256 optional int32 clean_pss_kb = 3;
257 // The private dirty pages used by the heap.
258 optional int32 shared_dirty_kb = 4;
259 // The shared dirty pages used by the heap.
260 optional int32 private_dirty_kb = 5;
261 // The shared clean pages used by the heap.
262 optional int32 shared_clean_kb = 6;
263 // The private clean pages used by the heap.
264 optional int32 private_clean_kb = 7;
265 oneof dirty_swap {
266 // The dirty the pages that have been swapped out.
267 int32 dirty_swap_kb = 8;
268 // The dirty the pages that have been swapped out, proportional.
269 int32 dirty_swap_pss_kb = 9;
270 }
Jing Jia736da82019-08-06 15:08:02 -0700271 // The rss set size for the heap.
272 optional int32 total_rss_kb = 10;
Kweku Adams21b8d262018-03-30 12:19:58 -0700273 }
274 message HeapInfo {
275 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Kweku Adams983829f2017-12-06 14:53:50 -0800276
Kweku Adams21b8d262018-03-30 12:19:58 -0700277 optional MemoryInfo mem_info = 1;
278 optional int32 heap_size_kb = 2;
279 optional int32 heap_alloc_kb = 3;
280 optional int32 heap_free_kb = 4;
281 }
282 optional HeapInfo native_heap = 3;
283 optional HeapInfo dalvik_heap = 4;
284 repeated MemoryInfo other_heaps = 5;
285 optional MemoryInfo unknown_heap = 6;
286 // Summation of native_heap, dalvik_heap, and other_heaps.
287 optional HeapInfo total_heap = 7;
Kweku Adams983829f2017-12-06 14:53:50 -0800288
Kweku Adams21b8d262018-03-30 12:19:58 -0700289 repeated MemoryInfo dalvik_details = 8;
Kweku Adams983829f2017-12-06 14:53:50 -0800290
Kweku Adams21b8d262018-03-30 12:19:58 -0700291 message AppSummary {
292 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Kweku Adams983829f2017-12-06 14:53:50 -0800293
Kweku Adams21b8d262018-03-30 12:19:58 -0700294 optional int32 java_heap_pss_kb = 1;
295 optional int32 native_heap_pss_kb = 2;
296 optional int32 code_pss_kb = 3;
297 optional int32 stack_pss_kb = 4;
298 optional int32 graphics_pss_kb = 5;
299 optional int32 private_other_pss_kb = 6;
300 optional int32 system_pss_kb = 7;
301
302 oneof total_swap {
303 int32 total_swap_pss = 8;
304 int32 total_swap_kb = 9;
305 }
Jing Jia736da82019-08-06 15:08:02 -0700306 optional int32 java_heap_rss_kb = 10;
307 optional int32 native_heap_rss_kb = 11;
308 optional int32 code_rss_kb = 12;
309 optional int32 stack_rss_kb = 13;
310 optional int32 graphics_rss_kb = 14;
311 optional int32 unknown_rss_kb = 15;
Kweku Adams21b8d262018-03-30 12:19:58 -0700312 }
313 optional AppSummary app_summary = 9;
314 }
315 repeated ProcessMemory native_processes = 3;
316
317 message AppData {
318 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
319
320 optional ProcessMemory process_memory = 1;
321
322 message ObjectStats {
323 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
324
325 optional int32 view_instance_count = 1;
326 optional int32 view_root_instance_count = 2;
327 optional int32 app_context_instance_count = 3;
328 optional int32 activity_instance_count = 4;
329 optional int32 global_asset_count = 5;
330 optional int32 global_asset_manager_count = 6;
331 optional int32 local_binder_object_count = 7;
332 optional int32 proxy_binder_object_count = 8;
333 optional int64 parcel_memory_kb = 9;
334 optional int32 parcel_count = 10;
335 optional int32 binder_object_death_count = 11;
336 optional int32 open_ssl_socket_count = 12;
337 optional int32 webview_instance_count = 13;
338 }
339 optional ObjectStats objects = 2;
340
341 message SqlStats {
342 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
343
344 optional int32 memory_used_kb = 1;
345 optional int32 pagecache_overflow_kb = 2;
346 optional int32 malloc_size_kb = 3;
347
348 message Database {
349 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
350
351 optional string name = 1;
352 optional int32 page_size = 2;
353 optional int32 db_size = 3;
354 // Number of lookaside slots:
355 // http://www.sqlite.org/c3ref/c_dbstatus_lookaside_used.html
356 optional int32 lookaside_b = 4;
357 // Statement cache stats: hits/misses/cachesize
358 optional string cache = 5;
359 }
360 repeated Database databases = 4;
361 }
362 optional SqlStats sql = 3;
363
364 optional string asset_allocations = 4;
365 optional string unreachable_memory = 5;
366 }
367 repeated AppData app_processes = 4;
368
369 message MemItem {
370 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
371
372 optional string tag = 1;
373 optional string label = 2;
374 optional int32 id = 3;
375 optional bool is_proc = 4;
376 optional bool has_activities = 5;
Jing Ji3a7338f2019-08-12 10:50:27 -0700377 optional int64 pss_kb = 6;
378 optional int64 rss_kb = 9;
Kweku Adams21b8d262018-03-30 12:19:58 -0700379 optional int64 swap_pss_kb = 7;
380 repeated MemItem sub_items = 8;
381 }
Jing Jia736da82019-08-06 15:08:02 -0700382 repeated MemItem total_rss_by_process = 29;
383 repeated MemItem total_rss_by_oom_adjustment = 30;
384 repeated MemItem total_rss_by_category = 31;
Kweku Adams21b8d262018-03-30 12:19:58 -0700385 repeated MemItem total_pss_by_process = 5;
386 repeated MemItem total_pss_by_oom_adjustment = 6;
387 repeated MemItem total_pss_by_category = 7;
388
389 optional int64 total_ram_kb = 8;
390 optional .com.android.internal.app.procstats.ProcessStatsProto.MemoryFactor status = 9;
391 // Total free RAM = cached_pss_kb + cached_kernel_kb + free_kb.
392 optional int64 cached_pss_kb = 10;
393 optional int64 cached_kernel_kb = 11;
394 optional int64 free_kb = 12;
395 // Total used RAM = used_pss_kb + used_kernel_kb.
396 optional int64 used_pss_kb = 13;
397 optional int64 used_kernel_kb = 14;
398
399 optional int64 lost_ram_kb = 15;
400
401 optional int64 total_zram_kb = 16;
402 optional int64 zram_physical_used_in_swap_kb = 17;
403 optional int64 total_zram_swap_kb = 18;
404
405 optional int64 ksm_sharing_kb = 19;
406 optional int64 ksm_shared_kb = 20;
407 optional int64 ksm_unshared_kb = 21;
408 optional int64 ksm_volatile_kb = 22;
409
410 // The approximate per-application memory class of the current device. This
411 // gives developers an idea of how hard a memory limit you should impose on
412 // their application to let the overall system work best. The value is in
413 // megabytes; the baseline Android memory class is 16 (which happens to be the
414 // Java heap limit of those devices); some devices with more memory may have
415 // 24 or even higher numbers.
416 optional int32 tuning_mb = 23;
417 // The approximate per-application memory class of the current device when an
418 // application is running with a large heap. This is the space available for
419 // memory-intensive applications; most applications should not need this
420 // amount of memory, and should instead stay with the tuning_mb limit. The
421 // value is in megabytes. This may be the same size as tuning_mb on memory
422 // constrained devices, or it may be significantly larger on devices with a
423 // large amount of available RAM.
424 // This is the size of the application's Dalvik heap if it has specified
425 // 'android:largeHeap="true"' in its manifest.
426 optional int32 tuning_large_mb = 24;
427
428 optional int64 oom_kb = 25;
429
430 // The maximum pss size in kb that we consider a process acceptable to restore
431 // from its cached state for running in the background when RAM is low.
432 optional int64 restore_limit_kb = 26;
433
434 optional bool is_low_ram_device = 27;
435 optional bool is_high_end_gfx = 28;
Jing Jia736da82019-08-06 15:08:02 -0700436
437 // Next Tag: 32
Kweku Adams598e9a22017-11-02 17:12:20 -0700438}
439
Yi Jin129fc6c2017-09-28 15:48:38 -0700440message StickyBroadcastProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800441 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
442
Kweku Adams21b8d262018-03-30 12:19:58 -0700443 optional int32 user = 1;
444
445 message StickyAction {
446 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
447
Kweku Adams87c60a02018-06-13 12:13:52 -0700448 // The action of the sticky Intent.
Kweku Adams21b8d262018-03-30 12:19:58 -0700449 optional string name = 1;
450 repeated .android.content.IntentProto intents = 2;
451 }
452 repeated StickyAction actions = 2;
Yi Jin129fc6c2017-09-28 15:48:38 -0700453}
454
Yi Jin6b514142017-10-30 14:54:12 -0700455// "dumpsys activity --proto service"
Yi Jin2b30f322018-02-20 15:41:47 -0800456message ActivityManagerServiceDumpServicesProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700457 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin2b30f322018-02-20 15:41:47 -0800458
Kweku Adams21b8d262018-03-30 12:19:58 -0700459 optional ActiveServicesProto active_services = 1;
Yi Jin2b30f322018-02-20 15:41:47 -0800460}
461
Yi Jin6b514142017-10-30 14:54:12 -0700462message ActiveServicesProto {
Yi Jin83fb1d52018-03-16 12:03:53 -0700463 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
464
Kweku Adams21b8d262018-03-30 12:19:58 -0700465 message ServicesByUser {
466 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
467
468 optional int32 user_id = 1;
469 repeated ServiceRecordProto service_records = 2;
470 }
471 repeated ServicesByUser services_by_users = 1;
Yi Jin129fc6c2017-09-28 15:48:38 -0700472}
473
Yi Jin6b514142017-10-30 14:54:12 -0700474// corresponds to ActivityManagerService.GrantUri Java class
475message GrantUriProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700476 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800477
Kweku Adams21b8d262018-03-30 12:19:58 -0700478 optional int32 source_user_id = 1;
479 optional string uri = 2 [ (.android.privacy).dest = DEST_EXPLICIT ];
Yi Jin6b514142017-10-30 14:54:12 -0700480}
481
482message NeededUriGrantsProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700483 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800484
Kweku Adams21b8d262018-03-30 12:19:58 -0700485 optional string target_package = 1;
486 optional int32 target_uid = 2;
487 optional int32 flags = 3;
Yi Jin6b514142017-10-30 14:54:12 -0700488
Kweku Adams21b8d262018-03-30 12:19:58 -0700489 repeated GrantUriProto grants = 4;
Yi Jin6b514142017-10-30 14:54:12 -0700490}
491
492message UriPermissionOwnerProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700493 option (.android.msg_privacy).dest = DEST_EXPLICIT;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800494
Kweku Adams21b8d262018-03-30 12:19:58 -0700495 optional string owner = 1;
496 repeated GrantUriProto read_perms = 2;
497 repeated GrantUriProto write_perms = 3;
Yi Jin6b514142017-10-30 14:54:12 -0700498}
499
500message ServiceRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800501 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
502
Kweku Adams21b8d262018-03-30 12:19:58 -0700503 optional string short_name = 1;
504 optional bool is_running = 2; // false if the application service is null
505 optional int32 pid = 3;
506 optional .android.content.IntentProto intent = 4;
507 optional string package_name = 5;
508 optional string process_name = 6;
509 optional string permission = 7;
Yi Jin6b514142017-10-30 14:54:12 -0700510
Kweku Adams21b8d262018-03-30 12:19:58 -0700511 message AppInfo {
512 option (.android.msg_privacy).dest = DEST_EXPLICIT;
Yi Jin6b514142017-10-30 14:54:12 -0700513
Kweku Adams21b8d262018-03-30 12:19:58 -0700514 optional string base_dir = 1;
515 optional string res_dir = 2;
516 optional string data_dir = 3;
517 }
518 optional AppInfo appinfo = 8;
519 optional ProcessRecordProto app = 9;
520 optional ProcessRecordProto isolated_proc = 10;
521 optional bool whitelist_manager = 11;
522 optional bool delayed = 12;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800523
Kweku Adams21b8d262018-03-30 12:19:58 -0700524 message Foreground {
525 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin6b514142017-10-30 14:54:12 -0700526
Kweku Adams21b8d262018-03-30 12:19:58 -0700527 optional int32 id = 1;
528 optional .android.app.NotificationProto notification = 2;
529 }
530 optional Foreground foreground = 13;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800531
Kweku Adams21b8d262018-03-30 12:19:58 -0700532 optional .android.util.Duration create_real_time = 14;
533 optional .android.util.Duration starting_bg_timeout = 15;
534 optional .android.util.Duration last_activity_time = 16;
535 optional .android.util.Duration restart_time = 17;
536 optional bool created_from_fg = 18;
Yi Jin6b514142017-10-30 14:54:12 -0700537
Kweku Adams21b8d262018-03-30 12:19:58 -0700538 // variables used to track states related to service start
539 message Start {
540 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin6b514142017-10-30 14:54:12 -0700541
Kweku Adams21b8d262018-03-30 12:19:58 -0700542 optional bool start_requested = 1;
543 optional bool delayed_stop = 2;
544 optional bool stop_if_killed = 3;
545 optional bool call_start = 4;
546 optional int32 last_start_id = 5;
547 }
548 optional Start start = 19;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800549
Kweku Adams21b8d262018-03-30 12:19:58 -0700550 message ExecuteNesting {
551 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin6b514142017-10-30 14:54:12 -0700552
Kweku Adams21b8d262018-03-30 12:19:58 -0700553 optional int32 execute_nesting = 1;
554 optional bool execute_fg = 2;
555 optional .android.util.Duration executing_start = 3;
556 }
557 optional ExecuteNesting execute = 20;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800558
Kweku Adams21b8d262018-03-30 12:19:58 -0700559 optional .android.util.Duration destory_time = 21;
Yi Jin6b514142017-10-30 14:54:12 -0700560
Kweku Adams21b8d262018-03-30 12:19:58 -0700561 message Crash {
562 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin163967f2018-03-15 13:49:44 -0700563
Kweku Adams21b8d262018-03-30 12:19:58 -0700564 optional int32 restart_count = 1;
565 optional .android.util.Duration restart_delay = 2;
566 optional .android.util.Duration next_restart_time = 3;
567 optional int32 crash_count = 4;
568 }
569 optional Crash crash = 22;
570
571 message StartItem {
572 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
573
574 optional int32 id = 1;
575 optional .android.util.Duration duration = 2;
576 optional int32 delivery_count = 3;
577 optional int32 done_executing_count = 4;
578 optional .android.content.IntentProto intent = 5;
579 optional NeededUriGrantsProto needed_grants = 6;
580 optional UriPermissionOwnerProto uri_permissions = 7;
581 }
582 repeated StartItem delivered_starts = 23;
583 repeated StartItem pending_starts = 24;
584
585 repeated IntentBindRecordProto bindings = 25;
586 repeated ConnectionRecordProto connections = 26;
587
588 // Next Tag: 27
Yi Jin6b514142017-10-30 14:54:12 -0700589}
590
591message ConnectionRecordProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700592 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800593
Kweku Adams87c60a02018-06-13 12:13:52 -0700594 // Used to find same record, e.g. AppBindRecord has the hex_hash
Kweku Adams21b8d262018-03-30 12:19:58 -0700595 optional string hex_hash = 1; // cross reference the object and avoid double logging.
596 optional int32 user_id = 2;
Yi Jin6b514142017-10-30 14:54:12 -0700597
Kweku Adams21b8d262018-03-30 12:19:58 -0700598 enum Flag {
599 AUTO_CREATE = 0;
600 DEBUG_UNBIND = 1;
601 NOT_FG = 2;
602 IMPORTANT_BG = 3;
603 ABOVE_CLIENT = 4;
604 ALLOW_OOM_MANAGEMENT = 5;
605 WAIVE_PRIORITY = 6;
606 IMPORTANT = 7;
607 ADJUST_WITH_ACTIVITY = 8;
608 FG_SERVICE_WHILE_AWAKE = 9;
609 FG_SERVICE = 10;
610 TREAT_LIKE_ACTIVITY = 11;
611 VISIBLE = 12;
612 SHOWING_UI = 13;
613 NOT_VISIBLE = 14;
614 DEAD = 15;
Amith Yamasani5016a782019-06-17 16:20:24 -0700615 NOT_PERCEPTIBLE = 16;
616 INCLUDE_CAPABILITIES = 17;
Kweku Adams21b8d262018-03-30 12:19:58 -0700617 }
618 repeated Flag flags = 3;
619 optional string service_name = 4;
Yi Jin6b514142017-10-30 14:54:12 -0700620}
621
622message AppBindRecordProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700623 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800624
Kweku Adams21b8d262018-03-30 12:19:58 -0700625 optional string service_name = 1;
626 optional string client_proc_name = 2;
627 repeated string connections = 3; // hex_hash of ConnectionRecordProto
Yi Jin6b514142017-10-30 14:54:12 -0700628}
629
630message IntentBindRecordProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700631 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800632
Kweku Adams21b8d262018-03-30 12:19:58 -0700633 optional .android.content.IntentProto intent = 1;
634 optional string binder = 2;
635 optional bool auto_create = 3; // value of BIND_AUTO_CREATE flag.
636 optional bool requested = 4;
637 optional bool received = 5;
638 optional bool has_bound = 6;
639 optional bool do_rebind = 7;
Yi Jin6b514142017-10-30 14:54:12 -0700640
Kweku Adams21b8d262018-03-30 12:19:58 -0700641 repeated AppBindRecordProto apps = 8;
Yi Jin6b514142017-10-30 14:54:12 -0700642}
643
644// TODO: "dumpsys activity --proto processes"
Yi Jin2b30f322018-02-20 15:41:47 -0800645message ActivityManagerServiceDumpProcessesProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800646 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
647
Kweku Adams21b8d262018-03-30 12:19:58 -0700648 repeated ProcessRecordProto procs = 1;
649 repeated ProcessRecordProto isolated_procs = 2;
650 repeated ActiveInstrumentationProto active_instrumentations = 3;
651 repeated UidRecordProto active_uids = 4;
652 repeated UidRecordProto validate_uids = 5;
Yi Jin148d7f42017-11-28 14:23:56 -0800653
Kweku Adams21b8d262018-03-30 12:19:58 -0700654 // Process LRU list (sorted by oom_adj)
655 message LruProcesses {
656 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin148d7f42017-11-28 14:23:56 -0800657
Kweku Adams21b8d262018-03-30 12:19:58 -0700658 optional int32 size = 1;
659 optional int32 non_act_at = 2;
660 optional int32 non_svc_at = 3;
661 repeated ProcessOomProto list = 4;
Yi Jin148d7f42017-11-28 14:23:56 -0800662 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700663 optional LruProcesses lru_procs = 6;
664 repeated ProcessRecordProto pids_self_locked = 7;
665 // Foreground Processes
666 repeated ImportanceTokenProto important_procs = 8;
667 // Persisent processes that are starting
668 repeated ProcessRecordProto persistent_starting_procs = 9;
669 // Processes that are being removed
670 repeated ProcessRecordProto removed_procs = 10;
671 // Processes that are on old until the system is ready
672 repeated ProcessRecordProto on_hold_procs = 11;
673 // Processes that are waiting to GC
674 repeated ProcessToGcProto gc_procs = 12;
675 optional AppErrorsProto app_errors = 13;
676 optional UserControllerProto user_controller = 14;
677 optional ProcessRecordProto home_proc = 15;
678 optional ProcessRecordProto previous_proc = 16;
679 optional int64 previous_proc_visible_time_ms = 17;
680 optional ProcessRecordProto heavy_weight_proc = 18;
681 optional .android.content.ConfigurationProto global_configuration = 19;
682 // ActivityStackSupervisorProto dumps these values as well, still here?
683 // repeated ActivityDisplayProto displays = 20;
Yi Jin148d7f42017-11-28 14:23:56 -0800684
Kweku Adams21b8d262018-03-30 12:19:58 -0700685 optional bool config_will_change = 21;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800686
Kweku Adams21b8d262018-03-30 12:19:58 -0700687 message ScreenCompatPackage {
688 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin148d7f42017-11-28 14:23:56 -0800689
Kweku Adams21b8d262018-03-30 12:19:58 -0700690 optional string package = 1;
691 optional int32 mode = 2;
692 }
693 repeated ScreenCompatPackage screen_compat_packages = 22;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800694
Kweku Adams21b8d262018-03-30 12:19:58 -0700695 message UidObserverRegistrationProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800696 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
697
Yi Jin148d7f42017-11-28 14:23:56 -0800698 optional int32 uid = 1;
Kweku Adams21b8d262018-03-30 12:19:58 -0700699 optional string package = 2;
700 repeated .android.app.UidObserverFlag flags = 3;
701 optional int32 cut_point = 4; // only available when UID_OBSERVER_PROCSTATE is on
702
703 message ProcState {
704 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
705
706 optional int32 uid = 1;
707 optional int32 state = 2;
708 }
709 repeated ProcState last_proc_states = 5;
Yi Jin148d7f42017-11-28 14:23:56 -0800710 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700711 repeated UidObserverRegistrationProto uid_observers = 23;
712 repeated int32 device_idle_whitelist = 24;
713 repeated int32 device_idle_temp_whitelist = 25;
Yi Jin148d7f42017-11-28 14:23:56 -0800714
Kweku Adams21b8d262018-03-30 12:19:58 -0700715 message PendingTempWhitelist {
716 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800717
Kweku Adams21b8d262018-03-30 12:19:58 -0700718 optional int32 target_uid = 1;
719 optional int64 duration_ms = 2;
720 optional string tag = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800721 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700722 repeated PendingTempWhitelist pending_temp_whitelist = 26;
Yi Jin148d7f42017-11-28 14:23:56 -0800723
Kweku Adams21b8d262018-03-30 12:19:58 -0700724 message SleepStatus {
725 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800726
Kweku Adams21b8d262018-03-30 12:19:58 -0700727 optional .android.os.PowerManagerInternalProto.Wakefulness wakefulness = 1;
728 repeated string sleep_tokens = 2 [ (.android.privacy).dest = DEST_EXPLICIT ];
729 optional bool sleeping = 3;
730 optional bool shutting_down = 4;
731 optional bool test_pss_mode = 5;
732 }
733 optional SleepStatus sleep_status = 27;
Yi Jin148d7f42017-11-28 14:23:56 -0800734
Kweku Adams21b8d262018-03-30 12:19:58 -0700735 message Voice {
736 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800737
Kweku Adams21b8d262018-03-30 12:19:58 -0700738 optional string session = 1;
739 optional .android.os.PowerManagerProto.WakeLock wakelock = 2;
740 }
741 optional Voice running_voice = 28;
Yi Jin148d7f42017-11-28 14:23:56 -0800742
Kweku Adams21b8d262018-03-30 12:19:58 -0700743 optional VrControllerProto vr_controller = 29;
744
745 message DebugApp {
746 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
747
748 optional string debug_app = 1;
749 optional string orig_debug_app = 2;
750 optional bool debug_transient = 3;
751 optional bool orig_wait_for_debugger = 4;
752 }
753 optional DebugApp debug = 30;
754 optional AppTimeTrackerProto current_tracker = 31;
755
756 message MemWatchProcess {
757 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
758
759 message Process {
760 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
761
762 optional string name = 1;
763
764 message MemStats {
765 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
766
767 optional int32 uid = 1;
768 optional string size = 2;
769 optional string report_to = 3;
770 }
771 repeated MemStats mem_stats = 2;
772 }
773 repeated Process procs = 1;
774
775 message Dump {
776 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
777
778 optional string proc_name = 1;
Kweku Adams6d4bd8e2019-06-26 17:05:55 -0700779 reserved 2; // file, DEST_EXPLICIT
Kweku Adams21b8d262018-03-30 12:19:58 -0700780 optional int32 pid = 3;
781 optional int32 uid = 4;
Kweku Adamsa3513f02019-03-21 12:48:08 -0700782 optional bool is_user_initiated = 5;
Kweku Adams6d4bd8e2019-06-26 17:05:55 -0700783 optional string uri = 6 [ (.android.privacy).dest = DEST_EXPLICIT ];
Kweku Adams21b8d262018-03-30 12:19:58 -0700784 }
785 optional Dump dump = 2;
786 }
787 optional MemWatchProcess mem_watch_processes = 32;
788 optional string track_allocation_app = 33;
789
790 message Profile {
791 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
792
793 optional string app_name = 1;
794 optional ProcessRecordProto proc = 2;
795 optional .android.app.ProfilerInfoProto info = 3;
796 optional int32 type = 4;
797 }
798 optional Profile profile = 34;
799 optional string native_debugging_app = 35;
800 optional bool always_finish_activities = 36;
801
802 message Controller {
803 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
804
805 optional string controller = 1;
806 optional bool is_a_monkey = 2;
807 }
808 optional Controller controller = 37;
809
810 optional int32 total_persistent_procs = 38;
811 optional bool processes_ready = 39;
812 optional bool system_ready = 40;
813 optional bool booted = 41;
814 optional int32 factory_test = 42;
815 optional bool booting = 43;
816 optional bool call_finish_booting = 44;
817 optional bool boot_animation_complete = 45;
818 optional int64 last_power_check_uptime_ms = 46;
819 optional .android.os.PowerManagerProto.WakeLock going_to_sleep = 47;
820 optional .android.os.PowerManagerProto.WakeLock launching_activity = 48;
821 optional int32 adj_seq = 49;
822 optional int32 lru_seq = 50;
823 optional int32 num_non_cached_procs = 51;
824 optional int32 num_cached_hidden_procs = 52;
825 optional int32 num_service_procs = 53;
826 optional int32 new_num_service_procs = 54;
827 optional bool allow_lower_mem_level = 55;
828 optional int32 last_memory_level = 56;
829 optional int32 last_num_processes = 57;
830 optional .android.util.Duration last_idle_time = 58;
831 optional int64 low_ram_since_last_idle_ms = 59;
Yi Jin148d7f42017-11-28 14:23:56 -0800832}
833
834message ActiveInstrumentationProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700835 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800836
Kweku Adams21b8d262018-03-30 12:19:58 -0700837 optional .android.content.ComponentNameProto class = 1;
838 optional bool finished = 2;
839 repeated ProcessRecordProto running_processes = 3;
840 repeated string target_processes = 4;
841 optional .android.content.pm.ApplicationInfoProto target_info = 5;
842 optional string profile_file = 6;
843 optional string watcher = 7;
844 optional string ui_automation_connection = 8;
Kweku Adams87c60a02018-06-13 12:13:52 -0700845 // Arguments as given to the ActiveInstrumentation object in Bundle
846 // toString format.
847 reserved 9; // arguments (in String format).
848 // Arguments as given to the ActiveInstrumentation object.
849 optional .android.os.BundleProto arguments = 10;
Yi Jin148d7f42017-11-28 14:23:56 -0800850}
851
852// Proto definition of com.android.server.am.UidRecord.java
853message UidRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800854 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
855
Kweku Adams21b8d262018-03-30 12:19:58 -0700856 optional int32 uid = 1;
857 optional .android.app.ProcessStateEnum current = 2;
858 optional bool ephemeral = 3;
859 optional bool fg_services = 4;
860 optional bool whilelist = 5;
861 optional .android.util.Duration last_background_time = 6;
862 optional bool idle = 7;
Yi Jin163967f2018-03-15 13:49:44 -0700863
Kweku Adams21b8d262018-03-30 12:19:58 -0700864 enum Change {
865 CHANGE_GONE = 0;
866 CHANGE_IDLE = 1;
867 CHANGE_ACTIVE = 2;
868 CHANGE_CACHED = 3;
869 CHANGE_UNCACHED = 4;
870 }
871 repeated Change last_reported_changes = 8;
872 optional int32 num_procs = 9;
873
874 message ProcStateSequence {
875 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
876
877 optional int64 cururent = 1;
878 optional int64 last_network_updated = 2;
879 optional int64 last_dispatched = 3;
880 }
881 optional ProcStateSequence network_state_update = 10;
882
883 // Next Tag: 11
Yi Jin148d7f42017-11-28 14:23:56 -0800884}
885
886// proto of class ImportanceToken in ActivityManagerService
887message ImportanceTokenProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700888 option (.android.msg_privacy).dest = DEST_EXPLICIT;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800889
Kweku Adams21b8d262018-03-30 12:19:58 -0700890 optional int32 pid = 1;
891 optional string token = 2;
892 optional string reason = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800893}
894
Yi Jin6c6e9ca2018-03-20 16:53:35 -0700895// proto of class VrController.java
896message VrControllerProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700897 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin6c6e9ca2018-03-20 16:53:35 -0700898
Kweku Adams21b8d262018-03-30 12:19:58 -0700899 enum VrMode {
900 FLAG_NON_VR_MODE = 0;
901 FLAG_VR_MODE = 1;
902 FLAG_PERSISTENT_VR_MODE = 2;
903 }
904 repeated VrMode vr_mode = 1;
905 optional int32 render_thread_id = 2;
Yi Jin6c6e9ca2018-03-20 16:53:35 -0700906}
907
Yi Jin148d7f42017-11-28 14:23:56 -0800908message ProcessOomProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800909 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
910
Kweku Adams21b8d262018-03-30 12:19:58 -0700911 optional bool persistent = 1;
912 optional int32 num = 2;
913 optional string oom_adj = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800914
Kweku Adams21b8d262018-03-30 12:19:58 -0700915 // Activity manager's version of Process enum, see ProcessList.java
916 enum SchedGroup {
917 SCHED_GROUP_UNKNOWN = -1;
918 SCHED_GROUP_BACKGROUND = 0;
919 SCHED_GROUP_DEFAULT = 1;
920 SCHED_GROUP_TOP_APP = 2;
921 SCHED_GROUP_TOP_APP_BOUND = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800922 }
Kweku Adams21b8d262018-03-30 12:19:58 -0700923 optional SchedGroup sched_group = 4 [ default = SCHED_GROUP_UNKNOWN];
924
925 oneof Foreground {
926 bool activities = 5;
927 bool services = 6;
928 }
929
930 optional .android.app.ProcessStateEnum state = 7;
931 optional int32 trim_memory_level = 8;
932 optional ProcessRecordProto proc = 9;
933 optional string adj_type = 10;
934
935 oneof AdjTarget {
936 .android.content.ComponentNameProto adj_target_component_name = 11;
937 string adj_target_object = 12;
938 }
939
940 oneof AdjSource {
941 ProcessRecordProto adj_source_proc = 13;
942 string adj_source_object = 14;
943 }
944
945 message Detail {
946 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
947
948 optional int32 max_adj = 1;
949 optional int32 cur_raw_adj = 2;
950 optional int32 set_raw_adj = 3;
951 optional int32 cur_adj = 4;
952 optional int32 set_adj = 5;
953 optional .android.app.ProcessStateEnum current_state = 7;
954 optional .android.app.ProcessStateEnum set_state = 8;
955 optional string last_pss = 9;
956 optional string last_swap_pss = 10;
957 optional string last_cached_pss = 11;
958 optional bool cached = 12;
959 optional bool empty = 13;
960 optional bool has_above_client = 14;
961
962 // only make sense if process is a service
963 message CpuRunTime {
964 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
965
966 optional int64 over_ms = 1;
967 optional int64 used_ms = 2;
968 optional float ultilization = 3; // ratio of cpu time usage
969 }
970 optional CpuRunTime service_run_time = 15;
971 }
972 optional Detail detail = 15;
Yi Jin148d7f42017-11-28 14:23:56 -0800973}
974
975message ProcessToGcProto {
Kweku Adams21b8d262018-03-30 12:19:58 -0700976 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800977
Kweku Adams21b8d262018-03-30 12:19:58 -0700978 optional ProcessRecordProto proc = 1;
979 optional bool report_low_memory = 2;
980 optional int64 now_uptime_ms = 3;
981 optional int64 last_gced_ms = 4;
982 optional int64 last_low_memory_ms = 5;
Yi Jin148d7f42017-11-28 14:23:56 -0800983}
984
985// sync with com.android.server.am.AppErrors.java
986message AppErrorsProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800987 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
988
Kweku Adams21b8d262018-03-30 12:19:58 -0700989 optional int64 now_uptime_ms = 1;
Yi Jin148d7f42017-11-28 14:23:56 -0800990
Kweku Adams21b8d262018-03-30 12:19:58 -0700991 message ProcessCrashTime {
992 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800993
Kweku Adams21b8d262018-03-30 12:19:58 -0700994 optional string process_name = 1;
995
996 message Entry {
997 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
998
999 optional int32 uid = 1;
1000 optional int64 last_crashed_at_ms = 2;
1001 }
1002 repeated Entry entries = 2;
Yi Jin148d7f42017-11-28 14:23:56 -08001003 }
Kweku Adams21b8d262018-03-30 12:19:58 -07001004 repeated ProcessCrashTime process_crash_times = 2;
Yi Jin148d7f42017-11-28 14:23:56 -08001005
Kweku Adams21b8d262018-03-30 12:19:58 -07001006 message BadProcess {
1007 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -08001008
Kweku Adams21b8d262018-03-30 12:19:58 -07001009 optional string process_name = 1;
Yi Jin148d7f42017-11-28 14:23:56 -08001010
Kweku Adams21b8d262018-03-30 12:19:58 -07001011 message Entry {
1012 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -08001013
Kweku Adams21b8d262018-03-30 12:19:58 -07001014 optional int32 uid = 1;
1015 optional int64 crashed_at_ms = 2;
1016 optional string short_msg = 3;
1017 optional string long_msg = 4 [ (.android.privacy).dest = DEST_EXPLICIT ];
1018 optional string stack = 5 [ (.android.privacy).dest = DEST_EXPLICIT ];
1019 }
1020 repeated Entry entries = 2;
Yi Jin148d7f42017-11-28 14:23:56 -08001021 }
Kweku Adams21b8d262018-03-30 12:19:58 -07001022 repeated BadProcess bad_processes = 3;
Yi Jin148d7f42017-11-28 14:23:56 -08001023}
1024
1025// sync with com.android.server.am.UserState.java
1026message UserStateProto {
Kweku Adams21b8d262018-03-30 12:19:58 -07001027 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin0d7bc2d12018-01-23 17:35:19 -08001028
Kweku Adams21b8d262018-03-30 12:19:58 -07001029 enum State {
1030 STATE_BOOTING = 0;
1031 STATE_RUNNING_LOCKED = 1;
1032 STATE_RUNNING_UNLOCKING = 2;
1033 STATE_RUNNING_UNLOCKED = 3;
1034 STATE_STOPPING = 4;
1035 STATE_SHUTDOWN = 5;
1036 }
1037 optional State state = 1;
1038 optional bool switching = 2;
Yi Jin148d7f42017-11-28 14:23:56 -08001039}
1040
1041// sync with com.android.server.am.UserController.java
1042message UserControllerProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -08001043 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
1044
Kweku Adams21b8d262018-03-30 12:19:58 -07001045 message User {
1046 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin148d7f42017-11-28 14:23:56 -08001047
Kweku Adams21b8d262018-03-30 12:19:58 -07001048 optional int32 id = 1;
1049 optional UserStateProto state = 2;
1050 }
1051 repeated User started_users = 1;
1052 repeated int32 started_user_array = 2;
1053 repeated int32 user_lru = 3;
Yi Jin0d7bc2d12018-01-23 17:35:19 -08001054
Kweku Adams21b8d262018-03-30 12:19:58 -07001055 message UserProfile {
1056 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
1057
1058 optional int32 user = 1;
1059 optional int32 profile = 2;
1060 }
1061 repeated UserProfile user_profile_group_ids = 4;
Yi Jin148d7f42017-11-28 14:23:56 -08001062}
1063
1064// sync with com.android.server.am.AppTimeTracker.java
1065message AppTimeTrackerProto {
Yi Jin69040222018-01-25 14:38:10 -08001066 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
1067
Kweku Adams21b8d262018-03-30 12:19:58 -07001068 optional string receiver = 1;
1069 optional int64 total_duration_ms = 2;
Yi Jin148d7f42017-11-28 14:23:56 -08001070
Kweku Adams21b8d262018-03-30 12:19:58 -07001071 message PackageTime {
1072 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
1073
1074 optional string package = 1;
1075 optional int64 duration_ms = 2;
1076 }
1077 repeated PackageTime package_times = 3;
1078
1079 optional .android.util.Duration started_time = 4;
1080 optional string started_package = 5;
Yi Jin129fc6c2017-09-28 15:48:38 -07001081}