42 files changed, 6493 insertions, 19016 deletions
diff --git a/Android.mk b/Android.mk index 4395a85..4afea80 100644..100755 --- a/Android.mk +++ b/Android.mk @@ -16,48 +16,6 @@ LOCAL_PATH := $(call my-dir) KEYMASTER_TA_BINARY := 8efb1e1c-37e5-4326-a5d68c33726c7d57 -include $(CLEAR_VARS) -LOCAL_MODULE := keystore.amlogic -LOCAL_MODULE_RELATIVE_PATH := hw -LOCAL_SRC_FILES := module.cpp \ - aml_keymaster_ipc.cpp \ - aml_keymaster_device.cpp \ - -LOCAL_C_INCLUDES := \ - system/security/keystore \ - $(LOCAL_PATH)/include \ - system/keymaster/ \ - system/keymaster/include \ - external/boringssl/include \ - $(BOARD_AML_VENDOR_PATH)/tdk/ca_export_arm/include \ - -LOCAL_CFLAGS = -fvisibility=hidden -Wall -Werror -LOCAL_CFLAGS += -DANDROID_BUILD -ifeq ($(USE_SOFT_KEYSTORE), false) -LOCAL_CFLAGS += -DUSE_HW_KEYMASTER -endif -LOCAL_SHARED_LIBRARIES := libcrypto \ - liblog \ - libkeystore_binder \ - libkeymaster_messages \ - libteec - -LOCAL_MODULE_TAGS := optional - -ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo OK),OK) -LOCAL_PROPRIETARY_MODULE := true -endif - -ifeq ($(shell test $(PLATFORM_SDK_VERSION) -le 26 && echo OK),OK) -LOCAL_SHARED_LIBRARIES += libkeymaster1 -endif - -LOCAL_CFLAGS += -DANDROID_PLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION) - -LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk -LOCAL_REQUIRED_MODULES := $(KEYMASTER_TA_BINARY) -include $(BUILD_SHARED_LIBRARY) - ##################################################### # TA Library ##################################################### @@ -67,62 +25,51 @@ LOCAL_MODULE_TAGS := optional LOCAL_MODULE := $(KEYMASTER_TA_BINARY) LOCAL_MODULE_SUFFIX := .ta LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/lib/teetz +KEYMASTER_UNSIGNED_TA := $(LOCAL_PATH)/$(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX) ifeq ($(TARGET_ENABLE_TA_SIGN), true) -$(info $(shell mkdir $(ANDROID_BUILD_TOP)/$(LOCAL_PATH)/signed)) -$(info $(shell $(ANDROID_BUILD_TOP)/$(BOARD_AML_VENDOR_PATH)/tdk/ta_export/scripts/sign_ta_auto.py \ - --in=$(ANDROID_BUILD_TOP)/$(LOCAL_PATH)/$(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX) \ - --out=$(ANDROID_BUILD_TOP)/$(LOCAL_PATH)/signed/$(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX))) -LOCAL_SRC_FILES := signed/$(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX) +include $(BUILD_SYSTEM)/base_rules.mk +$(LOCAL_BUILT_MODULE): + @mkdir -p $(dir $@) + $(BOARD_AML_VENDOR_PATH)/tdk/ta_export/scripts/sign_ta_auto.py \ + --in=$(KEYMASTER_UNSIGNED_TA) \ + --out=$@ \ + --keydir=$(BOARD_AML_TDK_KEY_PATH) else -LOCAL_SRC_FILES := $(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX) -endif +LOCAL_PREBUILT_MODULE_FILE := $(KEYMASTER_UNSIGNED_TA) include $(BUILD_PREBUILT) +endif - -# Unit tests for libkeymaster include $(CLEAR_VARS) -LOCAL_MODULE := amlkeymaster_tests -LOCAL_SRC_FILES := \ - unit_test/android_keymaster_test.cpp \ - unit_test/android_keymaster_test_utils.cpp \ - unit_test/attestation_record.cpp -# unit_test/attestation_record_test.cpp \ - unit_test/authorization_set_test.cpp \ -# unit_test/android_keymaster_messages_test.cpp \ - unit_test/hkdf_test.cpp \ - unit_test/hmac_test.cpp \ - unit_test/kdf1_test.cpp \ - unit_test/kdf2_test.cpp \ - unit_test/kdf_test.cpp \ - unit_test/key_blob_test.cpp \ - unit_test/keymaster_enforcement_test.cpp +LOCAL_MODULE_RELATIVE_PATH := hw +LOCAL_SRC_FILES := 4.0/service.cpp \ + 4.0/AmlogicKeymaster4Device.cpp \ + ipc/amlogic_keymaster_ipc.cpp \ + AmlogicKeymaster.cpp +LOCAL_CFLAGS += -DAMLOGIC_MODIFY=1 LOCAL_C_INCLUDES := \ - external/boringssl/include \ - system/keymaster/include \ - system/keymaster \ - system/security/softkeymaster/include + $(LOCAL_PATH)/include \ + $(BOARD_AML_VENDOR_PATH)/tdk/ca_export_arm/include -LOCAL_CFLAGS = -Wall -Werror -Wunused -DKEYMASTER_NAME_TAGS -LOCAL_CLANG_CFLAGS += -Wno-error=unused-const-variable -Wno-error=unused-private-field -# TODO(krasin): reenable coverage flags, when the new Clang toolchain is released. -# Currently, if enabled, these flags will cause an internal error in Clang. -LOCAL_CLANG_CFLAGS += -fno-sanitize-coverage=edge,indirect-calls,8bit-counters,trace-cmp -LOCAL_MODULE_TAGS := tests LOCAL_SHARED_LIBRARIES := \ - libsoftkeymasterdevice \ - libkeymaster_messages \ - libcrypto \ - libsoftkeymaster \ - libkeymaster_portable \ - libhardware - -LOCAL_CFLAGS += -DANDROID_PLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION) + liblog \ + libcutils \ + libdl \ + libbase \ + libutils \ + libhardware \ + libhidlbase \ + libhidltransport \ + libteec \ + libkeymaster_messages \ + libkeymaster4 \ + android.hardware.keymaster@4.0 -ifeq ($(shell test $(PLATFORM_SDK_VERSION) -le 26 && echo OK),OK) -LOCAL_SHARED_LIBRARIES += libkeymaster1 +ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo OK),OK) +LOCAL_PROPRIETARY_MODULE := true endif -LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk -include $(BUILD_NATIVE_TEST) - +LOCAL_REQUIRED_MODULES := $(KEYMASTER_TA_BINARY) +LOCAL_MODULE := android.hardware.keymaster@4.0-service.amlogic +LOCAL_INIT_RC := 4.0/android.hardware.keymaster@4.0-service.amlogic.rc +include $(BUILD_EXECUTABLE) |