Use explicit requirements from APEX
Previously, CAS APEX used ":sphal" and `android_load_sphal_library` to open plugins from /vendor/lib/mediacas. It was a workaround because there's no way to limit the scope to /vendor/lib/mediacas. And CAS plugins are not SPHAL libraries. Now, the APEX uses more explicit requirements: ":mediacas", which limitss the scope to /vendor/lib/mediacas. Bug: 298542407 Test: atest CtsMediaMiscTestCases:MediaCasTest Change-Id: Id91a87e0f6ef8a761e37cabed7da8b9fed0591c2
This commit is contained in:
parent
fa2dd8e2ad
commit
9e73b2047a
3 changed files with 4 additions and 7 deletions
|
@ -57,7 +57,6 @@ cc_defaults {
|
|||
shared_libs: [
|
||||
"libbinder_ndk",
|
||||
"liblog",
|
||||
"libvndksupport",
|
||||
],
|
||||
header_libs: ["media_plugin_headers"],
|
||||
}
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
#include "SharedLibrary.h"
|
||||
#include <dlfcn.h>
|
||||
#include <utils/Log.h>
|
||||
#include <vndksupport/linker.h>
|
||||
|
||||
namespace aidl {
|
||||
namespace android {
|
||||
|
@ -27,12 +26,12 @@ namespace hardware {
|
|||
namespace cas {
|
||||
|
||||
SharedLibrary::SharedLibrary(const String8& path) {
|
||||
mLibHandle = android_load_sphal_library(path.c_str(), RTLD_NOW);
|
||||
mLibHandle = dlopen(path.c_str(), RTLD_NOW);
|
||||
}
|
||||
|
||||
SharedLibrary::~SharedLibrary() {
|
||||
if (mLibHandle != NULL) {
|
||||
android_unload_sphal_library(mLibHandle);
|
||||
dlclose(mLibHandle);
|
||||
mLibHandle = NULL;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
{
|
||||
"name": "com.android.hardware.cas",
|
||||
"version": 1,
|
||||
// For CAS HAL to open plugins from /vendor/lib, "vendor" namespace should be imported.
|
||||
// ":sphal" is an alias for the "vendor" namespace in Vendor APEX.
|
||||
// For CAS HAL to open plugins from /vendor/lib/mediacas
|
||||
"requireNativeLibs": [
|
||||
":sphal"
|
||||
":mediacas"
|
||||
]
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue