Add HWC2.3 support to CuttleFish

code is modified from HWC2On1Adapter, then add missing HWC 2.3
functions, for example, EDID related ones.

This is a rather large CL, here are some details:

(1) skeleton of code is copied from HWC2On1Adapter.
(2) add glue layer to initiate HWC2 on top of existing 1.1 cutf_cvm composer.
(3) debug changes made in (1) and (2) without changing anything else,
this is a critical step, and time consuming. At first, it simply causes
crashes, and need to fix them, such as fences, capabilities, etc.
(4) once (3) works, then add HWC 2.3 specific functions.
(5) it's then ready to upgrade manifest xml to version 2.3.

Bug: 150057963
Test: launch_cvd
Change-Id: If1da2ecd48ecc8a71d1d0e641335d091156ca430
8 files changed
tree: 57979c7521312d33fc8643ae669371258d9b1a34
  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. default-permissions.xml
  16. dtb.img
  17. fetcher.mk
  18. host_package.mk
  19. OWNERS
  20. README.md
  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!