diff options
Diffstat (limited to 'audio/common/all-versions/default')
3 files changed, 62 insertions, 0 deletions
diff --git a/audio/common/all-versions/default/service/Android.bp b/audio/common/all-versions/default/service/Android.bp index 9890be2954..99f745c17b 100644 --- a/audio/common/all-versions/default/service/Android.bp +++ b/audio/common/all-versions/default/service/Android.bp @@ -40,7 +40,40 @@ cc_binary { init_rc: ["android.hardware.audio.service.rc"], relative_install_path: "hw", vendor: true, + srcs: ["service.cpp"], + + cflags: [ + "-Wall", + "-Wextra", + "-Werror", + ], + shared_libs: [ + "libcutils", + "libbinder", + "libbinder_ndk", + "libhwbinder", + "libhidlbase", + "liblog", + "libutils", + "libhardware", + ], + arch : { + arm : { + cflags: [ + "-DARCH_ARM_32", + ] + } + }, +} + +cc_binary { + name: "android.hardware.audio.service_64", + + init_rc: ["android.hardware.audio.service_64.rc"], + relative_install_path: "hw", + vendor: true, + compile_multilib: "64", srcs: ["service.cpp"], cflags: [ @@ -53,6 +86,7 @@ cc_binary { "libcutils", "libbinder", "libbinder_ndk", + "libhwbinder", "libhidlbase", "liblog", "libutils", @@ -69,3 +103,7 @@ phony { name: "android.hardware.audio@2.0-service", required: ["android.hardware.audio.service"], } +phony { + name: "android.hardware.audio@2.0-service_64", + required: ["android.hardware.audio.service_64"], +} diff --git a/audio/common/all-versions/default/service/android.hardware.audio.service_64.rc b/audio/common/all-versions/default/service/android.hardware.audio.service_64.rc new file mode 100644 index 0000000000..5db2fafe31 --- /dev/null +++ b/audio/common/all-versions/default/service/android.hardware.audio.service_64.rc @@ -0,0 +1,9 @@ +service vendor.audio-hal /vendor/bin/hw/android.hardware.audio.service_64 + class hal + user audioserver + # media gid needed for /dev/fm (radio) and for /data/misc/media (tee) + group audio camera drmrpc inet media mediadrm net_bt net_bt_admin net_bw_acct wakelock context_hub + capabilities BLOCK_SUSPEND + ioprio rt 4 + task_profiles ProcessCapacityHigh HighPerformance + onrestart restart audioserver diff --git a/audio/common/all-versions/default/service/service.cpp b/audio/common/all-versions/default/service/service.cpp index fbf616563d..bd677e29ce 100644 --- a/audio/common/all-versions/default/service/service.cpp +++ b/audio/common/all-versions/default/service/service.cpp @@ -33,6 +33,18 @@ using android::OK; using InterfacesList = std::vector<std::string>; +#ifdef ARCH_ARM_32 +//default h/w binder memsize is 1 MB +#define DEFAULT_HW_BINDER_MEM_SIZE_KB 1024 + +size_t getHWBinderMmapSize(){ + int32_t value = DEFAULT_HW_BINDER_MEM_SIZE_KB; + value = property_get_int32("persist.vendor.audio.hw.binder.size_kbyte", value); + ALOGD("Init hw binder with mem size = %d ", value); + return 1024 * value; +} +#endif + /** Try to register the provided factories in the provided order. * If any registers successfully, do not register any other and return true. * If all fail, return false. @@ -74,6 +86,9 @@ static bool registerExternalServiceImplementation(const std::string& libName, int main(int /* argc */, char* /* argv */ []) { signal(SIGPIPE, SIG_IGN); +#ifdef ARCH_ARM_32 + android::hardware::ProcessState::initWithMmapSize(getHWBinderMmapSize()); +#endif ::android::ProcessState::initWithDriver("/dev/vndbinder"); // start a threadpool for vndbinder interactions |