Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 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 | |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 17 | syntax = "proto2"; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 18 | package android.service.pm; |
| 19 | |
Yi Jin | d6759d4 | 2017-10-12 15:08:49 -0700 | [diff] [blame] | 20 | import "frameworks/base/core/proto/android/content/featureinfo.proto"; |
Yi Jin | 0d7bc2d1 | 2018-01-23 17:35:19 -0800 | [diff] [blame] | 21 | import "frameworks/base/libs/incident/proto/android/privacy.proto"; |
Yi Jin | d6759d4 | 2017-10-12 15:08:49 -0700 | [diff] [blame] | 22 | |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 23 | option java_multiple_files = true; |
| 24 | option java_outer_classname = "PackageServiceProto"; |
| 25 | |
| 26 | message PackageServiceDumpProto { |
Yi Jin | 0d7bc2d1 | 2018-01-23 17:35:19 -0800 | [diff] [blame] | 27 | option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| 28 | |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 29 | message PackageShortProto { |
Yi Jin | 0d7bc2d1 | 2018-01-23 17:35:19 -0800 | [diff] [blame] | 30 | option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| 31 | |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 32 | // Name of package. e.g. "com.android.providers.telephony". |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 33 | optional string name = 1; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 34 | // UID for this package as assigned by Android OS. |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 35 | optional int32 uid = 2; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 36 | } |
| 37 | message SharedLibraryProto { |
Yi Jin | 0d7bc2d1 | 2018-01-23 17:35:19 -0800 | [diff] [blame] | 38 | option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| 39 | |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 40 | optional string name = 1; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 41 | // True if library path is not null (jar), false otherwise (apk) |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 42 | optional bool is_jar = 2; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 43 | // Should be filled if is_jar is true |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 44 | optional string path = 3; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 45 | // Should be filled if is_jar is false |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 46 | optional string apk = 4; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 47 | } |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 48 | message SharedUserProto { |
Yi Jin | 0d7bc2d1 | 2018-01-23 17:35:19 -0800 | [diff] [blame] | 49 | option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| 50 | |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 51 | optional int32 user_id = 1; |
Kweku Adams | 30c1ce2 | 2018-02-07 14:31:00 -0800 | [diff] [blame] | 52 | // Name of the shared UID. eg: android.uid.bluetooth |
| 53 | optional string name = 2; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 54 | } |
| 55 | |
| 56 | // Installed packages. |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 57 | optional PackageShortProto required_verifier_package = 1; |
| 58 | optional PackageShortProto verifier_package = 2; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 59 | repeated SharedLibraryProto shared_libraries = 3; |
Yi Jin | d6759d4 | 2017-10-12 15:08:49 -0700 | [diff] [blame] | 60 | repeated android.content.pm.FeatureInfoProto features = 4; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 61 | repeated PackageProto packages = 5; |
| 62 | repeated SharedUserProto shared_users = 6; |
| 63 | // Messages from the settings problem file |
Yi Jin | 0d7bc2d1 | 2018-01-23 17:35:19 -0800 | [diff] [blame] | 64 | repeated string messages = 7 [ (android.privacy).dest = DEST_EXPLICIT ]; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 65 | } |
| 66 | |
| 67 | message PackageProto { |
Yi Jin | 0d7bc2d1 | 2018-01-23 17:35:19 -0800 | [diff] [blame] | 68 | option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| 69 | |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 70 | message SplitProto { |
Yi Jin | 0d7bc2d1 | 2018-01-23 17:35:19 -0800 | [diff] [blame] | 71 | option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| 72 | |
| 73 | // The split name of package, e.g. base |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 74 | optional string name = 1; |
| 75 | optional int32 revision_code = 2; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 76 | } |
| 77 | message UserInfoProto { |
Yi Jin | 0d7bc2d1 | 2018-01-23 17:35:19 -0800 | [diff] [blame] | 78 | option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| 79 | |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 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 | |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 104 | optional int32 id = 1; |
| 105 | optional InstallType install_type = 2; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 106 | // Is the app restricted by owner / admin |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 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; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 113 | } |
| 114 | |
| 115 | // Name of package. e.g. "com.android.providers.telephony". |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 116 | optional string name = 1; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 117 | // UID for this package as assigned by Android OS. |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 118 | optional int32 uid = 2; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 119 | // Package's reported version. |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 120 | optional int32 version_code = 3; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 121 | // Package's reported version string (what's displayed to the user). |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 122 | optional string version_string = 4; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 123 | // UTC timestamp of install |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 124 | optional int64 install_time_ms = 5; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 125 | // Millisecond UTC timestamp of latest update adjusted to Google's server clock. |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 126 | optional int64 update_time_ms = 6; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 127 | // From "dumpsys package" - name of package which installed this one. |
| 128 | // Typically "" if system app or "com.android.vending" if Play Store. |
Yi Jin | c7f9307 | 2017-09-29 15:29:38 -0700 | [diff] [blame] | 129 | optional string installer_name = 7; |
Netta P | 426cbef | 2017-02-10 14:38:39 -0800 | [diff] [blame] | 130 | // Split APKs. |
| 131 | repeated SplitProto splits = 8; |
| 132 | // Per-user package info. |
| 133 | repeated UserInfoProto users = 9; |
| 134 | } |