0

I'm trying to enable host camera passthrough in Android Cuttlefish but cannot find any working documentation or implementation. I've tested on multiple setups without success.

Setup Details

Host Systems Tested:

  • Raspberry Pi 5 (ARM64) with ARM64 Cuttlefish build
  • x86_64 laptop with x86_64 Cuttlefish build
  • Both systems have working webcams accessible via /dev/video*

Cuttlefish Version:

  • Downloaded from ci.android.com (latest aosp-android-latest-release)
  • ARM64 build: aosp_cf_arm64_only_phone (on Raspberry Pi)
  • x86_64 build: aosp_cf_x86_64_only_phone (on laptop)
  • Build ID: 13912524

Current Behavior

  • Cuttlefish launches successfully with WebRTC on port 8443
  • Web interface has camera controls (can turn on/off, browser asks for permissions)
  • Camera never shows actual feed - only displays placeholder
  • --camera_server_port=5555 flag exists but is undocumented
  • No camera-related processes running on host
  • No camera-related logs in Cuttlefish output

Questions

  1. Is camera passthrough actually supported in current Cuttlefish builds?

  2. What are the correct flags to enable host camera passthrough?

  3. Are there specific build requirements or kernel modules needed?

  4. Is there any official documentation beyond the basic setup guide?

Environment Details

# Raspberry Pi 5 (ARM64)
uname -a  # Linux r5 6.12.34+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.34-1+rpt1~bookworm (2025-06-26) aarch64 GNU/Linux

# x86_64 Laptop  
uname -a  # Linux Yoga-Slim-7 6.16.1-uvc-gadget #6 SMP PREEMPT_DYNAMIC Wed Aug 20 12:58:39 BST 2025 x86_64 x86_64 x86_64 GNU/Linux

# Both systems
groups    # Includes kvm, cvdnetwork, render, video

# Cuttlefish status
./bin/adb devices  # Shows 0.0.0.0:6520 device
curl localhost:8443  # WebRTC interface accessible

The --camera_server_port flag suggests this functionality should exist, but there's no documentation on how to actually use it or configure the camera passthrough.

Has anyone successfully implemented camera passthrough with Cuttlefish? Any insights on the correct configuration would be greatly appreciated.

Tags: android, cuttlefish, android-emulator, camera, virtualization

What I've Tried

  1. Flag Investigation:

    ./bin/launch_cvd --help | grep -i camera  # Returns nothing
    ./bin/launch_cvd --help | grep -E "(camera|webcam|video)"  # Returns nothing
    
  2. Various Launch Attempts:

    ./bin/launch_cvd --camera_server_port=5555 --daemon
    ./bin/launch_cvd --enable_host_camera=true --daemon  # Flag doesn't exist
    
  3. System Verification:

    ls -l /dev/video*  # Shows /dev/video2 (working webcam)
    groups | grep video  # User is in video group
    
  4. Android Side Check:

    ./bin/adb shell ls /vendor/lib*/hw/*camera*  # Shows camera HAL
    ./bin/adb shell getprop | grep camera  # Shows camera properties
    
3
  • Searched and found: Implement V4L2 camera emulation in Cuttlefish. android.googlesource.com/device/google/cuttlefish/+/…. Commented Sep 18 at 20:08
  • Thank you, this is exactly what i needed. i've had all the ai's tell me i need camera_server binary and work around that for days, they do not have their knowledgebases updated,not even gemini. Im really trying to get the ARM build to work, but it's still failing and showing the placeholder video. i dont know if CI.android builds have this implemented, the AI again says : cuttlefish_v4l2_streamer Inside Android guest ( /vendor/bin/ ) ❌ MISSING in your build but i cant trust anything now, how would i verify ? Commented Sep 19 at 9:06
  • r5@r5:~/cf $ ./bin/adb shell "find /vendor/bin /system/bin -name 'cuttlefish*' -o -name 'webrtc' -o -name 'streamer' 2>/dev/null" /vendor/bin/cuttlefish_sensor_injection r5@r5:~/cf $ ./bin/adb root && ./bin/adb shell vsoc_arm64_only:/ # cuttlefish_v4l2_streamer /system/bin/sh: cuttlefish_v4l2_streamer: inaccessible or not found 127|vsoc_arm64_only:/ # I have the latest (and only with no test error) build from ci.android, does this mean it was not compiled with camera support ? Commented Sep 19 at 14:23

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.