Files
android_packages_modules_co…/proto/classpaths.proto
Jiakai Zhang 89b88df157 Add STANDALONE_SYSTEMSERVER_JARS to classpath.proto.
This is an environment variable that lists the jars that system server
loads dynamically using separate classloaders. The list is derived from
PRODUCT_STANDALONE_SYSTEM_SERVER_JARS and
PRODUCT_APEX_PRODUCT_STANDALONE_SYSTEM_SERVER_JARS in Makefile. It will
be comsumed by odrefresh to determine what jars to preopt on early boot.

Note that the variable should not end with "CLASSPATH" because the list
is not used by runtime as a classpath. It is just a colon-separated list
of jars. System server loads the jars separately with paths hardcoded in
the code.

Bug: 203198541
Test: manual - 1. Build an image.
  2. Flash the image to a device.
  3. adb shell echo \$STANDALONE_SYSTEMSERVER_JARS
  4. See the correct list of jars.
Change-Id: I5a9653c606969aaa8083e8c8daa9d48b99663790
2021-11-25 10:48:25 +00:00

59 lines
1.9 KiB
Protocol Buffer

/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
syntax = "proto3";
enum Classpath {
UNKNOWN = 0;
BOOTCLASSPATH = 1;
SYSTEMSERVERCLASSPATH = 2;
DEX2OATBOOTCLASSPATH = 3;
STANDALONE_SYSTEMSERVER_JARS = 4;
}
// Individual entry in a classpath variable.
message Jar {
// Path on the filesystem for the jar.
string path = 1;
// Environ classpath variable this jar belongs to.
// Must be set to a known classpath.
Classpath classpath = 2;
// Minimum API level required for the jar to be included on the classpath.
// If the system's API level is lower than the value specified in this
// attribute, the jar will not be included in the classpath.
// Not setting this attribute implies the jar can be used on all API levels.
string min_sdk_version = 3;
// Maximum API level that the jar file supports.
// If the system's API level is higher than the value specified in this
// attribute, the jar will not be included in the classpath.
// Not setting this attribute implies unbound maximum.
string max_sdk_version = 4;
}
// Jars exported by a single partition.
message ExportedClasspathsJars {
// All jars that are exported as part of any classpath environ variable
// (according to API level restrictions).
// The relative order of the jars is preserved upon final merging.
repeated Jar jars = 1;
}