| /* |
| * Copyright (C) 2017 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| syntax = "proto2"; |
| |
| package com.android.server.am; |
| |
| import "frameworks/base/core/proto/android/app/activitymanager.proto"; |
| import "frameworks/base/core/proto/android/app/enums.proto"; |
| import "frameworks/base/core/proto/android/app/notification.proto"; |
| import "frameworks/base/core/proto/android/app/profilerinfo.proto"; |
| import "frameworks/base/core/proto/android/content/component_name.proto"; |
| import "frameworks/base/core/proto/android/content/configuration.proto"; |
| import "frameworks/base/core/proto/android/content/intent.proto"; |
| import "frameworks/base/core/proto/android/content/package_item_info.proto"; |
| import "frameworks/base/core/proto/android/graphics/rect.proto"; |
| import "frameworks/base/core/proto/android/internal/processstats.proto"; |
| import "frameworks/base/core/proto/android/os/bundle.proto"; |
| import "frameworks/base/core/proto/android/os/looper.proto"; |
| import "frameworks/base/core/proto/android/os/powermanager.proto"; |
| import "frameworks/base/core/proto/android/server/intentresolver.proto"; |
| import "frameworks/base/core/proto/android/server/windowmanagerservice.proto"; |
| import "frameworks/base/core/proto/android/util/common.proto"; |
| import "frameworks/base/libs/incident/proto/android/privacy.proto"; |
| |
| option java_multiple_files = true; |
| |
| message ActivityManagerServiceProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional ActivityManagerServiceDumpActivitiesProto activities = 1; |
| |
| optional ActivityManagerServiceDumpBroadcastsProto broadcasts = 2; |
| |
| optional ActivityManagerServiceDumpServicesProto services = 3; |
| |
| optional ActivityManagerServiceDumpProcessesProto processes = 4; |
| } |
| |
| // "dumpsys activity --proto activities" |
| message ActivityManagerServiceDumpActivitiesProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional ActivityStackSupervisorProto activity_stack_supervisor = 1; |
| } |
| |
| message ActivityStackSupervisorProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1; |
| repeated ActivityDisplayProto displays = 2; |
| optional KeyguardControllerProto keyguard_controller = 3; |
| // TODO(b/111541062): Focused stack and resumed activity are now per-display. Topmost instances |
| // can be obtained from top display and these fields can be removed. |
| optional int32 focused_stack_id = 4; |
| optional .com.android.server.wm.IdentifierProto resumed_activity = 5; |
| // Whether or not the home activity is the recents activity. This is needed for the CTS tests to |
| // know what activity types to check for when invoking splitscreen multi-window. |
| optional bool is_home_recents_component = 6; |
| repeated .com.android.server.wm.IdentifierProto pending_activities = 7; |
| } |
| |
| /* represents ActivityStackSupervisor.ActivityDisplay */ |
| message ActivityDisplayProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1; |
| optional int32 id = 2; |
| repeated ActivityStackProto stacks = 3; |
| optional int32 focused_stack_id = 4; |
| optional .com.android.server.wm.IdentifierProto resumed_activity = 5; |
| optional bool single_task_instance = 6; |
| } |
| |
| message ActivityStackProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1; |
| optional int32 id = 2; |
| repeated TaskRecordProto tasks = 3; |
| optional .com.android.server.wm.IdentifierProto resumed_activity = 4; |
| optional int32 display_id = 5; |
| optional bool fullscreen = 6; |
| optional .android.graphics.RectProto bounds = 7; |
| } |
| |
| message TaskRecordProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1; |
| optional int32 id = 2; |
| repeated ActivityRecordProto activities = 3; |
| optional int32 stack_id = 4; |
| optional .android.graphics.RectProto last_non_fullscreen_bounds = 5; |
| optional string real_activity = 6; |
| optional string orig_activity = 7; |
| optional int32 activity_type = 8; |
| optional int32 resize_mode = 9; |
| optional bool fullscreen = 10; |
| optional .android.graphics.RectProto bounds = 11; |
| optional int32 min_width = 12; |
| optional int32 min_height = 13; |
| } |
| |
| message ActivityRecordProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1; |
| optional .com.android.server.wm.IdentifierProto identifier = 2; |
| optional string state = 3; |
| optional bool visible = 4; |
| optional bool front_of_task = 5; |
| optional int32 proc_id = 6; |
| optional bool translucent = 7; |
| } |
| |
| message KeyguardControllerProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional bool keyguard_showing = 1; |
| repeated KeyguardOccludedProto keyguard_occluded_states= 2; |
| optional bool aod_showing = 3; |
| } |
| |
| message KeyguardOccludedProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 display_id = 1; |
| optional bool keyguard_occluded = 2; |
| } |
| |
| // "dumpsys activity --proto broadcasts" |
| message ActivityManagerServiceDumpBroadcastsProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| repeated ReceiverListProto receiver_list = 1; |
| |
| optional .com.android.server.IntentResolverProto receiver_resolver = 2; |
| |
| repeated BroadcastQueueProto broadcast_queue = 3; |
| |
| repeated StickyBroadcastProto sticky_broadcasts = 4; |
| |
| message MainHandler { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string handler = 1; |
| optional .android.os.LooperProto looper = 2; |
| } |
| optional MainHandler handler = 5; |
| } |
| |
| message ReceiverListProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional ProcessRecordProto app = 1; |
| optional int32 pid = 2; |
| optional int32 uid = 3; |
| optional int32 user = 4; |
| optional BroadcastRecordProto current = 5; |
| optional bool linked_to_death = 6; |
| repeated BroadcastFilterProto filters = 7; |
| // Used to find this ReceiverList object in IntentResolver |
| optional string hex_hash = 8; |
| } |
| |
| message ProcessRecordProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 pid = 1; |
| optional string process_name = 2; |
| optional int32 uid = 3; |
| optional int32 user_id = 4; |
| optional int32 app_id = 5; |
| optional int32 isolated_app_id = 6; |
| optional bool persistent = 7; |
| optional int32 lru_index = 8; |
| } |
| |
| message BroadcastRecordProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 user_id = 1; |
| optional string intent_action = 2; |
| } |
| |
| message BroadcastFilterProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional .android.content.IntentFilterProto intent_filter = 1; |
| optional string required_permission = 2; |
| // Used to find the BroadcastFilter object in IntentResolver |
| optional string hex_hash = 3; |
| optional int32 owning_user_id = 4; |
| } |
| |
| message BroadcastQueueProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string queue_name = 1; |
| repeated BroadcastRecordProto parallel_broadcasts = 2; |
| repeated BroadcastRecordProto ordered_broadcasts = 3; |
| optional BroadcastRecordProto pending_broadcast = 4; |
| repeated BroadcastRecordProto historical_broadcasts = 5; |
| |
| message BroadcastSummary { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional .android.content.IntentProto intent = 1; |
| optional int64 enqueue_clock_time_ms = 2; |
| optional int64 dispatch_clock_time_ms = 3; |
| optional int64 finish_clock_time_ms = 4; |
| } |
| repeated BroadcastSummary historical_broadcasts_summary = 6; |
| } |
| |
| message MemInfoDumpProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int64 uptime_duration_ms = 1; |
| optional int64 elapsed_realtime_ms = 2; |
| |
| message ProcessMemory { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 pid = 1; |
| optional string process_name = 2; |
| |
| message MemoryInfo { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string name = 1; |
| // The proportional set size for the heap. |
| optional int32 total_pss_kb = 2; |
| // The proportional set size that is swappable for the heap. |
| optional int32 clean_pss_kb = 3; |
| // The private dirty pages used by the heap. |
| optional int32 shared_dirty_kb = 4; |
| // The shared dirty pages used by the heap. |
| optional int32 private_dirty_kb = 5; |
| // The shared clean pages used by the heap. |
| optional int32 shared_clean_kb = 6; |
| // The private clean pages used by the heap. |
| optional int32 private_clean_kb = 7; |
| oneof dirty_swap { |
| // The dirty the pages that have been swapped out. |
| int32 dirty_swap_kb = 8; |
| // The dirty the pages that have been swapped out, proportional. |
| int32 dirty_swap_pss_kb = 9; |
| } |
| } |
| message HeapInfo { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional MemoryInfo mem_info = 1; |
| optional int32 heap_size_kb = 2; |
| optional int32 heap_alloc_kb = 3; |
| optional int32 heap_free_kb = 4; |
| } |
| optional HeapInfo native_heap = 3; |
| optional HeapInfo dalvik_heap = 4; |
| repeated MemoryInfo other_heaps = 5; |
| optional MemoryInfo unknown_heap = 6; |
| // Summation of native_heap, dalvik_heap, and other_heaps. |
| optional HeapInfo total_heap = 7; |
| |
| repeated MemoryInfo dalvik_details = 8; |
| |
| message AppSummary { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 java_heap_pss_kb = 1; |
| optional int32 native_heap_pss_kb = 2; |
| optional int32 code_pss_kb = 3; |
| optional int32 stack_pss_kb = 4; |
| optional int32 graphics_pss_kb = 5; |
| optional int32 private_other_pss_kb = 6; |
| optional int32 system_pss_kb = 7; |
| |
| oneof total_swap { |
| int32 total_swap_pss = 8; |
| int32 total_swap_kb = 9; |
| } |
| } |
| optional AppSummary app_summary = 9; |
| } |
| repeated ProcessMemory native_processes = 3; |
| |
| message AppData { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional ProcessMemory process_memory = 1; |
| |
| message ObjectStats { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 view_instance_count = 1; |
| optional int32 view_root_instance_count = 2; |
| optional int32 app_context_instance_count = 3; |
| optional int32 activity_instance_count = 4; |
| optional int32 global_asset_count = 5; |
| optional int32 global_asset_manager_count = 6; |
| optional int32 local_binder_object_count = 7; |
| optional int32 proxy_binder_object_count = 8; |
| optional int64 parcel_memory_kb = 9; |
| optional int32 parcel_count = 10; |
| optional int32 binder_object_death_count = 11; |
| optional int32 open_ssl_socket_count = 12; |
| optional int32 webview_instance_count = 13; |
| } |
| optional ObjectStats objects = 2; |
| |
| message SqlStats { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 memory_used_kb = 1; |
| optional int32 pagecache_overflow_kb = 2; |
| optional int32 malloc_size_kb = 3; |
| |
| message Database { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string name = 1; |
| optional int32 page_size = 2; |
| optional int32 db_size = 3; |
| // Number of lookaside slots: |
| // http://www.sqlite.org/c3ref/c_dbstatus_lookaside_used.html |
| optional int32 lookaside_b = 4; |
| // Statement cache stats: hits/misses/cachesize |
| optional string cache = 5; |
| } |
| repeated Database databases = 4; |
| } |
| optional SqlStats sql = 3; |
| |
| optional string asset_allocations = 4; |
| optional string unreachable_memory = 5; |
| } |
| repeated AppData app_processes = 4; |
| |
| message MemItem { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string tag = 1; |
| optional string label = 2; |
| optional int32 id = 3; |
| optional bool is_proc = 4; |
| optional bool has_activities = 5; |
| optional int64 pss_kb = 6; |
| optional int64 swap_pss_kb = 7; |
| repeated MemItem sub_items = 8; |
| } |
| repeated MemItem total_pss_by_process = 5; |
| repeated MemItem total_pss_by_oom_adjustment = 6; |
| repeated MemItem total_pss_by_category = 7; |
| |
| optional int64 total_ram_kb = 8; |
| optional .com.android.internal.app.procstats.ProcessStatsProto.MemoryFactor status = 9; |
| // Total free RAM = cached_pss_kb + cached_kernel_kb + free_kb. |
| optional int64 cached_pss_kb = 10; |
| optional int64 cached_kernel_kb = 11; |
| optional int64 free_kb = 12; |
| // Total used RAM = used_pss_kb + used_kernel_kb. |
| optional int64 used_pss_kb = 13; |
| optional int64 used_kernel_kb = 14; |
| |
| optional int64 lost_ram_kb = 15; |
| |
| optional int64 total_zram_kb = 16; |
| optional int64 zram_physical_used_in_swap_kb = 17; |
| optional int64 total_zram_swap_kb = 18; |
| |
| optional int64 ksm_sharing_kb = 19; |
| optional int64 ksm_shared_kb = 20; |
| optional int64 ksm_unshared_kb = 21; |
| optional int64 ksm_volatile_kb = 22; |
| |
| // The approximate per-application memory class of the current device. This |
| // gives developers an idea of how hard a memory limit you should impose on |
| // their application to let the overall system work best. The value is in |
| // megabytes; the baseline Android memory class is 16 (which happens to be the |
| // Java heap limit of those devices); some devices with more memory may have |
| // 24 or even higher numbers. |
| optional int32 tuning_mb = 23; |
| // The approximate per-application memory class of the current device when an |
| // application is running with a large heap. This is the space available for |
| // memory-intensive applications; most applications should not need this |
| // amount of memory, and should instead stay with the tuning_mb limit. The |
| // value is in megabytes. This may be the same size as tuning_mb on memory |
| // constrained devices, or it may be significantly larger on devices with a |
| // large amount of available RAM. |
| // This is the size of the application's Dalvik heap if it has specified |
| // 'android:largeHeap="true"' in its manifest. |
| optional int32 tuning_large_mb = 24; |
| |
| optional int64 oom_kb = 25; |
| |
| // The maximum pss size in kb that we consider a process acceptable to restore |
| // from its cached state for running in the background when RAM is low. |
| optional int64 restore_limit_kb = 26; |
| |
| optional bool is_low_ram_device = 27; |
| optional bool is_high_end_gfx = 28; |
| } |
| |
| message StickyBroadcastProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 user = 1; |
| |
| message StickyAction { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // The action of the sticky Intent. |
| optional string name = 1; |
| repeated .android.content.IntentProto intents = 2; |
| } |
| repeated StickyAction actions = 2; |
| } |
| |
| // "dumpsys activity --proto service" |
| message ActivityManagerServiceDumpServicesProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional ActiveServicesProto active_services = 1; |
| } |
| |
| message ActiveServicesProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| message ServicesByUser { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 user_id = 1; |
| repeated ServiceRecordProto service_records = 2; |
| } |
| repeated ServicesByUser services_by_users = 1; |
| } |
| |
| // corresponds to ActivityManagerService.GrantUri Java class |
| message GrantUriProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 source_user_id = 1; |
| optional string uri = 2 [ (.android.privacy).dest = DEST_EXPLICIT ]; |
| } |
| |
| message NeededUriGrantsProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string target_package = 1; |
| optional int32 target_uid = 2; |
| optional int32 flags = 3; |
| |
| repeated GrantUriProto grants = 4; |
| } |
| |
| message UriPermissionOwnerProto { |
| option (.android.msg_privacy).dest = DEST_EXPLICIT; |
| |
| optional string owner = 1; |
| repeated GrantUriProto read_perms = 2; |
| repeated GrantUriProto write_perms = 3; |
| } |
| |
| message ServiceRecordProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string short_name = 1; |
| optional bool is_running = 2; // false if the application service is null |
| optional int32 pid = 3; |
| optional .android.content.IntentProto intent = 4; |
| optional string package_name = 5; |
| optional string process_name = 6; |
| optional string permission = 7; |
| |
| message AppInfo { |
| option (.android.msg_privacy).dest = DEST_EXPLICIT; |
| |
| optional string base_dir = 1; |
| optional string res_dir = 2; |
| optional string data_dir = 3; |
| } |
| optional AppInfo appinfo = 8; |
| optional ProcessRecordProto app = 9; |
| optional ProcessRecordProto isolated_proc = 10; |
| optional bool whitelist_manager = 11; |
| optional bool delayed = 12; |
| |
| message Foreground { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 id = 1; |
| optional .android.app.NotificationProto notification = 2; |
| } |
| optional Foreground foreground = 13; |
| |
| optional .android.util.Duration create_real_time = 14; |
| optional .android.util.Duration starting_bg_timeout = 15; |
| optional .android.util.Duration last_activity_time = 16; |
| optional .android.util.Duration restart_time = 17; |
| optional bool created_from_fg = 18; |
| |
| // variables used to track states related to service start |
| message Start { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional bool start_requested = 1; |
| optional bool delayed_stop = 2; |
| optional bool stop_if_killed = 3; |
| optional bool call_start = 4; |
| optional int32 last_start_id = 5; |
| } |
| optional Start start = 19; |
| |
| message ExecuteNesting { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 execute_nesting = 1; |
| optional bool execute_fg = 2; |
| optional .android.util.Duration executing_start = 3; |
| } |
| optional ExecuteNesting execute = 20; |
| |
| optional .android.util.Duration destory_time = 21; |
| |
| message Crash { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 restart_count = 1; |
| optional .android.util.Duration restart_delay = 2; |
| optional .android.util.Duration next_restart_time = 3; |
| optional int32 crash_count = 4; |
| } |
| optional Crash crash = 22; |
| |
| message StartItem { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 id = 1; |
| optional .android.util.Duration duration = 2; |
| optional int32 delivery_count = 3; |
| optional int32 done_executing_count = 4; |
| optional .android.content.IntentProto intent = 5; |
| optional NeededUriGrantsProto needed_grants = 6; |
| optional UriPermissionOwnerProto uri_permissions = 7; |
| } |
| repeated StartItem delivered_starts = 23; |
| repeated StartItem pending_starts = 24; |
| |
| repeated IntentBindRecordProto bindings = 25; |
| repeated ConnectionRecordProto connections = 26; |
| |
| // Next Tag: 27 |
| } |
| |
| message ConnectionRecordProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Used to find same record, e.g. AppBindRecord has the hex_hash |
| optional string hex_hash = 1; // cross reference the object and avoid double logging. |
| optional int32 user_id = 2; |
| |
| enum Flag { |
| AUTO_CREATE = 0; |
| DEBUG_UNBIND = 1; |
| NOT_FG = 2; |
| IMPORTANT_BG = 3; |
| ABOVE_CLIENT = 4; |
| ALLOW_OOM_MANAGEMENT = 5; |
| WAIVE_PRIORITY = 6; |
| IMPORTANT = 7; |
| ADJUST_WITH_ACTIVITY = 8; |
| FG_SERVICE_WHILE_AWAKE = 9; |
| FG_SERVICE = 10; |
| TREAT_LIKE_ACTIVITY = 11; |
| VISIBLE = 12; |
| SHOWING_UI = 13; |
| NOT_VISIBLE = 14; |
| DEAD = 15; |
| } |
| repeated Flag flags = 3; |
| optional string service_name = 4; |
| } |
| |
| message AppBindRecordProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string service_name = 1; |
| optional string client_proc_name = 2; |
| repeated string connections = 3; // hex_hash of ConnectionRecordProto |
| } |
| |
| message IntentBindRecordProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional .android.content.IntentProto intent = 1; |
| optional string binder = 2; |
| optional bool auto_create = 3; // value of BIND_AUTO_CREATE flag. |
| optional bool requested = 4; |
| optional bool received = 5; |
| optional bool has_bound = 6; |
| optional bool do_rebind = 7; |
| |
| repeated AppBindRecordProto apps = 8; |
| } |
| |
| // TODO: "dumpsys activity --proto processes" |
| message ActivityManagerServiceDumpProcessesProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| repeated ProcessRecordProto procs = 1; |
| repeated ProcessRecordProto isolated_procs = 2; |
| repeated ActiveInstrumentationProto active_instrumentations = 3; |
| repeated UidRecordProto active_uids = 4; |
| repeated UidRecordProto validate_uids = 5; |
| |
| // Process LRU list (sorted by oom_adj) |
| message LruProcesses { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 size = 1; |
| optional int32 non_act_at = 2; |
| optional int32 non_svc_at = 3; |
| repeated ProcessOomProto list = 4; |
| } |
| optional LruProcesses lru_procs = 6; |
| repeated ProcessRecordProto pids_self_locked = 7; |
| // Foreground Processes |
| repeated ImportanceTokenProto important_procs = 8; |
| // Persisent processes that are starting |
| repeated ProcessRecordProto persistent_starting_procs = 9; |
| // Processes that are being removed |
| repeated ProcessRecordProto removed_procs = 10; |
| // Processes that are on old until the system is ready |
| repeated ProcessRecordProto on_hold_procs = 11; |
| // Processes that are waiting to GC |
| repeated ProcessToGcProto gc_procs = 12; |
| optional AppErrorsProto app_errors = 13; |
| optional UserControllerProto user_controller = 14; |
| optional ProcessRecordProto home_proc = 15; |
| optional ProcessRecordProto previous_proc = 16; |
| optional int64 previous_proc_visible_time_ms = 17; |
| optional ProcessRecordProto heavy_weight_proc = 18; |
| optional .android.content.ConfigurationProto global_configuration = 19; |
| // ActivityStackSupervisorProto dumps these values as well, still here? |
| // repeated ActivityDisplayProto displays = 20; |
| |
| optional bool config_will_change = 21; |
| |
| message ScreenCompatPackage { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string package = 1; |
| optional int32 mode = 2; |
| } |
| repeated ScreenCompatPackage screen_compat_packages = 22; |
| |
| message UidObserverRegistrationProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 uid = 1; |
| optional string package = 2; |
| repeated .android.app.UidObserverFlag flags = 3; |
| optional int32 cut_point = 4; // only available when UID_OBSERVER_PROCSTATE is on |
| |
| message ProcState { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 uid = 1; |
| optional int32 state = 2; |
| } |
| repeated ProcState last_proc_states = 5; |
| } |
| repeated UidObserverRegistrationProto uid_observers = 23; |
| repeated int32 device_idle_whitelist = 24; |
| repeated int32 device_idle_temp_whitelist = 25; |
| |
| message PendingTempWhitelist { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 target_uid = 1; |
| optional int64 duration_ms = 2; |
| optional string tag = 3; |
| } |
| repeated PendingTempWhitelist pending_temp_whitelist = 26; |
| |
| message SleepStatus { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional .android.os.PowerManagerInternalProto.Wakefulness wakefulness = 1; |
| repeated string sleep_tokens = 2 [ (.android.privacy).dest = DEST_EXPLICIT ]; |
| optional bool sleeping = 3; |
| optional bool shutting_down = 4; |
| optional bool test_pss_mode = 5; |
| } |
| optional SleepStatus sleep_status = 27; |
| |
| message Voice { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string session = 1; |
| optional .android.os.PowerManagerProto.WakeLock wakelock = 2; |
| } |
| optional Voice running_voice = 28; |
| |
| optional VrControllerProto vr_controller = 29; |
| |
| message DebugApp { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string debug_app = 1; |
| optional string orig_debug_app = 2; |
| optional bool debug_transient = 3; |
| optional bool orig_wait_for_debugger = 4; |
| } |
| optional DebugApp debug = 30; |
| optional AppTimeTrackerProto current_tracker = 31; |
| |
| message MemWatchProcess { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| message Process { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string name = 1; |
| |
| message MemStats { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 uid = 1; |
| optional string size = 2; |
| optional string report_to = 3; |
| } |
| repeated MemStats mem_stats = 2; |
| } |
| repeated Process procs = 1; |
| |
| message Dump { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string proc_name = 1; |
| optional string file = 2 [ (.android.privacy).dest = DEST_EXPLICIT ]; |
| optional int32 pid = 3; |
| optional int32 uid = 4; |
| } |
| optional Dump dump = 2; |
| } |
| optional MemWatchProcess mem_watch_processes = 32; |
| optional string track_allocation_app = 33; |
| |
| message Profile { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string app_name = 1; |
| optional ProcessRecordProto proc = 2; |
| optional .android.app.ProfilerInfoProto info = 3; |
| optional int32 type = 4; |
| } |
| optional Profile profile = 34; |
| optional string native_debugging_app = 35; |
| optional bool always_finish_activities = 36; |
| |
| message Controller { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string controller = 1; |
| optional bool is_a_monkey = 2; |
| } |
| optional Controller controller = 37; |
| |
| optional int32 total_persistent_procs = 38; |
| optional bool processes_ready = 39; |
| optional bool system_ready = 40; |
| optional bool booted = 41; |
| optional int32 factory_test = 42; |
| optional bool booting = 43; |
| optional bool call_finish_booting = 44; |
| optional bool boot_animation_complete = 45; |
| optional int64 last_power_check_uptime_ms = 46; |
| optional .android.os.PowerManagerProto.WakeLock going_to_sleep = 47; |
| optional .android.os.PowerManagerProto.WakeLock launching_activity = 48; |
| optional int32 adj_seq = 49; |
| optional int32 lru_seq = 50; |
| optional int32 num_non_cached_procs = 51; |
| optional int32 num_cached_hidden_procs = 52; |
| optional int32 num_service_procs = 53; |
| optional int32 new_num_service_procs = 54; |
| optional bool allow_lower_mem_level = 55; |
| optional int32 last_memory_level = 56; |
| optional int32 last_num_processes = 57; |
| optional .android.util.Duration last_idle_time = 58; |
| optional int64 low_ram_since_last_idle_ms = 59; |
| } |
| |
| message ActiveInstrumentationProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional .android.content.ComponentNameProto class = 1; |
| optional bool finished = 2; |
| repeated ProcessRecordProto running_processes = 3; |
| repeated string target_processes = 4; |
| optional .android.content.pm.ApplicationInfoProto target_info = 5; |
| optional string profile_file = 6; |
| optional string watcher = 7; |
| optional string ui_automation_connection = 8; |
| // Arguments as given to the ActiveInstrumentation object in Bundle |
| // toString format. |
| reserved 9; // arguments (in String format). |
| // Arguments as given to the ActiveInstrumentation object. |
| optional .android.os.BundleProto arguments = 10; |
| } |
| |
| // Proto definition of com.android.server.am.UidRecord.java |
| message UidRecordProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 uid = 1; |
| optional .android.app.ProcessStateEnum current = 2; |
| optional bool ephemeral = 3; |
| optional bool fg_services = 4; |
| optional bool whilelist = 5; |
| optional .android.util.Duration last_background_time = 6; |
| optional bool idle = 7; |
| |
| enum Change { |
| CHANGE_GONE = 0; |
| CHANGE_IDLE = 1; |
| CHANGE_ACTIVE = 2; |
| CHANGE_CACHED = 3; |
| CHANGE_UNCACHED = 4; |
| } |
| repeated Change last_reported_changes = 8; |
| optional int32 num_procs = 9; |
| |
| message ProcStateSequence { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int64 cururent = 1; |
| optional int64 last_network_updated = 2; |
| optional int64 last_dispatched = 3; |
| } |
| optional ProcStateSequence network_state_update = 10; |
| |
| // Next Tag: 11 |
| } |
| |
| // proto of class ImportanceToken in ActivityManagerService |
| message ImportanceTokenProto { |
| option (.android.msg_privacy).dest = DEST_EXPLICIT; |
| |
| optional int32 pid = 1; |
| optional string token = 2; |
| optional string reason = 3; |
| } |
| |
| // proto of class VrController.java |
| message VrControllerProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| enum VrMode { |
| FLAG_NON_VR_MODE = 0; |
| FLAG_VR_MODE = 1; |
| FLAG_PERSISTENT_VR_MODE = 2; |
| } |
| repeated VrMode vr_mode = 1; |
| optional int32 render_thread_id = 2; |
| } |
| |
| message ProcessOomProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional bool persistent = 1; |
| optional int32 num = 2; |
| optional string oom_adj = 3; |
| |
| // Activity manager's version of Process enum, see ProcessList.java |
| enum SchedGroup { |
| SCHED_GROUP_UNKNOWN = -1; |
| SCHED_GROUP_BACKGROUND = 0; |
| SCHED_GROUP_DEFAULT = 1; |
| SCHED_GROUP_TOP_APP = 2; |
| SCHED_GROUP_TOP_APP_BOUND = 3; |
| } |
| optional SchedGroup sched_group = 4 [ default = SCHED_GROUP_UNKNOWN]; |
| |
| oneof Foreground { |
| bool activities = 5; |
| bool services = 6; |
| } |
| |
| optional .android.app.ProcessStateEnum state = 7; |
| optional int32 trim_memory_level = 8; |
| optional ProcessRecordProto proc = 9; |
| optional string adj_type = 10; |
| |
| oneof AdjTarget { |
| .android.content.ComponentNameProto adj_target_component_name = 11; |
| string adj_target_object = 12; |
| } |
| |
| oneof AdjSource { |
| ProcessRecordProto adj_source_proc = 13; |
| string adj_source_object = 14; |
| } |
| |
| message Detail { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 max_adj = 1; |
| optional int32 cur_raw_adj = 2; |
| optional int32 set_raw_adj = 3; |
| optional int32 cur_adj = 4; |
| optional int32 set_adj = 5; |
| optional .android.app.ProcessStateEnum current_state = 7; |
| optional .android.app.ProcessStateEnum set_state = 8; |
| optional string last_pss = 9; |
| optional string last_swap_pss = 10; |
| optional string last_cached_pss = 11; |
| optional bool cached = 12; |
| optional bool empty = 13; |
| optional bool has_above_client = 14; |
| |
| // only make sense if process is a service |
| message CpuRunTime { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int64 over_ms = 1; |
| optional int64 used_ms = 2; |
| optional float ultilization = 3; // ratio of cpu time usage |
| } |
| optional CpuRunTime service_run_time = 15; |
| } |
| optional Detail detail = 15; |
| } |
| |
| message ProcessToGcProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional ProcessRecordProto proc = 1; |
| optional bool report_low_memory = 2; |
| optional int64 now_uptime_ms = 3; |
| optional int64 last_gced_ms = 4; |
| optional int64 last_low_memory_ms = 5; |
| } |
| |
| // sync with com.android.server.am.AppErrors.java |
| message AppErrorsProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int64 now_uptime_ms = 1; |
| |
| message ProcessCrashTime { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string process_name = 1; |
| |
| message Entry { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 uid = 1; |
| optional int64 last_crashed_at_ms = 2; |
| } |
| repeated Entry entries = 2; |
| } |
| repeated ProcessCrashTime process_crash_times = 2; |
| |
| message BadProcess { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string process_name = 1; |
| |
| message Entry { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 uid = 1; |
| optional int64 crashed_at_ms = 2; |
| optional string short_msg = 3; |
| optional string long_msg = 4 [ (.android.privacy).dest = DEST_EXPLICIT ]; |
| optional string stack = 5 [ (.android.privacy).dest = DEST_EXPLICIT ]; |
| } |
| repeated Entry entries = 2; |
| } |
| repeated BadProcess bad_processes = 3; |
| } |
| |
| // sync with com.android.server.am.UserState.java |
| message UserStateProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| enum State { |
| STATE_BOOTING = 0; |
| STATE_RUNNING_LOCKED = 1; |
| STATE_RUNNING_UNLOCKING = 2; |
| STATE_RUNNING_UNLOCKED = 3; |
| STATE_STOPPING = 4; |
| STATE_SHUTDOWN = 5; |
| } |
| optional State state = 1; |
| optional bool switching = 2; |
| } |
| |
| // sync with com.android.server.am.UserController.java |
| message UserControllerProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| message User { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 id = 1; |
| optional UserStateProto state = 2; |
| } |
| repeated User started_users = 1; |
| repeated int32 started_user_array = 2; |
| repeated int32 user_lru = 3; |
| |
| message UserProfile { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional int32 user = 1; |
| optional int32 profile = 2; |
| } |
| repeated UserProfile user_profile_group_ids = 4; |
| } |
| |
| // sync with com.android.server.am.AppTimeTracker.java |
| message AppTimeTrackerProto { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string receiver = 1; |
| optional int64 total_duration_ms = 2; |
| |
| message PackageTime { |
| option (.android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional string package = 1; |
| optional int64 duration_ms = 2; |
| } |
| repeated PackageTime package_times = 3; |
| |
| optional .android.util.Duration started_time = 4; |
| optional string started_package = 5; |
| } |