Adds a WaylandScreenConnector to VNC Server

Creates a ScreenConnector which runs a minimal WaylandServer compositing server
to receive frame updates from the device.

Note: This changes the interface of ScreenConnector to require clients to
provide a callback functor which can be run within the WaylandServer event
loop. Unlike the existing ScreenConnectors, the Wayland compositing server
must explicitly acknowledge and notify the source when the server is done
with a given buffer so the source can reuse that buffer. The reference
Wayland server implementation also does not appear to be thread safe with
in a single Wayland client so ScreenConnector clients can not be responsible
for acknowledging and notifying the source.

Bug: b/128842306
Test: locally built and ran cuttlefish with crosvm<-wayland->vnc
Change-Id: Iada180cc4acafc2bf2f41c8d0981f38d509858a3
4 files changed
tree: c9cc31a5c81560b3516e8e3170f4918c71919f68
  1. common/
  2. guest/
  3. host/
  4. shared/
  5. tests/
  6. tools/
  7. vsoc_arm64/
  8. vsoc_x86/
  9. vsoc_x86_64/
  10. vsoc_x86_noapex/
  11. Android.bp
  12. Android.mk
  13. AndroidProducts.mk
  14. CleanSpec.mk
  15. dtb.img
  16. fetcher.mk
  17. host_package.mk
  18. OWNERS
  19. README.md
  20. task_profiles.json
  21. TEST_MAPPING
README.md

So you want to try cuttlefish?

  1. Download, build, and install the host debian package:
git clone https://github.com/google/android-cuttlefish
cd android-cuttlefish
debuild -i -us -uc -b
sudo dpkg -i ../cuttlefish-common_*_amd64.deb
sudo apt-get install -f
  1. Go to http://ci.android.com/
  2. Enter a branch name. Start with aosp-master if you don't know what you're looking for
  3. Navigate to aosp_cf_x86_phone and click on userdebug for the latest build
  4. Click on Artifacts
  5. Scroll down to the OTA images. These packages look like aosp_cf_x86_phone-img-xxxxxx.zip -- it will always have img in the name. Download this file
  6. Scroll down to cvd-host_package.tar.gz. You should always download a host package from the same build as your images.
  7. On your local system, combine the packages:
mkdir cf
cd cf
tar xvf /path/to/cvd-host_package.tar.gz
unzip /path/to/aosp_cf_x86_phone-img-xxxxxx.zip
  1. Launch cuttlefish with:

    $ HOME=$PWD ./bin/launch_cvd

  2. Stop cuttlefish with:

    $ HOME=$PWD ./bin/stop_cvd

So you want to debug cuttlefish?

You can use adb to debug it, just like a physical device:

$ ./bin/adb -e shell

So you want to see cuttlefish?

You can use the TightVNC JViewer. Once you have downloaded the TightVNC Java Viewer JAR in a ZIP archive, run it with

$ java -jar tightvnc-jviewer.jar -ScalingFactor=50 -Tunneling=no -host=localhost -port=6444

Click "Connect" and you should see a lock screen!