Home | History | Annotate | Download | only in service
      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 
     17 syntax = "proto2";
     18 package android.service.pm;
     19 
     20 import "frameworks/base/core/proto/android/content/featureinfo.proto";
     21 import "frameworks/base/core/proto/android/privacy.proto";
     22 
     23 option java_multiple_files = true;
     24 option java_outer_classname = "PackageServiceProto";
     25 
     26 message PackageServiceDumpProto {
     27     option (android.msg_privacy).dest = DEST_AUTOMATIC;
     28 
     29     message PackageShortProto {
     30         option (android.msg_privacy).dest = DEST_AUTOMATIC;
     31 
     32         // Name of package. e.g. "com.android.providers.telephony".
     33         optional string name = 1;
     34         // UID for this package as assigned by Android OS.
     35         optional int32 uid = 2;
     36     }
     37     message SharedLibraryProto {
     38         option (android.msg_privacy).dest = DEST_AUTOMATIC;
     39 
     40         optional string name = 1;
     41         // True if library path is not null (jar), false otherwise (apk)
     42         optional bool is_jar = 2;
     43         // Should be filled if is_jar is true
     44         optional string path = 3;
     45         // Should be filled if is_jar is false
     46         optional string apk = 4;
     47     }
     48     message SharedUserProto {
     49         option (android.msg_privacy).dest = DEST_AUTOMATIC;
     50 
     51         optional int32 uid = 1;
     52         // Name of the shared UID. eg: android.uid.bluetooth
     53         optional string name = 2;
     54     }
     55 
     56     // Installed packages.
     57     optional PackageShortProto required_verifier_package = 1;
     58     optional PackageShortProto verifier_package = 2;
     59     repeated SharedLibraryProto shared_libraries = 3;
     60     repeated android.content.pm.FeatureInfoProto features = 4;
     61     repeated PackageProto packages = 5;
     62     repeated SharedUserProto shared_users = 6;
     63     // Messages from the settings problem file
     64     repeated string messages = 7 [ (android.privacy).dest = DEST_EXPLICIT ];
     65 }
     66 
     67 message PackageProto {
     68     option (android.msg_privacy).dest = DEST_AUTOMATIC;
     69 
     70     message SplitProto {
     71         option (android.msg_privacy).dest = DEST_AUTOMATIC;
     72 
     73         // The split name of package, e.g. base
     74         optional string name = 1;
     75         optional int32 revision_code = 2;
     76     }
     77     message UserInfoProto {
     78         option (android.msg_privacy).dest = DEST_AUTOMATIC;
     79 
     80         enum InstallType {
     81             NOT_INSTALLED_FOR_USER = 0;
     82             FULL_APP_INSTALL = 1;
     83             INSTANT_APP_INSTALL = 2;
     84         }
     85         // Enum values gotten from PackageManger.java
     86         enum EnabledState {
     87             // This component or application is in its default enabled state
     88             // (as specified in its manifest).
     89             COMPONENT_ENABLED_STATE_DEFAULT = 0;
     90             // This component or application has been explictily enabled, regardless
     91             // of what it has specified in its manifest.
     92             COMPONENT_ENABLED_STATE_ENABLED = 1;
     93             // This component or application has been explicitly disabled, regardless of
     94             // what it has specified in its manifest.
     95             COMPONENT_ENABLED_STATE_DISABLED = 2;
     96             // The user has explicitly disabled the application, regardless of what it has
     97             // specified in its manifest.
     98             COMPONENT_ENABLED_STATE_DISABLED_USER = 3;
     99             // This application should be considered, until the point where the user actually
    100             // wants to use it.
    101             COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED = 4;
    102         }
    103 
    104         optional int32 id = 1;
    105         optional InstallType install_type = 2;
    106         // Is the app restricted by owner / admin
    107         optional bool is_hidden = 3;
    108         optional bool is_suspended = 4;
    109         optional bool is_stopped = 5;
    110         optional bool is_launched = 6;
    111         optional EnabledState enabled_state = 7;
    112         optional string last_disabled_app_caller = 8;
    113         optional string suspending_package = 9;
    114         optional int32 distraction_flags = 10;
    115     }
    116 
    117     // Name of package. e.g. "com.android.providers.telephony".
    118     optional string name = 1;
    119     // UID for this package as assigned by Android OS.
    120     optional int32 uid = 2;
    121     // Package's reported version.
    122     optional int32 version_code = 3;
    123     // Package's reported version string (what's displayed to the user).
    124     optional string version_string = 4;
    125     // UTC timestamp of install
    126     optional int64 install_time_ms = 5;
    127     // Millisecond UTC timestamp of latest update adjusted to Google's server clock.
    128     optional int64 update_time_ms = 6;
    129     // From "dumpsys package" - name of package which installed this one.
    130     // Typically "" if system app or "com.android.vending" if Play Store.
    131     optional string installer_name = 7;
    132     // Split APKs.
    133     repeated SplitProto splits = 8;
    134     // Per-user package info.
    135     repeated UserInfoProto users = 9;
    136 }
    137