diff --git a/Android.bp b/Android.bp new file mode 100644 index 0000000..f7ec836 --- /dev/null +++ b/Android.bp @@ -0,0 +1,193 @@ +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*", + "-cert-err58-cpp", + ], + tidy_flags: [ + "-warnings-as-errors=clang-analyzer-security*,cert-*", + ], +} + +cc_defaults { + name: "vold_default_libs", + + static_libs: [ + "libavb", + "libbootloader_message", + "libfec", + "libfec_rs", + "libfs_mgr", + "libscrypt_static", + "libsquashfs_utils", + "libvold_binder", + ], + shared_libs: [ + "android.hardware.keymaster@3.0", + "libbase", + "libbinder", + "libcrypto", + "libcrypto_utils", + "libcutils", + "libdiskconfig", + "libext4_utils", + "libf2fs_sparseblock", + "libhardware", + "libhardware_legacy", + "libhidlbase", + "libhwbinder", + "libkeystore_binder", + "libkeyutils", + "liblog", + "liblogwrap", + "libselinux", + "libsysutils", + "libutils", + ], +} + +cc_library_static { + name: "libvold_binder", + defaults: ["vold_default_flags"], + + srcs: [ + "binder/android/os/IVold.aidl", + "binder/android/os/IVoldListener.aidl", + "binder/android/os/IVoldTaskListener.aidl", + ], + shared_libs: [ + "libbinder", + "libutils", + ], + aidl: { + local_include_dirs: ["binder"], + include_dirs: ["frameworks/native/aidl/binder"], + export_aidl_headers: true, + }, +} + +// Static library factored out to support testing +cc_library_static { + name: "libvold", + defaults: [ + "vold_default_flags", + "vold_default_libs", + ], + + srcs: [ + "Benchmark.cpp", + "Devmapper.cpp", + "EncryptInplace.cpp", + "Ext4Crypt.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/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", + "secontext.cpp", + ], +} + +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", + ], +} + +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: "secdiscard", + defaults: ["vold_default_flags"], + + srcs: [ + "FileDeviceUtils.cpp", + "secdiscard.cpp", + ], + shared_libs: ["libbase"], +} + +cc_binary { + name: "prepare_dir", + defaults: ["vold_default_flags"], + + srcs: ["prepare_dir.cpp"], + shared_libs: [ + "libbase", + "libcutils", + "libselinux", + ], +} + +cc_prebuilt_binary { + name: "vold_prepare_subdirs", + defaults: ["vold_default_flags"], + + srcs: ["vold_prepare_subdirs"], + + required: ["prepare_dir"], +} + +subdirs = ["tests"] diff --git a/Android.mk b/Android.mk deleted file mode 100644 index 8cbc1d4..0000000 --- a/Android.mk +++ /dev/null @@ -1,210 +0,0 @@ -LOCAL_PATH:= $(call my-dir) - -common_src_files := \ - VolumeManager.cpp \ - NetlinkManager.cpp \ - NetlinkHandler.cpp \ - Process.cpp \ - fs/Ext4.cpp \ - fs/F2fs.cpp \ - fs/Vfat.cpp \ - Loop.cpp \ - Devmapper.cpp \ - Ext4Crypt.cpp \ - VoldUtil.cpp \ - cryptfs.cpp \ - model/Disk.cpp \ - model/VolumeBase.cpp \ - model/PublicVolume.cpp \ - model/PrivateVolume.cpp \ - model/EmulatedVolume.cpp \ - model/ObbVolume.cpp \ - Utils.cpp \ - MoveStorage.cpp \ - Benchmark.cpp \ - IdleMaint.cpp \ - KeyBuffer.cpp \ - Keymaster.cpp \ - KeyStorage.cpp \ - KeyUtil.cpp \ - ScryptParameters.cpp \ - secontext.cpp \ - EncryptInplace.cpp \ - MetadataCrypt.cpp \ - VoldNativeService.cpp \ - -common_aidl_files := \ - binder/android/os/IVold.aidl \ - binder/android/os/IVoldListener.aidl \ - binder/android/os/IVoldTaskListener.aidl \ - -common_aidl_includes := \ - $(LOCAL_PATH)/binder \ - frameworks/native/aidl/binder \ - -common_c_includes := \ - system/extras/f2fs_utils \ - external/scrypt/lib/crypto \ - external/f2fs-tools/include \ - frameworks/native/include \ - system/security/keystore \ - -common_shared_libraries := \ - libsysutils \ - libbinder \ - libcutils \ - libkeyutils \ - liblog \ - libdiskconfig \ - libhardware_legacy \ - liblogwrap \ - libext4_utils \ - libf2fs_sparseblock \ - libcrypto_utils \ - libcrypto \ - libselinux \ - libutils \ - libhardware \ - libbase \ - libhwbinder \ - libhidlbase \ - android.hardware.keymaster@3.0 \ - libkeystore_binder - -common_static_libraries := \ - libbootloader_message \ - libfs_mgr \ - libfec \ - libfec_rs \ - libsquashfs_utils \ - libscrypt_static \ - libavb \ - -# TODO: include "cert-err58-cpp" once 36656327 is fixed -common_local_tidy_enabled := true -common_local_tidy_flags := -warnings-as-errors=clang-analyzer-security*,cert-* -common_local_tidy_checks := -*,clang-analyzer-security*,cert-*,-cert-err58-cpp - -vold_conlyflags := -std=c11 -vold_cflags := -Werror -Wall -Wno-missing-field-initializers -Wno-unused-variable -Wno-unused-parameter - -required_modules := vold_prepare_subdirs -ifeq ($(TARGET_USERIMAGES_USE_EXT4), true) - required_modules += mke2fs -endif - -include $(CLEAR_VARS) - -LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk -LOCAL_MODULE := libvold -LOCAL_CLANG := true -LOCAL_TIDY := $(common_local_tidy_enabled) -LOCAL_TIDY_FLAGS := $(common_local_tidy_flags) -LOCAL_TIDY_CHECKS := $(common_local_tidy_checks) -LOCAL_SRC_FILES := $(common_src_files) $(common_aidl_files) -LOCAL_C_INCLUDES := $(common_c_includes) -LOCAL_SHARED_LIBRARIES := $(common_shared_libraries) -LOCAL_STATIC_LIBRARIES := $(common_static_libraries) -LOCAL_MODULE_TAGS := eng tests -LOCAL_CFLAGS := $(vold_cflags) -LOCAL_CONLYFLAGS := $(vold_conlyflags) -LOCAL_REQUIRED_MODULES := $(required_modules) - -LOCAL_AIDL_INCLUDES := $(common_aidl_includes) - -include $(BUILD_STATIC_LIBRARY) - -include $(CLEAR_VARS) - -LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk -LOCAL_MODULE := vold -LOCAL_CLANG := true -LOCAL_TIDY := $(common_local_tidy_enabled) -LOCAL_TIDY_FLAGS := $(common_local_tidy_flags) -LOCAL_TIDY_CHECKS := $(common_local_tidy_checks) -LOCAL_SRC_FILES := \ - main.cpp \ - $(common_src_files) \ - $(common_aidl_files) \ - -LOCAL_INIT_RC := vold.rc - -LOCAL_C_INCLUDES := $(common_c_includes) -LOCAL_CFLAGS := $(vold_cflags) -LOCAL_CONLYFLAGS := $(vold_conlyflags) - -LOCAL_SHARED_LIBRARIES := $(common_shared_libraries) -LOCAL_STATIC_LIBRARIES := $(common_static_libraries) -LOCAL_REQUIRED_MODULES := $(required_modules) - -LOCAL_AIDL_INCLUDES := $(common_aidl_includes) - -include $(BUILD_EXECUTABLE) - -include $(CLEAR_VARS) - -LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk -LOCAL_CLANG := true -LOCAL_TIDY := $(common_local_tidy_enabled) -LOCAL_TIDY_FLAGS := $(common_local_tidy_flags) -LOCAL_TIDY_CHECKS := $(common_local_tidy_checks) - -LOCAL_SRC_FILES := \ - vdc.cpp \ - $(common_aidl_files) \ - -LOCAL_MODULE := vdc -LOCAL_SHARED_LIBRARIES := libbase libbinder libcutils libutils -LOCAL_CFLAGS := $(vold_cflags) -LOCAL_CONLYFLAGS := $(vold_conlyflags) -LOCAL_INIT_RC := vdc.rc - -LOCAL_AIDL_INCLUDES := $(common_aidl_includes) - -include $(BUILD_EXECUTABLE) - -include $(CLEAR_VARS) - -LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk -LOCAL_CLANG := true -LOCAL_TIDY := $(common_local_tidy_enabled) -LOCAL_TIDY_FLAGS := $(common_local_tidy_flags) -LOCAL_TIDY_CHECKS := $(common_local_tidy_checks) -LOCAL_SRC_FILES:= \ - FileDeviceUtils.cpp \ - secdiscard.cpp \ - -LOCAL_MODULE:= secdiscard -LOCAL_SHARED_LIBRARIES := libbase -LOCAL_CFLAGS := $(vold_cflags) -LOCAL_CONLYFLAGS := $(vold_conlyflags) - -include $(BUILD_EXECUTABLE) - -include $(CLEAR_VARS) - -LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk -LOCAL_CLANG := true -LOCAL_TIDY := $(common_local_tidy_enabled) -LOCAL_TIDY_FLAGS := $(common_local_tidy_flags) -LOCAL_TIDY_CHECKS := $(common_local_tidy_checks) -LOCAL_SRC_FILES:= \ - prepare_dir.cpp \ - -LOCAL_MODULE:= prepare_dir -LOCAL_SHARED_LIBRARIES := libbase libcutils libselinux -LOCAL_CFLAGS := $(vold_cflags) -LOCAL_CONLYFLAGS := $(vold_conlyflags) - -include $(BUILD_EXECUTABLE) - -include $(CLEAR_VARS) - -LOCAL_MODULE:= vold_prepare_subdirs -LOCAL_MODULE_CLASS := EXECUTABLES -LOCAL_SRC_FILES := vold_prepare_subdirs -LOCAL_REQUIRED_MODULES := prepare_dir - -include $(BUILD_PREBUILT) - -include $(LOCAL_PATH)/tests/Android.mk diff --git a/tests/Android.bp b/tests/Android.bp new file mode 100644 index 0000000..a070178 --- /dev/null +++ b/tests/Android.bp @@ -0,0 +1,14 @@ +cc_test { + name: "vold_tests", + defaults: [ + "vold_default_flags", + "vold_default_libs", + ], + + srcs: [ + "CryptfsScryptHidlizationEquivalence_test.cpp", + "Utils_test.cpp", + "cryptfs_test.cpp", + ], + static_libs: ["libvold"], +} diff --git a/tests/Android.mk b/tests/Android.mk deleted file mode 100644 index 49da010..0000000 --- a/tests/Android.mk +++ /dev/null @@ -1,46 +0,0 @@ -# Build the unit tests. -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) -LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk - -LOCAL_C_INCLUDES := \ - system/core/fs_mgr/include \ - system/vold/ - -LOCAL_STATIC_LIBRARIES := libbase libselinux libvold liblog libcrypto - -LOCAL_SRC_FILES := \ - cryptfs_test.cpp \ - Utils_test.cpp \ - VolumeManager_test.cpp \ - -LOCAL_MODULE := vold_tests -LOCAL_MODULE_TAGS := eng tests - -LOCAL_CFLAGS := -Wall -Werror -include $(BUILD_NATIVE_TEST) - -include $(CLEAR_VARS) -LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk - -# LOCAL_C_INCLUDES := \ - system/core/fs_mgr/include - -LOCAL_STATIC_LIBRARIES := libselinux libvold liblog libcrypto -LOCAL_SHARED_LIBRARIES := \ - libutils \ - libbase \ - libhardware \ - libhardware_legacy \ - libhwbinder \ - libhidlbase \ - libkeystore_binder \ - android.hardware.keymaster@3.0 - -LOCAL_SRC_FILES := CryptfsScryptHidlizationEquivalence_test.cpp -LOCAL_MODULE := vold_cryptfs_scrypt_hidlization_equivalence_test -LOCAL_MODULE_TAGS := eng tests - -LOCAL_CFLAGS := -Wall -Werror -include $(BUILD_NATIVE_TEST) diff --git a/tests/VolumeManager_test.cpp b/tests/VolumeManager_test.cpp deleted file mode 100644 index f661d49..0000000 --- a/tests/VolumeManager_test.cpp +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2010 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. - */ - -#include - -#define LOG_TAG "VolumeManager_test" -#include -#include -#include "../VolumeManager.h" - -#include - -namespace android { - -class VolumeManagerTest : public testing::Test { -protected: - virtual void SetUp() { - } - - virtual void TearDown() { - } -}; - -}