universal7885: Include a radio wrapper

vendor.samsung.hardware.radio@2.1 extends android.hardware.radio@1.4 which can be casted and registered
This commit is contained in:
roynatech2544 2022-12-03 18:54:28 +09:00
commit cdcdf5481c
5 changed files with 65 additions and 3 deletions

View file

@ -0,0 +1,21 @@
cc_binary {
name: "android.hardware.radio@1.4-service.samsung",
init_rc: ["android.hardware.radio@1.4-service.samsung.rc"],
relative_install_path: "hw",
vendor: true,
srcs: [
"service.cpp",
],
shared_libs: [
"libhidlbase",
"liblog",
"libutils",
"android.hardware.radio@1.0",
"android.hardware.radio@1.1",
"android.hardware.radio@1.2",
"android.hardware.radio@1.3",
"android.hardware.radio@1.4",
"vendor.samsung.hardware.radio@2.1",
"android.hidl.safe_union@1.0",
],
}

View file

@ -0,0 +1,4 @@
service vendor.radio-1-4 /vendor/bin/hw/android.hardware.radio@1.4-service.samsung
class hal
user system
group system

View file

@ -0,0 +1,38 @@
#define LOG_TAG "android.hardware.radio@1.4-service.samsung"
#include <android/hardware/radio/1.4/IRadio.h>
#include <hidl/HidlTransportSupport.h>
#include <vendor/samsung/hardware/radio/2.1/ISehRadio.h>
using android::OK;
using android::sp;
using android::status_t;
using android::hardware::configureRpcThreadpool;
using android::hardware::joinRpcThreadpool;
using android::hardware::radio::V1_4::IRadio;
using vendor::samsung::hardware::radio::V2_1::ISehRadio;
#define SLOT_1 "slot1"
#define SLOT_2 "slot2"
static void registerInstance(const char *name) {
sp<ISehRadio> sehRadio = ISehRadio::getService(name);
sp<IRadio> radio = IRadio::castFrom(static_cast<sp<IRadio>>(sehRadio));
if (radio) {
status_t status = radio->registerAsService(name);
ALOGW_IF(status != OK, "Could not register IRadio v1.4 %s", name);
} else {
ALOGE("Failed to cast to Radio V1.4");
}
}
int main(void) {
configureRpcThreadpool(1, true);
registerInstance(SLOT_1);
registerInstance(SLOT_2);
ALOGD("Default service is ready.");
joinRpcThreadpool();
return 1;
}