blob: 55e6a74804eecdf319a10671e6413e6c9c4fc13b [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
Kweku Adams598e9a22017-11-02 17:12:20 -070019package com.android.server.am.proto;
20
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";
Yi Jin129fc6c2017-09-28 15:48:38 -070031import "frameworks/base/core/proto/android/os/looper.proto";
Yi Jin148d7f42017-11-28 14:23:56 -080032import "frameworks/base/core/proto/android/os/powermanager.proto";
Kweku Adams598e9a22017-11-02 17:12:20 -070033import "frameworks/base/core/proto/android/server/intentresolver.proto";
34import "frameworks/base/core/proto/android/server/windowmanagerservice.proto";
Yi Jin6b514142017-10-30 14:54:12 -070035import "frameworks/base/core/proto/android/util/common.proto";
Yi Jin0d7bc2d12018-01-23 17:35:19 -080036import "frameworks/base/libs/incident/proto/android/privacy.proto";
Steven Timotius4346f0a2017-09-12 11:07:21 -070037
Steven Timotius4346f0a2017-09-12 11:07:21 -070038option java_multiple_files = true;
39
40message ActivityManagerServiceProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -080041 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
42
Yi Jinc7f93072017-09-29 15:29:38 -070043 optional ActivityStackSupervisorProto activities = 1;
Yi Jin129fc6c2017-09-28 15:48:38 -070044
Yi Jinc7f93072017-09-29 15:29:38 -070045 optional BroadcastProto broadcasts = 2;
Yi Jin129fc6c2017-09-28 15:48:38 -070046
Yi Jin6b514142017-10-30 14:54:12 -070047 optional ActiveServicesProto services = 3;
Yi Jin129fc6c2017-09-28 15:48:38 -070048
Yi Jin148d7f42017-11-28 14:23:56 -080049 optional ProcessesProto processes = 4;
Steven Timotius4346f0a2017-09-12 11:07:21 -070050}
51
Yi Jin6b514142017-10-30 14:54:12 -070052// "dumpsys activity --proto activities"
Steven Timotius4346f0a2017-09-12 11:07:21 -070053message ActivityStackSupervisorProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -080054 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
55
Yi Jinc7f93072017-09-29 15:29:38 -070056 optional .com.android.server.wm.proto.ConfigurationContainerProto configuration_container = 1;
Steven Timotius4346f0a2017-09-12 11:07:21 -070057 repeated ActivityDisplayProto displays = 2;
Yi Jinc7f93072017-09-29 15:29:38 -070058 optional KeyguardControllerProto keyguard_controller = 3;
59 optional int32 focused_stack_id = 4;
60 optional .com.android.server.wm.proto.IdentifierProto resumed_activity = 5;
Steven Timotius4346f0a2017-09-12 11:07:21 -070061}
62
63/* represents ActivityStackSupervisor.ActivityDisplay */
64message ActivityDisplayProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -080065 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
66
Yi Jinc7f93072017-09-29 15:29:38 -070067 optional .com.android.server.wm.proto.ConfigurationContainerProto configuration_container = 1;
68 optional int32 id = 2;
Steven Timotius4346f0a2017-09-12 11:07:21 -070069 repeated ActivityStackProto stacks = 3;
70}
71
72message ActivityStackProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -080073 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
74
Yi Jinc7f93072017-09-29 15:29:38 -070075 optional .com.android.server.wm.proto.ConfigurationContainerProto configuration_container = 1;
76 optional int32 id = 2;
Steven Timotius4346f0a2017-09-12 11:07:21 -070077 repeated TaskRecordProto tasks = 3;
Yi Jinc7f93072017-09-29 15:29:38 -070078 optional .com.android.server.wm.proto.IdentifierProto resumed_activity = 4;
79 optional int32 display_id = 5;
80 optional bool fullscreen = 6;
81 optional .android.graphics.RectProto bounds = 7;
Steven Timotius4346f0a2017-09-12 11:07:21 -070082}
83
84message TaskRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -080085 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
86
Yi Jinc7f93072017-09-29 15:29:38 -070087 optional .com.android.server.wm.proto.ConfigurationContainerProto configuration_container = 1;
88 optional int32 id = 2;
Steven Timotius4346f0a2017-09-12 11:07:21 -070089 repeated ActivityRecordProto activities = 3;
Yi Jinc7f93072017-09-29 15:29:38 -070090 optional int32 stack_id = 4;
91 optional .android.graphics.RectProto last_non_fullscreen_bounds = 5;
92 optional string real_activity = 6;
93 optional string orig_activity = 7;
94 optional int32 activity_type = 8;
Wale Ogunwale66e16852017-10-19 13:35:52 -070095 optional int32 resize_mode = 9;
96 optional bool fullscreen = 10;
97 optional .android.graphics.RectProto bounds = 11;
98 optional int32 min_width = 12;
99 optional int32 min_height = 13;
Steven Timotius4346f0a2017-09-12 11:07:21 -0700100}
101
102message ActivityRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800103 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
104
Yi Jinc7f93072017-09-29 15:29:38 -0700105 optional .com.android.server.wm.proto.ConfigurationContainerProto configuration_container = 1;
106 optional .com.android.server.wm.proto.IdentifierProto identifier = 2;
107 optional string state = 3;
108 optional bool visible = 4;
109 optional bool front_of_task = 5;
110 optional int32 proc_id = 6;
Steven Timotius4346f0a2017-09-12 11:07:21 -0700111}
112
113message KeyguardControllerProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800114 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
115
Yi Jinc7f93072017-09-29 15:29:38 -0700116 optional bool keyguard_showing = 1;
117 optional bool keyguard_occluded = 2;
Yi Jin129fc6c2017-09-28 15:48:38 -0700118}
119
Yi Jin6b514142017-10-30 14:54:12 -0700120// "dumpsys activity --proto broadcasts"
Yi Jin129fc6c2017-09-28 15:48:38 -0700121message BroadcastProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800122 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
123
Yi Jin129fc6c2017-09-28 15:48:38 -0700124 repeated ReceiverListProto receiver_list = 1;
125
Yi Jinc7f93072017-09-29 15:29:38 -0700126 optional .com.android.server.IntentResolverProto receiver_resolver = 2;
Yi Jin129fc6c2017-09-28 15:48:38 -0700127
128 repeated BroadcastQueueProto broadcast_queue = 3;
129
130 repeated StickyBroadcastProto sticky_broadcasts = 4;
131
132 message MainHandler {
Yi Jinc7f93072017-09-29 15:29:38 -0700133 optional string handler = 1;
134 optional .android.os.LooperProto looper = 2;
Yi Jin129fc6c2017-09-28 15:48:38 -0700135 }
Yi Jinc7f93072017-09-29 15:29:38 -0700136 optional MainHandler handler = 5;
Yi Jin129fc6c2017-09-28 15:48:38 -0700137}
138
139message ReceiverListProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800140 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
141
Yi Jinc7f93072017-09-29 15:29:38 -0700142 optional ProcessRecordProto app = 1;
143 optional int32 pid = 2;
144 optional int32 uid = 3;
145 optional int32 user = 4;
146 optional BroadcastRecordProto current = 5;
147 optional bool linked_to_death = 6;
Yi Jin129fc6c2017-09-28 15:48:38 -0700148 repeated BroadcastFilterProto filters = 7;
Yi Jinc7f93072017-09-29 15:29:38 -0700149 optional string hex_hash = 8; // this hash is used to find the object in IntentResolver
Yi Jin129fc6c2017-09-28 15:48:38 -0700150}
151
152message ProcessRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800153 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
154
Yi Jinc7f93072017-09-29 15:29:38 -0700155 optional int32 pid = 1;
156 optional string process_name = 2;
157 optional int32 uid = 3;
158 optional int32 user_id = 4;
159 optional int32 app_id = 5;
160 optional int32 isolated_app_id = 6;
Yi Jin148d7f42017-11-28 14:23:56 -0800161 optional bool persistent = 7;
Yi Jin129fc6c2017-09-28 15:48:38 -0700162}
163
164message BroadcastRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800165 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
166
Yi Jinc7f93072017-09-29 15:29:38 -0700167 optional int32 user_id = 1;
168 optional string intent_action = 2;
Yi Jin129fc6c2017-09-28 15:48:38 -0700169}
170
171message BroadcastFilterProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800172 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
173
Yi Jinc7f93072017-09-29 15:29:38 -0700174 optional .android.content.IntentFilterProto intent_filter = 1;
175 optional string required_permission = 2;
176 optional string hex_hash = 3; // used to find the object in IntentResolver
177 optional int32 owning_user_id = 4;
Yi Jin129fc6c2017-09-28 15:48:38 -0700178}
179
180message BroadcastQueueProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800181 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
182
Yi Jinc7f93072017-09-29 15:29:38 -0700183 optional string queue_name = 1;
Yi Jin129fc6c2017-09-28 15:48:38 -0700184 repeated BroadcastRecordProto parallel_broadcasts = 2;
185 repeated BroadcastRecordProto ordered_broadcasts = 3;
Yi Jinc7f93072017-09-29 15:29:38 -0700186 optional BroadcastRecordProto pending_broadcast = 4;
Yi Jin129fc6c2017-09-28 15:48:38 -0700187 repeated BroadcastRecordProto historical_broadcasts = 5;
188
189 message BroadcastSummary {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800190 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
191
Yi Jinc7f93072017-09-29 15:29:38 -0700192 optional .android.content.IntentProto intent = 1;
193 optional int64 enqueue_clock_time_ms = 2;
194 optional int64 dispatch_clock_time_ms = 3;
195 optional int64 finish_clock_time_ms = 4;
Yi Jin129fc6c2017-09-28 15:48:38 -0700196 }
197 repeated BroadcastSummary historical_broadcasts_summary = 6;
198}
199
Kweku Adams598e9a22017-11-02 17:12:20 -0700200message MemInfoProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800201 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
202
Kweku Adams598e9a22017-11-02 17:12:20 -0700203 optional int64 uptime_duration_ms = 1;
204 optional int64 elapsed_realtime_ms = 2;
205
Kweku Adams983829f2017-12-06 14:53:50 -0800206 message ProcessMemory {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800207 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
208
Kweku Adams598e9a22017-11-02 17:12:20 -0700209 optional int32 pid = 1;
210 optional string process_name = 2;
211
212 message MemoryInfo {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800213 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
214
Kweku Adams598e9a22017-11-02 17:12:20 -0700215 optional string name = 1;
216 // The proportional set size for the heap.
217 optional int32 total_pss_kb = 2;
218 // The proportional set size that is swappable for the heap.
219 optional int32 clean_pss_kb = 3;
220 // The private dirty pages used by the heap.
221 optional int32 shared_dirty_kb = 4;
222 // The shared dirty pages used by the heap.
223 optional int32 private_dirty_kb = 5;
224 // The shared clean pages used by the heap.
225 optional int32 shared_clean_kb = 6;
226 // The private clean pages used by the heap.
227 optional int32 private_clean_kb = 7;
228 oneof dirty_swap {
229 // The dirty the pages that have been swapped out.
230 int32 dirty_swap_kb = 8;
231 // The dirty the pages that have been swapped out, proportional.
232 int32 dirty_swap_pss_kb = 9;
233 }
234 }
235 message HeapInfo {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800236 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
237
Kweku Adams598e9a22017-11-02 17:12:20 -0700238 optional MemoryInfo mem_info = 1;
239 optional int32 heap_size_kb = 2;
240 optional int32 heap_alloc_kb = 3;
241 optional int32 heap_free_kb = 4;
242 }
243 optional HeapInfo native_heap = 3;
244 optional HeapInfo dalvik_heap = 4;
245 repeated MemoryInfo other_heaps = 5;
Kweku Adams983829f2017-12-06 14:53:50 -0800246 optional MemoryInfo unknown_heap = 6;
Kweku Adams598e9a22017-11-02 17:12:20 -0700247 // Summation of native_heap, dalvik_heap, and other_heaps.
248 optional HeapInfo total_heap = 7;
249
250 repeated MemoryInfo dalvik_details = 8;
251
252 message AppSummary {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800253 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
254
Kweku Adams598e9a22017-11-02 17:12:20 -0700255 optional int32 java_heap_pss_kb = 1;
256 optional int32 native_heap_pss_kb = 2;
257 optional int32 code_pss_kb = 3;
258 optional int32 stack_pss_kb = 4;
259 optional int32 graphics_pss_kb = 5;
260 optional int32 private_other_pss_kb = 6;
261 optional int32 system_pss_kb = 7;
262
263 oneof total_swap {
264 int32 total_swap_pss = 8;
265 int32 total_swap_kb = 9;
266 }
267 }
268 optional AppSummary app_summary = 9;
269 }
Kweku Adams983829f2017-12-06 14:53:50 -0800270 repeated ProcessMemory native_processes = 3;
271
272 message AppData {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800273 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
274
Kweku Adams983829f2017-12-06 14:53:50 -0800275 optional ProcessMemory process_memory = 1;
276
277 message ObjectStats {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800278 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
279
Kweku Adams983829f2017-12-06 14:53:50 -0800280 optional int32 view_instance_count = 1;
281 optional int32 view_root_instance_count = 2;
282 optional int32 app_context_instance_count = 3;
283 optional int32 activity_instance_count = 4;
284 optional int32 global_asset_count = 5;
285 optional int32 global_asset_manager_count = 6;
286 optional int32 local_binder_object_count = 7;
287 optional int32 proxy_binder_object_count = 8;
288 optional int64 parcel_memory_kb = 9;
289 optional int32 parcel_count = 10;
290 optional int32 binder_object_death_count = 11;
291 optional int32 open_ssl_socket_count = 12;
292 optional int32 webview_instance_count = 13;
293 }
294 optional ObjectStats objects = 2;
295
296 message SqlStats {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800297 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
298
Kweku Adams983829f2017-12-06 14:53:50 -0800299 optional int32 memory_used_kb = 1;
300 optional int32 pagecache_overflow_kb = 2;
301 optional int32 malloc_size_kb = 3;
302
303 message Database {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800304 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
305
Kweku Adams983829f2017-12-06 14:53:50 -0800306 optional string name = 1;
307 optional int32 page_size = 2;
308 optional int32 db_size = 3;
309 // Number of lookaside slots:
310 // http://www.sqlite.org/c3ref/c_dbstatus_lookaside_used.html
311 optional int32 lookaside_b = 4;
312 // Statement cache stats: hits/misses/cachesize
313 optional string cache = 5;
314 }
315 repeated Database databases = 4;
316 }
317 optional SqlStats sql = 3;
318
319 optional string asset_allocations = 4;
320 optional string unreachable_memory = 5;
321 }
322 repeated AppData app_processes = 4;
323
324 message MemItem {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800325 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
326
Kweku Adams983829f2017-12-06 14:53:50 -0800327 optional string tag = 1;
328 optional string label = 2;
329 optional int32 id = 3;
330 optional bool is_proc = 4;
331 optional bool has_activities = 5;
332 optional int64 pss_kb = 6;
333 optional int64 swap_pss_kb = 7;
334 repeated MemItem sub_items = 8;
335 }
336 repeated MemItem total_pss_by_process = 5;
337 repeated MemItem total_pss_by_oom_adjustment = 6;
338 repeated MemItem total_pss_by_category = 7;
339
340 optional int64 total_ram_kb = 8;
341 optional .com.android.internal.app.procstats.ProcessStatsProto.MemoryFactor status = 9;
342 // Total free RAM = cached_pss_kb + cached_kernel_kb + free_kb.
343 optional int64 cached_pss_kb = 10;
344 optional int64 cached_kernel_kb = 11;
345 optional int64 free_kb = 12;
346 // Total used RAM = used_pss_kb + used_kernel_kb.
347 optional int64 used_pss_kb = 13;
348 optional int64 used_kernel_kb = 14;
349
350 optional int64 lost_ram_kb = 15;
351
352 optional int64 total_zram_kb = 16;
353 optional int64 zram_physical_used_in_swap_kb = 17;
354 optional int64 total_zram_swap_kb = 18;
355
356 optional int64 ksm_sharing_kb = 19;
357 optional int64 ksm_shared_kb = 20;
358 optional int64 ksm_unshared_kb = 21;
359 optional int64 ksm_volatile_kb = 22;
360
361 // The approximate per-application memory class of the current device. This
362 // gives developers an idea of how hard a memory limit you should impose on
363 // their application to let the overall system work best. The value is in
364 // megabytes; the baseline Android memory class is 16 (which happens to be the
365 // Java heap limit of those devices); some devices with more memory may have
366 // 24 or even higher numbers.
367 optional int32 tuning_mb = 23;
368 // The approximate per-application memory class of the current device when an
369 // application is running with a large heap. This is the space available for
370 // memory-intensive applications; most applications should not need this
371 // amount of memory, and should instead stay with the tuning_mb limit. The
372 // value is in megabytes. This may be the same size as tuning_mb on memory
373 // constrained devices, or it may be significantly larger on devices with a
374 // large amount of available RAM.
375 // This is the size of the application's Dalvik heap if it has specified
376 // 'android:largeHeap="true"' in its manifest.
377 optional int32 tuning_large_mb = 24;
378
379 optional int64 oom_kb = 25;
380
381 // The maximum pss size in kb that we consider a process acceptable to restore
382 // from its cached state for running in the background when RAM is low.
383 optional int64 restore_limit_kb = 26;
384
385 optional bool is_low_ram_device = 27;
386 optional bool is_high_end_gfx = 28;
Kweku Adams598e9a22017-11-02 17:12:20 -0700387}
388
Yi Jin129fc6c2017-09-28 15:48:38 -0700389message StickyBroadcastProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800390 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
391
Yi Jinc7f93072017-09-29 15:29:38 -0700392 optional int32 user = 1;
Yi Jin129fc6c2017-09-28 15:48:38 -0700393
394 message StickyAction {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800395 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
396
Yi Jinc7f93072017-09-29 15:29:38 -0700397 optional string name = 1;
Yi Jin129fc6c2017-09-28 15:48:38 -0700398 repeated .android.content.IntentProto intents = 2;
399 }
400 repeated StickyAction actions = 2;
401}
402
Yi Jin6b514142017-10-30 14:54:12 -0700403// "dumpsys activity --proto service"
404message ActiveServicesProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800405 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin6b514142017-10-30 14:54:12 -0700406
407 message ServicesByUser {
408 optional int32 user_id = 1;
409 repeated ServiceRecordProto service_records = 2;
410 }
411 repeated ServicesByUser services_by_users = 1;
Yi Jin129fc6c2017-09-28 15:48:38 -0700412}
413
Yi Jin6b514142017-10-30 14:54:12 -0700414// corresponds to ActivityManagerService.GrantUri Java class
415message GrantUriProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800416 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
417
Yi Jin6b514142017-10-30 14:54:12 -0700418 optional int32 source_user_id = 1;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800419 optional string uri = 2 [ (.android.privacy).dest = DEST_EXPLICIT ];
Yi Jin6b514142017-10-30 14:54:12 -0700420}
421
422message NeededUriGrantsProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800423 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
424
Yi Jin6b514142017-10-30 14:54:12 -0700425 optional string target_package = 1;
426 optional int32 target_uid = 2;
427 optional int32 flags = 3;
428
429 repeated GrantUriProto grants = 4;
430}
431
432message UriPermissionOwnerProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800433 option (.android.msg_privacy).dest = DEST_EXPLICIT;
434
Yi Jin6b514142017-10-30 14:54:12 -0700435 optional string owner = 1;
436 repeated GrantUriProto read_perms = 2;
437 repeated GrantUriProto write_perms = 3;
438}
439
440message ServiceRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800441 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
442
Yi Jin6b514142017-10-30 14:54:12 -0700443 optional string short_name = 1;
444 optional string hex_hash = 2;
445 optional bool is_running = 3; // false if the application service is null
446 optional int32 pid = 4;
447 optional .android.content.IntentProto intent = 5;
448 optional string package_name = 6;
449 optional string process_name = 7;
450 optional string permission = 8;
451
452 message AppInfo {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800453 option (.android.msg_privacy).dest = DEST_EXPLICIT;
454
Yi Jin6b514142017-10-30 14:54:12 -0700455 optional string base_dir = 1;
456 optional string res_dir = 2;
457 optional string data_dir = 3;
458 }
459 optional AppInfo appinfo = 9;
460 optional ProcessRecordProto app = 10;
461 optional ProcessRecordProto isolated_proc = 11;
462 optional bool whitelist_manager = 12;
463 optional bool delayed = 13;
464
465 message Foreground {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800466 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
467
Yi Jin6b514142017-10-30 14:54:12 -0700468 optional int32 id = 1;
469 optional .android.app.NotificationProto notification = 2;
470 }
471 optional Foreground foreground = 14;
472
473 optional .android.util.Duration create_real_time = 15;
474 optional .android.util.Duration starting_bg_timeout = 16;
475 optional .android.util.Duration last_activity_time = 17;
476 optional .android.util.Duration restart_time = 18;
477 optional bool created_from_fg = 19;
478
479 // variables used to track states related to service start
480 message Start {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800481 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
482
Yi Jin6b514142017-10-30 14:54:12 -0700483 optional bool start_requested = 1;
484 optional bool delayed_stop = 2;
485 optional bool stop_if_killed = 3;
486 optional bool call_start = 4;
487 optional int32 last_start_id = 5;
488 }
489 optional Start start = 20;
490
491 message ExecuteNesting {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800492 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
493
Yi Jin6b514142017-10-30 14:54:12 -0700494 optional int32 execute_nesting = 1;
495 optional bool execute_fg = 2;
496 optional .android.util.Duration executing_start = 3;
497 }
498 optional ExecuteNesting execute = 21;
499
500 optional .android.util.Duration destory_time = 22;
501
502 message Crash {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800503 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
504
Yi Jin6b514142017-10-30 14:54:12 -0700505 optional int32 restart_count = 1;
506 optional .android.util.Duration restart_delay = 2;
507 optional .android.util.Duration next_restart_time = 3;
508 optional int32 crash_count = 4;
509 }
510 optional Crash crash = 23;
511
512 message StartItemProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800513 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
514
Yi Jin6b514142017-10-30 14:54:12 -0700515 optional int32 id = 1;
516 optional .android.util.Duration duration = 2;
517 optional int32 delivery_count = 3;
518 optional int32 done_executing_count = 4;
519 optional .android.content.IntentProto intent = 5;
520 optional NeededUriGrantsProto needed_grants = 6;
521 optional UriPermissionOwnerProto uri_permissions = 7;
522 }
523 repeated StartItemProto delivered_starts = 24;
524 repeated StartItemProto pending_starts = 25;
525
526 repeated IntentBindRecordProto bindings = 26;
527 repeated ConnectionRecordProto connections = 27;
528}
529
530message ConnectionRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800531 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
532
Yi Jin6b514142017-10-30 14:54:12 -0700533 optional string hex_hash = 1;
534 optional int32 user_id = 2;
535
536 enum Flag {
537 AUTO_CREATE = 0;
538 DEBUG_UNBIND = 1;
539 NOT_FG = 2;
540 IMPORTANT_BG = 3;
541 ABOVE_CLIENT = 4;
542 ALLOW_OOM_MANAGEMENT = 5;
543 WAIVE_PRIORITY = 6;
544 IMPORTANT = 7;
545 ADJUST_WITH_ACTIVITY = 8;
Yi Jin148d7f42017-11-28 14:23:56 -0800546 FG_SERVICE_WHILE_AWAKE = 9;
Yi Jin6b514142017-10-30 14:54:12 -0700547 FG_SERVICE = 10;
548 TREAT_LIKE_ACTIVITY = 11;
549 VISIBLE = 12;
550 SHOWING_UI = 13;
551 NOT_VISIBLE = 14;
552 DEAD = 15;
553 }
554 repeated Flag flags = 3;
555 optional string service_name = 4;
556 optional string conn_hex_hash = 5;
557}
558
559message AppBindRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800560 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
561
Yi Jin6b514142017-10-30 14:54:12 -0700562 optional string hex_hash = 1;
563 optional ProcessRecordProto client = 2;
564 repeated ConnectionRecordProto connections = 3;
565}
566
567message IntentBindRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800568 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
569
Yi Jin6b514142017-10-30 14:54:12 -0700570 optional string hex_hash = 1;
571 optional bool is_create = 2;
572 optional .android.content.IntentProto intent = 3;
573 optional string binder = 4;
574 optional bool requested = 5;
575 optional bool received = 6;
576 optional bool has_bound = 7;
577 optional bool do_rebind = 8;
578
579 repeated AppBindRecordProto apps = 9;
580}
581
582// TODO: "dumpsys activity --proto processes"
Yi Jin148d7f42017-11-28 14:23:56 -0800583message ProcessesProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800584 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
585
Yi Jin148d7f42017-11-28 14:23:56 -0800586 repeated ProcessRecordProto procs = 1;
587 repeated ProcessRecordProto isolated_procs = 2;
588 repeated ActiveInstrumentationProto active_instrumentations = 3;
589 repeated UidRecordProto active_uids = 4;
590 repeated UidRecordProto validate_uids = 5;
591
592 // Process LRU list (sorted by oom_adj)
593 message LruProcesses {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800594 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
595
Yi Jin148d7f42017-11-28 14:23:56 -0800596 optional int32 size = 1;
597 optional int32 non_act_at = 2;
598 optional int32 non_svc_at = 3;
599 repeated ProcessOomProto list = 4;
600 }
601 optional LruProcesses lru_procs = 6;
602 repeated ProcessRecordProto pids_self_locked = 7;
603 // Foreground Processes
604 repeated ImportanceTokenProto important_procs = 8;
605 // Persisent processes that are starting
606 repeated ProcessRecordProto persistent_starting_procs = 9;
607 // Processes that are being removed
608 repeated ProcessRecordProto removed_procs = 10;
609 // Processes that are on old until the system is ready
610 repeated ProcessRecordProto on_hold_procs = 11;
611 // Processes that are waiting to GC
612 repeated ProcessToGcProto gc_procs = 12;
613 optional AppErrorsProto app_errors = 13;
614 optional UserControllerProto user_controller = 14;
615 optional ProcessRecordProto home_proc = 15;
616 optional ProcessRecordProto previous_proc = 16;
617 optional int64 previous_proc_visible_time_ms = 17;
618 optional ProcessRecordProto heavy_weight_proc = 18;
619 optional .android.content.ConfigurationProto global_configuration = 19;
620 // ActivityStackSupervisorProto dumps these values as well, still here?
621 // repeated ActivityDisplayProto displays = 20;
622
623 optional bool config_will_change = 21;
624
625 message ScreenCompatPackage {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800626 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
627
Yi Jin148d7f42017-11-28 14:23:56 -0800628 optional string package = 1;
629 optional int32 mode = 2;
630 }
631 repeated ScreenCompatPackage screen_compat_packages = 22;
632
633 message UidObserverRegistrationProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800634 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
635
Yi Jin148d7f42017-11-28 14:23:56 -0800636 optional int32 uid = 1;
637 optional string package = 2;
638 repeated .android.app.UidObserverFlag flags = 3;
639 optional int32 cut_point = 4; // only available when UID_OBSERVER_PROCSTATE is on
640
641 message ProcState {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800642 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
643
Yi Jin148d7f42017-11-28 14:23:56 -0800644 optional int32 uid = 1;
645 optional int32 state = 2;
646 }
647 repeated ProcState last_proc_states = 5;
648 }
649 repeated UidObserverRegistrationProto uid_observers = 23;
650 repeated int32 device_idle_whitelist = 24;
651 repeated int32 device_idle_temp_whitelist = 25;
652
653 message PendingTempWhitelist {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800654 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
655
Yi Jin148d7f42017-11-28 14:23:56 -0800656 optional int32 target_uid = 1;
657 optional int64 duration_ms = 2;
658 optional string tag = 3;
659 }
660 repeated PendingTempWhitelist pending_temp_whitelist = 26;
661
662 message SleepStatus {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800663 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
664
Yi Jin148d7f42017-11-28 14:23:56 -0800665 optional .android.os.PowerManagerInternalProto.Wakefulness wakefulness = 1;
666 repeated string sleep_tokens = 2;
667 optional bool sleeping = 3;
668 optional bool shutting_down = 4;
669 optional bool test_pss_mode = 5;
670 }
671 optional SleepStatus sleep_status = 27;
672
673 message VoiceProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800674 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
675
Yi Jin148d7f42017-11-28 14:23:56 -0800676 optional string session = 1;
677 optional .android.os.PowerManagerProto.WakeLockProto wakelock = 2;
678 }
679 optional VoiceProto running_voice = 28;
680
681 message VrControllerProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800682 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
683
Yi Jin148d7f42017-11-28 14:23:56 -0800684 enum VrMode {
685 FLAG_NON_VR_MODE = 0;
686 FLAG_VR_MODE = 1;
687 FLAG_PERSISTENT_VR_MODE = 2;
688 }
689 repeated VrMode vr_mode = 1;
690 optional int32 render_thread_id = 2;
691 }
692 optional VrControllerProto vr_controller = 29;
693
694 message DebugApp {
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 string debug_app = 1;
698 optional string orig_debug_app = 2;
699 optional bool debug_transient = 3;
700 optional bool orig_wait_for_debugger = 4;
701 }
702 optional DebugApp debug = 30;
703 optional AppTimeTrackerProto current_tracker = 31;
704
705 message MemWatchProcess {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800706 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
707
Yi Jin148d7f42017-11-28 14:23:56 -0800708 message Process {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800709 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
710
Yi Jin148d7f42017-11-28 14:23:56 -0800711 optional string name = 1;
712
713 message MemStats {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800714 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
715
Yi Jin148d7f42017-11-28 14:23:56 -0800716 optional int32 uid = 1;
717 optional string size = 2;
718 optional string report_to = 3;
719 }
720 repeated MemStats mem_stats = 2;
721 }
722 repeated Process procs = 1;
723
724 message Dump {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800725 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
726
Yi Jin148d7f42017-11-28 14:23:56 -0800727 optional string proc_name = 1;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800728 optional string file = 2 [ (.android.privacy).dest = DEST_EXPLICIT ];
Yi Jin148d7f42017-11-28 14:23:56 -0800729 optional int32 pid = 3;
730 optional int32 uid = 4;
731 }
732 optional Dump dump = 2;
733 }
734 optional MemWatchProcess mem_watch_processes = 32;
735 optional string track_allocation_app = 33;
736
737 message Profile {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800738 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
739
Yi Jin148d7f42017-11-28 14:23:56 -0800740 optional string app_name = 1;
741 optional ProcessRecordProto proc = 2;
742 optional .android.app.ProfilerInfoProto info = 3;
743 optional int32 type = 4;
744 }
745 optional Profile profile = 34;
746 optional string native_debugging_app = 35;
747 optional bool always_finish_activities = 36;
748
749 message Controller {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800750 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
751
Yi Jin148d7f42017-11-28 14:23:56 -0800752 optional string controller = 1;
753 optional bool is_a_monkey = 2;
754 }
755 optional Controller controller = 37;
756
757 optional int32 total_persistent_procs = 38;
758 optional bool processes_ready = 39;
759 optional bool system_ready = 40;
760 optional bool booted = 41;
761 optional int32 factory_test = 42;
762 optional bool booting = 43;
763 optional bool call_finish_booting = 44;
764 optional bool boot_animation_complete = 45;
765 optional int64 last_power_check_uptime_ms = 46;
766 optional .android.os.PowerManagerProto.WakeLockProto going_to_sleep = 47;
767 optional .android.os.PowerManagerProto.WakeLockProto launching_activity = 48;
768 optional int32 adj_seq = 49;
769 optional int32 lru_seq = 50;
770 optional int32 num_non_cached_procs = 51;
771 optional int32 num_cached_hidden_procs = 52;
772 optional int32 num_service_procs = 53;
773 optional int32 new_num_service_procs = 54;
774 optional bool allow_lower_mem_level = 55;
775 optional int32 last_memory_level = 56;
776 optional int32 last_num_processes = 57;
777 optional .android.util.Duration last_idle_time = 58;
778 optional int64 low_ram_since_last_idle_ms = 59;
779}
780
781message ActiveInstrumentationProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800782 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
783
Yi Jin148d7f42017-11-28 14:23:56 -0800784 optional .android.content.ComponentNameProto class = 1;
785 optional bool finished = 2;
786 repeated ProcessRecordProto running_processes = 3;
787 repeated string target_processes = 4;
788 optional .android.content.pm.ApplicationInfoProto target_info = 5;
789 optional string profile_file = 6;
790 optional string watcher = 7;
791 optional string ui_automation_connection = 8;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800792 optional string arguments = 9 [ (.android.privacy).dest = DEST_EXPLICIT ];
Yi Jin148d7f42017-11-28 14:23:56 -0800793}
794
795// Proto definition of com.android.server.am.UidRecord.java
796message UidRecordProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800797 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
798
Yi Jin148d7f42017-11-28 14:23:56 -0800799 optional string hex_hash = 1;
800 optional int32 uid = 2;
Bookatzdb026a22018-01-10 19:01:56 -0800801 optional .android.app.ProcessStateEnum current = 3;
Yi Jin148d7f42017-11-28 14:23:56 -0800802 optional bool ephemeral = 4;
803 optional bool fg_services = 5;
804 optional bool whilelist = 6;
805 optional .android.util.Duration last_background_time = 7;
806 optional bool idle = 8;
807
808 enum Change {
809 CHANGE_GONE = 0;
810 CHANGE_IDLE = 1;
811 CHANGE_ACTIVE = 2;
812 CHANGE_CACHED = 3;
813 CHANGE_UNCACHED = 4;
814 }
815 repeated Change last_reported_changes = 9;
816 optional int32 num_procs = 10;
817
818 message ProcStateSequence {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800819 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
820
Yi Jin148d7f42017-11-28 14:23:56 -0800821 optional int64 cururent = 1;
822 optional int64 last_network_updated = 2;
823 optional int64 last_dispatched = 3;
824 }
825 optional ProcStateSequence network_state_update = 11;
826}
827
828// proto of class ImportanceToken in ActivityManagerService
829message ImportanceTokenProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800830 option (.android.msg_privacy).dest = DEST_EXPLICIT;
831
Yi Jin148d7f42017-11-28 14:23:56 -0800832 optional int32 pid = 1;
833 optional string token = 2;
834 optional string reason = 3;
835}
836
837message ProcessOomProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800838 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
839
Yi Jin148d7f42017-11-28 14:23:56 -0800840 optional bool persistent = 1;
841 optional int32 num = 2;
842 optional string oom_adj = 3;
843
844 // Activity manager's version of Process enum, see ProcessList.java
845 enum SchedGroup {
846 SCHED_GROUP_UNKNOWN = -1;
847 SCHED_GROUP_BACKGROUND = 0;
848 SCHED_GROUP_DEFAULT = 1;
849 SCHED_GROUP_TOP_APP = 2;
850 SCHED_GROUP_TOP_APP_BOUND = 3;
851 }
852 optional SchedGroup sched_group = 4 [ default = SCHED_GROUP_UNKNOWN];
853
854 oneof Foreground {
855 bool activities = 5;
856 bool services = 6;
857 }
858
Bookatzdb026a22018-01-10 19:01:56 -0800859 optional .android.app.ProcessStateEnum state = 7;
Yi Jin148d7f42017-11-28 14:23:56 -0800860 optional int32 trim_memory_level = 8;
861 optional ProcessRecordProto proc = 9;
862 optional string adj_type = 10;
863
864 oneof AdjTarget {
865 .android.content.ComponentNameProto adj_target_component_name = 11;
866 string adj_target_object = 12;
867 }
868
869 oneof AdjSource {
870 ProcessRecordProto adj_source_proc = 13;
871 string adj_source_object = 14;
872 }
873
874 message Detail {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800875 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
876
Yi Jin148d7f42017-11-28 14:23:56 -0800877 optional int32 max_adj = 1;
878 optional int32 cur_raw_adj = 2;
879 optional int32 set_raw_adj = 3;
880 optional int32 cur_adj = 4;
881 optional int32 set_adj = 5;
Bookatzdb026a22018-01-10 19:01:56 -0800882 optional .android.app.ProcessStateEnum current_state = 7;
883 optional .android.app.ProcessStateEnum set_state = 8;
Yi Jin148d7f42017-11-28 14:23:56 -0800884 optional string last_pss = 9;
885 optional string last_swap_pss = 10;
886 optional string last_cached_pss = 11;
887 optional bool cached = 12;
888 optional bool empty = 13;
889 optional bool has_above_client = 14;
890
891 // only make sense if process is a service
892 message CpuRunTime {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800893 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
894
Yi Jin148d7f42017-11-28 14:23:56 -0800895 optional int64 over_ms = 1;
896 optional int64 used_ms = 2;
897 optional float ultilization = 3; // ratio of cpu time usage
898 }
899 optional CpuRunTime service_run_time = 15;
900 }
901 optional Detail detail = 15;
902}
903
904message ProcessToGcProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800905 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
906
Yi Jin148d7f42017-11-28 14:23:56 -0800907 optional ProcessRecordProto proc = 1;
908 optional bool report_low_memory = 2;
909 optional int64 now_uptime_ms = 3;
910 optional int64 last_gced_ms = 4;
911 optional int64 last_low_memory_ms = 5;
912}
913
914// sync with com.android.server.am.AppErrors.java
915message AppErrorsProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800916 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
Yi Jin148d7f42017-11-28 14:23:56 -0800917
918 optional int64 now_uptime_ms = 1;
919
920 message ProcessCrashTime {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800921 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
922
Yi Jin148d7f42017-11-28 14:23:56 -0800923 optional string process_name = 1;
924
925 message Entry {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800926 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
927
Yi Jin148d7f42017-11-28 14:23:56 -0800928 optional int32 uid = 1;
929 optional int64 last_crashed_at_ms = 2;
930 }
931 repeated Entry entries = 2;
932 }
933 repeated ProcessCrashTime process_crash_times = 2;
934
935 message BadProcess {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800936 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
937
Yi Jin148d7f42017-11-28 14:23:56 -0800938 optional string process_name = 1;
939
940 message Entry {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800941 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
942
Yi Jin148d7f42017-11-28 14:23:56 -0800943 optional int32 uid = 1;
944 optional int64 crashed_at_ms = 2;
945 optional string short_msg = 3;
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800946 optional string long_msg = 4 [ (.android.privacy).dest = DEST_EXPLICIT ];
947 optional string stack = 5 [ (.android.privacy).dest = DEST_EXPLICIT ];
Yi Jin148d7f42017-11-28 14:23:56 -0800948 }
949 repeated Entry entries = 2;
950 }
951 repeated BadProcess bad_processes = 3;
952}
953
954// sync with com.android.server.am.UserState.java
955message UserStateProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800956 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
957
Yi Jin148d7f42017-11-28 14:23:56 -0800958 enum State {
959 STATE_BOOTING = 0;
960 STATE_RUNNING_LOCKED = 1;
961 STATE_RUNNING_UNLOCKING = 2;
962 STATE_RUNNING_UNLOCKED = 3;
963 STATE_STOPPING = 4;
964 STATE_SHUTDOWN = 5;
965 }
966 optional State state = 1;
967 optional bool switching = 2;
968}
969
970// sync with com.android.server.am.UserController.java
971message UserControllerProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800972 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
973
Yi Jin148d7f42017-11-28 14:23:56 -0800974 message User {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800975 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
976
Yi Jin148d7f42017-11-28 14:23:56 -0800977 optional int32 id = 1;
978 optional UserStateProto state = 2;
979 }
980 repeated User started_users = 1;
981 repeated int32 started_user_array = 2;
982 repeated int32 user_lru = 3;
983
984 message UserProfile {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800985 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
986
Yi Jin148d7f42017-11-28 14:23:56 -0800987 optional int32 user = 1;
988 optional int32 profile = 2;
989 }
990 repeated UserProfile user_profile_group_ids = 4;
991}
992
993// sync with com.android.server.am.AppTimeTracker.java
994message AppTimeTrackerProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -0800995 option (.android.msg_privacy).dest = DEST_AUTOMATIC;
996
Yi Jin148d7f42017-11-28 14:23:56 -0800997 optional string receiver = 1;
998 optional int64 total_duration_ms = 2;
999
1000 message PackageTime {
1001 optional string package = 1;
1002 optional int64 duration_ms = 2;
1003 }
1004 repeated PackageTime package_times = 3;
1005
1006 optional .android.util.Duration started_time = 4;
1007 optional string started_package = 5;
Yi Jin129fc6c2017-09-28 15:48:38 -07001008}