android_system_core/fs_mgr/libvbmeta/Android.bp
Kaiwen Szu 6dd098cb1e Construct the super_vbmeta image
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
2019-09-19 12:05:09 +08:00

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",
],
}