xref: /aosp_15_r20/system/apex/proto/apex_manifest.proto (revision 33f3758387333dbd2962d7edbd98681940d895da)
1*33f37583SAndroid Build Coastguard Worker/*
2*33f37583SAndroid Build Coastguard Worker * Copyright (C) 2018 The Android Open Source Project
3*33f37583SAndroid Build Coastguard Worker *
4*33f37583SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
5*33f37583SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
6*33f37583SAndroid Build Coastguard Worker * You may obtain a copy of the License at
7*33f37583SAndroid Build Coastguard Worker *
8*33f37583SAndroid Build Coastguard Worker *      http://www.apache.org/licenses/LICENSE-2.0
9*33f37583SAndroid Build Coastguard Worker *
10*33f37583SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
11*33f37583SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
12*33f37583SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*33f37583SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
14*33f37583SAndroid Build Coastguard Worker * limitations under the License.
15*33f37583SAndroid Build Coastguard Worker */
16*33f37583SAndroid Build Coastguard Worker
17*33f37583SAndroid Build Coastguard Workersyntax = "proto3";
18*33f37583SAndroid Build Coastguard Worker
19*33f37583SAndroid Build Coastguard Workerpackage apex.proto;
20*33f37583SAndroid Build Coastguard Worker
21*33f37583SAndroid Build Coastguard Workeroption java_package = "com.android.apex";
22*33f37583SAndroid Build Coastguard Workeroption java_outer_classname = "Protos";
23*33f37583SAndroid Build Coastguard Worker
24*33f37583SAndroid Build Coastguard Workermessage ApexManifest {
25*33f37583SAndroid Build Coastguard Worker
26*33f37583SAndroid Build Coastguard Worker  // APEX Name. Note that this can be different from what PackageManager sees.
27*33f37583SAndroid Build Coastguard Worker  // This is used to identify an APEX and to mount under /apex directory.
28*33f37583SAndroid Build Coastguard Worker  string name = 1;
29*33f37583SAndroid Build Coastguard Worker
30*33f37583SAndroid Build Coastguard Worker  // Version Number
31*33f37583SAndroid Build Coastguard Worker  int64 version = 2;
32*33f37583SAndroid Build Coastguard Worker
33*33f37583SAndroid Build Coastguard Worker  // Pre Install Hook
34*33f37583SAndroid Build Coastguard Worker  string preInstallHook = 3;
35*33f37583SAndroid Build Coastguard Worker
36*33f37583SAndroid Build Coastguard Worker  // Post Install Hook
37*33f37583SAndroid Build Coastguard Worker  // This feature is not supported.
38*33f37583SAndroid Build Coastguard Worker  string postInstallHook = 4 [ deprecated = true ];
39*33f37583SAndroid Build Coastguard Worker
40*33f37583SAndroid Build Coastguard Worker  // Version Name
41*33f37583SAndroid Build Coastguard Worker  string versionName = 5;
42*33f37583SAndroid Build Coastguard Worker
43*33f37583SAndroid Build Coastguard Worker  // Signals whenever this APEX doesn't contain any executable code.
44*33f37583SAndroid Build Coastguard Worker  // If this field is set to true, then apexd will mount this apex
45*33f37583SAndroid Build Coastguard Worker  // with MS_NOEXEC flag.
46*33f37583SAndroid Build Coastguard Worker  bool noCode = 6;
47*33f37583SAndroid Build Coastguard Worker
48*33f37583SAndroid Build Coastguard Worker  // List of native libs which can be used by other apexes or system.
49*33f37583SAndroid Build Coastguard Worker  repeated string provideNativeLibs = 7;
50*33f37583SAndroid Build Coastguard Worker
51*33f37583SAndroid Build Coastguard Worker  // List of native libs which this apex uses from other apexes or system.
52*33f37583SAndroid Build Coastguard Worker  repeated string requireNativeLibs = 8;
53*33f37583SAndroid Build Coastguard Worker
54*33f37583SAndroid Build Coastguard Worker  // List of JNI libs.
55*33f37583SAndroid Build Coastguard Worker  // linkerconfig/libnativeloader use this field so that java libraries can
56*33f37583SAndroid Build Coastguard Worker  // load JNI libraries in the same apex.
57*33f37583SAndroid Build Coastguard Worker  // This is supposed to be filled by the build system with libraries which are
58*33f37583SAndroid Build Coastguard Worker  // marked as "is_jni: true" from the list of "native_shared_libs".
59*33f37583SAndroid Build Coastguard Worker  repeated string jniLibs = 9;
60*33f37583SAndroid Build Coastguard Worker
61*33f37583SAndroid Build Coastguard Worker  // List of libs required that are located in a shared libraries APEX.  The
62*33f37583SAndroid Build Coastguard Worker  // Android platform only checks whether this list is non-empty, and by default
63*33f37583SAndroid Build Coastguard Worker  // the Android build system never sets this. This field can be used when
64*33f37583SAndroid Build Coastguard Worker  // producing or processing an APEX using libraries in /apex/sharedlibs (see
65*33f37583SAndroid Build Coastguard Worker  // `provideSharedApexLibs` field) to store some information about the
66*33f37583SAndroid Build Coastguard Worker  // libraries.
67*33f37583SAndroid Build Coastguard Worker  repeated string requireSharedApexLibs = 10;
68*33f37583SAndroid Build Coastguard Worker
69*33f37583SAndroid Build Coastguard Worker  // Whether this APEX provides libraries to be shared with other APEXs. This
70*33f37583SAndroid Build Coastguard Worker  // causes libraries contained in the APEX to be made available under
71*33f37583SAndroid Build Coastguard Worker  // /apex/sharedlibs .
72*33f37583SAndroid Build Coastguard Worker  bool provideSharedApexLibs = 11;
73*33f37583SAndroid Build Coastguard Worker
74*33f37583SAndroid Build Coastguard Worker  message CompressedApexMetadata {
75*33f37583SAndroid Build Coastguard Worker
76*33f37583SAndroid Build Coastguard Worker    // Valid only for compressed APEX. This field contains the root digest of
77*33f37583SAndroid Build Coastguard Worker    // the original_apex contained inside CAPEX.
78*33f37583SAndroid Build Coastguard Worker    string originalApexDigest = 1;
79*33f37583SAndroid Build Coastguard Worker  }
80*33f37583SAndroid Build Coastguard Worker
81*33f37583SAndroid Build Coastguard Worker  // Exists only for compressed APEX
82*33f37583SAndroid Build Coastguard Worker  CompressedApexMetadata capexMetadata = 12;
83*33f37583SAndroid Build Coastguard Worker
84*33f37583SAndroid Build Coastguard Worker  // Indicates that this APEX can be updated without rebooting device.
85*33f37583SAndroid Build Coastguard Worker  bool supportsRebootlessUpdate = 13;
86*33f37583SAndroid Build Coastguard Worker
87*33f37583SAndroid Build Coastguard Worker  // VNDK version for apexes depending on a specific version of VNDK libs.
88*33f37583SAndroid Build Coastguard Worker  string vndkVersion = 14;
89*33f37583SAndroid Build Coastguard Worker
90*33f37583SAndroid Build Coastguard Worker  // Deprecated.
91*33f37583SAndroid Build Coastguard Worker  // Whether this vendor APEX needs to be activated in bootstrap phase.
92*33f37583SAndroid Build Coastguard Worker  // For new APEX, please use `bootstrap` instead.
93*33f37583SAndroid Build Coastguard Worker  // Vendor APEX become bootstrap APEX if either `vendorBootstrap`
94*33f37583SAndroid Build Coastguard Worker  // or `bootstrap` is set to true.
95*33f37583SAndroid Build Coastguard Worker  bool vendorBootstrap = 15 [ deprecated = true ];
96*33f37583SAndroid Build Coastguard Worker
97*33f37583SAndroid Build Coastguard Worker  // Whether this APEX needs to be activated in bootstrap phase.
98*33f37583SAndroid Build Coastguard Worker  bool bootstrap = 16;
99*33f37583SAndroid Build Coastguard Worker}
100