Implement create/release_audio_patch API in audio HAL for cuttlefish.

1. Implement create_audio_patch API in audio HAL for cuttlefish. When
opening input/output stream, the stream will record the handle and the
device will record the stream. When creating audio patch, matching the
handle to update the device for the stream. For an output stream, it may
be connected to multiple devices. As audio device type can not be used
as bit mask any more, use an audio_devices_t array for output case. The
input stream will still only have a single device type. If stream is
found when creating audio patch, an unique patch handle will be
recorded, which will be used to find stream when releasing audio patch.

2. Implement release_audio_patch API in audio HAL for cuttlefish. When
receiving request to release audio patch, find the stream by matching
patch handle. The device(s) and patch handle recorded in the stream will
be all cleared.

3. Update the audio device api version to 3.0 so that the framework will
call createAudioPatch interface instead of setParameters when creating
audio patch.

Bug: 145631119
Test: dumpsys audio flinger with fake patch information.
Test: atest VtsHalAudioV5_0TargetTest
Change-Id: I63883df469a3f45f1f495fa210bf74dbd0aaa090
1 file changed
tree: 8b6760be4f670b87828849ef6ea1f18fde4def52
  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. 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!