1cc_defaults { 2 name: "keystore_defaults", 3 4 cflags: [ 5 "-Wall", 6 "-Werror", 7 "-Wextra", 8 "-Wunused", 9 ], 10 11 sanitize: { 12 misc_undefined: ["integer"], 13 }, 14 15 clang: true, 16} 17 18cc_binary { 19 name: "keystore", 20 defaults: ["keystore_defaults"], 21 22 srcs: [ 23 ":IKeyAttestationApplicationIdProvider.aidl", 24 "KeyStore.cpp", 25 "auth_token_table.cpp", 26 "blob.cpp", 27 "confirmation_manager.cpp", 28 "entropy.cpp", 29 "grant_store.cpp", 30 "key_config.proto", 31 "key_proto_handler.cpp", 32 "key_store_service.cpp", 33 "keyblob_utils.cpp", 34 "keymaster_enforcement.cpp", 35 "keystore_attestation_id.cpp", 36 "keystore_main.cpp", 37 "keystore_utils.cpp", 38 "legacy_keymaster_device_wrapper.cpp", 39 "operation.cpp", 40 "operation_config.proto", 41 "operation_proto_handler.cpp", 42 "permissions.cpp", 43 "user_state.cpp", 44 ], 45 shared_libs: [ 46 "android.hardware.confirmationui@1.0", 47 "android.hardware.keymaster@3.0", 48 "android.hardware.keymaster@4.0", 49 "android.system.wifi.keystore@1.0", 50 "libbase", 51 "libbinder", 52 "libcrypto", 53 "libhardware", 54 "libhidlbase", 55 "libhidltransport", 56 "libhwbinder", 57 "libkeymaster4support", 58 "libkeymaster_messages", 59 "libkeymaster_portable", 60 "libkeystore_aidl", 61 "libkeystore_binder", 62 "libkeystore_parcelables", 63 "liblog", 64 "libprotobuf-cpp-lite", 65 "libselinux", 66 "libservices", 67 "libsoftkeymasterdevice", 68 "libutils", 69 "libwifikeystorehal", 70 ], 71 init_rc: ["keystore.rc"], 72 aidl: { 73 include_dirs: ["frameworks/base/core/java/"], 74 }, 75 76 product_variables: { 77 pdk: { 78 enabled: false, 79 }, 80 }, 81 82 required: ["keystore_cli_v2"], 83} 84 85cc_binary { 86 name: "keystore_cli", 87 defaults: ["keystore_defaults"], 88 tags: ["debug"], 89 90 srcs: ["keystore_cli.cpp"], 91 shared_libs: [ 92 "android.hardware.keymaster@4.0", 93 "libbinder", 94 "libcrypto", 95 "libcutils", 96 "libhidlbase", 97 "libhwbinder", 98 "libkeystore_aidl", // for IKeyStoreService.asInterface() 99 "libkeystore_binder", 100 "libkeystore_parcelables", 101 "liblog", 102 "libutils", 103 ], 104} 105 106cc_binary { 107 name: "keystore_cli_v2", 108 defaults: ["keystore_defaults"], 109 tags: ["debug"], 110 111 cflags: [ 112 "-DKEYMASTER_NAME_TAGS", 113 "-Wno-unused-parameter", 114 ], 115 srcs: ["keystore_cli_v2.cpp"], 116 shared_libs: [ 117 "android.hardware.confirmationui@1.0", 118 "libbinder", 119 "android.hardware.keymaster@4.0", 120 "libchrome", 121 "libutils", 122 "libhidlbase", 123 "libhwbinder", 124 "libkeymaster4support", 125 "libkeystore_aidl", 126 "libkeystore_binder", 127 "libkeystore_parcelables", 128 ], 129 130 local_include_dirs: ["include"], 131} 132 133cc_library_shared { 134 name: "libkeystore_parcelables", 135 defaults: ["keystore_defaults"], 136 export_include_dirs: ["include"], 137 srcs: [ 138 "KeyAttestationApplicationId.cpp", 139 "KeyAttestationPackageInfo.cpp", 140 "KeymasterArguments.cpp", 141 "KeystoreArguments.cpp", 142 "OperationResult.cpp", 143 "Signature.cpp", 144 "keystore_aidl_hidl_marshalling_utils.cpp", 145 ], 146 shared_libs: [ 147 "android.hardware.keymaster@4.0", 148 "libbinder", 149 "libhardware", 150 "libhidlbase", 151 "libhwbinder", 152 "libkeymaster4support", 153 "liblog", 154 "libprotobuf-cpp-lite", 155 "libutils", 156 ], 157 export_shared_lib_headers: [ 158 "android.hardware.keymaster@4.0", 159 "libbinder", 160 "libhidlbase", 161 "libhwbinder", 162 "libkeymaster4support", 163 ], 164} 165// Library for keystore clients 166cc_library_shared { 167 name: "libkeystore_binder", 168 defaults: ["keystore_defaults"], 169 170 srcs: [ 171 "keyblob_utils.cpp", 172 "keystore_client.proto", 173 "keystore_client_impl.cpp", 174 "keystore_get.cpp", 175 ], 176 shared_libs: [ 177 "android.hardware.keymaster@4.0", 178 "libbinder", 179 "libhidlbase", 180 "libhwbinder", 181 "libkeymaster4support", 182 "libkeystore_aidl", 183 "libkeystore_parcelables", 184 "liblog", 185 "libprotobuf-cpp-lite", 186 "libutils", 187 ], 188 189 proto: { 190 type: "lite", 191 export_proto_headers: true, 192 }, 193 aidl: { 194 export_aidl_headers: true, 195 include_dirs: ["frameworks/base/core/java/"], 196 }, 197 export_include_dirs: ["include"], 198 export_shared_lib_headers: [ 199 "android.hardware.keymaster@4.0", 200 "libbinder", 201 "libhidlbase", 202 "libhwbinder", 203 "libkeystore_aidl", 204 "libkeystore_parcelables", 205 ], 206} 207 208// Library for keystore clients using the WiFi HIDL interface 209cc_library_shared { 210 name: "libkeystore-wifi-hidl", 211 defaults: ["keystore_defaults"], 212 213 srcs: ["keystore_get_wifi_hidl.cpp"], 214 shared_libs: [ 215 "android.system.wifi.keystore@1.0", 216 "libbase", 217 "libhidlbase", 218 "libhidltransport", 219 "liblog", 220 "libutils", 221 ], 222 223 export_include_dirs: ["include"], 224 225 vendor: true, 226} 227 228// Library for unit tests 229cc_library_static { 230 name: "libkeystore_test", 231 defaults: ["keystore_defaults"], 232 233 srcs: [ 234 "auth_token_table.cpp", 235 ], 236 cflags: [ "-O0", ], 237 static_libs: ["libgtest_main"], 238 shared_libs: [ 239 "android.hardware.keymaster@4.0", 240 "libhidlbase", 241 "libhwbinder", 242 "libkeymaster4support", 243 "libutils", 244 ], 245 export_shared_lib_headers: [ 246 "android.hardware.keymaster@4.0", 247 "libhidlbase", 248 "libhwbinder", 249 "libkeymaster4support", 250 ], 251 252 export_include_dirs: ["include"], 253} 254 255filegroup { 256 name: "keystore_aidl", 257 srcs: [ 258 "binder/android/security/IConfirmationPromptCallback.aidl", 259 "binder/android/security/IKeystoreService.aidl", 260 ], 261} 262 263cc_library_shared { 264 name: "libkeystore_aidl", 265 srcs: [":keystore_aidl"], 266 aidl: { 267 export_aidl_headers: true, 268 include_dirs: [ 269 "system/security/keystore/binder", 270 ], 271 }, 272 shared_libs: [ 273 "libbinder", 274 "libcutils", 275 "libhardware", 276 "libhidlbase", 277 "libhidltransport", 278 "libhwbinder", 279 "libkeystore_parcelables", 280 "liblog", 281 "libselinux", 282 "libutils", 283 ], 284 export_shared_lib_headers: [ 285 "libbinder", 286 "libkeystore_parcelables", 287 ], 288} 289 290subdirs = ["tests"] 291