This commit constructs the super_vbmeta image to eliminate the need of adding /vbmeta_system and/or /vbmeta_vendor when AVB chain partition is used with Android Dynamic Partition. See BOARD_AVB_VBMETA_SYSTEM under the link: https://android.googlesource.com/platform/external/avb/#build-system-integration The structure of super_vbmeta : | VBMeta Table | (fixed-length 2KiB) | Backup VBMeta Table | (fixed-length 2KiB) | VBMeta Images | (fixed-length 64KiB each) The structure of VBMeta Table : | Super VBMeta Header | (fixed-length 128B) | VBMeta Descriptors | (variable-length) The VBMeta Table records the slot number of each vbmeta image within the /super_vbmeta partition. Bug: 137054296 Test: m libvbmeta_test Test: ./out/host/linux-x86/nativetest/libvbmeta_test/libvbmeta_test Change-Id: I01aeadd850750ae87d9125484c1b1f570bb84756
52 lines
No EOL
1.2 KiB
Text
52 lines
No EOL
1.2 KiB
Text
//
|
|
// Copyright (C) 2019 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.
|
|
//
|
|
|
|
libvbmeta_lib_deps = [
|
|
"libbase",
|
|
"libcrypto",
|
|
]
|
|
|
|
cc_library {
|
|
name: "libvbmeta",
|
|
host_supported: true,
|
|
srcs: [
|
|
"builder.cpp",
|
|
"reader.cpp",
|
|
"utility.cpp",
|
|
"writer.cpp",
|
|
],
|
|
shared_libs: [
|
|
"liblog",
|
|
] + libvbmeta_lib_deps,
|
|
export_include_dirs: ["include"],
|
|
}
|
|
|
|
cc_test_host {
|
|
name: "libvbmeta_test",
|
|
static_libs: [
|
|
"libsparse",
|
|
"libvbmeta",
|
|
"libz",
|
|
] + libvbmeta_lib_deps,
|
|
srcs: [
|
|
"builder_test.cpp",
|
|
"super_vbmeta_test.cpp",
|
|
],
|
|
required: [
|
|
"avbtool",
|
|
"vbmake",
|
|
],
|
|
} |