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