aboutsummaryrefslogtreecommitdiff
path: root/Android.mk
blob: 3af373bb09163a5e38720ff0a07fc185e205a694 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#
# In order for cryptsetup to be useful, the kernel config needs
# CONFIG_CRYPTO_USER_API_SKCIPHER=y set. To keep security attack
# surface minimal, should only be performed on a development sandbox
# build of the kernel.
#

LOCAL_PATH := $(call my-dir)

libcryptsetup_c_includes := $(LOCAL_PATH)/lib \
                            $(LOCAL_PATH)/lib/crypto_backend \
                            $(LOCAL_PATH)/lib/loopaes \
                            $(LOCAL_PATH)/lib/luks1 \
                            $(LOCAL_PATH)/lib/tcrypt \
                            $(LOCAL_PATH)/lib/verity

libcryptsetup_cflags := -include android_config.h -include openssl/ssl.h

cryptsetup_src_files := src/cryptsetup.c \
                        src/utils_password.c \
                        src/utils_tools.c

libcryptsetup_src_files := lib/crypt_plain.c \
                           lib/libdevmapper.c \
                           lib/random.c \
                           lib/setup.c \
                           lib/utils.c \
                           lib/utils_benchmark.c \
                           lib/utils_crypt.c \
                           lib/utils_device.c \
                           lib/utils_devpath.c \
                           lib/utils_fips.c \
                           lib/utils_loop.c \
                           lib/utils_wipe.c \
                           lib/volumekey.c \
                           lib/crypto_backend/crc32.c \
                           lib/crypto_backend/crypto_cipher_kernel.c \
                           lib/crypto_backend/crypto_openssl.c \
                           lib/crypto_backend/crypto_storage.c \
                           lib/crypto_backend/pbkdf_check.c \
                           lib/loopaes/loopaes.c \
                           lib/luks1/af.c \
                           lib/luks1/keymanage.c \
                           lib/luks1/keyencryption.c \
                           lib/tcrypt/tcrypt.c \
                           lib/verity/verity.c \
                           lib/verity/verity_hash.c

popt_src_files := android_popt.cpp # more or less copy from gptfdisk

include $(CLEAR_VARS)
LOCAL_MODULE := cryptsetup
LOCAL_CFLAGS := -O2 -g
LOCAL_CFLAGS += $(libcryptsetup_cflags)
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)

# command and required library modules files, directly compile all
LOCAL_SRC_FILES := $(cryptsetup_src_files) \
                   $(popt_src_files) \
                   $(libcryptsetup_src_files)

LOCAL_C_INCLUDES := $(libcryptsetup_c_includes)

LOCAL_STATIC_LIBRARIES := libdevmapper # because we are the only user
LOCAL_SHARED_LIBRARIES := libext2_uuid libcrypto libselinux

include $(BUILD_EXECUTABLE)