platform_system_vold/Android.bp
Sean Keys 8452f41d4a Add command for setting the key binding seed
The seed value is passed to vold early in startup so that the
key-encryption keys are bound to the seed. This is useful for systems
like auto, in which the Android device may not require credentials to
use. In that case, the device should be bound to the rest of the system
(the car, in the case of auto) to guard against theft.

Test: manual
Change-Id: I2e16387b0752a30ef226b5ddf32ebf955aa9610a
2021-07-13 23:41:50 +00:00

278 lines
5.8 KiB
Text

package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
cc_defaults {
name: "vold_default_flags",
cflags: [
"-Wall",
"-Werror",
"-Wextra",
"-Wno-missing-field-initializers",
"-Wno-unused-parameter",
"-Wno-unused-variable",
],
clang: true,
tidy: true,
tidy_checks: [
"-*",
"cert-*",
"clang-analyzer-security*",
"android-*",
],
tidy_flags: [
"-warnings-as-errors=clang-analyzer-security*,cert-*",
],
}
cc_defaults {
name: "vold_default_libs",
static_libs: [
"libasync_safe",
"libavb",
"libbootloader_message",
"libdm",
"libext2_uuid",
"libfec",
"libfec_rs",
"libfs_avb",
"libfs_mgr",
"libscrypt_static",
"libsquashfs_utils",
"libvold_binder",
],
shared_libs: [
"android.hardware.boot@1.0",
"libbase",
"libbinder",
"libcrypto",
"libcrypto_utils",
"libcutils",
"libdiskconfig",
"libext4_utils",
"libf2fs_sparseblock",
"libgsi",
"libhardware",
"libhardware_legacy",
"libincfs",
"libhidlbase",
"libkeyutils",
"liblog",
"liblogwrap",
"libselinux",
"libsysutils",
"libutils",
],
}
cc_library_static {
name: "libvold_binder",
defaults: ["vold_default_flags"],
srcs: [
":vold_aidl",
],
shared_libs: [
"libbinder",
"libutils",
],
aidl: {
local_include_dirs: ["binder"],
include_dirs: [
"frameworks/native/aidl/binder",
"frameworks/base/core/java",
],
export_aidl_headers: true,
},
whole_static_libs: [
"libincremental_aidl-cpp",
],
export_shared_lib_headers: [
"libbinder",
],
}
cc_library_headers {
name: "libvold_headers",
recovery_available: true,
export_include_dirs: ["."],
}
// Static library factored out to support testing
cc_library_static {
name: "libvold",
defaults: [
"vold_default_flags",
"vold_default_libs",
],
srcs: [
"AppFuseUtil.cpp",
"Benchmark.cpp",
"Checkpoint.cpp",
"CryptoType.cpp",
"Devmapper.cpp",
"EncryptInplace.cpp",
"FileDeviceUtils.cpp",
"FsCrypt.cpp",
"IdleMaint.cpp",
"KeyBuffer.cpp",
"KeyStorage.cpp",
"KeyUtil.cpp",
"Keystore.cpp",
"Loop.cpp",
"MetadataCrypt.cpp",
"MoveStorage.cpp",
"NetlinkHandler.cpp",
"NetlinkManager.cpp",
"Process.cpp",
"ScryptParameters.cpp",
"Utils.cpp",
"VoldNativeService.cpp",
"VoldNativeServiceValidation.cpp",
"VoldUtil.cpp",
"VolumeManager.cpp",
"cryptfs.cpp",
"fs/Exfat.cpp",
"fs/Ext4.cpp",
"fs/F2fs.cpp",
"fs/Vfat.cpp",
"model/Disk.cpp",
"model/EmulatedVolume.cpp",
"model/ObbVolume.cpp",
"model/PrivateVolume.cpp",
"model/PublicVolume.cpp",
"model/StubVolume.cpp",
"model/VolumeBase.cpp",
"model/VolumeEncryption.cpp",
],
product_variables: {
arc: {
exclude_srcs: [
"model/StubVolume.cpp",
],
static_libs: [
"libarcvolume",
],
},
debuggable: {
cppflags: ["-D__ANDROID_DEBUGGABLE__"],
},
},
shared_libs: [
"android.hardware.health.storage@1.0",
"android.hardware.health.storage-V1-ndk_platform",
"android.system.keystore2-V1-ndk_platform",
"android.security.maintenance-ndk_platform",
"libbinder_ndk",
"libkeymint_support",
],
whole_static_libs: [
"com.android.sysprop.apex",
"libc++fs"
],
}
cc_binary {
name: "vold",
defaults: [
"vold_default_flags",
"vold_default_libs",
],
srcs: ["main.cpp"],
static_libs: ["libvold"],
init_rc: [
"vold.rc",
],
required: [
"mke2fs",
"vold_prepare_subdirs",
],
shared_libs: [
"android.hardware.health.storage@1.0",
"android.hardware.health.storage-V1-ndk_platform",
"android.system.keystore2-V1-ndk_platform",
"android.security.maintenance-ndk_platform",
"libbinder_ndk",
"libkeymint_support",
],
product_variables: {
arc: {
exclude_srcs: [
"model/StubVolume.cpp",
],
static_libs: [
"libarcvolume",
],
},
},
}
cc_binary {
name: "vdc",
defaults: ["vold_default_flags"],
srcs: [
"vdc.cpp",
"Utils.cpp",
],
shared_libs: [
"libbase",
"libbinder",
"libcutils",
"liblogwrap",
"libselinux",
"libutils",
],
static_libs: [
"libvold_binder",
],
init_rc: ["vdc.rc"],
}
cc_binary {
name: "secdiscard",
defaults: ["vold_default_flags"],
srcs: [
"FileDeviceUtils.cpp",
"secdiscard.cpp",
],
shared_libs: ["libbase"],
}
cc_binary {
name: "vold_prepare_subdirs",
defaults: ["vold_default_flags"],
srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"],
shared_libs: [
"libbase",
"libcutils",
"liblogwrap",
"libselinux",
"libutils",
],
static_libs: [
"libvold_binder",
],
}
filegroup {
name: "vold_aidl",
srcs: [
"binder/android/os/IVold.aidl",
"binder/android/os/IVoldListener.aidl",
"binder/android/os/IVoldMountCallback.aidl",
"binder/android/os/IVoldTaskListener.aidl",
],
path: "binder",
}