summaryrefslogtreecommitdiff
path: root/Android.mk (plain)
blob: 4395a85779dae6de5124ca0af565acded03062c0
1# Copyright (C) 2012 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15LOCAL_PATH := $(call my-dir)
16
17KEYMASTER_TA_BINARY := 8efb1e1c-37e5-4326-a5d68c33726c7d57
18
19include $(CLEAR_VARS)
20LOCAL_MODULE := keystore.amlogic
21LOCAL_MODULE_RELATIVE_PATH := hw
22LOCAL_SRC_FILES := module.cpp \
23 aml_keymaster_ipc.cpp \
24 aml_keymaster_device.cpp \
25
26LOCAL_C_INCLUDES := \
27 system/security/keystore \
28 $(LOCAL_PATH)/include \
29 system/keymaster/ \
30 system/keymaster/include \
31 external/boringssl/include \
32 $(BOARD_AML_VENDOR_PATH)/tdk/ca_export_arm/include \
33
34LOCAL_CFLAGS = -fvisibility=hidden -Wall -Werror
35LOCAL_CFLAGS += -DANDROID_BUILD
36ifeq ($(USE_SOFT_KEYSTORE), false)
37LOCAL_CFLAGS += -DUSE_HW_KEYMASTER
38endif
39LOCAL_SHARED_LIBRARIES := libcrypto \
40 liblog \
41 libkeystore_binder \
42 libkeymaster_messages \
43 libteec
44
45LOCAL_MODULE_TAGS := optional
46
47ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo OK),OK)
48LOCAL_PROPRIETARY_MODULE := true
49endif
50
51ifeq ($(shell test $(PLATFORM_SDK_VERSION) -le 26 && echo OK),OK)
52LOCAL_SHARED_LIBRARIES += libkeymaster1
53endif
54
55LOCAL_CFLAGS += -DANDROID_PLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION)
56
57LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
58LOCAL_REQUIRED_MODULES := $(KEYMASTER_TA_BINARY)
59include $(BUILD_SHARED_LIBRARY)
60
61#####################################################
62# TA Library
63#####################################################
64include $(CLEAR_VARS)
65LOCAL_MODULE_CLASS := ETC
66LOCAL_MODULE_TAGS := optional
67LOCAL_MODULE := $(KEYMASTER_TA_BINARY)
68LOCAL_MODULE_SUFFIX := .ta
69LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/lib/teetz
70ifeq ($(TARGET_ENABLE_TA_SIGN), true)
71$(info $(shell mkdir $(ANDROID_BUILD_TOP)/$(LOCAL_PATH)/signed))
72$(info $(shell $(ANDROID_BUILD_TOP)/$(BOARD_AML_VENDOR_PATH)/tdk/ta_export/scripts/sign_ta_auto.py \
73 --in=$(ANDROID_BUILD_TOP)/$(LOCAL_PATH)/$(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX) \
74 --out=$(ANDROID_BUILD_TOP)/$(LOCAL_PATH)/signed/$(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX)))
75LOCAL_SRC_FILES := signed/$(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX)
76else
77LOCAL_SRC_FILES := $(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX)
78endif
79include $(BUILD_PREBUILT)
80
81
82# Unit tests for libkeymaster
83include $(CLEAR_VARS)
84LOCAL_MODULE := amlkeymaster_tests
85LOCAL_SRC_FILES := \
86 unit_test/android_keymaster_test.cpp \
87 unit_test/android_keymaster_test_utils.cpp \
88 unit_test/attestation_record.cpp
89# unit_test/attestation_record_test.cpp \
90 unit_test/authorization_set_test.cpp \
91# unit_test/android_keymaster_messages_test.cpp \
92 unit_test/hkdf_test.cpp \
93 unit_test/hmac_test.cpp \
94 unit_test/kdf1_test.cpp \
95 unit_test/kdf2_test.cpp \
96 unit_test/kdf_test.cpp \
97 unit_test/key_blob_test.cpp \
98 unit_test/keymaster_enforcement_test.cpp
99
100LOCAL_C_INCLUDES := \
101 external/boringssl/include \
102 system/keymaster/include \
103 system/keymaster \
104 system/security/softkeymaster/include
105
106LOCAL_CFLAGS = -Wall -Werror -Wunused -DKEYMASTER_NAME_TAGS
107LOCAL_CLANG_CFLAGS += -Wno-error=unused-const-variable -Wno-error=unused-private-field
108# TODO(krasin): reenable coverage flags, when the new Clang toolchain is released.
109# Currently, if enabled, these flags will cause an internal error in Clang.
110LOCAL_CLANG_CFLAGS += -fno-sanitize-coverage=edge,indirect-calls,8bit-counters,trace-cmp
111LOCAL_MODULE_TAGS := tests
112LOCAL_SHARED_LIBRARIES := \
113 libsoftkeymasterdevice \
114 libkeymaster_messages \
115 libcrypto \
116 libsoftkeymaster \
117 libkeymaster_portable \
118 libhardware
119
120LOCAL_CFLAGS += -DANDROID_PLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION)
121
122ifeq ($(shell test $(PLATFORM_SDK_VERSION) -le 26 && echo OK),OK)
123LOCAL_SHARED_LIBRARIES += libkeymaster1
124endif
125
126LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
127include $(BUILD_NATIVE_TEST)
128
129