/* * 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"; package android.microdroid; option java_package = "com.android.virt"; option java_outer_classname = "PayloadMetadataProtos"; // Metadata is the body of the "metadata" partition message Metadata { uint32 version = 1; repeated ApexPayload apexes = 2; ApkPayload apk = 3; oneof payload { // Path to JSON config file inside the APK. string config_path = 4; PayloadConfig config = 5; } } message ApexPayload { // Next id: 9 // Required. string name = 1; string partition_name = 2; // Optional. // When specified, apex payload should be verified against these values. bytes public_key = 3; bytes root_digest = 4; int64 manifest_version = 7; string manifest_name = 8; // Required. // The timestamp in seconds when the APEX was last updated. This should match the value in // apex-info-list.xml. uint64 last_update_seconds = 5; // Required. // Whether the APEX is a factory version or not. bool is_factory = 6; } message ApkPayload { // Required. // The name of APK. string name = 1; string payload_partition_name = 2; string idsig_partition_name = 3; } message PayloadConfig { // Required. // Name of the payload binary file inside the APK. string payload_binary_name = 1; // Optional. // The number of extra APKs that are present. uint32 extra_apk_count = 2; }