Enable speaker and microphone
1. Enabling audo devices for crosvm
2. Adding kernel config for virtio-snd
3. preinstall pulseaudio for the debian
Test: Play youtube music and use arecord to record sound
Bug: 393507771
Change-Id: Iee815cb7bf5cc12d0c745ec578f05b0dd2315448
diff --git a/android/TerminalApp/AndroidManifest.xml b/android/TerminalApp/AndroidManifest.xml
index 8ed2f79..aa702a3 100644
--- a/android/TerminalApp/AndroidManifest.xml
+++ b/android/TerminalApp/AndroidManifest.xml
@@ -26,6 +26,7 @@
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
+ <uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-feature android:name="android.software.virtualization_framework" android:required="true" />
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.kt b/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.kt
index ecb01c0..6301da4 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.kt
@@ -34,6 +34,7 @@
import android.os.Trace
import android.system.virtualmachine.VirtualMachine
import android.system.virtualmachine.VirtualMachineCustomImageConfig
+import android.system.virtualmachine.VirtualMachineCustomImageConfig.AudioConfig
import android.system.virtualmachine.VirtualMachineException
import android.util.Log
import android.widget.Toast
@@ -105,6 +106,13 @@
val configBuilder = json.toConfigBuilder(this)
val customImageConfigBuilder = json.toCustomImageConfigBuilder(this)
val displaySize = intent.getParcelableExtra(EXTRA_DISPLAY_INFO, DisplayInfo::class.java)
+
+ customImageConfigBuilder.setAudioConfig(
+ AudioConfig.Builder()
+ .setUseSpeaker(true)
+ .setUseMicrophone(true)
+ .build()
+ )
if (overrideConfigIfNecessary(customImageConfigBuilder, displaySize)) {
configBuilder.setCustomImageConfig(customImageConfigBuilder.build())
}
diff --git a/build/debian/fai_config/package_config/AVF b/build/debian/fai_config/package_config/AVF
index ec68434..3aa8ab0 100644
--- a/build/debian/fai_config/package_config/AVF
+++ b/build/debian/fai_config/package_config/AVF
@@ -13,3 +13,4 @@
mesa-vulkan-drivers
libvulkan1
vulkan-tools
+pulseaudio
diff --git a/build/debian/kernel/config b/build/debian/kernel/config
index 1ba603c..58e783a 100644
--- a/build/debian/kernel/config
+++ b/build/debian/kernel/config
@@ -1 +1,4 @@
CONFIG_DRM=m
+CONFIG_SND_VIRTIO=y
+CONFIG_SND=y
+CONFIG_SOUND=y