Merge changes from topic "cuttlefish_aidl_audio-3" into main
* changes:
AudioService: check for AIDL service availbility
Enable AIDL HAL support in the framework
diff --git a/media/java/android/media/AudioHalVersionInfo.java b/media/java/android/media/AudioHalVersionInfo.java
index 985a758..efb3395 100644
--- a/media/java/android/media/AudioHalVersionInfo.java
+++ b/media/java/android/media/AudioHalVersionInfo.java
@@ -75,11 +75,10 @@
/**
* List of all valid Audio HAL versions. This list need to be in sync with sAudioHALVersions
- * defined in frameworks/av/media/libaudiohal/FactoryHalHidl.cpp.
+ * defined in frameworks/av/media/libaudiohal/FactoryHal.cpp.
*/
- // TODO: add AIDL_1_0 with sAudioHALVersions.
public static final @NonNull List<AudioHalVersionInfo> VERSIONS =
- List.of(HIDL_7_1, HIDL_7_0, HIDL_6_0, HIDL_5_0, HIDL_4_0);
+ List.of(AIDL_1_0, HIDL_7_1, HIDL_7_0, HIDL_6_0, HIDL_5_0, HIDL_4_0);
private static final String TAG = "AudioHalVersionInfo";
private AudioHalVersion mHalVersion = new AudioHalVersion();
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index b555a52..39d9b45 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -12053,12 +12053,16 @@
public @Nullable AudioHalVersionInfo getHalVersion() {
for (AudioHalVersionInfo version : AudioHalVersionInfo.VERSIONS) {
try {
- // TODO: check AIDL service.
String versionStr = version.getMajorVersion() + "." + version.getMinorVersion();
- HwBinder.getService(
- String.format("android.hardware.audio@%s::IDevicesFactory", versionStr),
- "default");
- return version;
+ final String aidlStr = "android.hardware.audio.core.IModule/default";
+ final String hidlStr = String.format("android.hardware.audio@%s::IDevicesFactory",
+ versionStr);
+ if (null != ServiceManager.checkService(aidlStr)) {
+ return version;
+ } else {
+ HwBinder.getService(hidlStr, "default");
+ return version;
+ }
} catch (NoSuchElementException e) {
// Ignore, the specified HAL interface is not found.
} catch (RemoteException re) {