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 string postInstallHook = 4; 37 38 // Version Name 39 string versionName = 5; 40 41 // Signals whenever this APEX doesn't contain any executable code. 42 // If this field is set to true, then apexd will mount this apex 43 // with MS_NOEXEC flag. 44 bool noCode = 6; 45 46 // List of native libs which can be used by other apexes or system. 47 repeated string provideNativeLibs = 7; 48 49 // List of native libs which this apex uses from other apexes or system. 50 repeated string requireNativeLibs = 8; 51 52 // List of JNI libs. 53 // linkerconfig/libnativeloader use this field so that java libraries can 54 // load JNI libraries in the same apex. 55 // This is supposed to be filled by the build system with libraries which are 56 // marked as "is_jni: true" from the list of "native_shared_libs". 57 repeated string jniLibs = 9; 58 59 // List of libs required that are located in a shared libraries APEX. 60 // Format of the content is 'library:hash'. 61 // Example) libc++.so:83d8f50... 62 repeated string requireSharedApexLibs = 10; 63 64 // Whether this APEX provides libraries to be shared with other APEXs. This 65 // causes libraries contained in the APEX to be made available under 66 // /apex/sharedlibs . 67 bool provideSharedApexLibs = 11; 68 69 message CompressedApexMetadata { 70 71 // Valid only for compressed APEX. This field contains the root digest of 72 // the original_apex contained inside CAPEX. 73 string originalApexDigest = 1; 74 } 75 76 // Exists only for compressed APEX 77 CompressedApexMetadata capexMetadata = 12; 78 79 // Indicates that this APEX can be updated without rebooting device. 80 bool supportsRebootlessUpdate = 13; 81} 82 83