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 ../../../frameworks/base/core/java/android/security/keymaster/IKeyAttestationApplicationIdProvider.aidl 47LOCAL_SHARED_LIBRARIES := \ 48 libbinder \ 49 libcutils \ 50 libcrypto \ 51 libhardware \ 52 libwifikeystorehal \ 53 libkeystore_binder \ 54 liblog \ 55 libsoftkeymaster \ 56 libutils \ 57 libselinux \ 58 libsoftkeymasterdevice \ 59 libkeymaster_messages \ 60 libkeymaster1 \ 61 libhwbinder \ 62 libhidlbase \ 63 libhidltransport \ 64 android.hardware.keymaster@3.0 \ 65 android.system.wifi.keystore@1.0 66LOCAL_MODULE := keystore 67LOCAL_MODULE_TAGS := optional 68LOCAL_INIT_RC := keystore.rc 69LOCAL_C_INCLUES := system/keymaster/ 70LOCAL_CLANG := true 71LOCAL_SANITIZE := integer 72LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 73LOCAL_AIDL_INCLUDES := frameworks/base/core/java/ 74include $(BUILD_EXECUTABLE) 75endif 76 77include $(CLEAR_VARS) 78ifeq ($(USE_32_BIT_KEYSTORE), true) 79LOCAL_MULTILIB := 32 80endif 81LOCAL_CFLAGS := -Wall -Wextra -Werror 82LOCAL_SRC_FILES := keystore_cli.cpp 83LOCAL_SHARED_LIBRARIES := libcutils libcrypto libkeystore_binder libutils liblog libbinder \ 84 libhwbinder \ 85 libhidlbase \ 86 android.hardware.keymaster@3.0 87LOCAL_MODULE := keystore_cli 88LOCAL_MODULE_TAGS := debug 89LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 90include $(BUILD_EXECUTABLE) 91 92include $(CLEAR_VARS) 93ifeq ($(USE_32_BIT_KEYSTORE), true) 94LOCAL_MULTILIB := 32 95endif 96LOCAL_CFLAGS := -Wall -Wextra -Werror -Wno-unused-parameter -DKEYMASTER_NAME_TAGS 97LOCAL_SRC_FILES := keystore_cli_v2.cpp 98LOCAL_SHARED_LIBRARIES := \ 99 libchrome \ 100 libkeystore_binder \ 101 libhwbinder \ 102 libhidlbase \ 103 android.hardware.keymaster@3.0 104 105LOCAL_MODULE := keystore_cli_v2 106LOCAL_MODULE_TAGS := debug 107LOCAL_C_INCLUDES := $(LOCAL_PATH)/include external/gtest/include 108LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 109include $(BUILD_EXECUTABLE) 110 111# Library for keystore clients 112include $(CLEAR_VARS) 113ifeq ($(USE_32_BIT_KEYSTORE), true) 114LOCAL_MULTILIB := 32 115endif 116LOCAL_CFLAGS := -Wall -Wextra -Werror 117LOCAL_SRC_FILES := \ 118 IKeystoreService.cpp \ 119 KeyAttestationApplicationId.cpp \ 120 KeyAttestationPackageInfo.cpp \ 121 Signature.cpp \ 122 keyblob_utils.cpp \ 123 keystore_client.proto \ 124 keystore_client_impl.cpp \ 125 keystore_get.cpp \ 126 authorization_set.cpp \ 127 keystore_tags_utils.cpp \ 128 keystore_aidl_hidl_marshalling_utils.cpp 129LOCAL_SHARED_LIBRARIES := \ 130 libbinder \ 131 liblog \ 132 libprotobuf-cpp-lite \ 133 libutils \ 134 libhwbinder \ 135 libhidlbase \ 136 android.hardware.keymaster@3.0 137LOCAL_MODULE_CLASS := SHARED_LIBRARIES 138LOCAL_MODULE := libkeystore_binder 139LOCAL_MODULE_TAGS := optional 140LOCAL_C_INCLUDES := $(LOCAL_PATH)/include $(call keystore_proto_include) 141LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include 142LOCAL_EXPORT_SHARED_LIBRARY_HEADERS := libbinder \ 143 libhwbinder \ 144 libhidlbase \ 145 android.hardware.keymaster@3.0 146LOCAL_CLANG := true 147LOCAL_SANITIZE := integer 148LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 149include $(BUILD_SHARED_LIBRARY) 150 151# Library for keystore clients using the WiFi HIDL interface 152include $(CLEAR_VARS) 153LOCAL_CFLAGS := -Wall -Wextra -Werror 154LOCAL_SRC_FILES := \ 155 keystore_get_wifi_hidl.cpp 156LOCAL_SHARED_LIBRARIES := \ 157 android.system.wifi.keystore@1.0 \ 158 libbase \ 159 libhidlbase \ 160 libhidltransport \ 161 liblog \ 162 libutils 163LOCAL_MODULE_CLASS := SHARED_LIBRARIES 164LOCAL_MODULE := libkeystore-wifi-hidl 165LOCAL_MODULE_TAGS := optional 166LOCAL_C_INCLUDES := $(LOCAL_PATH)/include 167LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include 168LOCAL_CLANG := true 169LOCAL_SANITIZE := integer 170LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 171LOCAL_VENDOR_MODULE := true 172include $(BUILD_SHARED_LIBRARY) 173 174# Library for unit tests 175include $(CLEAR_VARS) 176ifeq ($(USE_32_BIT_KEYSTORE), true) 177LOCAL_MULTILIB := 32 178endif 179LOCAL_CFLAGS := -Wall -Wextra -Werror 180LOCAL_SRC_FILES := auth_token_table.cpp 181LOCAL_MODULE := libkeystore_test 182LOCAL_C_INCLUDES := $(LOCAL_PATH)/include 183LOCAL_STATIC_LIBRARIES := libgtest_main 184LOCAL_SHARED_LIBRARIES := libkeymaster_messages \ 185 libutils \ 186 libhwbinder \ 187 libhidlbase \ 188 android.hardware.keymaster@3.0 189 190LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include 191LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 192include $(BUILD_STATIC_LIBRARY) 193