/* * 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 android.service.pm; import "frameworks/base/core/proto/android/content/featureinfo.proto"; import "frameworks/base/core/proto/android/privacy.proto"; option java_multiple_files = true; option java_outer_classname = "PackageServiceProto"; message PackageServiceDumpProto { option (android.msg_privacy).dest = DEST_AUTOMATIC; message PackageShortProto { option (android.msg_privacy).dest = DEST_AUTOMATIC; // Name of package. e.g. "com.android.providers.telephony". optional string name = 1; // UID for this package as assigned by Android OS. optional int32 uid = 2; } message SharedLibraryProto { option (android.msg_privacy).dest = DEST_AUTOMATIC; optional string name = 1; // True if library path is not null (jar), false otherwise (apk) optional bool is_jar = 2; // Should be filled if is_jar is true optional string path = 3; // Should be filled if is_jar is false optional string apk = 4; } message SharedUserProto { option (android.msg_privacy).dest = DEST_AUTOMATIC; optional int32 uid = 1; // Name of the shared UID. eg: android.uid.bluetooth optional string name = 2; } // Installed packages. optional PackageShortProto required_verifier_package = 1; optional PackageShortProto verifier_package = 2; repeated SharedLibraryProto shared_libraries = 3; repeated android.content.pm.FeatureInfoProto features = 4; repeated PackageProto packages = 5; repeated SharedUserProto shared_users = 6; // Messages from the settings problem file repeated string messages = 7 [ (android.privacy).dest = DEST_EXPLICIT ]; } message PackageProto { option (android.msg_privacy).dest = DEST_AUTOMATIC; message SplitProto { option (android.msg_privacy).dest = DEST_AUTOMATIC; // The split name of package, e.g. base optional string name = 1; optional int32 revision_code = 2; } message UserInfoProto { option (android.msg_privacy).dest = DEST_AUTOMATIC; enum InstallType { NOT_INSTALLED_FOR_USER = 0; FULL_APP_INSTALL = 1; INSTANT_APP_INSTALL = 2; } // Enum values gotten from PackageManger.java enum EnabledState { // This component or application is in its default enabled state // (as specified in its manifest). COMPONENT_ENABLED_STATE_DEFAULT = 0; // This component or application has been explictily enabled, regardless // of what it has specified in its manifest. COMPONENT_ENABLED_STATE_ENABLED = 1; // This component or application has been explicitly disabled, regardless of // what it has specified in its manifest. COMPONENT_ENABLED_STATE_DISABLED = 2; // The user has explicitly disabled the application, regardless of what it has // specified in its manifest. COMPONENT_ENABLED_STATE_DISABLED_USER = 3; // This application should be considered, until the point where the user actually // wants to use it. COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED = 4; } optional int32 id = 1; optional InstallType install_type = 2; // Is the app restricted by owner / admin optional bool is_hidden = 3; optional bool is_suspended = 4; optional bool is_stopped = 5; optional bool is_launched = 6; optional EnabledState enabled_state = 7; optional string last_disabled_app_caller = 8; optional string suspending_package = 9; optional int32 distraction_flags = 10; } // Name of package. e.g. "com.android.providers.telephony". optional string name = 1; // UID for this package as assigned by Android OS. optional int32 uid = 2; // Package's reported version. optional int32 version_code = 3; // Package's reported version string (what's displayed to the user). optional string version_string = 4; // UTC timestamp of install optional int64 install_time_ms = 5; // Millisecond UTC timestamp of latest update adjusted to Google's server clock. optional int64 update_time_ms = 6; // From "dumpsys package" - name of package which installed this one. // Typically "" if system app or "com.android.vending" if Play Store. optional string installer_name = 7; // Split APKs. repeated SplitProto splits = 8; // Per-user package info. repeated UserInfoProto users = 9; }