This tool forwards audio from an Android 10 device to the computer. It does not require any root access. It works on GNU/Linux, Windows and macOS.
- The Android device requires at least Android 10.
- VLC must be installed on the computer.
Get the app
Download the latest release:
On Windows, for simplicity, take the second archive, which also contains
Alternatively, you could build the app.
Run the app
Plug an Android 10 device with USB debugging enabled, and execute:
If several devices are connected (listed by
./sndcpy <serial> # replace <serial> by the device serial
./ on Windows)
It will install the app on the device, and request permission to start audio capture:
Once you clicked on START NOW, press Enter in the console to start playing
on the computer. Press
c in the terminal to stop (except on Windows,
just disconnect the device or stop capture from the device notifications).
VLC may print this error message once:
main stream error: connection error: Connection refused
It is "expected", just ignore it.
The sound continues to be played on the device. The volume can be adjusted independently on the device and on the computer.
To uninstall the app from the device:
adb uninstall com.rom1v.sndcpy
- By default, apps that target versions up to and including to Android 9.0 do not permit playback capture. To enable it, include
android:allowAudioPlaybackCapture="true"in the app's
- By default, apps that target Android 10 (API level 29) or higher allow their audio to be captured. To disable playback capture, include
android:allowAudioPlaybackCapture="false"in the app's
So some apps might need to be updated to support audio capture.
This is just a proof-of-concept, so it's far from perfect.
For example, jitter may cause VLC to automatically increase its buffering, causing an unacceptable delay:
main input error: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to 377 ms)
In that case, just restart it.
ADB: the full path to the
VLC: the full path to the
SNDCPY_APK: the full path to
SNDCPY_PORT: the local port to forward to communicate with the device