|  | 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: [ | 
|  | "[email protected]", | 
|  | "[email protected]", | 
|  | "[email protected]", | 
|  | "[email protected]", | 
|  | "libbase", | 
|  | "libbinder", | 
|  | "libcrypto", | 
|  | "libcrypto_utils", | 
|  | "libcutils", | 
|  | "libdiskconfig", | 
|  | "libext4_utils", | 
|  | "libf2fs_sparseblock", | 
|  | "libhardware", | 
|  | "libhardware_legacy", | 
|  | "libincfs", | 
|  | "libhidlbase", | 
|  | "libkeymaster4support", | 
|  | "libkeymaster4_1support", | 
|  | "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", | 
|  | ], | 
|  | } | 
|  |  | 
|  | 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", | 
|  | "CheckEncryption.cpp", | 
|  | "Checkpoint.cpp", | 
|  | "Devmapper.cpp", | 
|  | "EncryptInplace.cpp", | 
|  | "FileDeviceUtils.cpp", | 
|  | "FsCrypt.cpp", | 
|  | "IdleMaint.cpp", | 
|  | "KeyBuffer.cpp", | 
|  | "KeyStorage.cpp", | 
|  | "KeyUtil.cpp", | 
|  | "Keymaster.cpp", | 
|  | "Loop.cpp", | 
|  | "MetadataCrypt.cpp", | 
|  | "MoveStorage.cpp", | 
|  | "NetlinkHandler.cpp", | 
|  | "NetlinkManager.cpp", | 
|  | "Process.cpp", | 
|  | "ScryptParameters.cpp", | 
|  | "Utils.cpp", | 
|  | "VoldNativeService.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/VolumeBase.cpp", | 
|  | "model/StubVolume.cpp", | 
|  | ], | 
|  | product_variables: { | 
|  | arc: { | 
|  | exclude_srcs: [ | 
|  | "AppFuseUtil.cpp", | 
|  | "model/ObbVolume.cpp", | 
|  | ], | 
|  | static_libs: [ | 
|  | "arc_services_aidl", | 
|  | "libarcappfuse", | 
|  | "libarcobbvolume", | 
|  | ], | 
|  | }, | 
|  | debuggable: { | 
|  | cppflags: ["-D__ANDROID_DEBUGGABLE__"], | 
|  | }, | 
|  | }, | 
|  | shared_libs: [ | 
|  | "[email protected]", | 
|  | ], | 
|  | whole_static_libs: [ | 
|  | "com.android.sysprop.apex", | 
|  | ], | 
|  | } | 
|  |  | 
|  | cc_binary { | 
|  | name: "vold", | 
|  | defaults: [ | 
|  | "vold_default_flags", | 
|  | "vold_default_libs", | 
|  | ], | 
|  |  | 
|  | srcs: ["main.cpp"], | 
|  | static_libs: ["libvold"], | 
|  | product_variables: { | 
|  | arc: { | 
|  | static_libs: [ | 
|  | "arc_services_aidl", | 
|  | "libarcappfuse", | 
|  | "libarcobbvolume", | 
|  | ], | 
|  | }, | 
|  | }, | 
|  | init_rc: [ | 
|  | "vold.rc", | 
|  | "wait_for_keymaster.rc", | 
|  | ], | 
|  |  | 
|  | required: [ | 
|  | "mke2fs", | 
|  | "vold_prepare_subdirs", | 
|  | "wait_for_keymaster", | 
|  | ], | 
|  |  | 
|  | shared_libs: [ | 
|  | "[email protected]", | 
|  | ], | 
|  | } | 
|  |  | 
|  | cc_binary { | 
|  | name: "vdc", | 
|  | defaults: ["vold_default_flags"], | 
|  |  | 
|  | srcs: ["vdc.cpp"], | 
|  | shared_libs: [ | 
|  | "libbase", | 
|  | "libbinder", | 
|  | "libcutils", | 
|  | "libutils", | 
|  | ], | 
|  | static_libs: [ | 
|  | "libvold_binder", | 
|  | ], | 
|  | init_rc: ["vdc.rc"], | 
|  | } | 
|  |  | 
|  | cc_binary { | 
|  | name: "wait_for_keymaster", | 
|  | defaults: ["vold_default_flags"], | 
|  |  | 
|  | srcs: [ | 
|  | "wait_for_keymaster.cpp", | 
|  | "Keymaster.cpp", | 
|  | ], | 
|  | shared_libs: [ | 
|  | "libbase", | 
|  | "libbinder", | 
|  |  | 
|  | "[email protected]", | 
|  | "[email protected]", | 
|  | "[email protected]", | 
|  | "libhardware", | 
|  | "libhardware_legacy", | 
|  | "libhidlbase", | 
|  | "libkeymaster4support", | 
|  | "libkeymaster4_1support", | 
|  | "libutils", | 
|  | ], | 
|  | } | 
|  |  | 
|  | 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", | 
|  | } |