blob: e47fc8353baee9336ee30afd1c3d347b457d24aa [file] [log] [blame]
/*
* 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;
}