1/* 2 * Copyright (C) 2018 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 19package apex.proto; 20 21option java_package = "com.android.apex"; 22option java_outer_classname = "Protos"; 23 24message ApexManifest { 25 26 // Package Name 27 string name = 1; 28 29 // Version Number 30 int64 version = 2; 31 32 // Pre Install Hook 33 string preInstallHook = 3; 34 35 // Post Install Hook 36 // This feature is not supported. 37 string postInstallHook = 4 [ deprecated = true ]; 38 39 // Version Name 40 string versionName = 5; 41 42 // Signals whenever this APEX doesn't contain any executable code. 43 // If this field is set to true, then apexd will mount this apex 44 // with MS_NOEXEC flag. 45 bool noCode = 6; 46 47 // List of native libs which can be used by other apexes or system. 48 repeated string provideNativeLibs = 7; 49 50 // List of native libs which this apex uses from other apexes or system. 51 repeated string requireNativeLibs = 8; 52 53 // List of JNI libs. 54 // linkerconfig/libnativeloader use this field so that java libraries can 55 // load JNI libraries in the same apex. 56 // This is supposed to be filled by the build system with libraries which are 57 // marked as "is_jni: true" from the list of "native_shared_libs". 58 repeated string jniLibs = 9; 59 60 // List of libs required that are located in a shared libraries APEX. The 61 // Android platform only checks whether this list is non-empty, and by default 62 // the Android build system never sets this. This field can be used when 63 // producing or processing an APEX using libraries in /apex/sharedlibs (see 64 // `provideSharedApexLibs` field) to store some information about the 65 // libraries. 66 repeated string requireSharedApexLibs = 10; 67 68 // Whether this APEX provides libraries to be shared with other APEXs. This 69 // causes libraries contained in the APEX to be made available under 70 // /apex/sharedlibs . 71 bool provideSharedApexLibs = 11; 72 73 message CompressedApexMetadata { 74 75 // Valid only for compressed APEX. This field contains the root digest of 76 // the original_apex contained inside CAPEX. 77 string originalApexDigest = 1; 78 } 79 80 // Exists only for compressed APEX 81 CompressedApexMetadata capexMetadata = 12; 82 83 // Indicates that this APEX can be updated without rebooting device. 84 bool supportsRebootlessUpdate = 13; 85} 86