1/*
2 * Copyright (C) 2021 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
17syntax = "proto3";
18
19enum Classpath {
20  UNKNOWN = 0;
21  BOOTCLASSPATH = 1;
22  SYSTEMSERVERCLASSPATH = 2;
23  DEX2OATBOOTCLASSPATH = 3;
24}
25
26// Individual entry in a classpath variable.
27message Jar {
28
29  // Path on the filesystem for the jar.
30  string path = 1;
31
32  // Environ classpath variable this jar belongs to.
33  // Must be set to a known classpath.
34  Classpath classpath = 2;
35
36  // Minimum API level required for the jar to be included on the classpath.
37  // If the system's API level is lower than the value specified in this
38  // attribute, the jar will not be included in the classpath.
39  // Not setting this attribute, defaults the value to zero and implies the jar
40  // can be used on all API levels.
41  int32 min_sdk_version = 3;
42
43  // Maximum API level that the jar file supports.
44  // Not setting this attribute implies unbound maximum; otherwise set value
45  // must be greater or equal to min_sdk value.
46  // If the system's API level is higher than the value specified in this
47  // attribute, the jar will not be included in the classpath.
48  int32 max_sdk_version = 4;
49}
50
51// Jars exported by a single partition.
52message ExportedClasspathsJars {
53
54  // All jars that are exported as part of any classpath environ variable
55  // (according to API level restrictions).
56  // The relative order of the jars is preserved upon final merging.
57  repeated Jar jars = 1;
58
59}
60