From de7d06babb5e1dd29390d4f0c63714794bdb697f Mon Sep 17 00:00:00 2001 From: Kevin Rocard Date: Tue, 18 Jun 2019 16:38:16 -0700 Subject: [PATCH] Convert audio HAL service mk to bp and rename the service The service supports multiple versions and its name should not be version dependant. For backward compatibility, keep the target name android.hardware.audio@2.0-service (32bit only), existing PRODUCT_PACKAGES do not have to be updated. New products should depend on android.hardware.audio.service:32. Additionally migrate to Android.bp, dropping support for AUDIOSERVER_MULTILIB. Previously the HAL service architecture (32 vs 64) would be the same as the audio server. This in not wanted as all android audio HAL are 32 bits. Bug: 121208203 Test: # Compare following commands before and after patch: find $ANDROID_PRODUCT_OUT/vendor -name 'android.hardware.audio*'|xargs file adb shell reboot # check device boots to UI and # check the HAL restarts after the audioserver is killed adb shell ps |grep audio; adb shell killall audioserver; adb shell ps Change-Id: I25f41735175a6687a051ca1e5a7fee670eb8115e Signed-off-by: Kevin Rocard --- CleanSpec.mk | 1 + .../all-versions/default/service/Android.bp | 48 ++++++++++++++ .../all-versions/default/service/Android.mk | 63 ------------------- ...e.rc => android.hardware.audio.service.rc} | 2 +- 4 files changed, 50 insertions(+), 64 deletions(-) create mode 100644 audio/common/all-versions/default/service/Android.bp delete mode 100644 audio/common/all-versions/default/service/Android.mk rename audio/common/all-versions/default/service/{android.hardware.audio@2.0-service.rc => android.hardware.audio.service.rc} (81%) diff --git a/CleanSpec.mk b/CleanSpec.mk index edde1cbd33..da2635e0d2 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -80,3 +80,4 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib64/vndk-Q/android.hardwar $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib64/android.hardware.configstore@1.2.so) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/vndk-Q/android.hardware.configstore@1.2.so) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/android.hardware.configstore@1.2.so) +$(call add-clean-step, rm -f $(PRODUCT_OUT)/etc/init/android.hardware.audio@2.0-service.rc $(PRODUCT_OUT)/vendor/bin/hw/android.hardware.audio@2.0-service) diff --git a/audio/common/all-versions/default/service/Android.bp b/audio/common/all-versions/default/service/Android.bp new file mode 100644 index 0000000000..f5a6f42df5 --- /dev/null +++ b/audio/common/all-versions/default/service/Android.bp @@ -0,0 +1,48 @@ +cc_binary { + name: "android.hardware.audio.service", + + init_rc: ["android.hardware.audio.service.rc"], + relative_install_path: "hw", + vendor: true, + // Only support 32 bit as the binary must always be installed at the same + // location for init to start it and the build system does not support + // having two binaries installable to the same location even if they are + // not installed in the same build. + compile_multilib: "32", + srcs: ["service.cpp"], + + cflags: [ + "-Wall", + "-Wextra", + "-Werror", + ], + + shared_libs: [ + "libcutils", + "libbinder", + "libhidlbase", + "liblog", + "libutils", + "libhardware", + "android.hardware.audio@2.0", + "android.hardware.audio@4.0", + "android.hardware.audio@5.0", + "android.hardware.audio.common@2.0", + "android.hardware.audio.common@4.0", + "android.hardware.audio.common@5.0", + "android.hardware.audio.effect@2.0", + "android.hardware.audio.effect@4.0", + "android.hardware.audio.effect@5.0", + "android.hardware.bluetooth.a2dp@1.0", + "android.hardware.bluetooth.audio@2.0", + "android.hardware.soundtrigger@2.0", + "android.hardware.soundtrigger@2.1", + "android.hardware.soundtrigger@2.2", + ], +} + +// Legacy service name, use android.hardware.audio.service instead +phony { + name: "android.hardware.audio@2.0-service", + required: ["android.hardware.audio.service"], +} diff --git a/audio/common/all-versions/default/service/Android.mk b/audio/common/all-versions/default/service/Android.mk deleted file mode 100644 index 236f1fd3d6..0000000000 --- a/audio/common/all-versions/default/service/Android.mk +++ /dev/null @@ -1,63 +0,0 @@ -# -# Copyright (C) 2016 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -LOCAL_PATH := $(call my-dir) - -# -# Service -# - -include $(CLEAR_VARS) -LOCAL_MODULE := android.hardware.audio@2.0-service -LOCAL_INIT_RC := android.hardware.audio@2.0-service.rc -LOCAL_MODULE_RELATIVE_PATH := hw -LOCAL_PROPRIETARY_MODULE := true -LOCAL_SRC_FILES := \ - service.cpp - -LOCAL_CFLAGS := -Wall -Werror - -LOCAL_SHARED_LIBRARIES := \ - libcutils \ - libbinder \ - libhidlbase \ - liblog \ - libutils \ - libhardware \ - android.hardware.audio@2.0 \ - android.hardware.audio@4.0 \ - android.hardware.audio@5.0 \ - android.hardware.audio.common@2.0 \ - android.hardware.audio.common@4.0 \ - android.hardware.audio.common@5.0 \ - android.hardware.audio.effect@2.0 \ - android.hardware.audio.effect@4.0 \ - android.hardware.audio.effect@5.0 \ - android.hardware.bluetooth.a2dp@1.0 \ - android.hardware.bluetooth.audio@2.0 \ - android.hardware.soundtrigger@2.0 \ - android.hardware.soundtrigger@2.1 \ - android.hardware.soundtrigger@2.2 - -# Can not switch to Android.bp until AUDIOSERVER_MULTILIB -# is deprecated as build config variable are not supported -ifeq ($(strip $(AUDIOSERVER_MULTILIB)),) -LOCAL_MULTILIB := 32 -else -LOCAL_MULTILIB := $(AUDIOSERVER_MULTILIB) -endif - -include $(BUILD_EXECUTABLE) diff --git a/audio/common/all-versions/default/service/android.hardware.audio@2.0-service.rc b/audio/common/all-versions/default/service/android.hardware.audio.service.rc similarity index 81% rename from audio/common/all-versions/default/service/android.hardware.audio@2.0-service.rc rename to audio/common/all-versions/default/service/android.hardware.audio.service.rc index 72b4d197dd..63d2542498 100644 --- a/audio/common/all-versions/default/service/android.hardware.audio@2.0-service.rc +++ b/audio/common/all-versions/default/service/android.hardware.audio.service.rc @@ -1,4 +1,4 @@ -service vendor.audio-hal-2-0 /vendor/bin/hw/android.hardware.audio@2.0-service +service vendor.audio-hal /vendor/bin/hw/android.hardware.audio.service class hal user audioserver # media gid needed for /dev/fm (radio) and for /data/misc/media (tee)