From bfc3b1b0d168b5a301d193c2c6b186cad9db61f9 Mon Sep 17 00:00:00 2001 From: nift4 Date: Fri, 28 Oct 2022 14:30:26 +0100 Subject: [PATCH] rosemary: Shim beanpod keymaster Change-Id: Iac8ab200f0d844c56a820be9553afcbaee880e4b --- device.mk | 3 +++ extract-files.sh | 3 +++ libshims/Android.bp | 13 +++++++++++++ libshims/libshim_beanpod.cpp | 9 +++++++++ 4 files changed, 28 insertions(+) create mode 100644 libshims/libshim_beanpod.cpp diff --git a/device.mk b/device.mk index c063aba..ece43e6 100644 --- a/device.mk +++ b/device.mk @@ -115,6 +115,9 @@ PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \ android.hardware.keymaster@4.0.vendor +PRODUCT_PACKAGES += \ + libshim_beanpod + # Overlays PRODUCT_ENFORCE_RRO_TARGETS := * diff --git a/extract-files.sh b/extract-files.sh index 059311d..26db2a5 100755 --- a/extract-files.sh +++ b/extract-files.sh @@ -58,6 +58,9 @@ function blob_fixup { vendor/lib*/hw/audio.primary.mt6785.so) "${PATCHELF}" --add-needed "libshim_audio.so" "${2}" ;; + vendor/bin/hw/android.hardware.keymaster@4.0-service.beanpod) + "${PATCHELF}" --add-needed "libshim_beanpod.so" "${2}" + ;; esac } diff --git a/libshims/Android.bp b/libshims/Android.bp index aa5ee10..b9d7de1 100644 --- a/libshims/Android.bp +++ b/libshims/Android.bp @@ -15,3 +15,16 @@ cc_library_shared { ], vendor: true } + +cc_library_shared { + name: "libshim_beanpod", + srcs: ["libshim_beanpod.cpp"], + vendor: true, + shared_libs: [ + "libkeymaster_messages", + ], + header_libs: [ + "libhardware_headers", + ], + include_dirs: [ "system/keymaster/include" ], +} diff --git a/libshims/libshim_beanpod.cpp b/libshims/libshim_beanpod.cpp new file mode 100644 index 0000000..a4aec17 --- /dev/null +++ b/libshims/libshim_beanpod.cpp @@ -0,0 +1,9 @@ +#include + +extern "C" { +void _ZN9keymaster19GenerateKeyResponseD1Ev() {} +void _ZN9keymaster17AttestKeyResponseD1Ev() {} +void _ZN9keymaster16ImportKeyRequest14SetKeyMaterialEPKvm(keymaster::ImportKeyRequest* thisptr, const uint8_t* key_material, size_t length) { + thisptr->key_data = keymaster::KeymasterKeyBlob(key_material, length); +} +}