快速链接:
.
👉👉👉 个人博客笔记导读目录(全部) 👈👈👈
相关推荐:
1、Android keymaster的介绍和总结
2、Android keystore/Keymaster的代码导读
文章目录
1、[email protected]的集成
2、keymaster HAL接口的定义
3、[email protected] 纯软实现
3、[email protected] beanpod实现
4、[email protected] trustonic实现
5、总结
1、[email protected]的集成
在device.mk中定义了需要集成的keymaster,多选一:
[email protected] //纯软
(vim device/mediatek/common/device.mk)
# list of all TEEs
ifeq ($(strip $(TRUSTONIC_TEE_SUPPORT)), yes)
PRODUCT_PACKAGES += [email protected]
else ifeq ($(strip $(MICROTRUST_TEE_SUPPORT)), yes)
PRODUCT_PACKAGES += [email protected]
else ifeq ($(strip $(MICROTRUST_TEE_LITE_SUPPORT)), yes)
PRODUCT_PACKAGES += [email protected]
else ifeq ($(strip $(TRUSTKERNEL_TEE_SUPPORT)), yes)
PRODUCT_PACKAGES += [email protected]
else ifeq ($(strip $(MTK_IN_HOUSE_TEE_SUPPORT)), yes)
PRODUCT_PACKAGES += [email protected]
else
PRODUCT_PACKAGES += [email protected]
endif #end of list of TEEs
2、keymaster HAL接口的定义
hardware/interfaces/keymaster/4.0$ ls
Android.bp default IKeymasterDevice.hal support types.hal vts
3、[email protected] 纯软实现
hardware/interfaces/keymaster/4.0/default$ ls
Android.bp [email protected] OWNERS service.cpp
(cat service.cpp)
#include
#include
#include
#include
using android::hardware::keymaster::V4_0::SecurityLevel;
int main() {
::android::hardware::configureRpcThreadpool(1, true /* willJoinThreadpool */);
auto keymaster = ::keymaster::V4_0::ng::CreateKeymasterDevice(SecurityLevel::SOFTWARE);
auto status = keymaster->registerAsService();
if (status != android::OK) {
LOG(FATAL) << "Could not register service for Keymaster 4.0