blob: ef777de061631882956d8a7482440be07f50197e [file] [log] [blame]
Netta P426cbef2017-02-10 14:38:39 -08001/*
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
Yi Jinc7f93072017-09-29 15:29:38 -070017syntax = "proto2";
Netta P426cbef2017-02-10 14:38:39 -080018package android.service.pm;
19
Yi Jind6759d42017-10-12 15:08:49 -070020import "frameworks/base/core/proto/android/content/featureinfo.proto";
Yi Jin0d7bc2d12018-01-23 17:35:19 -080021import "frameworks/base/libs/incident/proto/android/privacy.proto";
Yi Jind6759d42017-10-12 15:08:49 -070022
Netta P426cbef2017-02-10 14:38:39 -080023option java_multiple_files = true;
24option java_outer_classname = "PackageServiceProto";
25
26message PackageServiceDumpProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -080027 option (android.msg_privacy).dest = DEST_AUTOMATIC;
28
Netta P426cbef2017-02-10 14:38:39 -080029 message PackageShortProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -080030 option (android.msg_privacy).dest = DEST_AUTOMATIC;
31
Netta P426cbef2017-02-10 14:38:39 -080032 // Name of package. e.g. "com.android.providers.telephony".
Yi Jinc7f93072017-09-29 15:29:38 -070033 optional string name = 1;
Netta P426cbef2017-02-10 14:38:39 -080034 // UID for this package as assigned by Android OS.
Yi Jinc7f93072017-09-29 15:29:38 -070035 optional int32 uid = 2;
Netta P426cbef2017-02-10 14:38:39 -080036 }
37 message SharedLibraryProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -080038 option (android.msg_privacy).dest = DEST_AUTOMATIC;
39
Yi Jinc7f93072017-09-29 15:29:38 -070040 optional string name = 1;
Netta P426cbef2017-02-10 14:38:39 -080041 // True if library path is not null (jar), false otherwise (apk)
Yi Jinc7f93072017-09-29 15:29:38 -070042 optional bool is_jar = 2;
Netta P426cbef2017-02-10 14:38:39 -080043 // Should be filled if is_jar is true
Yi Jinc7f93072017-09-29 15:29:38 -070044 optional string path = 3;
Netta P426cbef2017-02-10 14:38:39 -080045 // Should be filled if is_jar is false
Yi Jinc7f93072017-09-29 15:29:38 -070046 optional string apk = 4;
Netta P426cbef2017-02-10 14:38:39 -080047 }
Netta P426cbef2017-02-10 14:38:39 -080048 message SharedUserProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -080049 option (android.msg_privacy).dest = DEST_AUTOMATIC;
50
Yi Jinc7f93072017-09-29 15:29:38 -070051 optional int32 user_id = 1;
Yi Jin0d7bc2d12018-01-23 17:35:19 -080052 optional string name = 2 [ (android.privacy).dest = DEST_EXPLICIT ];
Netta P426cbef2017-02-10 14:38:39 -080053 }
54
55 // Installed packages.
Yi Jinc7f93072017-09-29 15:29:38 -070056 optional PackageShortProto required_verifier_package = 1;
57 optional PackageShortProto verifier_package = 2;
Netta P426cbef2017-02-10 14:38:39 -080058 repeated SharedLibraryProto shared_libraries = 3;
Yi Jind6759d42017-10-12 15:08:49 -070059 repeated android.content.pm.FeatureInfoProto features = 4;
Netta P426cbef2017-02-10 14:38:39 -080060 repeated PackageProto packages = 5;
61 repeated SharedUserProto shared_users = 6;
62 // Messages from the settings problem file
Yi Jin0d7bc2d12018-01-23 17:35:19 -080063 repeated string messages = 7 [ (android.privacy).dest = DEST_EXPLICIT ];
Netta P426cbef2017-02-10 14:38:39 -080064}
65
66message PackageProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -080067 option (android.msg_privacy).dest = DEST_AUTOMATIC;
68
Netta P426cbef2017-02-10 14:38:39 -080069 message SplitProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -080070 option (android.msg_privacy).dest = DEST_AUTOMATIC;
71
72 // The split name of package, e.g. base
Yi Jinc7f93072017-09-29 15:29:38 -070073 optional string name = 1;
74 optional int32 revision_code = 2;
Netta P426cbef2017-02-10 14:38:39 -080075 }
76 message UserInfoProto {
Yi Jin0d7bc2d12018-01-23 17:35:19 -080077 option (android.msg_privacy).dest = DEST_AUTOMATIC;
78
Netta P426cbef2017-02-10 14:38:39 -080079 enum InstallType {
80 NOT_INSTALLED_FOR_USER = 0;
81 FULL_APP_INSTALL = 1;
82 INSTANT_APP_INSTALL = 2;
83 }
84 // Enum values gotten from PackageManger.java
85 enum EnabledState {
86 // This component or application is in its default enabled state
87 // (as specified in its manifest).
88 COMPONENT_ENABLED_STATE_DEFAULT = 0;
89 // This component or application has been explictily enabled, regardless
90 // of what it has specified in its manifest.
91 COMPONENT_ENABLED_STATE_ENABLED = 1;
92 // This component or application has been explicitly disabled, regardless of
93 // what it has specified in its manifest.
94 COMPONENT_ENABLED_STATE_DISABLED = 2;
95 // The user has explicitly disabled the application, regardless of what it has
96 // specified in its manifest.
97 COMPONENT_ENABLED_STATE_DISABLED_USER = 3;
98 // This application should be considered, until the point where the user actually
99 // wants to use it.
100 COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED = 4;
101 }
102
Yi Jinc7f93072017-09-29 15:29:38 -0700103 optional int32 id = 1;
104 optional InstallType install_type = 2;
Netta P426cbef2017-02-10 14:38:39 -0800105 // Is the app restricted by owner / admin
Yi Jinc7f93072017-09-29 15:29:38 -0700106 optional bool is_hidden = 3;
107 optional bool is_suspended = 4;
108 optional bool is_stopped = 5;
109 optional bool is_launched = 6;
110 optional EnabledState enabled_state = 7;
111 optional string last_disabled_app_caller = 8;
Netta P426cbef2017-02-10 14:38:39 -0800112 }
113
114 // Name of package. e.g. "com.android.providers.telephony".
Yi Jinc7f93072017-09-29 15:29:38 -0700115 optional string name = 1;
Netta P426cbef2017-02-10 14:38:39 -0800116 // UID for this package as assigned by Android OS.
Yi Jinc7f93072017-09-29 15:29:38 -0700117 optional int32 uid = 2;
Netta P426cbef2017-02-10 14:38:39 -0800118 // Package's reported version.
Yi Jinc7f93072017-09-29 15:29:38 -0700119 optional int32 version_code = 3;
Netta P426cbef2017-02-10 14:38:39 -0800120 // Package's reported version string (what's displayed to the user).
Yi Jinc7f93072017-09-29 15:29:38 -0700121 optional string version_string = 4;
Netta P426cbef2017-02-10 14:38:39 -0800122 // UTC timestamp of install
Yi Jinc7f93072017-09-29 15:29:38 -0700123 optional int64 install_time_ms = 5;
Netta P426cbef2017-02-10 14:38:39 -0800124 // Millisecond UTC timestamp of latest update adjusted to Google's server clock.
Yi Jinc7f93072017-09-29 15:29:38 -0700125 optional int64 update_time_ms = 6;
Netta P426cbef2017-02-10 14:38:39 -0800126 // From "dumpsys package" - name of package which installed this one.
127 // Typically "" if system app or "com.android.vending" if Play Store.
Yi Jinc7f93072017-09-29 15:29:38 -0700128 optional string installer_name = 7;
Netta P426cbef2017-02-10 14:38:39 -0800129 // Split APKs.
130 repeated SplitProto splits = 8;
131 // Per-user package info.
132 repeated UserInfoProto users = 9;
133}