• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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