1# 2# Copyright (C) 2009 The Android Open Source Project 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# 16 17LOCAL_PATH := $(call my-dir) 18 19# This has to be lazy-resolved because it depends on the LOCAL_MODULE_CLASS 20# which varies depending on what is being built. 21define keystore_proto_include 22$(call local-generated-sources-dir)/proto/$(LOCAL_PATH) 23endef 24 25ifneq ($(TARGET_BUILD_PDK),true) 26include $(CLEAR_VARS) 27ifeq ($(USE_32_BIT_KEYSTORE), true) 28LOCAL_MULTILIB := 32 29endif 30LOCAL_CFLAGS := -Wall -Wextra -Werror -Wunused 31LOCAL_SRC_FILES := \ 32 auth_token_table.cpp \ 33 blob.cpp \ 34 entropy.cpp \ 35 key_store_service.cpp \ 36 keystore_attestation_id.cpp \ 37 keyblob_utils.cpp \ 38 keystore.cpp \ 39 keystore_main.cpp \ 40 keystore_utils.cpp \ 41 legacy_keymaster_device_wrapper.cpp \ 42 keymaster_enforcement.cpp \ 43 operation.cpp \ 44 permissions.cpp \ 45 user_state.cpp \ 46 grant_store.cpp \ 47 ../../../frameworks/base/core/java/android/security/keymaster/IKeyAttestationApplicationIdProvider.aidl 48LOCAL_SHARED_LIBRARIES := \ 49 libbinder \ 50 libcutils \ 51 libcrypto \ 52 libhardware \ 53 libwifikeystorehal \ 54 libkeystore_binder \ 55 liblog \ 56 libsoftkeymaster \ 57 libutils \ 58 libselinux \ 59 libsoftkeymasterdevice \ 60 libkeymaster_messages \ 61 libkeymaster_portable \ 62 libkeymaster_staging \ 63 libhwbinder \ 64 libhidlbase \ 65 libhidltransport \ 66 android.hardware.keymaster@3.0 \ 67 android.system.wifi.keystore@1.0 68LOCAL_HEADER_LIBRARIES := libbase_headers 69LOCAL_MODULE := keystore 70LOCAL_MODULE_TAGS := optional 71LOCAL_INIT_RC := keystore.rc 72LOCAL_C_INCLUES := system/keymaster/ 73LOCAL_CLANG := true 74LOCAL_SANITIZE := integer 75LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 76LOCAL_AIDL_INCLUDES := frameworks/base/core/java/ 77include $(BUILD_EXECUTABLE) 78endif 79 80include $(CLEAR_VARS) 81ifeq ($(USE_32_BIT_KEYSTORE), true) 82LOCAL_MULTILIB := 32 83endif 84LOCAL_CFLAGS := -Wall -Wextra -Werror 85LOCAL_SRC_FILES := keystore_cli.cpp 86LOCAL_SHARED_LIBRARIES := libcutils libcrypto libkeystore_binder libutils liblog libbinder \ 87 libhwbinder \ 88 libhidlbase \ 89 android.hardware.keymaster@3.0 90LOCAL_MODULE := keystore_cli 91LOCAL_MODULE_TAGS := debug 92LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 93include $(BUILD_EXECUTABLE) 94 95include $(CLEAR_VARS) 96ifeq ($(USE_32_BIT_KEYSTORE), true) 97LOCAL_MULTILIB := 32 98endif 99LOCAL_CFLAGS := -Wall -Wextra -Werror -Wno-unused-parameter -DKEYMASTER_NAME_TAGS 100LOCAL_SRC_FILES := keystore_cli_v2.cpp 101LOCAL_SHARED_LIBRARIES := \ 102 libchrome \ 103 libkeystore_binder \ 104 libhwbinder \ 105 libhidlbase \ 106 android.hardware.keymaster@3.0 107 108LOCAL_MODULE := keystore_cli_v2 109LOCAL_MODULE_TAGS := debug 110LOCAL_C_INCLUDES := $(LOCAL_PATH)/include external/gtest/include 111LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 112include $(BUILD_EXECUTABLE) 113 114# Library for keystore clients 115include $(CLEAR_VARS) 116ifeq ($(USE_32_BIT_KEYSTORE), true) 117LOCAL_MULTILIB := 32 118endif 119LOCAL_CFLAGS := -Wall -Wextra -Werror 120LOCAL_SRC_FILES := \ 121 IKeystoreService.cpp \ 122 KeyAttestationApplicationId.cpp \ 123 KeyAttestationPackageInfo.cpp \ 124 Signature.cpp \ 125 keyblob_utils.cpp \ 126 keystore_client.proto \ 127 keystore_client_impl.cpp \ 128 keystore_get.cpp \ 129 authorization_set.cpp \ 130 keystore_tags_utils.cpp \ 131 keystore_aidl_hidl_marshalling_utils.cpp 132LOCAL_SHARED_LIBRARIES := \ 133 libbinder \ 134 liblog \ 135 libprotobuf-cpp-lite \ 136 libutils \ 137 libhwbinder \ 138 libhidlbase \ 139 android.hardware.keymaster@3.0 140LOCAL_MODULE_CLASS := SHARED_LIBRARIES 141LOCAL_MODULE := libkeystore_binder 142LOCAL_MODULE_TAGS := optional 143LOCAL_C_INCLUDES := $(LOCAL_PATH)/include $(call keystore_proto_include) 144LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include 145LOCAL_EXPORT_SHARED_LIBRARY_HEADERS := libbinder \ 146 libhwbinder \ 147 libhidlbase \ 148 android.hardware.keymaster@3.0 149LOCAL_CLANG := true 150LOCAL_SANITIZE := integer 151LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 152include $(BUILD_SHARED_LIBRARY) 153 154# Library for keystore clients using the WiFi HIDL interface 155include $(CLEAR_VARS) 156LOCAL_CFLAGS := -Wall -Wextra -Werror 157LOCAL_SRC_FILES := \ 158 keystore_get_wifi_hidl.cpp 159LOCAL_SHARED_LIBRARIES := \ 160 android.system.wifi.keystore@1.0 \ 161 libbase \ 162 libhidlbase \ 163 libhidltransport \ 164 liblog \ 165 libutils 166LOCAL_MODULE_CLASS := SHARED_LIBRARIES 167LOCAL_MODULE := libkeystore-wifi-hidl 168LOCAL_MODULE_TAGS := optional 169LOCAL_C_INCLUDES := $(LOCAL_PATH)/include 170LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include 171LOCAL_CLANG := true 172LOCAL_SANITIZE := integer 173LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 174LOCAL_VENDOR_MODULE := true 175include $(BUILD_SHARED_LIBRARY) 176 177# Library for unit tests 178include $(CLEAR_VARS) 179ifeq ($(USE_32_BIT_KEYSTORE), true) 180LOCAL_MULTILIB := 32 181endif 182LOCAL_CFLAGS := -Wall -Wextra -Werror 183LOCAL_SRC_FILES := auth_token_table.cpp 184LOCAL_MODULE := libkeystore_test 185LOCAL_C_INCLUDES := $(LOCAL_PATH)/include 186LOCAL_STATIC_LIBRARIES := libgtest_main 187LOCAL_SHARED_LIBRARIES := libkeymaster_messages \ 188 libutils \ 189 libhwbinder \ 190 libhidlbase \ 191 android.hardware.keymaster@3.0 192 193LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include 194LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 195include $(BUILD_STATIC_LIBRARY) 196