Merge "Add CAS HAL APEX" into main am: d26b6cf395 am: 7e47136062 am: 7f74a0dd08 am: e5111978a9

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2742399

Change-Id: If5ad1bdb1c35832cbb5661141b1e891c6ce6755d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Jooyung Han 2023-09-13 02:51:46 +00:00 committed by Automerger Merge Worker
commit 29e49b12c3
5 changed files with 61 additions and 10 deletions

View file

@ -26,6 +26,7 @@ cc_library_static {
"liblog",
"libutils",
"libcutils",
"libvndksupport",
],
static_libs: [
"libaidlcommonsupport",
@ -43,34 +44,39 @@ cc_defaults {
srcs: ["service.cpp"],
stl: "c++_static",
static_libs: [
"android.hardware.cas-V1-ndk",
"android.hardware.common-V2-ndk",
"libaidlcommonsupport",
"libbase",
"libcasexampleimpl",
"libcutils",
"libutils",
],
shared_libs: [
"android.hardware.cas-V1-ndk",
"libbase",
"libbinder_ndk",
"liblog",
"libutils",
"libcutils",
"libvndksupport",
],
header_libs: ["media_plugin_headers"],
vintf_fragments: ["android.hardware.cas-service.xml"],
}
cc_binary {
name: "android.hardware.cas-service.example",
defaults: ["cas_service_example_defaults"],
init_rc: ["cas-default.rc"],
// Installed in APEX
installable: false,
}
// TODO(b/297467514) Convert to VAPEX
cc_binary {
name: "android.hardware.cas-service.example-lazy",
defaults: ["cas_service_example_defaults"],
init_rc: ["cas-default-lazy.rc"],
vintf_fragments: ["android.hardware.cas-service.xml"],
cflags: ["-DLAZY_SERVICE"],
overrides: ["android.hardware.cas-service.example"],
overrides: ["com.android.hardware.cas"],
}
cc_fuzz {
@ -84,6 +90,7 @@ cc_fuzz {
"android.hardware.cas-V1-ndk",
"libcutils",
"liblog",
"libvndksupport",
],
static_libs: [
"libaidlcommonsupport",
@ -94,3 +101,34 @@ cc_fuzz {
componentid: 1344,
},
}
apex {
name: "com.android.hardware.cas",
manifest: "manifest.json",
file_contexts: "file_contexts",
key: "com.android.hardware.key",
certificate: ":com.android.hardware.certificate",
updatable: false,
vendor: true,
binaries: [
"android.hardware.cas-service.example",
],
prebuilts: [
"cas-default.rc",
"android.hardware.cas-service.xml",
],
}
prebuilt_etc {
name: "cas-default.rc",
src: "cas-default.rc",
installable: false,
}
prebuilt_etc {
name: "android.hardware.cas-service.xml",
src: "android.hardware.cas-service.xml",
sub_dir: "vintf",
installable: false,
}

View file

@ -19,6 +19,7 @@
#include "SharedLibrary.h"
#include <dlfcn.h>
#include <utils/Log.h>
#include <vndksupport/linker.h>
namespace aidl {
namespace android {
@ -26,12 +27,12 @@ namespace hardware {
namespace cas {
SharedLibrary::SharedLibrary(const String8& path) {
mLibHandle = dlopen(path.c_str(), RTLD_NOW);
mLibHandle = android_load_sphal_library(path.c_str(), RTLD_NOW);
}
SharedLibrary::~SharedLibrary() {
if (mLibHandle != NULL) {
dlclose(mLibHandle);
android_unload_sphal_library(mLibHandle);
mLibHandle = NULL;
}
}

View file

@ -1,4 +1,4 @@
service vendor.cas-default /vendor/bin/hw/android.hardware.cas-service.example
service vendor.cas-default /apex/com.android.hardware.cas/bin/hw/android.hardware.cas-service.example
interface aidl android.hardware.cas.IMediaCasService/default
class hal
user media

View file

@ -0,0 +1,3 @@
(/.*)? u:object_r:vendor_file:s0
/etc(/.*)? u:object_r:vendor_configs_file:s0
/bin/hw/android\.hardware\.cas-service\.example u:object_r:hal_cas_default_exec:s0

View file

@ -0,0 +1,9 @@
{
"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.
"requireNativeLibs": [
":sphal"
]
}