blob: 889842ccc99e9989186f7ee5e3a322f319101892 [file] [log] [blame]
/*
* 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";
import "frameworks/base/core/proto/android/app/notification.proto";
import "frameworks/base/core/proto/android/content/intent.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/graphics/rect.proto";
import "frameworks/base/core/proto/android/os/looper.proto";
import "frameworks/base/core/proto/android/util/common.proto";
package com.android.server.am.proto;
option java_multiple_files = true;
message ActivityManagerServiceProto {
optional ActivityStackSupervisorProto activities = 1;
optional BroadcastProto broadcasts = 2;
optional ActiveServicesProto services = 3;
optional ProcessProto processes = 4;
}
// "dumpsys activity --proto activities"
message ActivityStackSupervisorProto {
optional .com.android.server.wm.proto.ConfigurationContainerProto configuration_container = 1;
repeated ActivityDisplayProto displays = 2;
optional KeyguardControllerProto keyguard_controller = 3;
optional int32 focused_stack_id = 4;
optional .com.android.server.wm.proto.IdentifierProto resumed_activity = 5;
}
/* represents ActivityStackSupervisor.ActivityDisplay */
message ActivityDisplayProto {
optional .com.android.server.wm.proto.ConfigurationContainerProto configuration_container = 1;
optional int32 id = 2;
repeated ActivityStackProto stacks = 3;
}
message ActivityStackProto {
optional .com.android.server.wm.proto.ConfigurationContainerProto configuration_container = 1;
optional int32 id = 2;
repeated TaskRecordProto tasks = 3;
optional .com.android.server.wm.proto.IdentifierProto resumed_activity = 4;
optional int32 display_id = 5;
optional bool fullscreen = 6;
optional .android.graphics.RectProto bounds = 7;
}
message TaskRecordProto {
optional .com.android.server.wm.proto.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 {
optional .com.android.server.wm.proto.ConfigurationContainerProto configuration_container = 1;
optional .com.android.server.wm.proto.IdentifierProto identifier = 2;
optional string state = 3;
optional bool visible = 4;
optional bool front_of_task = 5;
optional int32 proc_id = 6;
}
message KeyguardControllerProto {
optional bool keyguard_showing = 1;
optional bool keyguard_occluded = 2;
}
// "dumpsys activity --proto broadcasts"
message BroadcastProto {
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 {
optional string handler = 1;
optional .android.os.LooperProto looper = 2;
}
optional MainHandler handler = 5;
}
message ReceiverListProto {
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;
optional string hex_hash = 8; // this hash is used to find the object in IntentResolver
}
message ProcessRecordProto {
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;
}
message BroadcastRecordProto {
optional int32 user_id = 1;
optional string intent_action = 2;
}
message BroadcastFilterProto {
optional .android.content.IntentFilterProto intent_filter = 1;
optional string required_permission = 2;
optional string hex_hash = 3; // used to find the object in IntentResolver
optional int32 owning_user_id = 4;
}
message BroadcastQueueProto {
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 {
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 StickyBroadcastProto {
optional int32 user = 1;
message StickyAction {
optional string name = 1;
repeated .android.content.IntentProto intents = 2;
}
repeated StickyAction actions = 2;
}
// "dumpsys activity --proto service"
message ActiveServicesProto {
message ServicesByUser {
optional int32 user_id = 1;
repeated ServiceRecordProto service_records = 2;
}
repeated ServicesByUser services_by_users = 1;
}
// corresponds to ActivityManagerService.GrantUri Java class
message GrantUriProto {
optional int32 source_user_id = 1;
optional string uri = 2;
}
message NeededUriGrantsProto {
optional string target_package = 1;
optional int32 target_uid = 2;
optional int32 flags = 3;
repeated GrantUriProto grants = 4;
}
message UriPermissionOwnerProto {
optional string owner = 1;
repeated GrantUriProto read_perms = 2;
repeated GrantUriProto write_perms = 3;
}
message ServiceRecordProto {
optional string short_name = 1;
optional string hex_hash = 2;
optional bool is_running = 3; // false if the application service is null
optional int32 pid = 4;
optional .android.content.IntentProto intent = 5;
optional string package_name = 6;
optional string process_name = 7;
optional string permission = 8;
message AppInfo {
optional string base_dir = 1;
optional string res_dir = 2;
optional string data_dir = 3;
}
optional AppInfo appinfo = 9;
optional ProcessRecordProto app = 10;
optional ProcessRecordProto isolated_proc = 11;
optional bool whitelist_manager = 12;
optional bool delayed = 13;
message Foreground {
optional int32 id = 1;
optional .android.app.NotificationProto notification = 2;
}
optional Foreground foreground = 14;
optional .android.util.Duration create_real_time = 15;
optional .android.util.Duration starting_bg_timeout = 16;
optional .android.util.Duration last_activity_time = 17;
optional .android.util.Duration restart_time = 18;
optional bool created_from_fg = 19;
// variables used to track states related to service start
message Start {
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 = 20;
message ExecuteNesting {
optional int32 execute_nesting = 1;
optional bool execute_fg = 2;
optional .android.util.Duration executing_start = 3;
}
optional ExecuteNesting execute = 21;
optional .android.util.Duration destory_time = 22;
message Crash {
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 = 23;
message StartItemProto {
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 StartItemProto delivered_starts = 24;
repeated StartItemProto pending_starts = 25;
repeated IntentBindRecordProto bindings = 26;
repeated ConnectionRecordProto connections = 27;
}
message ConnectionRecordProto {
optional string hex_hash = 1;
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_WAKE = 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;
optional string conn_hex_hash = 5;
}
message AppBindRecordProto {
optional string hex_hash = 1;
optional ProcessRecordProto client = 2;
repeated ConnectionRecordProto connections = 3;
}
message IntentBindRecordProto {
optional string hex_hash = 1;
optional bool is_create = 2;
optional .android.content.IntentProto intent = 3;
optional string binder = 4;
optional bool requested = 5;
optional bool received = 6;
optional bool has_bound = 7;
optional bool do_rebind = 8;
repeated AppBindRecordProto apps = 9;
}
// TODO: "dumpsys activity --proto processes"
message ProcessProto {
}