1/* 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 17syntax = "proto2"; 18 19package com.android.server.am; 20 21import "frameworks/base/core/proto/android/app/activitymanager.proto"; 22import "frameworks/base/core/proto/android/app/appexitinfo.proto"; 23import "frameworks/base/core/proto/android/app/notification.proto"; 24import "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"; 27import "frameworks/base/core/proto/android/content/intent.proto"; 28import "frameworks/base/core/proto/android/content/package_item_info.proto"; 29import "frameworks/base/core/proto/android/internal/processstats.proto"; 30import "frameworks/base/core/proto/android/os/bundle.proto"; 31import "frameworks/base/core/proto/android/os/looper.proto"; 32import "frameworks/base/core/proto/android/os/powermanager.proto"; 33import "frameworks/base/core/proto/android/server/intentresolver.proto"; 34import "frameworks/base/core/proto/android/server/windowmanagerservice.proto"; 35import "frameworks/base/core/proto/android/util/common.proto"; 36import "frameworks/base/core/proto/android/privacy.proto"; 37import "frameworks/proto_logging/stats/enums/app/enums.proto"; 38 39option java_multiple_files = true; 40 41message ActivityManagerServiceProto { 42 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 43 44 optional ActivityManagerServiceDumpActivitiesProto activities = 1; 45 46 optional ActivityManagerServiceDumpBroadcastsProto broadcasts = 2; 47 48 optional ActivityManagerServiceDumpServicesProto services = 3; 49 50 optional ActivityManagerServiceDumpProcessesProto processes = 4; 51} 52 53// "dumpsys activity --proto activities" 54message ActivityManagerServiceDumpActivitiesProto { 55 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 56 57 reserved 1; // activity_stack_supervisor 58 optional .com.android.server.wm.RootWindowContainerProto root_window_container = 2; 59} 60 61// "dumpsys activity --proto broadcasts" 62message ActivityManagerServiceDumpBroadcastsProto { 63 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 64 65 repeated ReceiverListProto receiver_list = 1; 66 67 optional .com.android.server.IntentResolverProto receiver_resolver = 2; 68 69 repeated BroadcastQueueProto broadcast_queue = 3; 70 71 repeated StickyBroadcastProto sticky_broadcasts = 4; 72 73 message MainHandler { 74 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 75 76 optional string handler = 1; 77 optional .android.os.LooperProto looper = 2; 78 } 79 optional MainHandler handler = 5; 80} 81 82message ReceiverListProto { 83 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 84 85 optional ProcessRecordProto app = 1; 86 optional int32 pid = 2; 87 optional int32 uid = 3; 88 optional int32 user = 4; 89 optional BroadcastRecordProto current = 5; 90 optional bool linked_to_death = 6; 91 repeated BroadcastFilterProto filters = 7; 92 // Used to find this ReceiverList object in IntentResolver 93 optional string hex_hash = 8; 94 optional int32 number_receivers = 9; 95} 96 97message ProcessRecordProto { 98 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 99 100 optional int32 pid = 1; 101 optional string process_name = 2; 102 optional int32 uid = 3; 103 optional int32 user_id = 4; 104 optional int32 app_id = 5; 105 optional int32 isolated_app_id = 6; 106 optional bool persistent = 7; 107 optional int32 lru_index = 8; 108} 109 110message BroadcastRecordProto { 111 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 112 113 optional int32 user_id = 1; 114 optional string intent_action = 2; 115} 116 117message BroadcastFilterProto { 118 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 119 120 optional .android.content.IntentFilterProto intent_filter = 1; 121 optional string required_permission = 2; 122 // Used to find the BroadcastFilter object in IntentResolver 123 optional string hex_hash = 3; 124 optional int32 owning_user_id = 4; 125} 126 127message BroadcastQueueProto { 128 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 129 130 optional string queue_name = 1; 131 repeated BroadcastRecordProto parallel_broadcasts = 2; 132 repeated BroadcastRecordProto ordered_broadcasts = 3; 133 optional BroadcastRecordProto pending_broadcast = 4; 134 repeated BroadcastRecordProto historical_broadcasts = 5; 135 136 message BroadcastSummary { 137 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 138 139 optional .android.content.IntentProto intent = 1; 140 optional int64 enqueue_clock_time_ms = 2; 141 optional int64 dispatch_clock_time_ms = 3; 142 optional int64 finish_clock_time_ms = 4; 143 } 144 repeated BroadcastSummary historical_broadcasts_summary = 6; 145 repeated BroadcastRecordProto pending_broadcasts = 7; 146} 147 148message MemInfoDumpProto { 149 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 150 151 optional int64 uptime_duration_ms = 1; 152 optional int64 elapsed_realtime_ms = 2; 153 154 message ProcessMemory { 155 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 156 157 optional int32 pid = 1; 158 optional string process_name = 2; 159 160 message MemoryInfo { 161 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 162 163 optional string name = 1; 164 // The proportional set size for the heap. 165 optional int32 total_pss_kb = 2; 166 // The proportional set size that is swappable for the heap. 167 optional int32 clean_pss_kb = 3; 168 // The private dirty pages used by the heap. 169 optional int32 shared_dirty_kb = 4; 170 // The shared dirty pages used by the heap. 171 optional int32 private_dirty_kb = 5; 172 // The shared clean pages used by the heap. 173 optional int32 shared_clean_kb = 6; 174 // The private clean pages used by the heap. 175 optional int32 private_clean_kb = 7; 176 oneof dirty_swap { 177 // The dirty the pages that have been swapped out. 178 int32 dirty_swap_kb = 8; 179 // The dirty the pages that have been swapped out, proportional. 180 int32 dirty_swap_pss_kb = 9; 181 } 182 // The rss set size for the heap. 183 optional int32 total_rss_kb = 10; 184 } 185 message HeapInfo { 186 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 187 188 optional MemoryInfo mem_info = 1; 189 optional int32 heap_size_kb = 2; 190 optional int32 heap_alloc_kb = 3; 191 optional int32 heap_free_kb = 4; 192 } 193 optional HeapInfo native_heap = 3; 194 optional HeapInfo dalvik_heap = 4; 195 repeated MemoryInfo other_heaps = 5; 196 optional MemoryInfo unknown_heap = 6; 197 // Summation of native_heap, dalvik_heap, and other_heaps. 198 optional HeapInfo total_heap = 7; 199 200 repeated MemoryInfo dalvik_details = 8; 201 202 message AppSummary { 203 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 204 205 optional int32 java_heap_pss_kb = 1; 206 optional int32 native_heap_pss_kb = 2; 207 optional int32 code_pss_kb = 3; 208 optional int32 stack_pss_kb = 4; 209 optional int32 graphics_pss_kb = 5; 210 optional int32 private_other_pss_kb = 6; 211 optional int32 system_pss_kb = 7; 212 213 oneof total_swap { 214 int32 total_swap_pss = 8; 215 int32 total_swap_kb = 9; 216 } 217 optional int32 java_heap_rss_kb = 10; 218 optional int32 native_heap_rss_kb = 11; 219 optional int32 code_rss_kb = 12; 220 optional int32 stack_rss_kb = 13; 221 optional int32 graphics_rss_kb = 14; 222 optional int32 unknown_rss_kb = 15; 223 } 224 optional AppSummary app_summary = 9; 225 } 226 repeated ProcessMemory native_processes = 3; 227 228 message AppData { 229 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 230 231 optional ProcessMemory process_memory = 1; 232 233 message ObjectStats { 234 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 235 236 optional int32 view_instance_count = 1; 237 optional int32 view_root_instance_count = 2; 238 optional int32 app_context_instance_count = 3; 239 optional int32 activity_instance_count = 4; 240 optional int32 global_asset_count = 5; 241 optional int32 global_asset_manager_count = 6; 242 optional int32 local_binder_object_count = 7; 243 optional int32 proxy_binder_object_count = 8; 244 optional int64 parcel_memory_kb = 9; 245 optional int32 parcel_count = 10; 246 optional int32 binder_object_death_count = 11; 247 optional int32 open_ssl_socket_count = 12; 248 optional int32 webview_instance_count = 13; 249 } 250 optional ObjectStats objects = 2; 251 252 message SqlStats { 253 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 254 255 optional int32 memory_used_kb = 1; 256 optional int32 pagecache_overflow_kb = 2; 257 optional int32 malloc_size_kb = 3; 258 259 message Database { 260 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 261 262 optional string name = 1; 263 optional int32 page_size = 2; 264 optional int32 db_size = 3; 265 // Number of lookaside slots: 266 // http://www.sqlite.org/c3ref/c_dbstatus_lookaside_used.html 267 optional int32 lookaside_b = 4; 268 // Statement cache stats: hits/misses/cachesize 269 optional string cache = 5; 270 optional int32 cache_hits = 6; 271 optional int32 cache_misses = 7; 272 optional int32 cache_size = 8; 273 } 274 repeated Database databases = 4; 275 } 276 optional SqlStats sql = 3; 277 278 optional string asset_allocations = 4; 279 optional string unreachable_memory = 5; 280 } 281 repeated AppData app_processes = 4; 282 283 message MemItem { 284 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 285 286 optional string tag = 1; 287 optional string label = 2; 288 optional int32 id = 3; 289 optional bool is_proc = 4; 290 optional bool has_activities = 5; 291 optional int64 pss_kb = 6; 292 optional int64 rss_kb = 9; 293 optional int64 swap_pss_kb = 7; 294 repeated MemItem sub_items = 8; 295 } 296 repeated MemItem total_rss_by_process = 29; 297 repeated MemItem total_rss_by_oom_adjustment = 30; 298 repeated MemItem total_rss_by_category = 31; 299 repeated MemItem total_pss_by_process = 5; 300 repeated MemItem total_pss_by_oom_adjustment = 6; 301 repeated MemItem total_pss_by_category = 7; 302 303 optional int64 total_ram_kb = 8; 304 optional .com.android.internal.app.procstats.ProcessStatsProto.MemoryFactor status = 9; 305 // Total free RAM = cached_pss_kb + cached_kernel_kb + free_kb. 306 optional int64 cached_pss_kb = 10; 307 optional int64 cached_kernel_kb = 11; 308 optional int64 free_kb = 12; 309 // Total used RAM = used_pss_kb + used_kernel_kb. 310 optional int64 used_pss_kb = 13; 311 optional int64 used_kernel_kb = 14; 312 313 optional int64 lost_ram_kb = 15; 314 315 optional int64 total_zram_kb = 16; 316 optional int64 zram_physical_used_in_swap_kb = 17; 317 optional int64 total_zram_swap_kb = 18; 318 319 optional int64 ksm_sharing_kb = 19; 320 optional int64 ksm_shared_kb = 20; 321 optional int64 ksm_unshared_kb = 21; 322 optional int64 ksm_volatile_kb = 22; 323 324 // The approximate per-application memory class of the current device. This 325 // gives developers an idea of how hard a memory limit you should impose on 326 // their application to let the overall system work best. The value is in 327 // megabytes; the baseline Android memory class is 16 (which happens to be the 328 // Java heap limit of those devices); some devices with more memory may have 329 // 24 or even higher numbers. 330 optional int32 tuning_mb = 23; 331 // The approximate per-application memory class of the current device when an 332 // application is running with a large heap. This is the space available for 333 // memory-intensive applications; most applications should not need this 334 // amount of memory, and should instead stay with the tuning_mb limit. The 335 // value is in megabytes. This may be the same size as tuning_mb on memory 336 // constrained devices, or it may be significantly larger on devices with a 337 // large amount of available RAM. 338 // This is the size of the application's Dalvik heap if it has specified 339 // 'android:largeHeap="true"' in its manifest. 340 optional int32 tuning_large_mb = 24; 341 342 optional int64 oom_kb = 25; 343 344 // The maximum pss size in kb that we consider a process acceptable to restore 345 // from its cached state for running in the background when RAM is low. 346 optional int64 restore_limit_kb = 26; 347 348 optional bool is_low_ram_device = 27; 349 optional bool is_high_end_gfx = 28; 350 351 // Next Tag: 32 352} 353 354message StickyBroadcastProto { 355 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 356 357 optional int32 user = 1; 358 359 message StickyAction { 360 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 361 362 // The action of the sticky Intent. 363 optional string name = 1; 364 repeated .android.content.IntentProto intents = 2; 365 } 366 repeated StickyAction actions = 2; 367} 368 369// "dumpsys activity --proto service" 370message ActivityManagerServiceDumpServicesProto { 371 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 372 373 optional ActiveServicesProto active_services = 1; 374} 375 376message ActiveServicesProto { 377 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 378 379 message ServicesByUser { 380 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 381 382 optional int32 user_id = 1; 383 repeated ServiceRecordProto service_records = 2; 384 } 385 repeated ServicesByUser services_by_users = 1; 386} 387 388// corresponds to ActivityManagerService.GrantUri Java class 389message GrantUriProto { 390 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 391 392 optional int32 source_user_id = 1; 393 optional string uri = 2 [ (.android.privacy).dest = DEST_EXPLICIT ]; 394} 395 396message NeededUriGrantsProto { 397 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 398 399 optional string target_package = 1; 400 optional int32 target_uid = 2; 401 optional int32 flags = 3; 402 403 repeated GrantUriProto grants = 4; 404} 405 406message UriPermissionOwnerProto { 407 option (.android.msg_privacy).dest = DEST_EXPLICIT; 408 409 optional string owner = 1; 410 repeated GrantUriProto read_perms = 2; 411 repeated GrantUriProto write_perms = 3; 412} 413 414message ServiceRecordProto { 415 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 416 417 optional string short_name = 1; 418 optional bool is_running = 2; // false if the application service is null 419 optional int32 pid = 3; 420 optional .android.content.IntentProto intent = 4; 421 optional string package_name = 5; 422 optional string process_name = 6; 423 optional string permission = 7; 424 425 message AppInfo { 426 option (.android.msg_privacy).dest = DEST_EXPLICIT; 427 428 optional string base_dir = 1; 429 optional string res_dir = 2; 430 optional string data_dir = 3; 431 } 432 optional AppInfo appinfo = 8; 433 optional ProcessRecordProto app = 9; 434 optional ProcessRecordProto isolated_proc = 10; 435 optional bool whitelist_manager = 11; 436 optional bool delayed = 12; 437 438 message Foreground { 439 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 440 441 optional int32 id = 1; 442 optional .android.app.NotificationProto notification = 2; 443 optional int32 foregroundServiceType = 3; 444 } 445 optional Foreground foreground = 13; 446 447 optional .android.util.Duration create_real_time = 14; 448 optional .android.util.Duration starting_bg_timeout = 15; 449 optional .android.util.Duration last_activity_time = 16; 450 optional .android.util.Duration restart_time = 17; 451 optional bool created_from_fg = 18; 452 453 // variables used to track states related to service start 454 message Start { 455 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 456 457 optional bool start_requested = 1; 458 optional bool delayed_stop = 2; 459 optional bool stop_if_killed = 3; 460 optional bool call_start = 4; 461 optional int32 last_start_id = 5; 462 optional int32 start_command_result = 6; 463 } 464 optional Start start = 19; 465 466 message ExecuteNesting { 467 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 468 469 optional int32 execute_nesting = 1; 470 optional bool execute_fg = 2; 471 optional .android.util.Duration executing_start = 3; 472 } 473 optional ExecuteNesting execute = 20; 474 475 optional .android.util.Duration destory_time = 21; 476 477 message Crash { 478 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 479 480 optional int32 restart_count = 1; 481 optional .android.util.Duration restart_delay = 2; 482 optional .android.util.Duration next_restart_time = 3; 483 optional int32 crash_count = 4; 484 } 485 optional Crash crash = 22; 486 487 message StartItem { 488 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 489 490 optional int32 id = 1; 491 optional .android.util.Duration duration = 2; 492 optional int32 delivery_count = 3; 493 optional int32 done_executing_count = 4; 494 optional .android.content.IntentProto intent = 5; 495 optional NeededUriGrantsProto needed_grants = 6; 496 optional UriPermissionOwnerProto uri_permissions = 7; 497 } 498 repeated StartItem delivered_starts = 23; 499 repeated StartItem pending_starts = 24; 500 501 repeated IntentBindRecordProto bindings = 25; 502 repeated ConnectionRecordProto connections = 26; 503 504 optional bool allow_while_in_use_permission_in_fgs = 27; 505 506 message ShortFgsInfo { 507 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 508 509 optional int64 start_time = 1; 510 optional int32 start_foreground_count = 2; 511 optional int32 start_id = 3; 512 optional int64 timeout_time = 4; 513 optional int64 proc_state_demote_time = 5; 514 optional int64 anr_time = 6; 515 } 516 517 optional ShortFgsInfo short_fgs_info = 28; 518 519 // Next Tag: 29 520} 521 522message ConnectionRecordProto { 523 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 524 525 // Used to find same record, e.g. AppBindRecord has the hex_hash 526 optional string hex_hash = 1; // cross reference the object and avoid double logging. 527 optional int32 user_id = 2; 528 529 enum Flag { 530 AUTO_CREATE = 0; 531 DEBUG_UNBIND = 1; 532 NOT_FG = 2; 533 IMPORTANT_BG = 3; 534 ABOVE_CLIENT = 4; 535 ALLOW_OOM_MANAGEMENT = 5; 536 WAIVE_PRIORITY = 6; 537 IMPORTANT = 7; 538 ADJUST_WITH_ACTIVITY = 8; 539 FG_SERVICE_WHILE_AWAKE = 9; 540 FG_SERVICE = 10; 541 TREAT_LIKE_ACTIVITY = 11; 542 VISIBLE = 12; 543 SHOWING_UI = 13; 544 NOT_VISIBLE = 14; 545 DEAD = 15; 546 NOT_PERCEPTIBLE = 16; 547 INCLUDE_CAPABILITIES = 17; 548 ALLOW_ACTIVITY_STARTS = 18; 549 } 550 repeated Flag flags = 3; 551 optional string service_name = 4; 552} 553 554message AppBindRecordProto { 555 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 556 557 optional string service_name = 1; 558 optional string client_proc_name = 2; 559 repeated string connections = 3; // hex_hash of ConnectionRecordProto 560} 561 562message IntentBindRecordProto { 563 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 564 565 optional .android.content.IntentProto intent = 1; 566 optional string binder = 2; 567 optional bool auto_create = 3; // value of BIND_AUTO_CREATE flag. 568 optional bool requested = 4; 569 optional bool received = 5; 570 optional bool has_bound = 6; 571 optional bool do_rebind = 7; 572 573 repeated AppBindRecordProto apps = 8; 574} 575 576// TODO: "dumpsys activity --proto processes" 577message ActivityManagerServiceDumpProcessesProto { 578 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 579 580 repeated ProcessRecordProto procs = 1; 581 repeated ProcessRecordProto isolated_procs = 2; 582 repeated ActiveInstrumentationProto active_instrumentations = 3; 583 repeated UidRecordProto active_uids = 4; 584 repeated UidRecordProto validate_uids = 5; 585 586 // Process LRU list (sorted by oom_adj) 587 message LruProcesses { 588 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 589 590 optional int32 size = 1; 591 optional int32 non_act_at = 2; 592 optional int32 non_svc_at = 3; 593 repeated ProcessOomProto list = 4; 594 } 595 optional LruProcesses lru_procs = 6; 596 repeated ProcessRecordProto pids_self_locked = 7; 597 // Foreground Processes 598 repeated ImportanceTokenProto important_procs = 8; 599 // Persisent processes that are starting 600 repeated ProcessRecordProto persistent_starting_procs = 9; 601 // Processes that are being removed 602 repeated ProcessRecordProto removed_procs = 10; 603 // Processes that are on old until the system is ready 604 repeated ProcessRecordProto on_hold_procs = 11; 605 // Processes that are waiting to GC 606 repeated ProcessToGcProto gc_procs = 12; 607 optional AppErrorsProto app_errors = 13; 608 optional UserControllerProto user_controller = 14; 609 optional ProcessRecordProto home_proc = 15; 610 optional ProcessRecordProto previous_proc = 16; 611 optional int64 previous_proc_visible_time_ms = 17; 612 optional ProcessRecordProto heavy_weight_proc = 18; 613 optional .android.content.ConfigurationProto global_configuration = 19; 614 615 optional bool config_will_change = 21; 616 617 message ScreenCompatPackage { 618 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 619 620 optional string package = 1; 621 optional int32 mode = 2; 622 } 623 repeated ScreenCompatPackage screen_compat_packages = 22; 624 625 message UidObserverRegistrationProto { 626 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 627 628 optional int32 uid = 1; 629 optional string package = 2; 630 repeated .android.app.UidObserverFlag flags = 3; 631 optional int32 cut_point = 4; // only available when UID_OBSERVER_PROCSTATE is on 632 633 message ProcState { 634 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 635 636 optional int32 uid = 1; 637 optional int32 state = 2; 638 } 639 repeated ProcState last_proc_states = 5; 640 } 641 repeated UidObserverRegistrationProto uid_observers = 23; 642 repeated int32 device_idle_whitelist = 24; 643 repeated int32 device_idle_temp_whitelist = 25; 644 645 message PendingTempWhitelist { 646 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 647 648 optional int32 target_uid = 1; 649 optional int64 duration_ms = 2; 650 optional string tag = 3; 651 optional int32 type = 4; 652 optional int32 reason_code = 5; 653 optional int32 calling_uid = 6; 654 } 655 repeated PendingTempWhitelist pending_temp_whitelist = 26; 656 657 message SleepStatus { 658 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 659 660 optional .android.os.PowerManagerInternalProto.Wakefulness wakefulness = 1; 661 repeated string sleep_tokens = 2 [ (.android.privacy).dest = DEST_EXPLICIT ]; 662 optional bool sleeping = 3; 663 optional bool shutting_down = 4; 664 optional bool test_pss_mode = 5; 665 } 666 optional SleepStatus sleep_status = 27; 667 668 message Voice { 669 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 670 671 optional string session = 1; 672 optional .android.os.PowerManagerProto.WakeLock wakelock = 2; 673 } 674 optional Voice running_voice = 28; 675 676 optional VrControllerProto vr_controller = 29; 677 678 message DebugApp { 679 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 680 681 optional string debug_app = 1; 682 optional string orig_debug_app = 2; 683 optional bool debug_transient = 3; 684 optional bool orig_wait_for_debugger = 4; 685 } 686 optional DebugApp debug = 30; 687 optional AppTimeTrackerProto current_tracker = 31; 688 689 message MemWatchProcess { 690 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 691 692 message Process { 693 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 694 695 optional string name = 1; 696 697 message MemStats { 698 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 699 700 optional int32 uid = 1; 701 optional string size = 2; 702 optional string report_to = 3; 703 } 704 repeated MemStats mem_stats = 2; 705 } 706 repeated Process procs = 1; 707 708 message Dump { 709 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 710 711 optional string proc_name = 1; 712 reserved 2; // file, DEST_EXPLICIT 713 optional int32 pid = 3; 714 optional int32 uid = 4; 715 optional bool is_user_initiated = 5; 716 optional string uri = 6 [ (.android.privacy).dest = DEST_EXPLICIT ]; 717 } 718 optional Dump dump = 2; 719 } 720 optional MemWatchProcess mem_watch_processes = 32; 721 optional string track_allocation_app = 33; 722 723 message Profile { 724 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 725 726 optional string app_name = 1; 727 optional ProcessRecordProto proc = 2; 728 optional .android.app.ProfilerInfoProto info = 3; 729 optional int32 type = 4; 730 } 731 optional Profile profile = 34; 732 optional string native_debugging_app = 35; 733 optional bool always_finish_activities = 36; 734 735 message Controller { 736 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 737 738 optional string controller = 1; 739 optional bool is_a_monkey = 2; 740 } 741 optional Controller controller = 37; 742 743 optional int32 total_persistent_procs = 38; 744 optional bool processes_ready = 39; 745 optional bool system_ready = 40; 746 optional bool booted = 41; 747 optional int32 factory_test = 42; 748 optional bool booting = 43; 749 optional bool call_finish_booting = 44; 750 optional bool boot_animation_complete = 45; 751 optional int64 last_power_check_uptime_ms = 46; 752 optional .android.os.PowerManagerProto.WakeLock going_to_sleep = 47; 753 optional .android.os.PowerManagerProto.WakeLock launching_activity = 48; 754 optional int32 adj_seq = 49; 755 optional int32 lru_seq = 50; 756 optional int32 num_non_cached_procs = 51; 757 optional int32 num_cached_hidden_procs = 52; 758 optional int32 num_service_procs = 53; 759 optional int32 new_num_service_procs = 54; 760 optional bool allow_lower_mem_level = 55; 761 optional int32 last_memory_level = 56; 762 optional int32 last_num_processes = 57; 763 optional .android.util.Duration last_idle_time = 58; 764 optional int64 low_ram_since_last_idle_ms = 59; 765} 766 767message ActiveInstrumentationProto { 768 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 769 770 optional .android.content.ComponentNameProto class = 1; 771 optional bool finished = 2; 772 repeated ProcessRecordProto running_processes = 3; 773 repeated string target_processes = 4; 774 optional .android.content.pm.ApplicationInfoProto target_info = 5; 775 optional string profile_file = 6; 776 optional string watcher = 7; 777 optional string ui_automation_connection = 8; 778 // Arguments as given to the ActiveInstrumentation object in Bundle 779 // toString format. 780 reserved 9; // arguments (in String format). 781 // Arguments as given to the ActiveInstrumentation object. 782 optional .android.os.BundleProto arguments = 10; 783} 784 785// Proto definition of com.android.server.am.UidRecord.java 786message UidRecordProto { 787 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 788 789 optional int32 uid = 1; 790 optional .android.app.ProcessStateEnum current = 2; 791 optional bool ephemeral = 3; 792 optional bool fg_services = 4; 793 optional bool whilelist = 5; 794 optional .android.util.Duration last_background_time = 6; 795 optional bool idle = 7; 796 797 enum Change { 798 CHANGE_GONE = 0; 799 CHANGE_IDLE = 1; 800 CHANGE_ACTIVE = 2; 801 CHANGE_CACHED = 3; 802 CHANGE_UNCACHED = 4; 803 CHANGE_CAPABILITY = 5; 804 CHANGE_PROCSTATE = 6; 805 CHANGE_PROCADJ = 7; 806 } 807 repeated Change last_reported_changes = 8; 808 optional int32 num_procs = 9; 809 810 message ProcStateSequence { 811 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 812 813 optional int64 cururent = 1; 814 optional int64 last_network_updated = 2; 815 optional int64 last_dispatched = 3; 816 } 817 optional ProcStateSequence network_state_update = 10; 818 819 // Next Tag: 11 820} 821 822// proto of class ImportanceToken in ActivityManagerService 823message ImportanceTokenProto { 824 option (.android.msg_privacy).dest = DEST_EXPLICIT; 825 826 optional int32 pid = 1; 827 optional string token = 2; 828 optional string reason = 3; 829} 830 831// proto of class VrController.java 832message VrControllerProto { 833 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 834 835 enum VrMode { 836 FLAG_NON_VR_MODE = 0; 837 FLAG_VR_MODE = 1; 838 FLAG_PERSISTENT_VR_MODE = 2; 839 } 840 repeated VrMode vr_mode = 1; 841 optional int32 render_thread_id = 2; 842} 843 844message ProcessOomProto { 845 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 846 847 optional bool persistent = 1; 848 optional int32 num = 2; 849 optional string oom_adj = 3; 850 851 // Activity manager's version of Process enum, see ProcessList.java 852 enum SchedGroup { 853 SCHED_GROUP_UNKNOWN = -1; 854 SCHED_GROUP_BACKGROUND = 0; 855 SCHED_GROUP_DEFAULT = 1; 856 SCHED_GROUP_TOP_APP = 2; 857 SCHED_GROUP_TOP_APP_BOUND = 3; 858 } 859 optional SchedGroup sched_group = 4 [ default = SCHED_GROUP_UNKNOWN]; 860 861 oneof Foreground { 862 bool activities = 5; 863 bool services = 6; 864 } 865 866 optional .android.app.ProcessStateEnum state = 7; 867 optional int32 trim_memory_level = 8; 868 optional ProcessRecordProto proc = 9; 869 optional string adj_type = 10; 870 871 oneof AdjTarget { 872 .android.content.ComponentNameProto adj_target_component_name = 11; 873 string adj_target_object = 12; 874 } 875 876 oneof AdjSource { 877 ProcessRecordProto adj_source_proc = 13; 878 string adj_source_object = 14; 879 } 880 881 message Detail { 882 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 883 884 optional int32 max_adj = 1; 885 optional int32 cur_raw_adj = 2; 886 optional int32 set_raw_adj = 3; 887 optional int32 cur_adj = 4; 888 optional int32 set_adj = 5; 889 optional .android.app.ProcessStateEnum current_state = 7; 890 optional .android.app.ProcessStateEnum set_state = 8; 891 optional string last_pss = 9; 892 optional string last_swap_pss = 10; 893 optional string last_cached_pss = 11; 894 optional bool cached = 12; 895 optional bool empty = 13; 896 optional bool has_above_client = 14; 897 898 // only make sense if process is a service 899 message CpuRunTime { 900 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 901 902 optional int64 over_ms = 1; 903 optional int64 used_ms = 2; 904 optional float ultilization = 3; // ratio of cpu time usage 905 } 906 optional CpuRunTime service_run_time = 15; 907 } 908 optional Detail detail = 15; 909} 910 911message ProcessToGcProto { 912 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 913 914 optional ProcessRecordProto proc = 1; 915 optional bool report_low_memory = 2; 916 optional int64 now_uptime_ms = 3; 917 optional int64 last_gced_ms = 4; 918 optional int64 last_low_memory_ms = 5; 919} 920 921// sync with com.android.server.am.AppErrors.java 922message AppErrorsProto { 923 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 924 925 optional int64 now_uptime_ms = 1; 926 927 message ProcessCrashTime { 928 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 929 930 optional string process_name = 1; 931 932 message Entry { 933 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 934 935 optional int32 uid = 1; 936 optional int64 last_crashed_at_ms = 2; 937 } 938 repeated Entry entries = 2; 939 } 940 repeated ProcessCrashTime process_crash_times = 2; 941 942 message BadProcess { 943 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 944 945 optional string process_name = 1; 946 947 message Entry { 948 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 949 950 optional int32 uid = 1; 951 optional int64 crashed_at_ms = 2; 952 optional string short_msg = 3; 953 optional string long_msg = 4 [ (.android.privacy).dest = DEST_EXPLICIT ]; 954 optional string stack = 5 [ (.android.privacy).dest = DEST_EXPLICIT ]; 955 } 956 repeated Entry entries = 2; 957 } 958 repeated BadProcess bad_processes = 3; 959} 960 961// sync with com.android.server.am.UserState.java 962message UserStateProto { 963 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 964 965 enum State { 966 STATE_BOOTING = 0; 967 STATE_RUNNING_LOCKED = 1; 968 STATE_RUNNING_UNLOCKING = 2; 969 STATE_RUNNING_UNLOCKED = 3; 970 STATE_STOPPING = 4; 971 STATE_SHUTDOWN = 5; 972 } 973 optional State state = 1; 974 optional bool switching = 2; 975} 976 977// sync with com.android.server.am.UserController.java 978message UserControllerProto { 979 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 980 981 message User { 982 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 983 984 optional int32 id = 1; 985 optional UserStateProto state = 2; 986 } 987 repeated User started_users = 1; 988 repeated int32 started_user_array = 2; 989 repeated int32 user_lru = 3; 990 991 message UserProfile { 992 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 993 994 optional int32 user = 1; 995 optional int32 profile = 2; 996 } 997 repeated UserProfile user_profile_group_ids = 4; 998 999 // current_user contains the id of the current user, while current_profiles contains the ids of 1000 // both the current user and its profiles (if any) 1001 optional int32 current_user = 5; 1002 repeated int32 current_profiles = 6; 1003} 1004 1005// sync with com.android.server.am.AppTimeTracker.java 1006message AppTimeTrackerProto { 1007 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 1008 1009 optional string receiver = 1; 1010 optional int64 total_duration_ms = 2; 1011 1012 message PackageTime { 1013 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 1014 1015 optional string package = 1; 1016 optional int64 duration_ms = 2; 1017 } 1018 repeated PackageTime package_times = 3; 1019 1020 optional .android.util.Duration started_time = 4; 1021 optional string started_package = 5; 1022} 1023 1024// sync with com.android.server.am.am.ProcessList.java 1025message AppsExitInfoProto { 1026 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 1027 1028 optional int64 last_update_timestamp = 1; 1029 message Package { 1030 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 1031 1032 optional string package_name = 1; 1033 message User { 1034 option (.android.msg_privacy).dest = DEST_AUTOMATIC; 1035 1036 optional int32 uid = 1; 1037 repeated .android.app.ApplicationExitInfoProto app_exit_info = 2; 1038 repeated .android.app.ApplicationExitInfoProto app_recoverable_crash = 3; 1039 } 1040 repeated User users = 2; 1041 } 1042 repeated Package packages = 2; 1043} 1044