diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-12-02 00:24:16 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-12-02 00:24:16 +0000 |
commit | aefa34d7a646f28b6e45a0e12788d6e3e2c9daf9 (patch) | |
tree | 399488b95d25cadc312a90313fca743f1cfaa751 | |
parent | 509d161c208c6aaea62a66fd3481235efce2cf31 (diff) | |
parent | e69d04f02edf88af6ed2bca1c2eb7719d9abc155 (diff) | |
download | secure_element-android13-qpr2-b-s1-release.tar.gz |
Snap for 9358956 from e69d04f02edf88af6ed2bca1c2eb7719d9abc155 to tm-qpr2-releaseandroid-13.0.0_r49android-13.0.0_r45android-13.0.0_r44android-13.0.0_r43android-13.0.0_r42android-13.0.0_r41android-13.0.0_r40android-13.0.0_r39android-13.0.0_r38android-13.0.0_r37android-13.0.0_r36android-13.0.0_r35android-13.0.0_r34android-13.0.0_r33android-13.0.0_r32android13-qpr2-s9-releaseandroid13-qpr2-s8-releaseandroid13-qpr2-s7-releaseandroid13-qpr2-s6-releaseandroid13-qpr2-s5-releaseandroid13-qpr2-s3-releaseandroid13-qpr2-s2-releaseandroid13-qpr2-s12-releaseandroid13-qpr2-s11-releaseandroid13-qpr2-s10-releaseandroid13-qpr2-s1-releaseandroid13-qpr2-releaseandroid13-qpr2-b-s1-release
Change-Id: I8ea760b9d387fc89f7d03d71ea0c51afe5ca15c7
-rw-r--r-- | 1.2/SecureElement.cpp | 8 | ||||
-rw-r--r-- | 1.2/StEseService.cpp | 20 |
2 files changed, 26 insertions, 2 deletions
diff --git a/1.2/SecureElement.cpp b/1.2/SecureElement.cpp index 0ec90ae..b8b020f 100644 --- a/1.2/SecureElement.cpp +++ b/1.2/SecureElement.cpp @@ -523,6 +523,7 @@ SecureElement::seHalDeInit() { Return<::android::hardware::secure_element::V1_0::SecureElementStatus> SecureElement::reset() { int ret = 0; + void* stdll = nullptr; ESESTATUS status = ESESTATUS_SUCCESS; SecureElementStatus sestatus = SecureElementStatus::FAILED; std::string valueStr = @@ -534,8 +535,11 @@ SecureElement::reset() { if (status != ESESTATUS_SUCCESS) { STLOG_HAL_E("%s: seHalInit Failed!!!", __func__); if (valueStr.length() > 0) { - valueStr = VENDOR_LIB_PATH + valueStr + VENDOR_LIB_EXT; - void* stdll = dlopen(valueStr.c_str(), RTLD_NOW); + stdll = dlopen(valueStr.c_str(), RTLD_NOW); + if (!stdll) { + valueStr = VENDOR_LIB_PATH + valueStr + VENDOR_LIB_EXT; + stdll = dlopen(valueStr.c_str(), RTLD_NOW); + } if (stdll) { STEseReset fn = (STEseReset)dlsym(stdll, "direct_reset"); if (fn) { diff --git a/1.2/StEseService.cpp b/1.2/StEseService.cpp index 7fa8e9f..c6faef3 100644 --- a/1.2/StEseService.cpp +++ b/1.2/StEseService.cpp @@ -17,12 +17,16 @@ * ******************************************************************************/ #define LOG_TAG "ese@1.2-service.st" +#include <android-base/properties.h> #include <android/hardware/secure_element/1.2/ISecureElement.h> +#include <dlfcn.h> #include <hidl/LegacySupport.h> #include <log/log.h> #include "SecureElement.h" +typedef int (*STEsePreProcess)(void); + // Generated HIDL files using android::OK; using android::sp; @@ -36,6 +40,22 @@ int main() { ALOGD("Secure Element HAL Service 1.2 is starting."); sp<ISecureElement> se_service = new SecureElement(); configureRpcThreadpool(1, true /*callerWillJoin*/); + + // Ignore this dlopen if you don't need it. + std::string valueStr = + android::base::GetProperty("persist.vendor.se.stpreprocess", ""); + void* stdll = dlopen(valueStr.c_str(), RTLD_NOW); + if (stdll) { + STEsePreProcess fn = (STEsePreProcess)dlsym(stdll, "pre_process"); + if (fn) { + if (fn() == 0) { + ALOGD("%s: init done", __func__); + } else { + ALOGE("%s: Error init ", __func__); + } + } + } + status_t status = se_service->registerAsService("eSE1"); if (status != OK) { LOG_ALWAYS_FATAL( |