Skip to content

Audio in+out support - #17

Closed
SaicharanKandukuri wants to merge 1 commit into
mainfrom
agent/audio-in-out-support
Closed

Audio in+out support#17
SaicharanKandukuri wants to merge 1 commit into
mainfrom
agent/audio-in-out-support

Conversation

@SaicharanKandukuri

Copy link
Copy Markdown
Member

What changed

  • add an app-owned PulseAudio 17/OpenSL ES runtime for Linux playback and optional microphone input
  • expose per-system speaker and microphone controls, with Android permission and privacy handling
  • connect supervised terminal, desktop, and Linux app sessions over authenticated device-local loopback
  • package checksum-pinned runtimes for all supported ABIs with a reproducible build script
  • document the audio architecture and add unit and device probes

Why

Linux applications previously had no supported path to Android audio devices. This gives PRoot sessions a managed PulseAudio endpoint without requiring an audio daemon inside every rootfs.

Impact

Speaker output is enabled by default. Microphone input remains opt-in per Linux system and requires Android runtime permission. Direct ALSA-only clients still need a PulseAudio compatibility plugin.

Root cause addressed

PRoot could see a bind-mounted Unix socket but could not reliably connect through it. The bridge therefore binds PulseAudio only to 127.0.0.1 and authenticates guests with a private bind-mounted cookie.

Verification

  • ./gradlew testDebugUnitTest assembleDebug lintDebug
  • update-key signed assembleRelease
  • installed over v0.0.9 on a Pixel 6 without clearing app data
  • pactl info connected from Ubuntu/XFCE and reported the uDroid sink
  • pavucontrol displayed OpenSL ES Output
  • paplay /usr/share/sounds/freedesktop/stereo/complete.oga completed successfully
  • git diff --check

@SaicharanKandukuri
SaicharanKandukuri deleted the agent/audio-in-out-support branch August 7, 2026 09:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant